前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BAT面试题41:准备机器学习面试应该了解哪些理论知识?

BAT面试题41:准备机器学习面试应该了解哪些理论知识?

作者头像
double
发布2019-03-07 10:42:00
9720
发布2019-03-07 10:42:00
举报
文章被收录于专栏:算法channel算法channel

技能总结

这里我们用一些具体的内容来描述一下算法工程师的四个技能点:

知识:主要是指你对machine learning相关知识和理论的储备

工具:将你的machine learning知识应用于实际业务的工具

逻辑:你的举一反三的能力,你解决问题的条理性,你发散思维的能力,你的聪明程度

业务:深入理解所在行业的商业模式,从业务中发现motivation并进而改进模型算法的能力

也许还不够具体,那我们再从一个实际例子中体会一下,比如面试“计算广告算法工程师”的职位,上面四项对应着哪些具体的能力呢?

知识:主流CTR模型以及预算控制,流量预估,bidding策略等模型算法的原理和技术细节

工具:coding能力,spark、flink、tensorflow、ps-lite等模型训练、serving相关工具

逻辑:算法题,模型之间的演化关系

业务:展示广告和搜索广告在构建模型时的区别联系,如何根据公司的business model制定模型的objective

当然,上面只是让大家体会一下什么是这四项素质,真实的计算广告算法工程师面试中,你不一定要都掌握,也不一定局限于这些内容。如果你遇到一位资深的面试官,他不会预设一个框架往面试者身上套,而会从面试者简历出发检验面试者能不能达到这四项素质的标准。

那么问题又来了,面试官会如何在"限定的时间内"检验你这四项素质能不能达到"技术合格"的标准呢?

既然是限定的时间,面试官就不可能拿出一本西瓜书,从头问到尾。面试官要做的是在1个小时的时间内确认你能力的"深度"和"广度"。 所以在这里面试官就像一个采样算法,要从你脑子里采几个点,把你的能力雷达图描绘出来。

重点再重复一边,面试官会从“深度”和“广度”两个维度构建你的能力雷达图。

对于"深度"方面,有经验的面试官会从你已经做过的项目中挑出你最擅长的部分做层次式的递进。

一位面试同学介绍自己实习时候用过XGBoost预测股票涨跌,那面试官可能会由浅入深依次考察下列问题:

  1. GBDT的原理(知识
  2. 决策树节点分裂时是如何选择特征的?(知识
  3. 写出Gini Index和Information Gain的公式并举例说明(知识
  4. 分类树和回归树的区别是什么?(知识
  5. 与Random Forest作比较,并以此介绍什么是模型的Bias和Variance(知识
  6. XGBoost的参数调优有哪些经验(工具
  7. XGBoost的正则化是如何实现的(工具
  8. XGBoost的并行化部分是如何实现的(工具
  9. 为什么预测股票涨跌一般都会出现严重的过拟合现象(业务
  10. 如果选用一种其他的模型替代XGBoost或者改进XGBoost你会怎么做,为什么?(业务+逻辑+知识

这是一条由简历出发,由“知识”为切入点,不仅考察了“知识”的深度,而且还考察了“工具”、“业务”、“逻辑”深度的面试路径。

当然,如果你介绍的项目是实现了一种类似阿里DIN的CTR预估模型。那么问题路径可能是这样的:

  1. softmax函数的定义是什么?(知识
  2. 神经网络为什么会产生梯度消失现象?(知识
  3. 常见的激活函数有哪些?都有什么特点?(知识
  4. 挑一种激活函数推导梯度下降的过程。(知识+逻辑
  5. Attention机制什么?(知识
  6. 阿里是如何将attention机制引入推荐模型的?(知识+业务
  7. DIN是基于什么业务逻辑引入attention机制的?(业务
  8. DIN中将用户和商品进行了embedding,请讲清楚两项你知道的embedding方法。(知识
  9. 你如何serving类似DIN这样的深度学习模型(工具+业务)

这条路径侧重于考查“知识”深度的路径。为了弥补其他方向考察的不足,面试官肯定还会问一个从工具或者业务出发的问题来确定你其他方面的深度。

因为面试官选择的是你最熟悉的领域深入下去,我们可以假设,如果一位面试者在最擅长的项目中都答不上一些细节性的问题,那几乎可以肯定你在任何其他领域的钻研都不够深入,你的技能雷达图的面积肯定是一个很小的面积。也有像我之前所提到的一些临时抱佛脚的面试者,也许知识方面达到了要求,但经不起面试官对“工具”和“逻辑”的考察,这也毫无疑问会“悲剧”。

如果面试者的能力深度达到了最低的要求,下一步面试官会确定你能力的广度,对于任何算法工程师,可能会随机check以下几个知识点:

  1. NN,RNN,个别聚类算法,模型评估等知识的理解程度
  2. spark的调优经验,model serving的主要方法,parameter server的原理
  3. GAN,LSTM,online learning的基本理解
  4. embedding方法,attention机制,multi task,reinforcement learning,online learning的基本理解

对于广度的检查是比较随意的,个别答不上来无伤大雅,但如果超过一半以上的知识点都miss了,可能有点说不过去。因为我要知道你是一个关注前沿,喜欢学习的人,试想除了你自己做过的项目,其他知识了了,那我可以肯定你不是一个对技术有热情的人。

很多面试官很看重“热情”这个属性,因为正是对技术的热情支撑你今后的学习,有些问题你可能不知道,你也要尽量用自己的理解去推导,去讨论。

此篇文章参考如下,感谢原创作者的精心总结,文章很精彩。

https://zhuanlan.zhihu.com/p/54089811

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档