讲座简介:阿里天池公开课

讲师:王贺,广告推荐算法工程师

1. 什么是算法工程师?

  • 职业定位:企业在不同阶段和不同项目中,对算法的需求是不同的。
  • 主要可分为三个类型:
    • 产品研发型:业务开始阶段,为产品提供算法技术支持;探索和开发前沿知识,发paper提高企业影响力。此时算法一般是一个项目里的子模块。
    • 业务优化型:业务发展到一定阶段,用户数量庞大、业务复杂,导致业务运作效率降低、企业成本增加。需要快速搭建、部署、优化。此时算法需要根据实际业务进行调整。
    • 需求洞察型:发现问题,比如复盘时发现用户规模或者经营利润不达标,此时需要算法工程师从数据角度去发现问题、提出解决方案(个人理解:需要一定的产品研发和业务优化的经验,像是整个部门的leader)

2. 为什么需要算法工程师?

针对具体业务,提高效率,降低成本。通俗理解,就是为企业创造更大的利润。

3. 深度学习的应用方向

主要有以下六点:

  • 图像处理
  • 自然语言处理
  • 推荐系统
  • 金融风控
  • 数据挖掘
  • 音/视频算法

4. 算法工程师的成长之路

  1. 研究生阶段:理论学习。讲师读研阶段才接触的机器学习和深度学习。
  2. 竞赛阶段:尝试业务实战,理解业务需求与算法具体实现和应用。
  3. 实习阶段:讲师初次实习时算法实战能力薄弱,所以先做数据分析。
  4. 工作阶段:讲师从数据分析师转岗到算法岗,最开始做用户增长相关算法,后来转岗到推荐系统。慢慢找到定位。

5. 算法工程师的日常

  • 10:00 到达公司。查看邮件(算法运行情况反馈,会议安排等)

  • 中午休息2小时。

  • 14:00 上班。项目组内沟通交流、学习前沿进展等。

  • 21:00 下班。

    总的来说,主要分为3部分:

    1. 算法开发70%:数据处理30% + 优化模型10% + 学习前沿技术 10% + 其他 20%
    2. 会议交流15%:项目组内、外交流。
    3. 文档整理15%:形成工作日志、算法文档、工作报告等。

6. 如何成为算法工程师?

  • 知识:主流模型和算法的原理和实现
  • 工具:coding能力,spark,Flink,tensorflow等实战工具的应用
  • 逻辑:算法题,模型之间的演化关系
  • 业务:根据实际业务制定 输入数据集和模型的输出。一般来说,算法工程师的模型和算法能力差距不大,真正体现差距的是业务的理解。
  • 基本技能:
    • 编程语言:c++ / java(二选一),加一门脚本语言python
    • 计算机基础:计网、计组、OS、数据结构、数据库等。
    • 大数据处理:hadoop / spark
    • 深度学习框架:tensorflow / pytorch
    • 领域内算法原理和实现