入坑AI算法工程师(推荐篇)
引子
机器学习算法岗位,很容易让大家有个误解,认为平时工作就是推推公式,调调参数。鉴于此,本文主要会介绍下算法工程师的日常工作、引申出的需要学习的理论(主要是计算数学)、技能(代码、框架、软件包)。
1 日常工作
大致如图
1.1 数据分析
内容维度:需要分析各品类、标签存在的短板和潜在问题
召回维度:各个召回的重合度、指标
用户维度:是否存在某个用户群体拖累大盘
1.2 数据开发
日常的数据调度:维护每日的计算任务调度(主要是运维)
生成训练数据:基本用spark生成小时级和天级的训练任务
1.3 NLP
根据item的title和content抽取关键词和实体词,之前用的scipy,现在改用flair效果更好点
1.5 召回
这部分研究的比较多,开始是基于规则的协同过滤、之后基于word2vec的召回(deepwalk随机游走)、再到最近的深度学习、图神经网络、强化学习。
2 需要的理论
统计学(达到考试满分以上的程度)、计算数学(蒙特卡洛模拟、马尔科夫链、LDA等等这些都要知道)、深度学习(DNN -》 GCN -》 强化学习 -》迁移学习),另外有看懂英文论文的能力,顶会论文都是英语。
3 需要的技能
语言 | 说明 | 必要性 | 难度 | 面试加分 |
---|---|---|---|---|
SQL | CRUD和计算任务 | 必备 | 低 | 低 |
Python | 必备 | 低 | 低 | |
Shell | 必备 | 低 | 低 | |
Scala | 进阶 | 中 | 中 | |
Tensorflow | 进阶 | 中高 | 中高 |
数据库 | 说明 | 必要性 | 难度 | 面试加分 |
---|---|---|---|---|
行数据库 | Mysql、Hive | 必备 | 低 | 低 |
列数据库 | clickhouse、Hbase | 进阶 | 低 | 低 |
文档数据库 | Redis、Counchbase、Mongo | 进阶 | 中 | 中 |
理论 | 说明 | 必要性 | 难度 | 面试加分 |
---|---|---|---|---|
DNN | 基础深度学习 | 必备 | 中 | 低 |
word2vec | 文档序列学习 | 必备 | 中 | 低 |
GCN | 图神经网络 | 进阶 | 中高 | 中 |
强化学习 | 基于序列返回序列 | 高等 | 高 | 高 |
迁移学习 | 迁移表征 | 高等 | 中 | 中 |
3.1 数据:SQL必备、python可以处理大量单机的计算任务、shell作为粘合剂来调度任务
3.2 大数据框架:hive必备、进阶的需要会spark进行大数据计算、底层hdfs的操作
3.3 深度学习框架:Tensorflow:生成计算图和计算梯度的框架,建议用tf2即可,可以用keras继承自定义model
掌握这些你就是一个合格的初级算法工程师了!
补充:现在推荐算法的校招竞争非常激烈,如果想要风险和竞争小一些的同学建议考虑因果推断(快手有对应的岗位)、风险控制、运筹优化方面的算法岗。