昨天,有一位粉丝给我发了他这段时间的工作感触,我觉得对大家非常有借鉴意义,在这里给大家分享下。
本人985硕士一枚,已毕业一年半,之前工作与算法相关,但是感觉自己学习的不是很系统,所以希望通过课程来提升自己。当时比较想转到推荐系统相关的工作,但投递好多简历,都是因为没有推荐算法的经验迟迟没有面试通知。
思来想去还是觉得应该去系统的学习相关课程,所以报名了推荐系统就业班,在完成全部课程后的一周内我就接到了面试邀请。
我第一家面试是JD,第一面面试官问的问题也很专业,我首先介绍了一下自己的基本情况,然后就直接介绍我的项目,和我做过的一些工作。
面试官根据项目问了word2vec的原理(因为项目涉及到了),还有其中损失函数的公式,然后又问了其中,什么是层softmax,如何构建的哈夫曼树,负采样是如何采的,这些是根据项目问的一些问题。
然后问了一些使用的模型,问了xgboost和lr是如何组合使用的,特征是如何选择的,gbdt的梯度是如何体现的等。
最后出了一个动态规划的算法题,一面结束,总体感觉第一面的面试官问的东西还是比较细的,而且都是根据你简历里的东西去问。
第二面,面试官应该是一个leader级的人,他问了一些基础的召回问题,然后又问了一些我换工作的原因,二面的技术性不是很强(可能是一面问的太多了吧)。
第二家是已经D轮的互联网创业公司,这家公司是根据我的项目问了一些比较基础的召回问题,因为我用了als,他会问我一些物品的打分是怎么打的,然后会问一些如果是异常用户行为,比如用户异常刷贴,那als又将如何打分,然后又问了一些使用的模型,比如,xgboost+lr,weed&deep,FM,DeepFM等,之后又问了一下,特征工程是如何做的,最后出了一道树的算法题(比较简单)。
最后两个面试都过了,因为觉得第二家和我比较匹配所以还是选择了第二家。说了这么多我其实要强调的一点就是,学习绝不能闭门造车,想要高效的学习参加课程是非常有必要的!如果我没有参加这门推荐系统课程这两门面试绝对不能通过,甚至可能都没有面试的机会!
面试心得总结:
推荐项目一般会问有哪些评价指标。推荐系统一般有模型线下评价指标如召回率,准确率,覆盖率,AUC等等,线上看系统AB测试的点击率表现等,推荐系统的整个数据流程是如何处理的。
协同过滤如何计算得到N个最近邻问题。数据比较稀疏的样本是如何处理的。为什么要有召回和排序的流程,如何用用户画像进行召回,数据的存储及性能如何解决。
我觉得作为一个合格的算法工程师,首先要有扎实的基础功底,然后需要在一个方面有自己深度的理解,比如word2vec算法,知道怎么用,但也要知道他的内部原理和公式的一些推导,和在什么样的场景下使用,总体来说算法很多,我们学大量的算法是好事,但是对于算法的深度必须要有,注重广度同时深度很重要,而且对于面试来说,我们也同时需要具备数据结构算法的一些知识,比如:树,动态规划等。
说了这么多其实,自己的决心跟努力是最重要的,不管你现在是后端岗还是数据岗,或者是在校学生,如果认定了做算法,就坚持下去,借用现在最火中国动漫的一句话,“是魔(坏)是仙(好),只有我自己说了才算”,这是我自己的一些拙见,希望能帮到各位,谢谢!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69923331/viewspace-2670151/ ,如需转载,请注明出处,否则将追究法律责任。