写点什么

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

王喆 编著

  • 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:221066

评论

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

Java中生成随机数的不同方法

wjchenge

运行 client-go 测试用例.md

FeiLong

Kubernetes

盘点本周区块链国内大事件

CECBC

web 性能压测工具类

jason

多问为什么

声远

技术 沟通 软件开发流程

架构师训练营 - 第 6 周命题作业

红了哟

Prometheus 删除指定 Metric

耳东@Erdong

Prometheus metrics

架构师训练营第七周学习总结

张明森

Vagrant 创建多台主机

FeiLong

vagrant 虚拟机

关于性能优化的总结

罗亮

redis系列之——事物及乐观锁

诸葛小猿

redis 乐观锁 事物 原子性 隔离性

用 GitBook 创建一本书

耳东@Erdong

git markdown gitbook

Windows Sandbox应用

Dare Devor

容器 Sandbox 虚拟化

架构师训练营第七周作业--web压测工具

CATTY

架构师训练营第七周作业

张明森

从推特被黑看安全木桶效应

石君

安全设计 安全事件

道德的神

多选参数

故事

谈谈你是如何理解JS异步编程的,EventLoop、消息队列都是做什么 ,什么是宏任务,什么是微任务?

GKNick

Golang实现结构体数组按多字段排序

卓丁

多字段排序 结构体多字段排序 Go 语言

ARTS打卡-07

Geek_yansheng25

架构师训练营 - 第 6 周学习总结

红了哟

计算机网络基础(六)---网络层-网络地址转换NAT技术

书旅

laravel 计算机网络 网络协议 计算机基础 NAT

Windows Sandbox

Dare Devor

Sandbox Virtualization

第七章作业

小胖子

Go: 通过例子学习 Map 的设计 — Part I

陈思敏捷

map Go 语言

思想无语言边界:以cglib介绍AOP在java的一个实现方式

八苦-瞿昙

随笔 随笔杂谈 aop

架构师课程第七周 作业

杉松壁

我关闭了微信朋友圈广告!

诸葛小猿

广告 微信朋友圈 关闭

发布一本用 GitBook 编辑的书

耳东@Erdong

git gitbook

JDK1.8新特性(二):为什么要关注JDK1.8

xcbeyond

新特性 JDK1.8 JDK1.8新特性

JDK1.8新特性(三):Lambda表达式,让你爱不释手

xcbeyond

Lambda 新特性 JDK1.8 JDK1.8新特性

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