12.20今日头条实习面试总结-算法工程师

一面

项目经历

1.LDA模型,Simhash的流程
这个问题主要问的是算法是怎么工作的,工作流程,就是具体在做工程的时候怎样实现,没有涉及到太多的公式
2.问了LSTM的结构,公式推导
这个当时是让我画出LSTM的Cell结构。这个结构当时忘了,给他画了一个RNN的结构,然后推了下rnn正向传播的公式,LSTM就是三个gate,具体数据怎么刘的忘了…
3.L1和L2正则惩罚项公式及区别
这个比较简单了,L1惩罚项得到的特征比较稀疏,就是对于某些不太重要的特征,其权重可能惩罚至0, L2惩罚项的数学性质比较好,得到的特征权重比较平滑,不会让某些特征的权重系数过高
4. bagging和boosting的区别
我就分别把bagging, Adaboosting, Gradient boosting和gbdt的原理都解释给面试官
5.开放性问题:给定一堆未标注的样本,样本中包含少量的色情低俗新闻(负样本),如何标注数据,以及如何做特征工程?模型选择,识别出这些负样本
这个是他们现实遇到的问题。主要就是不平衡分类和无监督的问题。对于不平衡分类,说了三个想法:1. 降采样 2.升采样 3. loss函数的设计. 对于无标注样本,可以采用聚类的算法或者半监督的方式。

算法题

给定一个List,和长度为k的窗口。窗口在list上滑动,找到每次滑动的最大值
这个回答出来了,但不是最优的解法。面试官告诉我用堆…

二面

项目经历

1.主要是问KDD CUP 2017的项目
random forest, GBDT, 对数变换,异常值处理情况(箱线图)
2.开放性问题,找出某些新闻是用机器翻译的(可读性差,负样本),和真正原创的新闻(可读性好,正样本)
这个和一面的问题有点像。我感觉答的不太好。

算法题

1.一维透视表转二维透视表
题目比较复杂,但理解了题意就比较简单…
2.两个堆栈实现一个数据结构,入栈,出栈,找到最小值的时间复杂度都是0(1)
这个答出来了。

三面

项目经历

1.LDA模型推公式
花了LDA模型的框图,但远远不够…
2.Simhash推公式原理
回答的还可以, 讲了随机超平面hash和Simhash之间的联系,以及如何处理超大规模文本的去重.
3.逻辑回归计算过程(公式,梯度更新)
答出来了

算法题

1.给出一个list,找到Top K最大的数
不是最优解法,面试官告诉我用堆…
2.给出一个list(不含重复的数),找到其全排列
回答出来了,用回溯发
3.给出一个list(含重复的数), 找到其全排列
回答出来了,也是用回溯发,但回溯之间先对输入做排序,然后价格条件判断当前数和上一个数是否相等。

HR面

面试到这就很轻松了。问了写和技术无关的问题,关于生活爱好之类的,HR带我到处走了走参观的头条的总部,食堂健身房等等,感觉还是很nice的。

总结

整个面试的过程略长(6个小时),头条比较注重算法能力,和理论公式的推到,这方面还得加强。但最后也是拿到实习offer了

你可能感兴趣的:(面试)