一面(技术面)

面试形式:电话面试

  1. 简要的自我介绍。

  2. 研究生阶段最有挑战的项目是什么?

  3. 对于这个项目,传统的方法是怎么样的?

  4. 列举下这个任务在传统用法的一些典型特征。

  5. 看你简历里有QA相关的论文,大概介绍下里面用的方法。

  6. 你在这篇论文里用到的是GloVe,为何不用word2vec,或者说word2vec与GloVe有什么区别?

    我大致说了下他们的区别:word2vec是NNLM的一个较为典型的代表,其利用了DNN的方法来训练获取到词向量,而且词向量是中间产物,这个思路最早是Bengio提出,Google Brain提出的word2vec让词向量火了起来。而GloVe是采用词频统计信息,利用一些数学方法逐步优化得来,它没有神经网络的结构,所以词向量训练的速度相对更快。(这里当时不记得具体的公式推导了,原论文我倒是看过,但是当时记得不清了,实际上GloVe是词共现矩阵+类SVD的方法)

  7. 你清楚word2vec吗,大致描述下word2vec的结构以及训练方法。

    从宏观上描述了DNN的一个结构,从输入(大致带过分词,词表构建,one-hot等过程),到隐层,到输出层。然后详细讲了两种训练结构,即CBoW和Skip-Gram。讲完两种训练方法后,大致介绍了下训练时候词表大小过大,输出层过大的优化方法,即:hierarchical softmaxnegative sampling

  8. 现阶段NLP的研究相对CV发展还是很缓慢,你认为是什么原因?

    自然语言存在变化性,和不确定性,即语义的抽取对神经网络来说是很难的,在英文,人脑可以通过词形来建立词与词之间的关系,但是语义不确定性很强,比如歧义,一词多义,词序等等都会影响语义。而CV的特征相对固定,如图像处理,filter提取的特征一般是某种轮廓或边缘特征,这些特征对于特定的物体都是固定的,所以效果会更好。(其实总结就是感知智能认知智能感知智能很容易实现,即CV,而认知智能有很多挑战,即NLP)

  9. 你知道隐马尔可夫模型吗,大概介绍下。

    问了HMM的几个要素,即:初始概率,状态转移矩阵,发射矩阵,这三个要素

    这三个要素的运算过程,提及了一下维特比算法。

  10. 维特比算法其实是一种动态规划算法,动态规划算法通常用来解决什么问题,在HMM里是怎么使用的? 大致描述了下动态规划的最优解问题,然后结合HMM的迭代过程说了一些。(面试官应该还是想听到HMM的理论,因为HMM推导会用到它里面的假设,然后得到递推关系,就可以分解为子问题,利用维特比算法求解)

  11. 算法题吧:在一个敏感词过滤的场景下,要怎么在一个字符串里找出敏感词的位置?算法复杂度是多少? 面试官应该是想听到KMP一类的算法

  12. 你还有什么问题要问我的吗?

    1. 咱们部门对实习生的预期目标是啥?培养方式和考核方式?
    2. 工作期间的考核情况如何,比如周报、月报、日报这些频繁吗?

二面(技术面)

二面也是技术,但是和初面不同的是,二面没有那么关注项目了(但是也是从项目开始问),比较注重理论层面。自初面结束之后,有一周时间的空档,我恶补了基础理论知识,首先是对初面的知识查漏补缺,再刷了剑指offer,捡起了李航《统计学习方法》,基本的机器学习算法以及推导。面试形式:电话面试

个人发现,NLP岗位,很多面试官喜欢问:HMM、CRF、LDA这些知识。

  1. 看你的简历上,在做一个相似性评估的项目,大致介绍下。

  2. 了解,那么获取的词向量你是怎么获取的?

    从word2vec中获取,然后作为模型的输入(讲了一些实验操作)。

  3. 你的词向量自己训练过吗?

  4. 你知道几种词向量的方法?

    这里说的很详细,我带了一下传统的,如IDF、词袋、LDA,GloVe等偏统计方法,然后具体描述了NNLM下的模型:word2vec(和一面一样,介绍的比较详细),character level CNN Model(英文适用,中文不太适用);转向RNN结构:传统RNN将序列压缩至向量的过程,LSTM解决RNN长依赖模型,双向语言模型(BiLSTM);根据双向语言模型,导出了ELMo以及内部细节;主流热门的Transformer系列:Transformer内部细节详细讲了一下,然后转向GPT(Transformer Decoder,单向模型,和之前的双向模型做了个区分),详细说了一下,然后是BERT(Transformer Encoder,双向语言模型,和GPT的对比和ELMo的相同点,以及区别)详解。

    安利本人译的一篇综述:

    邹智鹏:综述:神经网络语言模型(译)zhuanlan.zhihu.com图标

    如果觉得翻译不好的话,建议论文阅读原文[ ]。

  5. n元模型了解吗,如果共现频率为零怎么解决?

    大致讲了下ngram与n阶马尔可夫。共现为0的解决方案有点忘记了,但是提了一下在GloVe中有提及这个情况的解决方案,但是我也忘记了。

  6. 你认为为什么BERT能达到这么好的效果?

    我认为BERT的效果很大程度上取决于Transformer的一个Attention机制,即Self-Attention,正如原文标题《Attention is all you need》,注意力机制很好地找出了文本序列的语义相关度,在语义层面上,能够提取到更关键的特征,比如理解序列中的指示代词。其次是Transformer的结构优势,没有RNN的梯度消失问题,理论上支持任意长度的文本,用了position embedding(区别说明了下Transformer的三角函数和BERT的position embedding的不同)。

  7. 注意力机制你了解多少,或者说你了解哪几种?

    注意力机制最初是在CV领域用的比较多,其次被应用到了NLP领域,并且取得了较好的效果。我主要研究NLP比较多,CV了解不深,所以只了解NLP的两种attention。最早的Attention是在seq2seq中提出(或者说Encoder-Decoder模型),讲了下这个模型注意力机制的细节,以及注意力获取的方式,文献名我忘记了,原始的论文应该是NMT相关场景。然后讲了BERT的Self-Attention细节,比如Q、K、V这些。

    这里到BERT想要继续向后拓展的时候,被面试官打断了。

  8. LSTM你了解吗,它的大致结构是怎么样的?

    大概描述了下它的三个门。

  9. 假设输入是$x$维,LSTM的参数量为多少?

  10. 正则化你用过吗,有哪些正则化方法?

    有L1、L2正则化,其他的比如Dropout、Batch Normalization不知道算不算,但是它能达到正则化的效果。

  11. 文本相似性一般有那几种度量方法?

    之前项目里有过这个相似性的问题,我不知道面试官具体想要的点在哪,就先说了下VSM的基础知识,他又再次深入地问了下,可以用什么模型。

    然后我大致说了下常用的方法,比如最简单的word2vec加权,然后用VSM,RNN得到固定维度的向量后,用VSM,以及这一系列的方法。然后补充说了,利用深度学习转化为二分类的问题的思路和方法,以及BERT中的使用,因为BERT是有做文本相似性任务的。 深度学习之外,还有很多方法,比如主题模型、LDA之类的。

  12. 序列标注做过吗?

  13. HMM和CRF有什么区别?

    之前恶补了HMM的理论,详细讲了HMM,但是CRF只有大概了解,就没仔细说。 HMM的2个假设,正向反向算法(递推式推导),EM算法,维特比算法。CRF打破了两个假设,所以效果更好。(说的比较大概,也和面试官说了这部分不是很了解,只知道个大概)

  14. 传统机器学习算法了解吗,比如XGBoost和SVM这些?

    了解。

  15. 那你讲一下SVM吧。

    讲了下SVM的推导:hard margin, soft margin, 几何距离、函数距离,最优化,拉格朗日乘子法,对偶问题,KKT条件,损失函数,惩罚系数等。

  16. 为什么SVM求解要求解他的对偶问题?

    其实,是因为对偶问题可以降低原问题的计算复杂度。

三面(HR面)

HR面就不涉及技术了,主要是和HR各种聊,在这之前,看网上很多面经,都说HR面还是很多坑的,即有套路,但是好在面我的HR小哥哥比较真实,没有过分的套路我。面试形式:视频面试(腾讯会议)

  1. 学校的基本情况,导师是谁,组里的研究方向是啥?
  2. 根据我的研究方向,问了下我们的工作。
  3. 有没有了解行业内你这个领域的一些工作,即你们组的研究方向的落地情况如何?
  4. 聊基本情况,实习时间,毕业要求。
  5. 家庭情况,籍贯、家里成员、父母工作。
  6. 实习地点有没有什么规划?
  7. HR小哥哥开始介绍他们部门的业务情况,业务方向等等。
  8. 你有没有什么问题?
  9. 那么我这边也没有问题了,整个面试就算通过了,大概一周左右会有通知。(大概意思,算是口头offer)

小建议

技术岗,刷算法题!时间来不及就先剑指offer 66道,相对简单,多刷几遍,然后做leetcode。

算法岗,基础机器学习算法:SVM、Bayes、DT、Clustering、boosting(Adaboost、GBDT)、bagging(RF)、LR。

项目,一定要熟悉,不熟悉的就别往简历上写。说不清楚的会被喷的很惨,一定会被diss,甚至会质疑简历真实性。简历上写了的就要再次复盘,要了然于胸,不要忘记了然后讲不明白。

论文,要熟悉所在领域的一些经典论文模型,里面的细节也要清楚,最好读原文

NLP的经典:HMM、CRF、LDA,我在很多次面试都碰到这些,重点圈出,个人遭遇,视情况准备吧。

HR套路,虽然面我的HR没怎么套路我,但是HR毕竟还是要尽量选择稳定的人,所以HR面还是要长心眼,对某些敏感问题的态度要坚决,宗旨:我爱XX公司,我一定去,工作地点不挑,实习时间能满足

Reference

  1. https://zhuanlan.zhihu.com/p/117450353