推荐算法工程师

职业定义

运用各类机器学习模型,进行图像、语音、自然语言处理、搜索推荐等领域的算法设计、评估、优化,提供个性化推荐服务的工程师。

任务职责

1. 深度理解业务发展需求,根据业务目标进行推荐算法、算法架构的研发工作
2. 基于海量数据,通过数据挖掘、知识图谱、自然语言处理、图像处理、语音处理等技术,设计推荐算法模型,为用户提供服务
3. 优化、迭代业务的核心算法、模型及推荐策略,提升推荐效果和用户体验
4. 关注点击率、留存率、转化率、观看完整率等效果指标,分析用户行为,构建用户画像系统
5. 跟踪搜索、推荐、深度学习等相关领域前沿技术,在实际业务中探索应用

知识背景

学历要求
本科及以上

专业知识背景
1. 数学:微积分、统计学、线性代数
2. 周边学科:信息论基础
3. 推荐算法: CF、LR、SVM、FM、FTRL、GBDT、RF、SVD、RBM、RN、LSTM、RL
4. 数据挖掘:分类、聚类、回归、降维、特征选择、模型评价

大学课程

C 语言程序设计、计算机组成原理、数据结构、高级语言程序设计、离散数学数据结构、计算机原理与汇编语言、操作系统与应用、计算机网络与应用等

职业技能

专业技能
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. Python 编辑器:Pycharm,Jupyter Notebook(Anaconda中自带的 网页交互式应用程序) 
2. 拉代码、传代码、代码托管:Git、Github
3. 服务器开发必备:熟悉常见的linux操作
4. 数据读取必备:MySQL
5. 模型部署工具:Docker

职业发展

行业发展前景
深度学习技术的逐步成熟,推动了 AI 第三次浪潮的到来,纵观目前 AI 在互联网行业上的应用,有比较好的产品落地及商业化价值的应用主要有 7 个大方向,其中就包括了推荐系统。而推荐又是互联网公司最普及也是最能产生现金流的方向之一,因此,推荐算法工程师十分有前景。

个人发展路径
1. 技术路线:一是偏工程实现、二是偏算法研究、三是综合类(工作涉及到算法开发及对应的工程实现)、四是偏业务
2. 管理路线:管理方向再往上走可以是技术 VP,CTO 等更高的级别
3. 转行换方向:如算法产品经理、项目经理、数据分析等