讲师:王贺,广告推荐算法工程师
1. 什么是算法工程师?
- 职业定位:企业在不同阶段和不同项目中,对算法的需求是不同的。
- 主要可分为三个类型:
- 产品研发型:业务开始阶段,为产品提供算法技术支持;探索和开发前沿知识,发paper提高企业影响力。此时算法一般是一个项目里的子模块。
- 业务优化型:业务发展到一定阶段,用户数量庞大、业务复杂,导致业务运作效率降低、企业成本增加。需要快速搭建、部署、优化。此时算法需要根据实际业务进行调整。
- 需求洞察型:发现问题,比如复盘时发现用户规模或者经营利润不达标,此时需要算法工程师从数据角度去发现问题、提出解决方案(个人理解:需要一定的产品研发和业务优化的经验,像是整个部门的leader)
2. 为什么需要算法工程师?
针对具体业务,提高效率,降低成本。通俗理解,就是为企业创造更大的利润。
3. 深度学习的应用方向
主要有以下六点:
- 图像处理
- 自然语言处理
- 推荐系统
- 金融风控
- 数据挖掘
- 音/视频算法
4. 算法工程师的成长之路
- 研究生阶段:理论学习。讲师读研阶段才接触的机器学习和深度学习。
- 竞赛阶段:尝试业务实战,理解业务需求与算法具体实现和应用。
- 实习阶段:讲师初次实习时算法实战能力薄弱,所以先做数据分析。
- 工作阶段:讲师从数据分析师转岗到算法岗,最开始做用户增长相关算法,后来转岗到推荐系统。慢慢找到定位。
5. 算法工程师的日常
-
10:00 到达公司。查看邮件(算法运行情况反馈,会议安排等)
-
中午休息2小时。
-
14:00 上班。项目组内沟通交流、学习前沿进展等。
-
21:00 下班。
总的来说,主要分为3部分:
- 算法开发70%:数据处理30% + 优化模型10% + 学习前沿技术 10% + 其他 20%
- 会议交流15%:项目组内、外交流。
- 文档整理15%:形成工作日志、算法文档、工作报告等。
6. 如何成为算法工程师?
- 知识:主流模型和算法的原理和实现
- 工具:coding能力,spark,Flink,tensorflow等实战工具的应用
- 逻辑:算法题,模型之间的演化关系
- 业务:根据实际业务制定 输入数据集和模型的输出。一般来说,算法工程师的模型和算法能力差距不大,真正体现差距的是业务的理解。
- 基本技能:
- 编程语言:c++ / java(二选一),加一门脚本语言python
- 计算机基础:计网、计组、OS、数据结构、数据库等。
- 大数据处理:hadoop / spark
- 深度学习框架:tensorflow / pytorch
- 领域内算法原理和实现