推荐系统三十六式
刑无刀
“贝壳找房”资深算法专家,8 年推荐系统工程师
43607 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 40 讲
开篇词 (1讲)
原理篇 · 深度学习 (2讲)
原理篇 · 其他应用算法 (3讲)
推荐系统三十六式
15
15
1.0x
00:00/00:00
登录|注册

36 | 组建推荐团队及工程师的学习路径

个人成长
团队组建
推荐系统团队和工程师学习路径

该思维导图由 AI 生成,仅供参考

如果你是老板,或者是公司里的推荐系统包工头,那么你一定会关心:要凑齐多少人才能开始搬砖?
一个推荐系统复杂度没有上限,但是有最低标准,所以下面在估算推荐系统团队规模时,按照下限来估计,照这个方式建立的团队就叫做“有下限的团队”。

团队组建

我们先定义团队的角色,这里既然是组建“有下限团队”,当然按照能省则省的原则。
算法工程师,承担的是数据科学家和机器学习工程师的双重职责,主要职责是清洗数据,训练离线推荐模型,开发算法接口,评估指标。
软件开发工程师,承担算法之外的开发任务,例如数据库的搭建维护,API 接口的开发,日志的收集,在线系统的高可用等,当然“有下限的团队”可以适当简陋些,不用考虑高性能。
其他非技术角色,如果是“有下限团队”的话,这一项也可以省略,如果涉及了跨部门合作,或者你不幸被老板提出各种“推得不准”的伪 Bug,那么你就需要一个这样的角色去充当工程师港湾,来阻挡外界的风雨。
接下来,估计一下每个角色的数量。这里主要是估计工程师的数量。
关于算法工程师,最低配需要 2 位,一位三年左右经验的算法工程师负责数据分析,数据清洗,推荐模型训练,评估和上线,外带一位三年以下经验的初级工程师,从中辅助分担琐碎工作。
为什么说有经验的算法工程师一位就够了,假如你使用矩阵分解作为推荐系统第一版核心算法,那么推荐使用 Quora 开源的 QMF 工具。它能在一台 32 核、244G、640G 固态硬盘的服务器上用 20 分钟完成 10 亿非零元素,千万用户和物品的矩阵分解。工具简单易用,一个有经验的工程师足够让其运转起来。
那么核心问题就是,一台机器是不是撑得起你老板的野心?我认为,撑得起,具体的估算如下。
根据我前文中对注意力的定义:内容消耗的加速度乘以内容的消耗难度。当注意力为正数时,是上马推荐系统的好时机。
因为这说明平台方已经有了注意力的原始积累,只需要加上推荐系统将它保存下来并加以扩大即可。那么组建的这个“有下限团队”最低要求就是能留住当前的注意力。
注意力为正时,每天的用户消耗内容数量应该是指数级别,比如 (a >= 2)。其中 t 是时间,a 大于 2 时才会有正的注意力。因为它的二阶导数为:。当然,这个数学推导不重要,只是举个例子。
每天的内容消耗量,其实就是用户产生的行为数据条数,至少是正比关系,这里从简考虑,认为二者等同。假如 a=2,t 的单位是天。那么在 t 天后,累计产生的日志数量是:
现在看看,如果你公司使用的服务器和 Quora 评测 QMF 时所用服务器一样的配置,用单机运行 QMF,极限是撑多久?我简单列个方程。
方程右边就是 QMF 评测时处理的 60 亿非零元素。解这个一元三次方程,得到唯一的实数解是 1441.75 天,也就是 3.9 年。
所以告诉你的老板,你一个人可以撑四年,只管定期加工资就可以了,不用加人。
那么为什么明明一位算法工程师就可以,还要外带一位,这主要是考虑,团队人才应该有梯度和备份。
关于软件开发工程师,至少需要四位,是的,你猜到了,我要证明的是需要两位,还有两位是为了人才梯度和冗余备份。分工是这样的。
推荐服务输出,一位三年及以上经验的后端开发工程师,外带一位三年以下的初级工程师。负责调用推荐 RPC 服务,开发必要的过滤逻辑,填充详细字段等;
反馈数据收集和管理,一位三年以上经验的运维工程师,外带一位三年以下的初级工程师,负责回收用户反馈数据,统一存储日志数据。
以上就是一个最低配推荐系统团队的配置。当然,如果能复用现有团队的部门工程师,则灵活处理。上面的估算也只是一个示例。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

推荐系统团队的组建及工程师学习路径是推荐系统领域的重要话题。文章提出了组建“有下限团队”的角色定义和人员数量估算,包括算法工程师和软件开发工程师的配置。对于算法工程师,建议配置一位有经验的工程师和一位初级工程师,以应对数据分析、模型训练等工作;而对于软件开发工程师,则建议至少四位工程师,分别负责推荐服务输出和反馈数据收集管理等任务。此外,文章还通过数学推导和实际案例,阐述了如何根据注意力的定义和内容消耗量来估算团队所需的服务器配置和人员数量。总的来说,文章通过具体的角色定义和数量估算,为推荐系统团队的组建提供了一定的指导,同时也强调了团队人才应该有梯度和备份的重要性。文章内容涉及技术细节和实际案例,对于想要了解推荐系统团队组建及工程师学习路径的读者来说,具有一定的参考价值。 在个人成长方面,文章强调推荐系统工程师需要具备工程能力、理论基础和数据可视化思维。工程能力决定了推荐系统的上限,而提高工程能力需要反复刻意练习。此外,具备数理基础和信息论知识对于从事推荐系统工程的人员至关重要。另外,数据可视化思维也是必不可少的能力,需要掌握常用的绘图工具,并且有展示数据规律的冲动。除此之外,学习能力、沟通能力和表达能力也是非典型工程师的加分项。总的来说,文章通过详细阐述推荐系统工程师的能力要求和学习路径,为相关人员提供了实用的指导和建议。 文章内容涉及了推荐系统团队组建和工程师个人成长的重要话题,对于从事推荐系统工程的人员具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《推荐系统三十六式》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • shangqiu86
    老师,期待你的书,出来了吗?想买来再学习深入一遍,感觉对推荐系统有了更深的认识

    作者回复: 已经在排班中了。

    2019-05-09
    2
  • loirsun
    看到您推荐小团队可以上手qmf,于是尝试qmf,有些困惑,这个包只提供了train model的binary文件,模型预测相关的部分没有给出,是不是需要二次开发?6,7年前从算法方向转工程了,最新的东西都不了解,您方便的话再讲两句qmf可好,或简单回复一下。非常感谢

    作者回复: 得到隐因子向量之后,可以用faiss等稠密向量相似计算库来搜索近邻,类似的库还有annoy,kgraph,nmslib。

    2019-02-21
    2
  • 晴天小雨
    老师,累计产生的日志数量公式是怎么来的,请老师答疑,谢谢!

    作者回复: 高中数学。数列求和。

    2019-01-31
  • chmit
    邢老师,看到推荐相关相关岗位,多是既要求良好的机器学习算法能力又要求java大数据相关技能您怎么看?这是给双倍工资的嘛。
    2018-05-31
    3
  • ~*Annie*~
    不错,越看越想看
    2021-08-03
  • 阿油
    怎么理解工程和算法的关系,做推荐工程的同学是否需要了解算法
    2019-08-09
    1
  • soar
    rerank与rank没有讲解
    2019-03-21
  • 李跃爱学习
    内容消耗的加速度乘以内容的消耗难度。当注意力为正数时,是上马推荐系统的好时机怎么理解?难道一个日活跃平稳的产品就不需要上推荐系统了?
    2018-12-25
  • 老师,其他非技术角色指的是哪些哈,举些例子
    2018-06-11
  • sslrec
    一直有个问题没了解透,向老师请教一下。大多数推荐系统都是预先生产推荐列表等待用户侧来请求,有没有采用交互式的方式实时生成推荐列表的情况呢?有没有这方面的案例 ps:很多不是做推荐业务的同事都会以为我们是交互式的
    2018-05-25
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部