工作▍推荐系统算法工程师是搞啥的?工作内容、技能、面试题全解析

2019 年 3 月 19 日 36大数据

推荐算法工程师就业指导

2016年,YouTube发表论文,将深度神经网络应用推荐系统中,实现了从大规模可选的推荐内容中找到最有可能的推荐结果。


近年来,推荐系统被广泛的应用于电子商务推荐、个性化广告推荐、新闻推荐等诸多领域,如人们经常使用的淘宝、今日头条、豆瓣影评等产品。


推荐算法工程师是目前AI岗位比较紧缺的热门人才,市场上对人才的需求不断在水涨船高,


从招聘信息来看,凤凰网开出了50000以上的月薪,字节跳动给的月薪也平均在30000以上,携程网开出的月薪是30000-60000元,美袖信息给出的月薪是25000起,同程艺龙算法工程师搜索推荐方向的月薪是30000-60000元/月。


今天我们将解答推荐算法工程师是做什么的?需要什么能力?如何面试?面试会问什么等问题。

1.推荐算法公工程师做什么?


1.1招聘网站能力要求:


  • 数据分析、数据挖掘能力

  • 大数据处理技术(spark、Hadoop、)

  • 扎实的算法基础:机器学习与推荐算法相关的LR、SVM、GBDT、DNN

  • 丰富的Python、C开发经验

  • 项目经验


1.2工作内容


  • 数据分析与处理

  • 用户画像

  • 个性化推荐

  • CTR预估

  • 销量预测


2.怎样准备


2.1基本技能准备


数据分析与数据挖掘:

  • 数据缺失值与异常值处理,特征构建与选择(pandas)


大数据处理的相关技术:

  • Hadoop或者spark的基本命令、MapReduce原理(如统计一句话中单词出现的次数)


算法基础:

  • 算法原理、建模、调试(sklearn、Keras)(LR、GBDT、SVM、DNN)


模型的可调参数有哪些?

  • gbdt和xgboost区别

  • SVM原理


推荐算法:

  • 协同过滤(基于物品和基于用户)的原理,ItemCF、UserCF、SVD矩阵分解

  • 原理与实现:给一个场景,给出解决方案

  • 首先选择基于物品或者用户的协同过滤,用户行为如果比较少,需要细化特征,得到相似性


2.2项目准备


  • 房价预测

  • 智能客服

  • 音乐推荐系统

  • 文本分类


简历上面至少要有一个深度学习的项目,如图像或NLP


项目需要弄明白的东西:


  • 项目来源

  • 数据量,7天10个TB

  • 做了多长时间,项目排期

  • 用的算法和模型的原理

  • 不同模型的区别,如何选择

  • 模型参数的调试

  • 结果如何评估,

  • 可以改进的地方


项目突出的内容


推荐实时性很重要,两个小时的,一个是实时预测,一个是凌晨全量迭代

简历中项目要突出自己的工作量,实验结果,比如提升了多少auc


2.3其他


编程基本功:

  • 排序算法,字符串查找

  • 机器学习相关问答题:


3.面试会问那些问题


3.1技术面


  • 机器学习的步骤

  • 分类器的选择

  • SVM原理

  • 特征选择的方法:

  • filter、warpper、bedding、GBDT选择

  • 树模型是否需要做归一化,为什么?

  • 不需要

  • 模型过拟合与欠拟合,如何解决?

  • 使用正确率或者loss曲线

  • 偏差与方差

  • GBDT与xgboost的区别

  • 实际场景的解决方案


3.2HR面

  • 自我介绍

  • 语言表达能力、思维能力

  • 对我们公司了解多少

  • 薪水


面试大题


1、推荐系统有哪些常用的评价标准?


解析:

常用的评价标准:

一类是线上的评测,比如通过点击率、网站流量、A/B test等判断。这类评价标准在这里就不细说了,因为它们并不能参与到线下训练模型和选择模型的过程当中。

第二类是线下评测。评测标准很多,我挑几个常用的。我就拿给用户推荐阅读相关链接来举例好了。

1. 精度Precision:P(k)
P(k) = c/k
我们给某个用户推荐了k个链接,他/她点击了其中的c个链接,那么精度就是c/k。

2. 平均精度Average Precision: ap@n

n是被预测的链接的总数,m是用户点击的链接的总数。

例子1: 我们一共推荐了10个链接,用户实际上点击了我们推荐当中的第1个和第4个链接,以及另外两个其他的链接,那么对于这个用户,
ap@10=(1/1+2/4)/4≈0.38

例子2: 我们一共推荐了10个链接,用户实际上点击了我们推荐当中的第2个,第3个和第5个链接,以及另外三个其他的链接,那么对于这个用户,
ap@10=(1/2+2/3+3/5)/6≈0.29

例子3: 我们一共推荐了10个链接,用户实际上点击了我们推荐当中的第2个,第7个,此外没有点击其他联系,那么对于这个用户,
ap@10=(1/2+2/7)/2≈0.39

例子4: 我们一共推荐了5个链接,用户实际上点击了我们推荐当中的第1个,第2个和第4个,以及另外6个其他链接,那么对于这个用户,
ap@5=(1/1+2/2+3/4)/5≈0.55

3. 平均精度均值Mean Average Precision: MAP@n

MAP计算的是N个用户的平均精度的均值。

这个N是用户数量。

比如说我们三个用户甲、乙、丙分别推荐了10个链接,
甲点击了我们推荐当中的第1个和第4个链接,以及另外两个其他的链接,那么(ap@10)1=(1/1+2/4)/4≈0.38.
乙点击了我们推荐当中的第3个链接,以及另外一个其他的链接,那么(ap@10)2=(1/3)/2≈0.17.
丙点击了我们推荐当中的第1个链接,第7个链接,以及另外三个其他的链接,那么(ap@10)3=(1/1+2/7)/5≈0.26.

那么这个模型的平均精度均值
MAP@10 = (0.38+0.17+0.26)/3 ≈ 0.27

2、搜索和推荐中的精度和召回(recall)分别是什么意思?


解析:

精度/精确率,和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。

其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率;
召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。

一般来说,Precision就是检索出来的条目(比如:文档、网页等)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了。

正确率、召回率和 F 值是在鱼龙混杂的环境中,选出目标的重要评价指标。不妨看看这些指标的定义先:

1. 精确率 = 提取出的正确信息条数 / 提取出的信息条数
2. 召回率 = 提取出的正确信息条数 / 样本中的信息条数

顺便说一句,如果两者取值在0和1之间,数值越接近1,查准率或查全率就越高。比如定义:F值 = 正确率 * 召回率 * 2 / (正确率 + 召回率) (F 值即为正确率和召回率的调和平均值)



这就好比推荐系统根据你的喜好,推荐了10个商品,其中真正相关的是5个商品。在所有商品当中,相关的商品一共有20个,那么
k精度 = 5 / 10
k召回 = 5 / 20

咱们再看下先第二个例子。比如搜:北京大学,有三个网页被搜索到了:
a. 北京大学保安考上研究生
b. 北京互联网工作招聘
c. 大学生活是什么样的

其中只有a是被正确搜索到的,其他两个其实是和用户搜索词无关,而事实上数据库里还有这种网页:
d. 北大开学季
e. 未名湖的景色

这两个没被搜索到,但d、e和“北京大学”的相关度是超过b、c的,也就是应该被搜索(被召回)到的却没有显示在结果里,即:
精确率 = (a) / (a + b + c)
召回率 = (a) / (a + d + e)

不妨再看第三个例子:某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。撒一大网,逮着了700条鲤鱼,200只虾,100只鳖。那么,这些指标分别如下:

代表查准率的正确率 = 700 / (700 + 200 + 100) = 70%
代表查全率的召回率 = 700 / 1400 = 50%
F值 = 70% * 50% * 2 / (70% + 50%) = 58.3%

不妨看看如果把池子里的所有的鲤鱼、虾和鳖都一网打尽,这些指标又有何变化:

正确率 = 1400 / (1400 + 300 + 300) = 70%
召回率 = 1400 / 1400 = 100%
F值 = 70% * 100% * 2 / (70% + 100%) = 82.35%

由此可见,正确率是评估捕获的成果中目标成果所占得比例;召回率,顾名思义,就是从关注领域中,召回目标类别的比例;而F值,则是综合这二者指标的评估指标,用于综合反映整体的指标。

当然希望检索结果Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的。比如极端情况下,我们只搜索出了一个结果,且是准确的,那么Precision就是100%,但是Recall就很低;而如果我们把所有结果都返回,那么比如Recall是100%,但是Precision就会很低。因此在不同的场合中需要自己判断希望Precision比较高或是Recall比较高。如果是做实验研究,可以绘制Precision-Recall曲线来帮助分析。

给想入推荐系统坑的小伙伴

想学推荐系统或者想读推荐系统就业班的小伙伴,

可以扫描下图二维码联系课程代表

报上来源于36大数据有200元的学费减免哦~



登录查看更多
13

相关内容

推荐系统,是指根据用户的习惯、偏好或兴趣,从不断到来的大规模信息中识别满足用户兴趣的信息的过程。推荐推荐任务中的信息往往称为物品(Item)。根据具体应用背景的不同,这些物品可以是新闻、电影、音乐、广告、商品等各种对象。推荐系统利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程。个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。随着电子商务规模的不断扩大,商品个数和种类快速增长,顾客需要花费大量的时间才能找到自己想买的商品。这种浏览大量无关的信息和产品过程无疑会使淹没在信息过载问题中的消费者不断流失。为了解决这些问题,个性化推荐系统应运而生。个性化推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站为其顾客购物提供完全个性化的决策支持和信息服务。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
还在修改博士论文?这份《博士论文写作技巧》为你指南
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
212+阅读 · 2020年2月21日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
354+阅读 · 2020年2月15日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
198+阅读 · 2020年2月11日
谷歌机器学习速成课程中文版pdf
专知会员服务
145+阅读 · 2019年12月4日
【推荐系统/计算广告/机器学习/CTR预估资料汇总】
专知会员服务
87+阅读 · 2019年10月21日
面经 | 算法工程师面试题汇总
极市平台
12+阅读 · 2019年10月14日
今日头条广告算法面经!
算法与数据结构
25+阅读 · 2019年5月29日
爱奇艺深度学习算法实习生面经
算法与数据结构
9+阅读 · 2019年5月28日
AI领域人才,做什么工作可以年薪百万?
PaperWeekly
3+阅读 · 2018年5月24日
1年开发经验,25万年薪的1个捷径,98%Python程序员都不知道
机器学习算法与Python学习
7+阅读 · 2018年5月23日
如何成为一名推荐系统工程师
机器学习研究会
9+阅读 · 2017年11月20日
Hardness-Aware Deep Metric Learning
Arxiv
6+阅读 · 2019年3月13日
Arxiv
19+阅读 · 2018年5月17日
VIP会员
相关资讯
面经 | 算法工程师面试题汇总
极市平台
12+阅读 · 2019年10月14日
今日头条广告算法面经!
算法与数据结构
25+阅读 · 2019年5月29日
爱奇艺深度学习算法实习生面经
算法与数据结构
9+阅读 · 2019年5月28日
AI领域人才,做什么工作可以年薪百万?
PaperWeekly
3+阅读 · 2018年5月24日
1年开发经验,25万年薪的1个捷径,98%Python程序员都不知道
机器学习算法与Python学习
7+阅读 · 2018年5月23日
如何成为一名推荐系统工程师
机器学习研究会
9+阅读 · 2017年11月20日
Top
微信扫码咨询专知VIP会员