机器学习工程师面试心得:知识得系统性学习


我是去年自学过几个月,感觉学得懵懵懂懂的。面过几个公司,效果都不好,所以萌生了报班的想法。正好遇到七月招生,就报了。我是集7的学员。经过系统的学习,之前自学时候不懂的东西,很快就明白了。面试的时候,基本都能回答上来。几个公司的技术面试都通过了。最后接的Offer是一个智能制造的机器学习工程师。
总的来讲,基础知识要理解清楚,热门和前沿的技术能掌握更好,不能掌握起码也要了解,面试的时候提到不要蒙。常见的问题都差不多,只要基础知识掌握好就能对付80%。

基础知识:
常见算法的推导和特点、常见的特征提取方法、处理过拟合的方法、模型评估、模型集成、常见的网络结构、优化方法、梯度消失和爆炸都必须熟悉。这些都是课上讲到过的,只要多温习几遍也就熟悉了。如果有难点确实没理解的,可以拿时间专门攻克,这样可以增强信心。也可以直接请教别人。

项目方面:
我写的是一个NLP项目和一个CTR预估的项目。
CTR预估是用deep-cross网络。
NLP项目现在的标配是Bert的fine-tune,但也不能只会bert微调。基本的CRF、LSTM、CNN都要掌握。NLP主要就是表示、标注和分类。
项目经验少没关系,只要有一两个就可以。因为AI总共才火几年,你又不是专门研究的博士,也不可能多。重要的是理解算法原理和思想,能够将现实问题转化为机器学习的问题,不是编程经验。

注意知识的系统性和自己的优势
面试的时候,抓住自己熟悉的问题一定要说透,把相关的都说。这样也能把面试官的注意力吸引过来。同时占用了时间,被问到不熟悉领域的机会就少了。
比如问到xgboost,就从决策树(熵)到xgboost都说,同时还要说boost集成的方法,还可以扩展到其他的集成方法(bagging,stacking),还可以对比各种集成的特点,甚至还可以扩展到神经网络,因为神经网络也可以看作是一种集成。
比如问到词向量或嵌入,就从w2v,glove,elmo,到bert都说一遍。如果时间充裕,可以研究各种表示方法,很有意思的。
比如问到关键词提取,就把tf-idf,textrank,lda,都说一遍。如果还知道其他的关键词提取方法就更好。
总之,要让面试官看到你是系统的理解和掌握了,不是零碎的知识。
已邀请:

要回复问题请先登录注册