干货 | 成为一名推荐系统工程师永远都不晚
推荐系统工程师技能树
掌握核心原理的技能
-
数学:微积分,统计学,线性代数
-
周边学科:信息论基础
-
推荐算法:CF,LR,SVM,FM,FTRL,GBDT,RF,SVD,RBM,RNN,LSTM,RL
-
数据挖掘:分类,聚类,回归,降维,特征选择,模型评价
实现系统检验想法的技能:
-
操作系统:Linux
-
编程语言:Python/R, Java/C++/C,sql,shell
-
RPC框架:thrift, Dubbo,gRPC
-
web服务:tornado, django, flask
-
数据存储:redis, hbase, cassandra, mongodb, mysql, hdfs,hive, kafka, elasticsearch
-
机器学习/深度学习:Spark MLib,GraphLab/GraphCHI,Angel,MXNet,TensorFlow,Caffe, Xgboost,VW,libxxx
-
文本处理:Word2vec,Fasttext,Gensim,NLTK
-
矩阵分解:Spark ALS,GraphCHI,implicit,qmf,libfm
-
相似计算:kgraph, annoy,nmslib, GraphCHI, columnSimilarities(spark.RowMatrix)
-
实时计算:Spark Streaming, Storm,Samza
为效果负责的技能
-
熟悉常见离线效果指标:准确率,召回率,AUC,基尼系数
-
能够定义产品效果指标:点击率,留存率,转换率,观看完整率
-
会做对比试验并分析实验结果:指标数据可视化
-
知道常见推荐产品的区别:Feed流推荐,相关推荐,TopN推荐,个性化推送
其他软技能
-
英文阅读;读顶级会议的论文、一流公司和行业前辈的经典论文和技术博客,在Quora和Stack Overflow上和人交流探讨;
-
代码阅读;能阅读开源代码,从中学习优秀项目对经典算法的实现;
-
沟通表达;能够和其他岗位的人员沟通交流,讲明白所负责模块的原理和方法,能听懂非技术人员的要求和思维,能分别真需求和伪需求并且能达成一致。