研究生第一次算是比较正式的面试,之前还在想一面应该是HR面,但是上来就是技术面,下面记录下本次的面试过程和流程。
- 自我介绍
主要说清哪年毕业,就读哪个学校,居住地等。
然后讲述研究生主要做的方向,做过的项目,主要的收获。
- 项目中NER命名实体提取的过程
实体提取的过程主要是根据依存关系和正则化进行提取(非监督的方式),此处问有了解有监督提取的方式(如CRF等),又具体问了提取的过程(可能是不太理解?)。
- 聊到CRF和HMM,两者的区别是什么
表示对CRF不太了解,但是HMM是用观测序列去预测状态序列,使用转移矩阵。(后期补上区别,现在还没有对HMM和CRF有过多的了解)
- 问Hanlp分词的基本原理和算法
基本是使用的最短路径法,首先根据词典进行全切分,然后构建词图,求最短路径则为分词的结果。将主要流程说了一遍。
- 维特比算法
动态规划的一种算法,用来求最短路径的问题,主要是通过将问题划分为子问题,然后通过求解系问题来求解原问题。这里是求起点到终点的最短路径,转化为起点到中间时刻T的最短路径和中间时刻T到下一点的的最短路径问题,从而求解最短路径。
- 研究方向,主要是网络安全
基于机器学习和统计的,也用到了深度学习,我的方向是用了自编码器和循环神经网络做流量的判别。面:RNN的反向传播原理是什么 求导 对参数求偏导,在优化函数(损失函数)中对参数求偏导,目的是使目标函数最小化,即向着梯度(变化最快的方向)的方向更新参数。来达到目的。
在训练过程中发现结果与预期目标不符,先分析怎么不符,是精确率达不到还是波动较大,或者是在训练集表现好而在测试集上表现不好,然后根据不符的结果来解决,精确率小欠拟合,模型过于简单、学习率小等,是否数据量小等。使用正则化、调整学利率等
怎么解决:首先排查数据问题:是否数据量过小等,然后排查模型本身的问题,搭建是否正确,损失函数是否合理、学习率是否过大或者过小。
如果数据集有限(很小)如何训练模型,通过数据采样的方式来扩大数据集,最简单的方法就是直接复制数据集来达到目的。有过这方面的项目或者经验吗,没有,但是了解这方面的原理。
总结:
面试的重点还是放在了项目中的一个nlp上,主要关注的是具体的实现过程和算法的基本原理,涉及到的任务是有分词、命名实体识别,涉及到的算法有HMM、CRF、维特比、最短路径、深度学习的优化方式、调参等方面。主要感觉整体都是按照简历上的相关内容和交流中透漏出的信息来完成的。
分割线--------------
结果:面试不通过,想了想,主要的原因可能是因为简历上自然语言处理相关的项目太少了,只有一个,也只是分词、标注和实体提取。另一个是回答的关于扩展的如HMM和CRF的问题不是很了解。下次应该添加几个nlp的竞赛,然后增加一些nlp的知识储备。