算法工程师:肩上扛是脑子,不是皮球(NLP最新面试35题)

315 阅读6分钟

文末彩蛋:七月在线干货组最新升级的《名企AI面试100题》免费送!

01 个人情况

本人是非计算机专业,毕业之后机缘巧合进入算法岗位,跟七月结缘是计算机专业的学长推荐的七月的题库。

原工作中主要接触的是传统的机器学习算法,NLP也只是浅层了解,面试时发现仅有传统机器学习算法是不够的,所以报了七月的NLP就业小班。

02 学习情况

预习阶段我把传统机器学习算法过了一遍,深度学习和NLP的预习课程没来得及过,直接导致我第一次作业就被干趴下了,花了一周,交的东西自己都不忍直视(不敢去想像褚博士是怎么硬着头皮看下去的)。

意识到自己的菜之后,之后开始老老实实的边上NLP课程,边补深度学习,PyTorch和Tensorflow的课程。最怕上褚老师的直播课,因为自己作业没交,练习没做完,代码没啃完,所以每次见到老师都瑟瑟发抖。

虽然怕老师,但是我一直认为自己是很幸运的,在我算法之路的开始阶段,能有一位专业的老师引路,节约了很多自己摸索的时间。

褚博士带我们看英文论文,分析源码,教我们NLP最新技术,提供丰富的学习资源,提供简历的修改建议,项目的优化方案等等,在这过程中,我学习到的不仅仅是当前NLP领域的技术,更多的是一种思维方式和学习方法的转变,一名合格的算法工程师应该有的专业素养及个人修养,其重要性远甚于某个模型的公式推导及应用的。

IT行业更新迭代周期越来越短,某种模型很快就被淘汰,但优秀的思维方式、学习方法及自我修养一直都是非常具有竞争力的,我认为这是我在七月,跟着褚博士取得的最大收获。

03 面试情况

面试流程一般分为以下几个阶段:自我介绍、项目介绍及提问、代码及算法考核。自我介绍、项目介绍、算法考核不论公司大小都是必须的,数据结构部分公司考核。

数据结构:

(1)手撕快速排序、冒泡排序,归并排序;

算法:

(1)逻辑回归的原理及步骤介绍、手写逻辑回归的损失函数;逻辑回归的损失函数中为什么是连乘?相加是否可以?

(2)为什么要做最大似然估计?

(3)K-means的原理和步骤实现(口头介绍及板书),手写K-means的代码;局限性及优化的方法;聚类除了K-means之外还有哪些方法;

(4)EM算法分为几步?每步分别是什么?EM算法与K-means算法的区别与联系?

(5)ID3,C4.5和CART的区别与适用场所;

(6)SVM和CRF算法原理介绍;SVM求出来的最优值是否是全局最优;怎么判断一个最优值是全局最优还是局部最优?

(7)HMM和CRF的区别;

(8)多维空间中的分类算法有哪些;

(9)有一个圆,一个点在圆内,一个点在圆外,如何分类;

(10)RF是什么?粒子群优算法计算过程、参数调整过程?

(11)动态规划中最短路径的求法;

(12)XGBoost的优化原理及目标;

(13)如何衡量一个词的重要程度;

(14)敏感词的查询及匹配;

(15)transformer框架介绍;

(16)BERT的主要任务,局限性;为什么要乘以缩放因子;

(17)transformer中的attention机制与BahdanauAttention的区别;

(18)word2vec中的负采样是怎么处理的;

特征工程:

(1)特征工程包括哪些内容?

(2)缺失值的处理方式;

(3)异常值的检测方法;

(4)特征变量的筛选过程;

(5)为什么要做归一化;

(6)spearman与pearson的区别;

(7)过拟合和欠拟合的定义,处理方式;

(8)如何解决多重共线性问题;

(9)为什么要做数据分箱?将连续值处理成离散值的意义;

(10)为什么要做模型和业务的评估;

(11)卡方检验是什么?IV值是否有计算过;

(12)梯度消失的问题如何处理;

(13)逻辑回归中L1正则化的作用;L1正则化和L2正则化的区别;

Linux:

(1)查看模型运行所占用的内容及CPU指令?

Tensorflow:

(1)reshape和transpose的区别;

(2)如何加快线上模型的进程;

04 个人感想

我在技术面时,是保持坦诚态度的,对于面试官的问题,会就直接说答案,不会的问题老老实实的说不会,包括自己在七月做的两个项目,也是很实诚的说是自己玩的。

毕竟面试官见的人还是比较多的,多问几个问题就能试探出应聘者是不是瞎说,而且如果侥幸通过面试,在未来工作中领导如果按照你在面试时许的诺言要求你完成超过你能力范围之外的事情,也是很惨的。

另外,面试时的态度,也在一定程度上反映了在未来岗位中的态度:“一者:遇到解决不了的bug坦诚的报告团队及领导,一起想办法解决;二者:怕挨批,自己捂着最后捂不住了造成更大损失;我认为前者是要比后者要好的”。

直接大大方方的展示自己的优势和劣势,如果公司能接受我的短板,那么我在未来的工作中脚踏实地的补上这方面的短板,如果不能接受,那换家公司就好,幸运的是,公司给了我这个机会。

在我拿到offer时,我还是有很多工作没有做完的,比如刷题,简历的修改,项目的优化,课程的消化吸收,NLP知识的归纳整理等等,找到工作不是终点,算法之路,任重道远,愿我们能成为行业翘楚,共勉。

写在最后: 感谢学长让我与七月结缘,感谢七月让我成为褚博士的学生,感谢褚博士像一位硕士导师一样带我们,让我在算法中找到方向及个人追求,感谢七月的就业老师和助教的督促和鼓励,感谢七月的小伙伴们的答疑、指导和鼓励,遇见你们是我一生的财富,再次感谢!

关注公众号“七月在线实验室”,回复【ZH】,免费领取最新升级版《名企AI面试100题》电子书!