算法工程师面经(搜狐、数旦、好未来)

算法工程师面经

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会不会

小哥大概的意思是把我的简历踢到推荐相关的部门去了

你可能感兴趣的:(算法工程师面经(搜狐、数旦、好未来))