前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货 | 我如何考察面试者的机器学习水平

干货 | 我如何考察面试者的机器学习水平

作者头像
zenRRan
发布2019-05-22 16:49:06
8040
发布2019-05-22 16:49:06
举报

阅读大概需要7分钟

跟随小博主,每天进步一丢丢

来自 数据挖掘机养成记

作者 穆文

导读

作为一名新晋菜鸟面试官,最近替部门面了3、40个人(大多来自国内top5学校,包括校招社招),小小总结下我的相人之术,希望能帮上大家

------------硬插入-----------

先插个话,你遇到的面试官,可能是亲切温和的大神,也可能是滔滔不绝掉书袋的教条主义者,你一定要记住

面试是一场双向选择的过程,对方考察你的同时,你也在考察他以及他的团队。当遇到以下情形时,说明你们不合适,不要想太多,换下一个

  • 面试官不问你擅长的领域,而是抓住些边边角角不放,多半是他不懂你做的东西,但又不想在你面前失去威信。甭理他,心里竖个中指然后走人
  • 面试官对着电脑找现成的应试题,然后你做题他干自己事。这种懒人,多半自己肚子也没啥货,做法同上
  • 面试官跟你话不投机,进入尬聊阶段。这种情况请原谅他把,多半是你投错岗位了,以后记得打听清楚岗位需求,再投简历

进入正题

面试别人时,我主要遵循『两原则』和『三方面

『两原则』指:

  • 绝不网上现搜应试题(一不尊重面试者,二这种题大多考察不了真水平),确保所问问题是自己认真思考过的
  • 在自己能力范围内,不停追问面试者所做的项目、所掌握的理论细节,看他掌握到什么程度以及评判简历内容的真实性

『三方面』包括:

  • 理论功底
  • 代码能力
  • 项目能力

----------下面进入废话时间-------

把三方面展开:

【理论功底】主要考察对机器学习模型的理解,会根据面试者的经历选择性提问(如果遇到面试者的研究方向是自己不了解但感兴趣的领域,会很欣喜,趁机学习一个哈哈)这块儿的问题会比较细碎,都是我实际问过的,在此全部手敲

  • 过拟合欠拟合(举几个例子让判断下,顺便问问交叉验证的目的、超参数搜索方法、EarlyStopping)、L1正则和L2正则的做法、正则化背后的思想(顺便问问BatchNorm、Covariance Shift)、L1正则产生稀疏解原理、逻辑回归为何线性模型(顺便问问LR如何解决低维不可分、从图模型角度看LR和朴素贝叶斯和无监督)、几种参数估计方法MLE/MAP/贝叶斯的联系和区别、简单说下SVM的支持向量(顺便问问KKT条件、为何对偶、核的通俗理解)、 GBDT随机森林能否并行(顺便问问bagging boosting)、 生成模型判别模型举个例子、聚类方法的掌握(顺便问问Kmeans的EM推导思路、谱聚类和Graph-cut的理解)、梯度下降类方法和牛顿类方法的区别(顺便问问Adam、L-BFGS的思路)、半监督的思想(顺便问问一些特定半监督算法是如何利用无标签数据的、从MAP角度看半监督)、常见的分类模型的评价指标(顺便问问交叉熵、ROC如何绘制、AUC的物理含义、类别不均衡样本)
  • CNN中卷积操作和卷积核作用、maxpooling作用、卷积层与全连接层的联系、梯度爆炸和消失的概念(顺便问问神经网络权值初始化的方法、为何能减缓梯度爆炸消失、CNN中有哪些解决办法、LSTM如何解决的、如何梯度裁剪、dropout如何用在RNN系列网络中、dropout防止过拟合)、为何卷积可以用在图像/语音/语句上(顺便问问channel在不同类型数据源中的含义)
  • 如果面试者跟我一样做NLP、推荐系统,我会继续追问 CRF跟逻辑回归 最大熵模型的关系、CRF的优化方法、CRF和MRF的联系、HMM和CRF的关系(顺便问问 朴素贝叶斯和HMM的联系、LSTM+CRF 用于序列标注的原理、CRF的点函数和边函数、CRF的经验分布)、WordEmbedding的几种常用方法和原理(顺便问问language model、perplexity评价指标、word2vec跟Glove的异同)、topic model说一说、为何CNN能用在文本分类、syntactic和semantic问题举例、常见Sentence embedding方法、注意力机制(顺便问问注意力机制的几种不同情形、为何引入、seq2seq原理)、序列标注的评价指标、语义消歧的做法、常见的跟word有关的特征、factorization machine、常见矩阵分解模型、如何把分类模型用于商品推荐(包括数据集划分、模型验证等)、序列学习、wide&deep model(顺便问问为何wide和deep)

【代码能力】主要考察实现算法和优化代码的能力,我一般会先看面试者的github repo(如果简历给出来),看其代码风格、架构能力(遇到大神会认真学习一个哈哈),如果没有github,我会避免问典型的应试题,而是问一些 我本人从实际问题中抽象出的小算法题,比如:

  • 给出节点的矩阵和边的矩阵,求路径和最大的路径(来源于 Viterbi 算法,本质就是个动态规划),至少给个思路和伪代码(顺便聊聊前向传播和反向传播)
  • 给出一数组,数组元素是pair对儿,表示一个有向无环图的<父亲节点, 孩子节点>,用最优的方法,将其变成一个新的有序数组,数组元素是该有向无环图所有节点,数组的有序性体现在:父亲节点在孩子节点前面(来源于 贝叶斯网络实现时的小trick)

【项目能力】主要考察解决实际问题的思路、填坑能力,这部分其实最考验面试官功底,要能从面试者浮夸的描述中寻找有意义的点,并一步步深挖

最后,我会问面试者:『有没有我刚没问到、但你特别想分享的项目经历』。此问题是给面试者一个展现自我的机会,同时也是挖掘出之前遗漏的问题。

以上问题能答完美的,请私信我~

。。。

。。。

。。。

。。。

我要向你学习

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

本文分享自 深度学习自然语言处理 微信公众号,前往查看

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

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

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