社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【留言赠书】《深度学习推荐系统》2.0新篇:大模型时代的推荐系统破局点

DataFunTalk • 5 月前 • 167 次点击  

大家好,我是王喆,一个在搜广推领域工作了十二年的算法工程师。

距离我写那本在业界还算畅销的技术书《深度学习推荐系统》已经有五年时间了。

这五年间,深度学习推荐系统的技术架构经历了更为深刻的演化,大模型的革命滚滚而来,搜广推行业本身也经历了从增量式大发展到存量式精细优化的过程。

所有搜广推的同行们都在关心一个问题,推荐系统的破局点在哪?

我在新书《深度学习推荐系统2.0》中抛砖引玉,给出的线索是#算法#工程 和#大模型 的协同创新”,希望能够用诸多业界案例给你启发。

我的职业生涯也经历了很多变化,从Tech lead到技术经理,再到技术总监;从#推荐系统 到#广告系统;从中国的互联网公司和美国的互联网公司之间切换。

这期间,我对技术和行业的理解也有所不同。

五年前,我在《深度学习推荐系统的最后一页说,“这不是结束,而是另一个开始。在不远的将来,笔者会持续更新书中的内容,让本书的知识体系持续枝繁叶茂”。

五年后,让我们一起继续更新自己的推荐系统知识树,以及对推荐系统的行业理解。于是有了这本《深度学习推荐系统2.0




推荐系统知识体系的更新


大模型的革命如火如荼,其对推荐系统的影响也不可谓不深刻。

于是很多人建议我们追一追热点,将“大模型推荐系统 ”的字眼体现在书名中。

我说暂且不必,时至今日,业界主流的推荐系统仍然是深度学习推荐系统的框架,我坚定地把这本书命名为《深度学习推荐系统2.0》,就是希望坚定传递一个理念——踏踏实实做精做细每个推荐系统模块,更新自己的知识框架,而不是盲目追求好听的故事,这才是我们真正的技术护城河。

于是,在这本新书中,我更新了推荐模型的演进框架,把经典的保留,把过时的删去,把新的有影响力的工作整合。形成了新的推荐模型演进框架图。

深度学习推荐模型演进框架图

在上一版的基础上,我也继续查漏补缺,把之前未涉及到的,或者近些年新出现的重要的推荐系统技术加入进来,形成更为系统化的推荐系统知识体系。

  • 比如加入了对于iOS生态体系至关重要的联邦学习框架;

  • 在Embedding部分更新了GNN的最新进展;

  • 补充了对推荐系统Debias解决方案的介绍;

  • 在模型评估部分,新增了最近流行的推荐系统模拟器的介绍;

  • 为强调工程和算法的协同创新,增加了边缘计算推荐系统方案等等。

我的目标就是一个,让读者能够跟随我自己一起查漏补缺,把自己的推荐系统知识框架构建的更完整,处在推荐系统业界的前沿位置。

新书中新增的模块和方案




大模型和AIGC对推荐系统的影响


在深度学习推荐系统的框架之上,大模型和AIGC对于推荐系统的影响是毋庸置疑的。

在不盲目追求热点的同时,《深度学习推荐系统2.0》书希望实事求是的讨论大模型和AIGC对推荐系统产生的实质性影响,以及在推荐系统领域的落地方案。

具体来说,本书把大模型和AIGC在推荐系统的应用分为了三个层次:


01
理解这个世界

大模型的知识与推荐系统的知识是“完美互补”的关系。

大模型的知识是开放的、多模态的,它从开放世界学习到的外部知识将给推荐系统带来大量的“新鲜血液”;与此同时,传统推荐模型对推荐系统内部的用户行为信息利用的更充分,更深刻。把大模型学习到的“世界知识”传递给推荐系统,是二者结合的最好方式。

如下图所示,大模型分别通过Token和Embedding的方式传递知识,通过更好地理解这个世界来影响着推荐系统。

LLM向推荐系统传输知识的两种方式


02
成为这个世界

以Meta GR为例,推荐系统的从业者们从生成式模型的角度重新思考推荐问题。 Transformer based的大模型架构正成为推荐模型的新范式,并从排序模型逐渐扩散到召回、粗排甚至一体化推荐模型等众多推荐系统模块。大模型正逐渐成为“推荐系统世界”的新架构。


03
创造一个新世界

OpenAI Sora的口号是“成为世界的模拟器”。

相比用大模型的技术改造现有的推荐系统技术模块,我更主张的是跳出现有技术框架的束缚,从更广阔的角度想一想大模型和AIGC对推荐场景的更大影响在哪里。

我的答案是个性化推荐内容的生成。从已经日趋成熟的广告创意生成、短视频生成;到未来有更大想象力的推荐内容完全基于用户反馈生成。本书对AIGC技术在推荐系统中的应用进行了全面的探讨。

Sora的模型架构(引用自张俊林老师对Sora的逆向解读)




2.0版为读者考虑的小改进


为了给读者更好的体验,这次2.0版的新书还在下面几个方面进行了改进:

  • 逐一更正了第一版中读者提出的将近200处错误。

  • 为了控制篇幅考虑,没有加入更多的代码(复制开源项目代码是比较典型的偷懒占篇幅的做法),但应第一版读者增加更多实践内容的要求,增加了由我主导的开源推荐系统项目SparrowRecsys的介绍。GitHub - wzhe06/SparrowRecSys: A Deep Learning Recommender System

  • 为了控制篇幅,控制书价,2.0版采用了更大的印刷纸张。在大幅增加内容的同时,把全书厚度控制在300页,售价也仅有小幅提升。

  • 对全书图片进行了重绘,提高印刷质量,且全书彩印。

与此同时,还要跟有心购买的读者提个醒,由于2.0版增加了更多内容,但篇幅没有大幅增加。所以对已有内容进行了精简和合并。比如原有的“前深度学习时代的推荐模型”章节合并入了原第三章。同时,很多技术方案没有更多篇幅特别深入讨论技术细节。如果有需要刨根问底的读者,最好结合原论文来读。

总的来说,大家更合适把这本书当作推荐系统领域的一棵知识树,我来保证知识的新颖性和全面性,而不是一篇篇深入探讨某一个知识点的学术论文集合。


共勉和感悟

大模型时代对搜索、广告、推荐(下文简称“搜广推”)行业的工程师们提出了新的挑战,特别是在新的行业环境下,公司与公司之间、团队与团队之间、个人与个人之间都面临着更大的竞争压力。

我想所有读者也特别关心如何处理好这些压力,化挑战为机遇,从竞争中脱颖而出。我在书中给出的三个建议是:

  • 技术上“拥抱变化”。我们要坚信的是,“搜广推”仍然是互联网的第一变现途径,这个行业的容量仍然足够大,天花板足够高。我们应该做的是在已有的“搜广推”技术优势之上,深入思考如何把大模型的技术趋势融入已有的推荐系统框架中,而不是放弃自己已有的技术优势,完全切换到全新的赛道,在0基础之上,和刚毕业的同行们竞争。

  • 视野上“高屋建瓴”。推荐系统发展到今天,各模块的技术积累已经非常深厚,但模块的优化空间已经非常小了。在深度学习推荐系统2.0 时代,进一步的优化机会存在于模块之间,存在于系统整体之上,因此我们才有了COLD、EdgeRec 等一批工程和算法协同优化的优秀方案。笔者始终相信,一个优秀的推荐系统方案肯定是兼顾工程效率和算法效果的全局性优化方案。从工程师素质的角度来看,联合优化的思路对我们提出了更高的要求,在对推荐系统架构和新技术趋势了然于胸的基础上,我们必须在视野上高屋建瓴,打通思维的“任督二脉”,把各个模块串联起来思考。只有这样,才能找到新的技术增长点。

  • 主观上增强自己的“软实力”。随着职业经历越来越丰厚,笔者越来越意识到“软实力”才是保持职场优势的关键。面对不确定性高的项目时的勇气,面对阶段性挫折时的韧性,面对技术转型时的决心,面对项目压力时的毅力,这些重要的品质才是一生最宝贵的财富。从另一个层面讲,工作的真正目的就是提升自己的软实力,让你成为一个更加优秀的人。当我们成为一个更优秀的人时,我们不仅能在技术问题上更加得心应手,相信即使转到其他领域,在其他职业方向上,也能取得成功。

最后想跟大家分享的感悟是,我自己跟五年前一样,还是会坚定的在搜广推方向发展,因为我对这个领域有着跟刚毕业时一样的热爱。有时候,在做长远的决定的时候,一点点passion总比事无巨细的权衡利弊要重要一些。我也祝你,能够有所坚持,有所取舍,拥抱新变化。

限时五折优惠,快快抢购吧!

文案:刘恩惠
发布:王功瑾
审核:陈歆懿


图片   互动有奖

按以下方式参与互动,即有机会获赠图书!

活动方式:在评论区留言参与“推荐系统”的话题互动。活动将产生5名获奖用户,每人赠送一本《深度学习推荐系统》实体书籍。

说明:留言区收到回复“恭喜中奖”者将免费获赠本图书,中奖者请在收到通知的24小时内将您的“姓名+电话+快递地址”留言至原评论下方处即可,隐私信息不会被放出,未在规定时间内回复视作自动放弃兑奖资格。

活动时间:截至 05月19日开奖。

快快拉上你的小伙伴参与进来吧~~

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/182054