2019-暑期实习生-自然语言处理算法岗-面试题

  随着三月初蚂蚁金服内推开启,整个暑期实习生招聘大幕也正式打开,这一场从三月初持续到之后五月的笔试面试过程,确实让笔者真真切切的感受到基础的重要性,面试和笔试不仅从机器学习,自然语言处理,数据结构与算法,高数概率论等方面考察,还包括智力题,逻辑题等。
  
阿里巴巴
一面:
1. 介绍项目(只针对自然语言处理项目询问,召回率、准确率如何);
2. 深度学习如何提取query特征,如何利用深度学习计算语义相似度;(深度学习语义相似度可以参考《浅析文本相似度》
3. 写二叉树的前序遍历,中序遍历,统计二叉树所有路径和;
二面:
1. RNN为什么会梯度消失,LSTM怎么能解决梯度消失问题;(RNN、LSTM有关梯度消失的问题可以参考《理解RNN、LSTM、GRU和Gradient Vanishing》
2. 优化算法介绍并说一下特点(介绍了自适应率学习算法Adagrad和Adam,深度学习优化算法可以参考《深度学习优化算法总结》);
3. Dropout的原理;
4. 交叉熵损失函数是什么,在什么地方使用过,介绍一下;
5. 介绍一下Word2vec,CBOW和Skip-gram的区别是什么;
6. GBDT和Xgboost介绍一下,并说一下区别(关于XGboost、GBDT和RF的总结可以参考《RF、GBDT、XGBoost面试级整理》);
7. 写代码:现在有词向量词典,计算句子相似度(Consine Similarity)

美团
一面:
1. 介绍项目(项目中一些问题如何解决的;项目的难点在哪儿;如何解决的;你在里面干了些什么);
2. 介绍一下随机森林和Xgboost,有什么区别(从bagging和boosting角度);
3. 什么是SGD,什么是batch size;
4. 深度学习优化算法有哪些,随便介绍一个(说的Adagrad,优缺点明显,进退自如);
5. 现有一个神经网络和64个样本,Batch gradient descent和SGD的时间复杂度和效果比较;采用批梯度下降时,神经网络参数更新了几次;
二面:
1. Two Sum问题(Leetcode第一题,采用hash map解决);
2. 如何找到10万以内的所有质数;
3. 逻辑斯蒂回归的损失函数怎么来的,如何进行梯度更新;

百度
百度一面:
1. 介绍项目(一些项目细节;项目的准确率;召回率如何);
2. 京东项目中Xgboost原理,xgboost有哪些参数,怎么调整xgboost的参数;
3. 智力题:现在有三枚硬币,一个是一正一反,一个是两面都是正,一个是两面都是反,现在随机抛出一枚硬币是正面,那么这枚硬币的反面也是正面的概率;(2/3)
4. 代码实现海量数据处理问题:现在有一个比较小的数据表(包括id, score),另外有一个十分大的(上千万级别)的数据表(包括id, name),现在需要以id为索引将两张表合并,如何在O(n)时间复杂度完成。(hash map解决,海量数据处理问题参照这篇博客《 十道海量数据处理面试题与十个方法大总结》

追一科技
一面
1. 介绍项目(项目准确率;召回率;特征工程怎么做的;项目难点在什么位置;如何解决的;用了什么深度学习的方法);
2. 既然提到对话系统,简单介绍一下(非任务型和任务型balabala…..),了解非任务型对话系统么,介绍一下;(关于对话系统可以参考《人机对话系统调研》
3. 平时用什么语言写代码啊,用python么(用),java怎么样(一般般),c用不用(不怎么用);
4. 看你简历里面没写GRU,了解GRU么,和LSTM、RNN的区别在什么地方(从梯度消失的层面回答);
5. GBDT的损失函数是什么;
6. 了解红黑树么(–没看到这儿来 –那算了,换个问题);
7. 64匹马,8个跑道,选出速度最快的4匹马需要多少次(回答12次,后来知道最好是11次)

百度度秘
一面:
1. 介绍项目(项目细节;项目难点;有什么方法;你在里面发挥的作用;这个系统现在还有什么可以改进的地方么);
2. 看你项目中用到了LSTM,介绍一下LSTM(介绍LSTM时候提到RNN,打断询问RNN为什么有梯度消失问题,给出具体公式);
3. LSTM用什么框架实现的,能不能介绍一下Word2ver如何使用在其中,使用Word2vec和不使用word2vec的效果如何;
4. 正则化方法有哪些,介绍一下(说到L1和L2时,重点问了一下为什么梯度稀疏和梯度选择,用公式推导讲了一下,过拟合问题可以参照《深度学习相关总结》);
5. 看你简历上说博客记载了机器学习、数据挖掘和深度学习的内容,那你简单说一下这三者的区别;
6. 编程题:二叉搜索树的插入和搜索;
7. 有序循环链表中(后简化为元素从小到大有序循环链表),如何在O(1)时间内完成最大值插入;

腾讯
一面:
1. 写代码实现列表 [0,0,6,2,8,0,0] —-> [6,2,8,0,0,0],要求O(n)时间复杂度和O(1)空间复杂度;
2. 写代码实现 [1,2,3,2,2,3,4,…] —-> [1,2,3](先去重再取top K,这里的K取3),要求in place操作,O(n) 时间复杂度和O(1)空间复杂度;
3. LSTM用来解决RNN的什么问题?如何解决的?既然说到forget gate,那么说一下forget gate的取值范围?(sigmoid 取值(0,1))forget gate是具体的值还是向量?(向量),如何理解这个向量;
4. 深度学习用的什么框架,Tensorflow?(Keras),那介绍一下深度学习中的过拟合如何解决?(从数据、单模型、模型集成三个角度回答);
5. 深度学习优化算法用过哪些?讲讲Sgd和gd的区别?
6. 对SVM(考虑线性可分情况)、LR和DT熟悉么? 从损失函数说一下区别,SVM的损失函数是什么?(合页损失函数,写一下讲一下)。LR呢?(利用最大似然估计得出)。又问一下SVM线性可分情况下决策边界不同位置的损失值。DT如何进行特征选择?(ID3信息增益)。介绍一下信息熵?(随机变量不确定性,度量系统稳定性) [1/3,1/3,1/3]和[1/2,1/4,1/4]哪个的信息熵大?回归任务中如何进行特征选择?(平方损失准则)
7. 海量数据处理。现在有1千万行词,需要统计各个词出现的次数,目前有一台机器内存1G,磁盘100G?(海量数据处理blog的第一题,先利用Hash对原始文本进行分割(hash(word)%2000,分为2000个文件),再使用hashmap(python中的字典)在各个文件中分别统计)。
8. Python基础。现在有一个列表,需要选择其中大于0的数?(列表生成式)
9. LTR(learning to rank)。介绍一下ltr的三种方式?其中pairwise在训练时怎么做?(转化为二分类)在测试的时候怎么做?
10. 文本分类的项目中用到CNN没有?介绍一下CNN?那CNN在文本分类任务中卷积核和一般的图像任务中的卷积核有什么区别?(balabala)
11. 熟悉Attention么,介绍一下?(balabala)

二面:
1. 在你的项目中如何判断word2vec的效果好坏,如何评判对模型和结果的影响?项目中使用的xgboost是哪个版本的?谁写的(懵了)
2. 如何从概率角度理解AUC?二分类问题中,一个正负类比是1:1000,一个是1:100,它们的AUC和ROC有什么区别?
3. 了解交叉熵损失函数么?在哪个场景使用过?它和最大似然估计是什么关系?
4. 熟悉什么语言?Python么?用过里面的zip函数(有点没听清)没?

腾讯二面前刷的一碗面经:
1. 覆盖字符串所有字符的最小字串;(leetcode第76题)利用滑动窗口;
2. 反转链表的前k个;(变型:按k个结点一组来反转链表)
方法:都是利用翻转链表的方法,只是局部翻转,再添加头尾结点。
3. 求二叉树最大深度;(递归)
4. 序列模型中markov和rnn的区别;
(rnn和hmm最本质的区别在于rnn没有马尔科夫假设,因此从理论上可以考虑很久的信息;同时hmm本质上是一个概率模型,而rnn不是;此外rnn具备神经网络的拟合非线性的能力)。
5. 字符串出现第k多的字符;
(hash map进行统计,然后对dict进行排序
6. 一个过拟合模型和大量数据,如何判断这些数据有没有用?
(利用采样的方法,采样部分数据然后运行过拟合模型看看效果;)
7. lr和svm的区别
(从lr的由来讲损失函数,对于svm讲最大间隔。区别在于损失函数不同;svm只需要考虑支持向量,而lr需要考虑所有的点;svm本质上是基于距离的,因此其输出无法直接产生概率,lr输出的是其属于分类的概率;在非线性的情况下,svm使用核函数解决,而lr通常不使用核函数;svm自带正则话,因此是结构风险最小化算法)
8. 特征选择的方法;
9. AUC是什么?就是ROC曲线下的部分,表示什么?
10. 快速排序;
11. 一个数组中超过一半的数字;
((1)hashmap直接统计,(2)hashmap间接统计,利用数组中的一个数字和次数,当相同的时候1,不同的时候1,如果次数为0则,保留下一个元素且次数设置为1,那么最后留下来为1的数字就是次数最多的;(3)归并排序选中间元素;)
12. 有一个能产生1-5的随机数的函数,怎么修改之后能够产生1-7的随机数;
13. 快速排序,归并排序,深度遍历和广度遍历;
14. 解释一下lucene原理,怎么进行中文分词,基于什么进行分词;
15. a,…z所有字母组合方式;
16. 输入一个数,输出这个整数里面最大的质数;

 祝大家好运~

猜你喜欢

转载自blog.csdn.net/stay_foolish12/article/details/88911285