您现在所在的位置:首页 >常见问题 > 课程问题 > 2019年字节跳动招聘算法岗,他们最看重哪些新技术能力?

2019年字节跳动招聘算法岗,他们最看重哪些新技术能力?

来源:奇酷教育 发表于:

算法工程师必须具备的四个技能点:知识、工具、逻辑和业务。

  1
 
  ◆◆  四个技能点:知识、工具、逻辑和业务  ◆◆
 
  算法工程师必须具备的四个技能点:知识、工具、逻辑和业务,我可以用一个实际例子中说明一下,比如我去面试“推荐算法工程师”的职位,具体是什么能力呢?
 
  知识:主流CTR模型以及预算控制,流量预估,bidding策略等模型算法的原理和技术细节
 
  工具:coding能力,大数据相关的spark、flink、深度学习tensorflow、pytorch、ps-lite等模型训练、serving相关工具
 
  逻辑:算法题,模型之间的演化关系
 
  业务:推荐业务逻辑包括冷启动、召回和排序等在构建模型时的区别联系,如何根据公司业务模型制定模型的目标效果
 
  算法基础是个基本功,需要在学习阶段夯实,千万不要在这个阶段过于深究类似于SVM、EM、HMM等这些需要深奥的数学逻辑层面的理解,会把人耗死而且也极易让你丧失信心。你需要量力而行,不是所有的算法都要搞清楚,抓住主流的算法模型,可以从各大公司的JD里发现面试官比较关心的算法模型有哪些,我总结了一些主流的算法如下:
 
  LR、决策树、SVM、EM、Adaboost、PageRank、 FFM、随机森林、 GBDT 、XGBoost 、聚类、CNN、RNN、LSTM、Word2Vec,FCN、RestNet、Fast R-CNN 、MobileNet、SSD
 
  我学习期间汇总了300+道NLP、搜索推荐、机器学习算法的面试常见题,总结一下:
 
  NLP项目——要写上深度学习模型,19年面试NLP基本上都会问到Bert,Attention机制,最好准备下。
 
  搜索推荐——相关岗位,感觉除了考察算法外,工程上考的也比较多,面一个做搜索的公司就让设计一个方案统计商品近6小时实时点击率。当时有点蒙,回答的并不是很好,有回答使用Storm来实时计算,具体实现并不太熟悉。
   
  机器学习算法——GBDT基本上必问,Xgboost,LR、决策树模型也问的很多,没有遇到手推算法,常见机器学习模型的损失函数要清楚。
 
  GBDT的原理
 
  决策树节点分裂时是如何选择特征的?
 
  写出Gini Index和Information Gain的公式并举例说明
 
  分类树和回归树的区别是什么
 
  与Random Forest作比较,并以此介绍什么是模型的Bias和Variance
 
  XGBoost的参数调优有哪些经验
 
  XGBoost的正则化是如何实现的
 
  XGBoost的并行化部分是如何实现的
 
  为什么预测股票涨跌一般都会出现严重的过拟合现象
 
  如果选用一种其他的模型替代XGBoost或者改进XGBoost你会怎么做,为什么?
 
  NLP:
 
  有没有自己改过模型?类似Google Inception这种的;
 
  你了解attention机制吗?seq2seq,有用到attention机制吗?
 
  了解最新的bert,transformer吗?
 
  怎么优化深度学习模型性能?
 
  你们有用到哪些激活函数?NLP中有没有用到?
 
  LSTM和GRU那个性能更好,什么情况下gru的效果会比lstm好?
 
  讲一下Word2vec原理;
 
  商品购买评论,分成10个类,怎么聚类?把整个流程从头到尾讲一下。
 
  搜索推荐:
 
  设计一个系统来完成搜索词类目预测,设计一个关键词分类系统,搜索行为日志中有搜索关键词和对于的点击,购买商品日志,每个产品知道具体的分类,怎么处理同一个关键词多分类的情况?怎么处理误点击数据?
 
  广度考察:
 
  Adaboost、 FFM、随机森林、个别聚类算法,模型评估等知识的理解程度
 
  Spark的调优经验,Model Serving的主要方法,Parameter Server的原理,GAN,Online Learning的基本理解
 
  Embedding方法,Attention机制,Multi task,Reinforcement Learning
 
 
  2
 
  ◆◆根据个人背景,调整简历,突出重点  ◆◆
 
 
  建议:面试过程中,面试官常根据你的简历追问一些细节问题,简历上写的技能和知识点,自己一定要熟悉,不熟悉的不要写上去。简历写和目标岗位相关的项目,之前工作中不太相关的项目可以去掉,简历整体项目经历要和目标岗位匹配。
 
 
  3
 
  ◆◆  你该了解的算法岗面试环节和重点  ◆◆
 
  一个完整的算法岗面试过程主要有以下几个主要环节:自我介绍、项目介绍、算法推导和解释、数据结构与算法题(写代码)。
 
  关于自我介绍,主要就是简单介绍下自己的教育背景,在校或在职期间的研究方向和所做的项目以及在项目中所充当的角色等等,为之后的面试做个铺垫,让面试官从中捕捉一些点来向你提问。
 
  项目介绍是最为重要的,这也是体现你综合实力的地方,对项目背景、项目实现的方案,项目所实现的东西都要了如指掌,做机器学习的,必须准备一到两个重点的机器学习项目,关键是项目中间的技术细节都要了如指掌,比如你用了LR、或树模型,就得知道所有LR或树模型相关的推导和原理,一旦你说不太清楚,面试官就会对项目的真实性存疑。
 
  接下来就是机器学习算法原理和推导,这也是要重点去准备的,在面试前你需要能给你一张白纸,可以把推导的每一步写的清清楚楚的,面试常考逻辑回归和树模型的推导,关于原理面试官常会问你几个树模型之间的对比等等,其他的算法比如LR、SVM、EM、Adaboost、FFM、决策树、随机森林、 GBDT、XGBoost 、推荐算法、聚类、LSTM、Word2Vec等等,以及他们的适用场景。
 
  技术面主要会围绕简历项目展开,大厂面试官问的很细,阿里的基本上涉及到的每个模型每层参数结构、原理、模型损失函数,为什么要用这个损失函数等问题,所以简历上写到的相关技术最好搞透彻。小公司一般会问一些工程上面的问题,一般算法岗位也会做工程相关的工作,如大数据和接口服务。
 
  最后就是写代码了,很多非计算机出身的大都会栽在这个地方,代码写得少,训练不到位,就会导致当场思路不清晰,不知从哪写起。
 
 
  4
 
  ◆◆2019年的算法岗面试的新套路 ◆◆
 
  面试算法岗的新套路,会有如下建议:
 
  讲述项目的基本情况,项目的背景、规模、用时、用到的技术以及各个模块。重点突出自己比较熟悉的技术,防止在面试官打断的提问的时候,问到自己最薄弱的环节。
 
  主动说出自己做了哪些事情,这部分的描述要尽量和自己的技术背景一致,描述自己在项目中的角色。描述模块中用到的技术细节,这部分一定要注意,一定要把话题引到自己最熟悉模块的技术细节。
 
  一定要主动:作为面试者,应该能够主动并且逻辑清晰的说出自己的项目中有哪些亮点,能够主动的把自己的闪光点在短短几十分钟的面试中都展现出来。
 
 
  总结
 
  真正合格的算法工程师一直是短缺的,努力做金字塔上部的那块砖。