推荐系统技术原理与实践

978-7-115-60980-9
作者: 文亮
译者:
编辑: 刘雅思

图书目录:

详情

本书系统介绍推荐系统的技术理论和实践。首先介绍推荐系统的基础知识;然后介绍推荐系统常用的机器学习和深度学习模型;接着重点介绍推荐系统的4层级联架构,包括召回、粗排、精排和重排,以及谷歌、阿里巴巴等大型互联网公司在4层级联架构中的模型设计和实现原理;紧接其后介绍多目标排序在推荐系统中的应用,具体介绍阿里巴巴、谷歌等大型互联网公司的实践;最后从不同角度审视推荐系统,介绍公平性问题、知识蒸馏、冷启动等各种前沿实践。本书基于一线研发人员的视角向读者分享推荐系统的实践经验,所有模型结构和前沿实践都在业务场景中落地。 本书适合推荐系统领域的从业者、高校科研人员、高校计算机专业学生,以及对推荐系统感兴趣的产品研发人员和运营人员阅读。

图书摘要

版权信息

书名:推荐系统技术原理与实践

ISBN:978-7-115-60980-9

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

著    文 亮

责任编辑 刘雅思

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

内容提要

本书系统介绍推荐系统的技术理论和实践。首先介绍推荐系统的基础知识;然后介绍推荐系统常用的机器学习和深度学习模型;接着重点介绍推荐系统的4层级联架构,包括召回、粗排、精排和重排,以及谷歌、阿里巴巴等大型互联网公司在4层级联架构中的模型设计和实现原理;紧接其后介绍多目标排序在推荐系统中的应用,具体介绍阿里巴巴、谷歌等大型互联网公司的实践;最后从不同角度审视推荐系统,介绍公平性问题、知识蒸馏、冷启动等各种前沿实践。本书基于一线研发人员的视角向读者分享推荐系统的实践经验,所有模型结构和前沿实践都在业务场景中落地。

本书适合推荐系统领域的从业者、高校科研人员、高校计算机专业学生,以及对推荐系统感兴趣的产品研发人员和运营人员阅读。

前  言

2020年,天猫“双11”总成交额达到4982亿元,比2019年的2684亿元(数据来自东方财富网)高出约86%。其背后的技术便是今天应用广泛的推荐算法,推荐算法具有非常大的转折意义。除了天猫、淘宝这样的电商平台,今日头条和百度也依靠信息流与推荐系统开创了内容分发的新格局。据统计,在亚马逊这样的电商平台中,推荐系统对用户购买的贡献率在30%以上,而在今日头条这样的信息流平台中,推荐系统对用户点击率的贡献率在50%以上(数据来自36氪网站)。推荐时代,实实在在地到来了。

回溯推荐系统的发展历史,1994年,美国明尼苏达大学研究组推出第一个自动化推荐系统GroupLens,提出将协同过滤作为推荐系统的重要技术。如果以此作为推荐系统领域的开端,那么推荐系统距今已有28年历史。在这28年中,推荐系统的技术发展日新月异。2016年被称为“人工智能元年”,近年来推荐系统技术也正式步入了深度学习时代。2016 年后,谷歌、微软、百度、阿里巴巴等公司相继发表了将深度学习应用于推荐系统的论文,深度学习理论逐渐在推荐系统场景落地。2020 年以来,腾讯、YouTube、快手等公司成功地在推荐、广告等业务场景中应用强化学习模型,推荐系统进入蓬勃发展、百花齐放的新时代。

在这个技术日新月异、模型结构快速演变的时代,我们有必要系统地梳理推荐系统的知识结构,帮助读者构建推荐系统的技术框架。如果关注模型结构本身,读者会发现在2016年谷歌发表论文“Wide & Deep Learning for Recommender Systems”后,一大批相关的模型陆续出现,如PNN、FNN、DeepFM、AFM、NFM和DCN等。这些模型都致力于解决一个问题——通过提升模型的非线性拟合能力来优化特征的自动组合。在工业界,以阿里巴巴为例,它先后提出了MLR、DIN、DIEN、DSIN、MIMN、SIM和CAN等模型。这些模型主要包含两条技术路线,一条是提升特征交叉能力,另一条就是以实际业务为背景,充分利用用户的行为数据,更精准地刻画用户兴趣。本书希望帮助读者厘清这些模型结构内在的联系,构建推荐系统的技术框架。

本书介绍大型工业级推荐系统的多链路结构,因此会在推荐排序模型中引入粗排和精排的相关内容。粗排和精排在很多讲解推荐系统的图书中是被忽略的,但是站在推荐系统从业者的角度,它们是推荐系统不可或缺的部分,甚至能为360导航信息流推荐这样的业务带来10%以上的收入增量。

1 写作背景

写作本书的动机,一是我一直有系统整理推荐系统相关知识的愿望,二是人民邮电出版社编辑的邀请。在这之前,我有在知乎平台总结平时工作内容的习惯,这段经历让我体会到,认真总结技术内容不仅可以提升自己的能力,也能让更多读者受益。目前,我已在推荐系统领域工作了超过5年,也承担过推荐系统中召回和排序等各方面的工作。因此,我选择了推荐系统技术原理与实践这个主题,以期把自己平时的实践经验分享给感兴趣的同行。

2 本书结构

本书重点介绍推荐系统的模型应用和实践经验,在介绍推荐系统每个模块涉及的具体技术的同时,力图介绍清楚技术发展的主要脉络和前因后果。

由于机器学习和深度学习算法在推荐系统模型中占据绝对核心的地位,无论是召回、粗排,还是精排、重排,都离不开机器学习和深度学习模型的应用,因此本书第2章着重介绍机器学习和深度学习的基础知识。之后的章节会依次介绍召回、粗排、精排、重排的技术细节和实践经验,并通过业界前沿的推荐系统实例将所有知识融会贯通。本书的内容主要分为以下8章。

第1章 推荐系统简介

本章首先介绍推荐系统的基础知识及其在互联网信息流中的作用和意义,然后介绍推荐系统的主要技术架构,使读者对推荐系统有宏观的认识,从而引出本书要讲的主要内容——推荐系统的4层级联架构。

第2章 推荐系统算法基础

本章主要介绍推荐算法的基础知识,以机器学习中应用极广的逻辑斯谛回归模型和深度学习中极简单的MLP模型为例,介绍模型的优化算法。

第3章 召回技术演进

本章首先介绍传统个性化召回和模型化召回的历史,然后介绍业界主流召回算法的发展过程和技术细节,主要包括微软、YouTube和阿里巴巴等大型互联网公司的召回技术实践。

第4章 粗排技术演进

本章主要介绍粗排技术体系与新进展,包括深度学习在粗排中的应用,并以阿里巴巴的粗排模型COLD为例,介绍业界前沿的粗排技术。

第5章 精排技术演进

如果说召回和粗排是推荐系统的重要部分,那么精排就是整个推荐系统最重要的部分。本章详细介绍精排模型的技术细节和实践经验,并从特征自动组合和用户兴趣表达两个角度介绍精排模型的演进。

第6章 重排技术演进

重排是推荐模型的最后一个模块,本章介绍重排算法的技术细节,并以阿里巴巴的PRN重排模型为例,介绍重排算法的实践经验。

第7章 多目标排序在推荐系统中的应用

随着业务的发展,互联网公司不再只追求单一的目标,而是要同时考虑多个业务指标。比如在新闻推荐场景中,不仅要考虑点击率(CTR),还要考虑分享、点赞、评论、转发、收藏等指标,而前面的精排模型更多地关注CTR预估这一单一目标。本章将重点介绍多目标排序在推荐系统中的应用,主要分享业界前沿的实践经验,并以360实践为例,介绍多目标排序的具体应用。

第8章 推荐系统的前沿实践

本章从公平性、冷启动等多角度审视推荐系统,介绍推荐系统的前沿实践,覆盖推荐系统的公平性问题、多场景融合、冷启动问题等内容。

3 面向读者

本书的目标读者可以分为以下3类。

第一类是推荐、广告、搜索等领域的开发人员。本书能够帮助他们深入学习推荐系统的完整技术结构,并应用于业务工作中。

第二类是有一定机器学习基础,希望进入推荐系统领域的初学者。本书能够帮助他们了解推荐系统的技术原理以及大型互联网公司的业务实践。

第三类是高校计算机相关专业学生。本书能够帮助他们学习机器学习和深度学习的基础知识,从零开始了解推荐系统的知识体系。

资源与支持

本书由异步社区出品,社区(https://www.epubit.com)为您提供相关资源和后续服务。

提交勘误

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,单击“提交勘误”,输入勘误信息,单击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

扫码关注本书

扫描下方二维码,您将会在异步社区微信服务号中看到本书信息及相关的服务提示。

与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书技术审校等工作,可以发邮件给本书的责任编辑(liuyasi@ptpress.com.cn)。

如果您来自学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接通过邮件发给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

关于异步社区和异步图书

“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。

“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。

异步社区

微信服务号

第1章 推荐系统简介

如今,我们生活在一个“信息爆炸”的互联网时代,在这个时代,推荐系统无处不在。推荐系统的主要作用就是帮助我们从海量信息中挑选出感兴趣的信息。例如,今日头条这样的新媒体为我们推荐感兴趣的新闻,抖音、快手这样的短视频App为我们推荐感兴趣的短视频,淘宝、京东这样的电商App为我们推荐喜欢的商品。可以说推荐系统每时每刻都在影响着我们的生活。

站在算法工程师的角度,推荐系统的架构和算法迭代得越来越快,尤其是深度学习的广泛应用,加速了算法模型的迭代。本章将简述推荐系统的定义与发展历史,然后以推荐系统的几个应用场景为出发点,介绍推荐系统的作用和意义,并从系统结构的角度介绍推荐系统的技术架构。另外,本章会简单介绍大型工业推荐系统的4个重要组成部分,包括召回、粗排、精排和重排,这是本书的重点内容。

1.1 什么是推荐系统

什么是推荐系统?根据维基百科的定义,它是一种信息过滤系统,主要功能是预测用户对物品的评分和偏好。这一定义回答了推荐系统的功能是过滤信息、连接用户和推送信息。将这一定义扩展一下,推荐系统就是自动联系用户和物品的一种工具,它能够在信息过载的环境中帮助用户发现令他们感兴趣的信息,也能够将信息推送给感兴趣的用户。

推荐系统起源于20世纪90年代,经过20多年的积累和沉淀,已经逐渐成为一门独立的学科,并在学术研究和工业界的应用中取得了诸多成果,如图1-1所示。

如今,随着深度学习在推荐系统的广泛应用,推荐系统领域正式迈入了深度学习时代,微软(Microsoft)、谷歌(Google)、百度、阿里巴巴等公司成功地在推荐、广告等业务场景中应用了深度学习模型。推荐系统被应用于如下所示的诸多业务场景中。

信息流推荐场景,比如今日头条新闻推荐、360快资讯、微信看一看等。

视频网站,比如YouTube、腾讯视频、抖音等。

电商网站,比如淘宝、京东、亚马逊(Amazon)等。

个性化广告场景,比如百度、谷歌、360等网站的广告推荐模块。

个性化音乐场景,比如QQ音乐、酷狗音乐等App的音乐推荐模块。

社交网站,比如Facebook、微信、领英等。

图1-1 推荐系统的发展历史

1.2 推荐系统的作用和意义

站在互联网企业的角度,在互联网应用及用户规模“爆炸式”增长的时代,如何做到千人千面,为每个用户提供个性化的服务,从而提升产品的使用率和用户黏性呢?这是推荐系统需要解决的问题。站在用户的角度,面对海量的信息,如何高效检索自己感兴趣的内容呢?这也是推荐系统需要解决的问题。

和搜索引擎不同,个性化推荐系统需要依赖用户的行为数据。对于不同的应用场景,推荐系统的优化目标是不一样的,比如淘宝这样的电商平台关注的主要是用户点击后的转化率(conversion rateCVR;而YouTube这样的视频分享平台关注的主要是用户的观看时长,这是因为YouTube的主要收入源于广告,增加用户的观看时长可以提高广告的曝光度。

为了更直观地区分推荐系统在不同应用场景下发挥的作用,本章尝试用两个应用场景来描述。

第一个应用场景是今日头条App新闻推荐频道(见图1-2)。2018年1月,今日头条的算法架构师发文公布了今日头条的算法原理,文中提到今日头条关注的目标包含点击率(click-through rate,CTR)、阅读时间、点赞、评论、转发等,而其中最主要的目标就是CTR。这主要是因为点击量和公司的商业目标直接相关,而通过优化点击率来提升点击量是最直接的方法。

图1-2 今日头条App新闻推荐频道

第二个应用场景是YouTube视频推荐。YouTube是一个视频网站,成立于2005年,每天要为全球成千上万的用户提供高水平的视频上传、分发、展示、浏览服务。图1-3所示为YouTube网站首页,里面包含各种形式的视频。前面提到过YouTube主要优化的是用户观看时长,算法工程师需要根据业务指标调整模型结构和优化目标。早在2016年,YouTube的算法工程师在RecSys会议上发表了论文“Deep Neural Networks for YouTube Recommendations”非常明确地指出了将优化用户观看时长设为最终优化目标的建模方法。在随后2019年的WSDM会议上,另一篇有关强化学习的论文“Top- KOff-Policy Correction for a REINFORCE Recommender System”提出的最终优化目标也是优化用户观看时长,模型上线后总的用户观看时长提升0.86%。后面的章节将会详细介绍这两篇论文的技术细节。

图1-3 YouTube网站首页

1.3 推荐系统的技术架构

通过1.1节和1.2节的介绍,读者应该对推荐系统有了大致的了解。推荐系统本质上是解决用户和“资源”的匹配问题,其中的“资源”既可以是资讯推荐系统里面的新闻,也可以是视频推荐系统里面的视频。推荐系统的作用就是根据用户的历史先验行为,从候选集中推荐匹配度最高的资源,可以表示为下面的形式:

其中,user profile表示用户信息,item表示需要推荐的资源(比如音乐、电影、物品、新闻等),context表示场景的上下文信息,user behavior seq表示用户行为序列,f是推荐模型。

在实际的推荐系统中,我们可以将推荐系统按功能模块划分为离线、近线、在线和前端应用4个模块,如图1-4所示。

图1-4 推荐系统的技术架构

(1)离线模块,主要包含日志收集、语料(点击日志、展现日志以及特征日志)对齐,以及模型训练。

(2)近线模块,主要包含构建索引、生成用户画像、构建特征库,以及模型更新。

(3)在线模块,主要是推荐系统模型的调用,包含召回、粗排、精排和重排4个阶段。对于像淘宝、天猫这样的电商平台的推荐系统,召回的规模超过1000万件商品,粗排的规模超过1万件商品,精排和重排的规模达到上百件商品。

(4)前端应用模块,主要是不同的场景展示不同的资源,比如图1-4展示了电商网站、新闻网站、视频网站、音乐网站和邮件5个不同的应用场景。

本书将详细地介绍图1-4中推荐系统的在线模块。按照一般工业推荐系统的多阶段级联架构,在线模块分为召回、粗排、精排和重排4个阶段。

1.4 推荐系统的召回阶段

如果粗略地划分,在线模块可以分为召回和排序两个阶段,召回后面的粗排、精排和重排都统一划分在排序阶段。召回阶段主要根据用户部分特征,从海量的物品库里快速找出一小部分用户潜在感兴趣的物品,然后进入排序阶段;排序阶段可以融入更多的特征,使用更复杂的模型来精准地进行个性化推荐。召回强调快,而排序强调准。

业界普遍采用的方式是多路召回,即从多个维度出发,在海量库里把相关度高的候选结果尽可能快速地检索出来。采用多路召回是出于以下多方面的考虑。

多样性。从不同维度出发找到相关的候选结果。比如有些召回基于全局热度,有些召回则倾向于冷资源。

可解释性与灵活性。每一路召回从单独维度出发可以很好地解释召回的逻辑,如果效果不理想,调整起来复杂度低且更加灵活。

鲁棒性。即使某一路召回出现问题,其他召回也会正常返回数据而不至于影响主流程。

传统的个性化召回主要基于协同过滤和矩阵分解,最近发展起来的模型化召回主要包括图表征召回、浅层模型化召回、深度匹配模型化召回以及语言模型化召回。

1.5 推荐系统的粗排阶段

推荐系统的粗排阶段主要用于缓解精排的时间压力。在召回结果数量太多的情况下,精排往往耗时过长,因此在召回和精排之间增加了粗排。粗排是指通过少量用户和物品特征,使用简单模型对召回的结果进行简单排序,在保证一定精度的前提下,减少精排的排序数量。

粗排的目标是在满足算力约束的前提下,选出满足后链路需求的集合。和精排相比,粗排主要有以下两个特点。

算力约束:粗排打分量远高于精排,同时有较严格的延迟约束,一般在50ms以内。

解空间问题:粗排线上打分的候选集更大,往往是精排候选集的数十倍。

1.6 推荐系统的精排阶段

顾名思义,精排是对候选集进行精准排序。和粗排相比,精排更强调排序的准确性。精排阶段是推荐系统最关键、也最具技术含量的部分,目前大多数推荐技术都聚焦于精排性能的提升。

回顾整个工业界精排模型的演化历史,读者会发现,特征工程及特征交叉的自动化一直是推动推荐系统技术演进最主要的方向。后续章节将详细地介绍精排模型的相关技术。

1.7 推荐系统的重排阶段

从推荐系统架构来看,重排阶段在精排结果输出之后,而精排已经对推荐物品做了比较准确的打分,所以重排阶段最后选出的数据基本都是前K名(Top-K)的数据。与精排只关注单个目标不同,重排还需要考虑最后选出满足数据多样性的最优组合,以及实现整体收益的最大化。

以新闻推荐场景为例。从多样性角度出发,用户虽然喜欢娱乐,但是一屏里面不可能全是娱乐数据,还要考虑其他类别的数据,比如科技、历史等。从整屏效果出发,精排给出的Top-K不一定是最优解,还要考虑上下文信息。

1.8 小结

本章简要介绍了推荐系统的基本概念、技术架构和各个阶段。有了这些宏观认识,读者可以开始阅读后续有关推荐系统技术细节的具体章节。后续章节中将依次展开讲解本章提到的推荐系统的4个阶段,带领读者一起畅游推荐系统的世界。

相关图书

有限元基础与COMSOL案例分析
有限元基础与COMSOL案例分析
程序员的README
程序员的README
现代控制系统(第14版)
现代控制系统(第14版)
现代软件工程:如何高效构建软件
现代软件工程:如何高效构建软件
GitLab CI/CD 从入门到实战
GitLab CI/CD 从入门到实战
科学知识图谱:工具、方法与应用
科学知识图谱:工具、方法与应用

相关文章

相关课程