【携程算法工程师二面】应该是凉经的面经
不太清楚是不是 Boss 面,不过我的直觉告诉我应该是。面试官让人感觉亲切又威严,散发出一种很奇特又有魅力的气质,让我想起我的小学语文老师…
这次面试中问的问题都很有挑战性,再也没有那种回答【随机森林、GBDT有什么区别】的轻松惬意。
一开始还是自我介绍,然后大概介绍了一下实习的工作。聊完之后没问基础问题,直接来了几个开放式的问题,把我问懵了。
-
对于神经网络模型速度和效果怎么取舍?
回答的很烂,大概扯了一些有的没的。我先从哲学层面分析了如何看待速度和效果,这是一个永恒难解的 tradeoff。其次我说了一些关于学习率衰减,网络结构,优化器方面的优化方法。(最后反问的时候我又问了面试官这个问题。面试官说希望我从模型压缩,网络剪枝、蒸馏以及高性能计算的角度来说,不过我没有做过线上的模型,不了解也是可以理解的)
-
问了我一个场景题,如果在搜索栏搜索北京故宫,我们如何给用户推荐北京故宫的游览路线。
因为没有做过推荐,当时脑子一团浆糊,大体上从召回和排序两个方面说了一下。召回的话,我们可以通过命名实体识别来判断用户想要搜索的是酒店还是景点,可能需要针对用户搜索的内容不同而针对性地进行推荐(比如如果搜的是酒店,我们应该推荐相关的酒店,房价,客服电话等,如果是景点,可能需要推荐景点的票价,其他人的游览经验等)。我们召回许多物料后,再根据热度,或搜索栏中的其他输入信息进行排序(具体的我也不知道该怎么说)。总之回答的挺不好的,没有清晰的思路,也没有很好很明确的方法。
说一下排序具体怎么做
我说据我了解现在大多的排序都上深度模型了,我觉得可以试一下像 Wide & Deep 这种模型(我对推荐系统的了解实在太浅显了)。
你能简单介绍一下 Wide & Deep 吗
Wide 就是简单的线性层,Deep 就是先对稀疏特征做 Embedding,再加几个全连接层,得到最终的结果。我们把 Wide 和 Deep 的 Output 相加得到最终的预测。
-
你了解 python 的内存泄露问题吗?
简单说了一下 python 的垃圾管理机制,其余的就不了解了…
-
讲一下你的论文吧
分别从创新点和难点大概介绍了一下,不过我的论文有点儿偏统计,感觉面试官不太感兴趣的样子,但还是耐心听我啰嗦完了。
秋招以来第一次遇见如此有挑战性的面试,可以看出完全是从工程的角度来问的,对我这种非科班同时实习经历比较少的菜鸡来说还是太难了。不过还是要夸一下面试官的职业精神,听到如此一连串弱爆了的回答还能保持良好的气度,真的很不容易。