《深度学习推荐系统》——第九章 构建属于你的推荐系统知识框架

第9章 构建属于你的推荐系统知识框架

  本章是本书的最后⼀章,在结束了所有推荐系统技术细节的讨论之后,希望读者能够回到推荐系统架构上来,从更⾼的⻆度俯瞰推荐系统整体的知识框架
  笔者在第 1 章描述推荐系统的技术架构图时曾提到,读者可以暂时忽略技术架构图中的细节仅留⼀个框架在⼼中,随着不同模块的技术细节逐渐在具体的章节中展开,相信每位读者都会以⾃⼰的⽅式逐⼀填充⼼中的技术架构图
  针对某⼀领域,构建属于⾃⼰的知识框架是最重要的,只有建⽴了知识框架,才能在这个框架的基础上查漏补缺,开枝散叶;只有建⽴了知识框架,在思考领域相关问题时才能⻅微知著,深⼈细节⽽不忘整体。希望本书为你带来的不仅是解决推荐系统技术问题的具体⽅法,⽽是⾏业内有⼀定⾼度的技术格局。
  本章将通过 3 种⽅式回顾本书的所有技术内容,建⽴它们之间的逻辑联系。
  9.1 节将在第 1 章推荐系统技术架构图的基础上,进⼀步丰富技术细节,形成最终的“ 推荐系统整体知识架构图”。
  9.2 节针对架构图中最核⼼的推荐模型部分,以时间线的⽅式回顾模型发展,特别是深度学习模型发展进化的过程。
  9.3 节将从推荐系统算法⼯程师的⻆度,谈⼀谈合格的推荐系统算法⼯程师应该具备的核⼼素质。

9.1 推荐系统的整体知识架构图

  图 9-1 是全书总结性的技术框架图,它与图 1-4相呼应,在其基础上补充了本书涉及的⼤部分技术细节。
在这里插入图片描述
  读者可以把该图当作全书的技术索引,看到图中的每个模块,甚⾄每⼀个名词就能回忆起相应技术要点的细节。在打仗时,将军常说“ 不谋全局者,不⾜谋⼀域”,虽然⼯程师的职责可能不如将军重要,但⼼中也不可缺少技术系统的“ 全局”,只有有了“ 全局”,才能在管理“ ⼀域” 时找到最佳的解决⽅案做到真正的全局最优
  虽然笔者尽可能地在图中汇总了深度学习推荐系统的相关知识,但“ 技术⽅案永远是多元的,不可能是唯⼀的”。图 9-1 是多数企业采⽤的企业级推荐系统架构,不是唯⼀的“ 正确” 答案。由于笔者的知识所限,也会遗漏⼀些优秀的技术途径。在实际应⽤中,每位⼯程师都应该以⾃⼰的客观环境为岀发点,构建最“ 合适” 的⽽不是最 “ 正确” 的推荐系统。

9.2 推荐模型发展的时间线

  图 9-2以时间线的形式总结了本书涉及的推荐模型的发展历程。
在这里插入图片描述
  读者可以明显感觉到,从 2016 年开始,深度学习推荐模型加快了迭代演化的速度,同时越来越多优秀的互联⽹公司参与进来,带来了诸多业界最佳实践。
  在写作本书的同时,⼀定⼜有很多优秀的技术和模型被提出和应⽤,书本的内容是静态的,但技术的发展是动态的,更前沿的内容还需要读者不断追踪学习。

9.3 如何成为⼀名优秀的推荐⼯程师

  作为⼀名推荐⼯程师,笔者希望与读者探讨优秀的推荐⼯程师应具备哪些基本素质。作为⼀名推荐⼯程师,所擅⻓的不应仅仅是机器学习相关知识,更应该从业务实践的⻆度出发,提升⾃⼰各⽅⾯的能⼒。

9.3.1 推荐⼯程师的 4项能⼒

  抛开具体的岗位需求,从稍⾼的⻆度看待这个问题,⼀名推荐⼯程师的技术能⼒基本可以拆解成以下 4个⽅⾯:知识、⼯具、逻辑、 业务。
  如果⽤技能雷达图的形式展示与机器学习相关的⼏个职位所需的能⼒,则⼤致如图 9 3所示。读者可以初步体会这⼏个职位对能⼒需求的细微差别。
在这里插入图片描述
  简单来说,任何推荐系统相关的⼯程师都应该满⾜ 4项技能的最⼩要求,因为在成为⼀名“ 优秀” 的推荐⼯程师之前,⾸先应该是⼀名合格的⼯程师。不仅应具有领域相关的知识,还应具有把知识转换成实际系统的能⼒。⼀位笔者⾯试的推荐⼯程师职位候选⼈曾发表过⼀些机器学习相关的论⽂和专利,从领域“ 知识” 的⻆度看,他是不错的⼈选,但当验证他的⼯程能⼒时,他明确表示不愿意写代码。也许当时不愿意写代码另有隐情,但对⾯试官来说,这位候选⼈使⽤“ ⼯具” 的能⼒⽆法被验证,他的能⼒可能严重 “ 偏科”,⾃然不是⼀名合格的推荐⼯程师。在笔者看来,推荐系统相关的从业者应该具备的最⼩能⼒要求如下:
  • 知识:具备基本的推荐系统领域相关知识。
  • ⼯具:具备编程能⼒,了解推荐系统相关的⼯程实践⼯具。
  • 逻辑:具备算法基础,思考的逻辑性、条理性较强。
  • 业务:对推荐系统的业务场景有所了解。
  在最⼩要求的基础上,不同岗位对能⼒的要求也有所不同。结合图 9-3所示的技能雷达,不同岗位的能⼒特点如下:
  • 算法⼯程师:算法⼯程师的能⼒要求是相对全⾯的。作为算法模型的实现者和应⽤者,要求算法⼯程师有扎实的机器学习基础,改进和实现算法的能⼒,对⼯具的运⽤能⼒及对业务的洞察。
  • ⼤数据⼯程师:更注重⼤数据⼯具和平台的改进,需要维护推荐系统相关的整个数据链路,因此对运⽤⼯具的能⼒要求最⾼。
  • 算法研究员:担负着提出新算法、新模型结构等研究任务,因此对算法研究员的知识和逻辑能⼒的要求最⾼。
  • 能⼒“ 偏科” 的⼯程师:有些读者平时不注重对⼯具使⽤、业务理解⽅⾯的知识积累,找⼯作时临时抱佛脚恶补知识、刷算法题,在⼀些⾯试场合下也许是奏效的,但要想成为⼀名优秀的推荐⼯程师,还需要补⻬⾃⼰的能⼒短板。
  当然,只⽤“ 知识” “ ⼯具” “ 逻辑” “ 业务” 这 4 个词描述推荐⼯程师所需的能⼒过于形⽽上,接下来具体解释这 4个技能。
  • 知识:主要指推荐系统相关知识和理论的储备,⽐如主流的推荐模型、Embedding 的主要⽅法等。
  • ⼯具:运⽤⼯具将推荐系统的知识应⽤于实际业务的能⼒,推荐系统相关的⼯具主要包括 TensorFlow、PyTorch 等模型训练⼯具,Spark、Flink 等⼤数据处理⼯具,以及⼀些模型服务相关的⼯具。
  • 逻辑:举⼀反三的能⼒解决问题的条理性发散思维的能⼒聪明程度,通⽤算法的掌握程度
  • 业务:理解推荐系统的应⽤场景、商业模式;从业务中发现⽤户动机,制定相应的优化⽬标并改进模型算法的能⼒。
  请读者根据⾃⼰的具体岗位、具体项⽬有针对性地学习相关技能。

9.3. 2 能⼒的深度和⼴度

  在⼀项具体的⼯作⾯前,优秀的推荐⼯程师所具备的能⼒应该是综合的——能够从“ 深度” 和“ ⼴度” 两个⽅⾯提供解决⽅案。例如,公司希望改进⽬前的推荐模型,于是你提出了以 DIN 为主要结构的模型改进⽅案。这就要求你在深度和⼴度两个⽅⾯对 DIN 的原理和实现⽅案有全⾯的了解
  深度⽅⾯,需要了解从模型动机到实现细节的⼀系列问题,⼀条从概括到具体的学习路径的例⼦如下:
  • DIN 模型提出的动机是什么?是否适合⾃⼰公司当前的场景和数据特点。( 业务理解能⼒。)
  • DIN 模型的模型结构是什么?具体实现起来有哪些⼯程上的难点。( 知识学习能⼒,⼯具运⽤能⼒。)
  • DIN 模型强调的注意⼒机制是什么?为什么在推荐系统中使⽤注意⼒机制能够有效果上的提升?( 业务理解能⼒,知识学习能⼒。)
  • DIN 模型将⽤户和商品进⾏了 Embedding,在实际使⽤中,应该如何实现Embedding 过程?( 知识学习能⼒,逻辑思维能⼒。)
  • 是通过改进现有模型实现 DIN 模型,还是使⽤全新的离线训练⽅式训练DIN 模型?( ⼯具运⽤能⼒,逻辑思维能⼒。)
  • 线上部署和服务 DIN 模型有哪些潜在问题,有哪些解决⽅案?( ⼯具运⽤能⼒。)
  从这个例⼦中读者可以看到,⼀套完备的模型改进⽅案的形成需要推荐⼯程师深⼈了解新模型的细节。缺少了深度的钻研,改进⽅案就会在实现过程中遇到⽅向性的错误,增加纠错成本。
  推荐⼯程师除了要深⼊了解所采⽤技术⽅案的细节,还需要在⼴度上了解各种可能的备选⽅案的优劣,做到通过综合权衡得岀当前客观环境下的最优解。接着上⽂模型改进的例⼦,推荐⼯程师应该从以下⽅⾯在⼴度上进⾏知识储备:
  • 与 DIN 类似的模型有哪些,是否适合当前的使⽤场景?
  • DIN 模型使⽤的 Embedding ⽅法有哪些,不同 Embedding ⽅法的优劣是什么?
  • 训练和上线 DIN 的技术⽅案有哪些?如何与⾃⼰公司的技术栈融合
  在深度了解了⼀个技术⽅案的前提下,对其他⽅向的了解可以是概要式的,但也要清楚每种技术⽅案的要点和特点,必要时可通过 A/B 测试、业界交流咨询、原型系统试验等⽅式排除候选⽅案,确定⽬标⽅案。
  除此之外,6.6 节提到的⼯程和理论之间的权衡能⼒也是推荐⼯程师不可或缺的技能点之⼀。只有具备了这⼀点,才能在现实和理想之间进⾏合理的妥协,完成成熟的技术⽅案。

9.3.3 推荐工程师的能⼒总结

  想要成为⼀名优秀的推荐⼯程师,甚⾄⼀名优秀的算法⼯程师,应该在“ 知识” “ ⼯具” “ 逻辑” “ 业务” 这 4 个⽅⾯综合提⾼⾃⼰的能⼒,对某⼀技术⽅案应该有“ 深度” 和 “ ⼴度” 上的技术储备,在客观技术环境的制约下,针对问题做出权衡和取舍,最终得出可⾏且合理的技术⽅案

后记

  从开始写作本书到最终结稿,整整花了⼀年的时间。在这⼀年中,深度学习推荐系统的发展从未停歇,即便⼏次调整本书所包括知识的范围,⼒图跟上推荐系统技术发展的脚步,仍⽆法囊括所有最新的进展。就像笔者经常向别⼈介绍⾃⼰⼯作时所说的那样,“ 推荐⼯程师是⼀份挣扎在随时被淘汰边缘的⼯作”。所以当你合上本书时,这不是结束,⽽是另⼀个开始。
  情况也没那么悲观,就像第 9章开头介绍的,⼀旦建⽴起⾃⼰的推荐系统知识体系,剩下的就是在这棵⼤树上开枝散叶。笔者相信深度学习改变推荐系统的进程远没有结束,之前沉淀下来的经典模型终将成为知识⼤树上的重要节点,让⼤家⼀直受益,也希望本书能成为这棵⼤树的⼀个阶段性画像。对笔者来说,这也肯定不是结束,在不远的将来,笔者会持续更新书中的内容,让本书的知识体系同样枝繁叶茂,期待到时再次与你交流。

  
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值