算法工程师面经(搜狐、数旦、好未来)
算法工程师面经
2018年3月13日
搜狐一面
主要问了我硕士期间做的新闻推荐系统是什么,我讲了大约20分钟balabala。然后针对于这个新闻推荐系统提出了一系列的问题:
1.你用到了LDA,那么请讲一下LDA的原理是什么?我简单说了一下LDA生成文档的过程,但是根据什么生成没答上来2333(LDA是我的痛,看了几遍没看懂)
2.你的新闻的备选集如何获取?选取当天新闻,挨个算一遍。
3.也就是说你的计算是现场算的么?是的,我知道这样效率有问题,我的系统中没有解决,但是可以先对新闻进行聚类,然后对每个簇提出一个模型,先匹配簇在选择新闻(SCENE 论文中的方法)
4.你的数据量有多大?3万多条新闻,100个用户吧。
5.你的用户较少,那么在推荐的时候矩阵一定是稀疏的,对于这个稀疏矩阵应该如何处理?可以用PCA或者SVD进行矩阵分解
6.你的关键字是如何从文档中提取出来的?使用了中科院的NLPIR+TF-IDF算法。
7.讲一讲tf-idf是什么意思,TF就是表示词频,IDF是逆文档频率的意思计算方法为log(N/n),N新闻集的大小,n为包含这个词的新闻的数量
8.你系统使用什么语言实现的?Java
9.hashmap你用过么,底层是如何实现的?这个我不太清楚呢。见http://blog.csdn.net/yinbingqiu/article/details/60965080
10.计算机网络你有学过吧,还记得什么么?记不清太多了时间太久了。其实可以说说TCPIP,网络5层结构之类的
11.你说你做过Android Android的生命周期是什么?忘记了。。
12.你用过Python 那么你Python都用过哪些机器学习的库?Scikit-learn,numpy,OpenCV 和dlib(其实还有LibLinear忘记说了)
13.好了,那么你觉着你自己都有哪些优点呢?。。。。。。。。
总而言之第一次面试毫无疑问的跪了
2018年3月15日
金山WPS
1.自我介绍巴拉巴拉
2.项目
3.深度学习!
深度学习!深度学习!
结论就是大家投岗位一定要看好是不是适合自己
2018年3月16日
数旦科技一面
1.数据库 三范式(不记得了)
2.bagging 和boosting 哪个可以让结果的方差更小一些,为什么?
偏差:偏差越大准确率越低,偏差越小准确度越高
方差:方差越大的模型越容易过拟合,方差越小越不容易过拟合
bagging减少方差(通过随机抽样和投票减少过拟合),boosting减少偏差(通过不断拟合残差来让偏差更小)
3.你都知道哪些分类算法
LR,SVM,决策树,随机森林,Adaboost,GDBT,Xgboost,朴素贝叶斯
4.bagging 和boosting的区别是什么
bagging的思想就是分别训练多个没有相关性的基分类器,每个基分类器在训练的时候,需要从样本集合有又放回的选择部分样本作为训练集。训练完成以后通过,多数表决(分类问题)、简单平均(回归问题),的得到最后的结果。
bagging的最大优点是可以并行化。
bagging的典型代表就是随机森林。
而boosting是一个串行的过程,下一个基学习器要基于上一个基学习器的结果来进行学习,从而一步一步的逼近真实的结果。
5.排序算法都有什么?当一个数据特别乱序的时候使用哪个排序算法更好一些
堆排序,最坏O(nlogn),虽然归并也可以O(nlogn),但是堆的空间复杂度为O(1)所以更好一些
6.你论文都怎么搜索的,如何保证质量?如何保证搜索结果是完整的?
Web of science、百度、谷歌,讲了用ccf和Jcr分区来保证论文基本质量,通过摘要Intruction的后两段还有Conclusion来初步判断论文讲的什么之类的。
7.面向对象 多态 继承 的关系
这个说的不好,有兴趣自己看就行
8.面对大数据量的推荐应该如何实现
算法上面,SVD降维,聚类
结构上面,分布式文件管理系统
分布式计算框架(Hadoop、MapReduce等)
并行计算
9.说说协同过滤是怎么回事
说了基于用户和基于物品的协同过滤及原理
10.你常用的推荐算法都有什么
基于内容与协同过滤(评分推荐的话主要用矩阵分解)
11.集成学习为什么要用简单的基学习器,不用一个复杂一点的学习器
为了防止过拟合啊
12.非线性的数据,可以使用什么分类器进行分类
总结一下,这个公司其实还有二面,但是二面由于没有什么有价值的内容所以就不写了,只问了一下随机森林的原理
2018年3月21日
好未来一面
视频面试好卡2333333,小哥主要是做NLP的,和我方向不是很对口,所以其实东西问的不是很多
项目,把隐式反馈和显式反馈结合的用户兴趣计算方法(我感觉小哥听得有点蒙,毕竟不是做推荐的)
1.用过什么语言,用没用过R,语言都干什么用的
Python,Java。新闻推荐系统用Java写的,机器学习模型什么的用Python跑的。
2.朴素贝叶斯原理
说了贝叶斯公式、属性独立性假设,以及贝叶斯的优缺点
3.TF-IDF原理
这个简单。不说了
4.性能评价指标,准确率召回率是怎么回事,二分类 和多分类的评价方法
准确率召回率。。不解释。忘了提Roc曲线和Auc面积
5.除了推荐方面的东西,你还做过一些别的事情么
说了自己练习的工资分类,take home test的电商诈骗检测
6.用过scikit-learn numpy么(pandas还有其他的没用过)
用过scikit-learn numpy没用过pandas
7.LDA你是怎么用的,LDA的表现如何,主题分的效果好不好
改的别人的代码,表现还好,但是运行效率很差。最后的主题分析效果还行,但是由于新闻量和主题定义的数量不够多,导致有些主题划分的不够纯粹和细致。
8.你觉得基于内容的方法和协同过滤有什么不同
谈了协同过滤的冷启动和原因,基于内容的优缺点(准确,但无法发现用户的新兴趣)
9.还有就是一些基本情况了,用没用过数据库啊之类的,数据库用的怎么样sql会不会
小哥大概的意思是把我的简历踢到推荐相关的部门去了