【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

如何成为一名优秀的推荐工程师

王喆 编著

  • 2020-05-22
  • 本文字数:2401 字

    阅读完需:约 8 分钟

如何成为一名优秀的推荐工程师

本文节选自王喆 编著的《深度学习推荐系统》,由电子工业出版社出版授权分享。

如何成为一名优秀的推荐工程师

作为一名推荐工程师,笔者希望与读者探讨优秀的推荐工程师应具备哪些基本素质。作为一名推荐工程师,所擅长的不应仅仅是机器学习相关知识,更应该从业务实践的角度出发,提升自己各方面的能力。

推荐工程师的 4 项能力

抛开具体的岗位需求,从稍高的角度看待这个问题,一名推荐工程师的技术能力基本可以拆解成以下 4 个方面:知识、工具、逻辑、业务。


如果用技能雷达图的形式展示与机器学习相关的几个职位所需的能力,则大致如图 9‑3 所示。读者可以初步体会这几个职位对能力需求的细微差别。



机器学习相关岗位技能雷达图


简单来说,任何推荐系统相关的工程师都应该满足 4 项技能的最小要求,因为在成为一名“优秀”的推荐工程师之前,首先应该是一名合格的工程师。不仅应具有领域相关的知识,还应具有把知识转换成实际系统的能力。一位笔者面试的推荐工程师职位候选人曾发表过一些机器学习相关的论文和专利,从领域“知识”的角度看,他是不错的人选,但当验证他的工程能力时,他明确表示不愿意写代码。也许当时不愿意写代码另有隐情,但对面试官来说,这位候选人使用“工具”的能力无法被验证,他的能力可能严重“偏科”,自然不是一名合格的推荐工程师。在笔者看来,推荐系统相关的从业者应该具备的最小能力要求如下:


  • — 知识:具备基本的推荐系统领域相关知识。

  • — 工具:具备编程能力,了解推荐系统相关的工程实践工具。

  • — 逻辑:具备算法基础,思考的逻辑性、条理性较强。

  • — 业务:对推荐系统的业务场景有所了解。


在最小要求的基础上,不同岗位对能力的要求也有所不同。结合图 9‑3 所示的技能雷达,不同岗位的能力特点如下:


  • — 算法工程师:算法工程师的能力要求是相对全面的。作为算法模型的实现者和应用者,要求算法工程师有扎实的机器学习基础,改进和实现算法的能力,对工具的运用能力及对业务的洞察。

  • — 大数据工程师:更注重大数据工具和平台的改进,需要维护推荐系统相关的整个数据链路,因此对运用工具的能力要求最高。

  • — 算法研究员:担负着提出新算法、新模型结构等研究任务,因此对算法研究员的知识和逻辑能力的要求最高。

  • — 能力“偏科”的工程师:有些读者平时不注重对工具使用、业务理解方面的知识积累,找工作时临时抱佛脚恶补知识、刷算法题,在一些面试场合下也许是奏效的,但要想成为一名优秀的推荐工程师,还需要补齐自己的能力短板。


当然,只用“知识”“工具”“逻辑”“业务”这 4 个词描述推荐工程师所需的能力过于形而上,接下来具体解释这 4 个技能。


  • — 知识:主要指推荐系统相关知识和理论的储备,比如主流的推荐模型、Embedding 的主要方法等。

  • — 工具:运用工具将推荐系统的知识应用于实际业务的能力,推荐系统相关的工具主要包括 TensorFlow、PyTorch 等模型训练工具,Spark、Flink 等大数据处理工具,以及一些模型服务相关的工具。

  • — 逻辑:举一反三的能力,解决问题的条理性,发散思维的能力,聪明程度,通用算法的掌握程度。

  • — 业务:理解推荐系统的应用场景、商业模式;从业务中发现用户动机,制定相应的优化目标并改进模型算法的能力。


请读者根据自己的具体岗位、具体项目有针对性地学习相关技能。

能力的深度和广度

在一项具体的工作面前,优秀的推荐工程师所具备的能力应该是综合的——能够从“深度”和“广度”两个方面提供解决方案。例如,公司希望改进目前的推荐模型,于是你提出了以 DIN 为主要结构的模型改进方案。这就要求你在深度和广度两个方面对 DIN 的原理和实现方案有全面的了解。


深度方面,需要了解从模型动机到实现细节的一系列问题,一条从概括到具体的学习路径的例子如下:


  • — DIN 模型提出的动机是什么?是否适合自己公司当前的场景和数据特点。(业务理解能力。)

  • — DIN 模型的模型结构是什么?具体实现起来有哪些工程上的难点。(知识学习能力,工具运用能力。)

  • — DIN 模型强调的注意力机制是什么?为什么在推荐系统中使用注意力机制能够有效果上的提升?(业务理解能力,知识学习能力。)

  • — DIN 模型将用户和商品进行了 Embedding,在实际使用中,应该如何实现 Embedding 过程?(知识学习能力,逻辑思维能力。)

  • — 是通过改进现有模型实现 DIN 模型,还是使用全新的离线训练方式训练 DIN 模型?(工具运用能力,逻辑思维能力。)

  • — 线上部署和服务 DIN 模型有哪些潜在问题,有哪些解决方案?(工具运用能力。)


从这个例子中读者可以看到,一套完备的模型改进方案的形成需要推荐工程师深入了解新模型的细节。缺少了深度的钻研,改进方案就会在实现过程中遇到方向性的错误,增加纠错成本。


推荐工程师除了要深入了解所采用技术方案的细节,还需要在广度上了解各种可能的备选方案的优劣,做到通过综合权衡得出当前客观环境下的最优解。接着上文模型改进的例子,推荐工程师应该从以下方面在广度上进行知识储备:


  • — 与 DIN 类似的模型有哪些,是否适合当前的使用场景?

  • — DIN 模型使用的 Embedding 方法有哪些,不同 Embedding 方法的优劣是什么?

  • — 训练和上线 DIN 的技术方案有哪些?如何与自己公司的技术栈融合?


在深度了解了一个技术方案的前提下,对其他方向的了解可以是概要式的,但也要清楚每种技术方案的要点和特点,必要时可通过 A/B 测试、业界交流咨询、原型系统试验等方式排除候选方案,确定目标方案。


除此之外,工程和理论之间的权衡能力也是推荐工程师不可或缺的技能点之一。只有具备了这一点,才能在现实和理想之间进行合理的妥协,完成成熟的技术方案。

推荐工程师的能力总结

想要成为一名优秀的推荐工程师,甚至一名优秀的算法工程师,应该在“知识”“工具”“逻辑”“业务”这 4 个方面综合提高自己的能力,对某一技术方案应该有“深度”和“广度”上的技术储备,在客观技术环境的制约下,针对问题做出权衡和取舍,最终得出可行且合理的技术方案。


图书简介:


https://u.jd.com/QWhPKt


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-05-22 09:221064

评论

发布
暂无评论
发现更多内容

【数独问题】入门题:判断一个数独是否有效 ...

宫水三叶的刷题日记

面试 LeetCode 数据结构与算法

翻译:《实用的Python编程》05_00_Overview

codists

有钱人为什么配置加密货币?

CECBC

货币

数字经济时代,区块链能否担当产业数字化转型核心赋能者?

CECBC

数字经济

【技术干货】如何评价一款App的稳定性和质量?

性能优化 App 应用崩溃 anr 友盟

喜讯 | 音视频云服务商拍乐云荣登「2021值得关注的中国教育公司」榜单

拍乐云Pano

音视频 在线教育 互动课堂 白板 教育科技

手机高端化,需要不同却被认同

脑极体

多元化:为什么会产生不良资产?

boshi

战略思考 七日更 创业失败启示录

数据湖到底是什么?有什么用?这篇文章告诉你

关二爷大数据笔记

大数据 数据湖 实时数仓

互联网人一天24小时在做些啥《打工人的那些事》

谙忆

高效处理日均超 1000 亿次广告请求!Mobvista 是如何做到的?

亚马逊云科技 (Amazon Web Services)

最简单的JVM内存结构图

叫练

JVM 堆栈 Java虚拟机 堆栈溢出 内存优化

神了!终于有人把困扰我多年的Spring Boot讲明白了

架构 微服务 框架

10 个解放双手超实用在线工具,有些代码真的不用手写

比伯

Java 编程 架构 计算机 技术宅

CloudQuery, 一款基于WEB的数据库客户端(转自杨建荣的工作笔记)

BinTools图尔兹

微软的各种考试,不知道是不是真的“香”

IT蜗壳-Tango

3月日更

算法攻关 - 验证二叉搜索树 (O(n))_098

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 验证二叉搜索树

二分查找以及变体

一个大红包

3月日更

网页设计指南

张鹤羽

28天写作 3月日更

62图带你入门Docker

我是程序员小贱

容器 面试 3月日更

分销的智能变局,华为好望云服务的铁索连环

脑极体

【最新】2021年Hive阶段最全面试真题-附答案

大数据技术指南

大数据 hive 面试 28天写作 3月日更

区块链与隐私计算保护数据产权,让个人隐私不再“裸奔”

CECBC

区块链

DCache 分布式存储系统|List 缓存模块的创建与使用

TARS基金会

MySQL nosql 微服务 分布式缓存 TARS

公平

ES_her0

28天写作 3月日更

云边协同类型

lenka

3月日更

Python With 关键字和语句

HoneyMoose

Flink的状态编程和容错机制

五分钟学大数据

大数据 flink 28天写作 3月日更

如何与下属沟通?

石云升

程序员 28天写作 职场经验 管理经验 3月日更

推荐一款小众且好用的 Python 爬虫库

星安果

Python 爬虫 RoboBrowser

Wireshark 数据包分析学习笔记 Day8

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

如何成为一名优秀的推荐工程师_大数据_InfoQ精选文章