推荐系统工程师技能树

经过多年的发展,推荐系统已经成为互联网产品的标配。很多产品甚至在第一版就被投资人或者创始人要求必须“个性化”,可见,推荐系统已经飞入寻常百姓家。而作为推荐系统的缔造者,推荐系统工程师也越来越受欢迎,本文总结了推荐系统工程师常用的技能树,供大家参考。

另文末附朋友公司正在招聘的推荐算法工程师岗位职责和任职要求,供参考。

一、掌握核心原理的技能

1、数学:微积分,统计学,线性代数;

2、周边学科:信息论基础;

3、推荐算法: CF,LR,SVM,FM,FTRL,GBDT,RF,SVD,RBM,RNN,LSTM,RL;

4、数据挖掘:分类,聚类,回归,降维,特征选择,模型评价。

二、实现系统检验想法的技能

1、操作系统: Linux;

2、编程语言: Python/R, Java/C++/C,sql,shell;

3、RPC框架: thrift, Dubbo,gRPC;

4、web服务: tornado, django, flask;

5、数据存储: redis, hbase, cassandra, mongodb, mysql, hdfs,hive, kafka, elasticsearch;

6、机器学习/深度学习: Spark MLib,GraphLab/GraphCHI,Angel,MXNet,TensorFlow,Caffe, Xgboost,VW,libxxx;

7、文本处理: Word2vec,Fasttext,Gensim,NLTK;

8、矩阵分解: Spark ALS,GraphCHI,implicit,qmf,libfm;

9、相似计算: kgraph, annoy,nmslib, GraphCHI, columnSimilarities(spark.RowMatrix);

10、实时计算: Spark Streaming, Storm,Samza。

三、为效果负责的技能

1、熟悉常见离线效果指标:准确率,召回率,AUC,基尼系数;

2、能够定义产品效果指标:点击率,留存率,转换率,观看完整率;

3、会做对比试验并分析实验结果:指标数据可视化;

4、知道常见推荐产品的区别: Feed流推荐,相关推荐,TopN推荐,个性化推送;

四、其他软技能

1、英文阅读:读顶级会议的论文、一流公司和行业前辈的经典论文和技术博客,在Quora和Stack Overflow上和人交流探讨;

2、代码阅读:能阅读开源代码,从中学习优秀项目对经典算法的实现;

3、沟通表达:能够和其他岗位的人员沟通交流,讲明白所负责模块的原理和方法,能听懂非技术人员的要求和思维,能分别真需求和伪需求并且能达成一致。


附:某公司在招推荐算法工程师岗位职责及任职要求。
岗位职责:
1、负责数据分析及建模,提供高质量的匹配推荐服务;
2、协助及独立完成各种机器学习(包括深度学习)算法;
3、负责构建公司数据分析与数据挖掘业务分析体系,整体架构设计、规划,充分发挥数据的价值,提高数据质量,促进公司业务更好的发展;
4、通过建立业务的数据分析模型来指导业务的发展,对数据库信息进行深度挖掘和有效利用,充分实现数据的商业价值,构建公司核心竞争力。
任职要求:
1、全日制本科及以上学历、计算机/统计学/经济学等相关专业;
2、熟悉Python开发、掌握常用数据结构及算法;
3、有至少1年推荐系统实际项目经验,掌握基于内容推荐、协同过滤(CF),掌握常用机器学习算法的应用,如LR、决策树、GDBT、SVM等,掌握聚类、降维相关的主要算法的应用;
4、具备深厚数据建模(机器学习,深度学习,推荐系统)和分析理论知识和经验;
5、有较强的分析问题和解决问题的能力,掌握抽取关键特征的方法;
6、掌握推荐系统评估方法,能对系统进行持续评估、改进;
7、具备较强的问题定位、分解、解决能力及计划和组织能力。

发布于 2020-01-13 14:39

文章被以下专栏收录