微信WXG应用研究实习生面试面经

抱着学习的心态去的,时间都是约在周末,整体面试体验不错。

大致记录一下。

部门直推。

一共四面:如果没有猜错,应该是部门同事、部门leader、面委面试、HR面

一面

算法题

有一个字符串,只包含小写字母,设计算法并写出代码移除字符串中重复的字符,要求时间复杂度、空间复杂度尽可能小,进一步地,为你的程序写测试用例。

这里面试官想考的是位运算

参考链接:https://blog.csdn.net/SunnyYoona/article/details/25096363

二面

算法题

这里其实比较有创意,因为之前参加了一些面试,所以面试官问了之前的算法题都是什么,说了之后从里面拎出来两道探讨了很久,时间复杂度、空间复杂度,如何改进等

具体参见之前的面经:今日头条-AI-lab机器学习算法岗面试

项目相关、设计

项目相关项目

设计: 依据微信的用户数据做商品推荐?

三面

面委面试的面试官,感觉级别很高,很和蔼,看重数学基本功底,着重考察machine learning 的基础理论。说前面的面试官已经考察了很多工程能力,所以主要问了一些机器学习理论、线代以及概率论的基础。

面试的最后,那边说总体表现还不错,我现在才大三,要更关注之后的发展,如果想在机器学习这个方向走的更远,数学这方面一定要加强理解。

其实到这里的时候,心情是很复杂的。之前面头条一面(AI lab)的时候,全程在和面试官小哥聊ML和DL的数据层面,但是人家似乎并不care。 当然,那位面试官的水平还是有的,问了很多关于object detection的相关问题,也是给我上了第一课。

当然,这些题目回过头再来看,其实并不难,在于当时准备的不够充分。

题目

这里记录其中的一些有印象的题目

1.极大似然估计(Maximum Likelihood Estimation)和贝叶斯估计中的最大后验概率估计(maximum posterior estimation)的理解、区别和比较?

这个问题在《统计机器学习》p8中有详细的介绍,这里摘录一些以作记录。

  • 经验风险(empirical risk)或经验损失(empirical loss):模型f(X)关于训练数据集的平均损失
  • 期望风险:模型关于联合分布的期望损失

根据大数定理,当样本数量N趋于无穷时,经验风险趋于期望风险。

所以极大似然估计最大后验概率估计其实是两种不同的思想体现:

  • 经验风险最小化(empirical risk minimization, ERM)的策略认为,经验风险最小的模型是最优的模型。 其中,当模型是条件概率分布,损失函数是对数损失函数分布时,经验风险最小化就等价于最大似然估计。但是,当样本容量很小时,这种策略的效果未必很好,会产生所谓的过拟合(over fitting)现象。
  • 结构分析最小化(structural risk minimization, SRM)的策略认为,结构风险最小的模型就是最优的模型。当模型是条件概率分布,损失函数是对数损失函数,模型复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验概率估计。结构风险最优等价于正则化。

这个问题主要在于厘清一些概念性的东西。

2.常见机器学习模型的损失函数表达式

3.计算联合分布的期望(具体例子)

剩下的记不清了

HR面

腾讯的HR是我见过最能聊的(说的好像见过很多),面试持续了半个小时。

这里记录一下:

  • 对自己的评价?
  • 自己最大的优点和缺点是什么?
  • 自己的缺点曾经造成了什么问题?

完了太久了记不起来了。。。

只记得问了很多问题 = =

结语

所以说,面试其实是一个匹配的过程,所谓奇淫巧技就是要找到自己和面试官、和面试的职位之间的契合点,很多时候,面试并不是为了招聘强人,而是为了招合适的人。

一些题外话,翻了翻自己的博客和GitHub,发现自己最近没怎么写代码,很是担忧,看来要找个project试试看。

参考

  • 《统计机器学习》 李航
曹真 wechat
欢迎关注公众号:一时博客