算法工程师(推荐方向)面试经历:简历、数据结构、机器学习、推荐系统


简历
我是推荐就业班的,找工作第一步就是投简历了,好的简历能提高不少面试机会。之前就因为没有一份好的简历,投递之后迟迟没有面试通知。
简历中最重要的就是和招聘JD中相关的项目经历。我在简历中主要提了在项目中使用了哪些算法,线下线上的指标影响。对于写到简历中提到的算法要能够很好掌握,面试官一般会根据简历项目中的算法进行提问。

数据结构和算法
作为一个算法工程师,需要具备良好的编程能力和逻辑思维能力。面试过程考察一个候选人的编程能力和逻辑思维一般通过数据结构和算法题来考察。我面试的公司中技术面基本都会问到此类问题,或是让手写代码,或是线上编程,又或是口头说一下解题思路。
我在面试中遇到的问题一般有:链表反转,有序列表合并,基本排序算法(快排,归并排序,堆排),二分查找等。这类问题多刷刷剑指offer和leetcode就好。

机器学习相关
虽然现在已经有公司将深度学习应用于推荐领域了,但是我在面试过程中发现大部分公司问的更多是基础的机器学习的问题(可能和我项目里没用到深度学习有关)。因为是做推荐系统的,所以协同过滤基本都是必问的,item-base、user-base、矩阵分解的原理,推导,优缺点都会被问到。经典的机器学习模型LR、SVM和GBDT的推导也有被问到,一般从损失函数开始一步步展开。正则化L1,L2的作用和特点,正负样本如何划分,模型调参一般调哪些参数,用的哪个包实现的还是自己实现的。模型输入的特征维度和数据规模有的面试官会问到。由于项目中处理过文本内容,所以面试官也问了word2vec和文本词袋模型相关的问题。

推荐系统相关
推荐项目一般会问有哪些评价指标。推荐系统一般有模型线下评价指标如召回率,准确率,覆盖率,AUC等等,线上看系统AB测试的点击率表现等。推荐系统的整个数据流程是如何处理的。协同过滤如何计算得到N个最近邻问题。数据比较稀疏的样本是如何处理的。为什么要有召回和排序的流程。如何用用户画像进行召回,数据的存储及性能如何解决。

总结
作为算法工程师基础编程能力要有,总不能连代码都不会写。虽然很多中小企业用的推荐系统还是经典的协同过滤那一套,但是也需要表达出你对推荐系统更近一步的理解,对现在前沿的推荐技术的了解。推荐系统是比较倾向业务的系统,需要知道从客户端获取数据到最终给用户推荐内容的整个流程是如何进行的。
已邀请:

要回复问题请先登录注册