• 13020021775
  • 18810698923@163.com
  • 机器联盟 | 人工智能内容分享与共建平台

王喆《深度学习推荐系统》 第1章 互联网的增长引擎——推荐系统

这是一个生活处处被推荐系统影响的时代。想上网购物,推荐系统会帮你挑选满意的商品;想了解资讯,推荐系统会为你准备你感兴趣的新闻;想学习充电,推荐系统会为你提供最适合你的课程; 想消遣放松,推荐系统会为你奉上让你欲罢不能的短视频; 想闭目养神,推荐系统可以为你播放最应景的音乐。可以说,推荐系统从来没有像现在这样影响着人们的生活。

而推荐系统背后的算法工程师们,也从没有像现在这样追逐着发展日新月异的推荐系统技术。如果说推荐系统是互联网发展的增长引擎,那么推荐工程师就是推荐系统的发展引擎。在本章中,笔者将以推荐系统的具体场景为出发点,介绍什么是推荐系统,为什么推荐系统被称为互联网的“增长引擎”,以及如何从技术的角度看待推荐系统、构建推荐系统的整体技术架构。

1.1 为什么推荐系统是互联网的增长引擎

对互联网从业者来说,“增长”这个词就像插在心中的一支矛, 无时无刻不被其刺激并激励着。笔者对“增长”这个词的理解来自大学时实验室的一段经历。清华大学计算机系和搜狗公司是长期合作伙伴,因此实验室的师兄、师姐经常谈起与搜狗的合作项目。笔者记忆至今的句话是 “如果 我们能为搜狗的用户推荐更合适的广告,让广告的点击率增长1%,就能为公司增加上千万的利润”。从那时起,“增长”这个词就深深地烙在笔者心中。这个词几乎成为互联网公司成功的唯一标准.也成为所有互联网从业者永远追逐的目标。通过算法和模量“神奇”地实现“增长”的愿望,也指引笔者走上了算法工程师的职业道路。

1.1.1 推荐系统的作用和意义

推荐系统存在的作用和意义可以从用户和公司两个角度进行阐述

用户角度:

推荐系统解决在“信息过载“的情况下,用户如何高效获得感兴趣信息的问题。从理论上讲,推荐系统的应用场景并不仅限于互联网。但互联网带来的海量信息问题。往往会导致用户迷失在信息中无法找到目标内容。可以说互联网是推荐系统应用的最佳场景。正如封面中代表本书的那条鱼,它从鱼群中脱颖而出,穿过数码的网络跃然纸上。希望它能成为笔者为你筹选出的知识“锦鲤”。从用户需求层面看,推荐系统是在用户需求并不十分明确的情况下进行信息的过滤,因此,与搜索系统(用户会输入明确的“搜索词")相比,推荐系统更多地利用用户的各类历史信息“猜测”其可能喜欢的内容,这是解决推荐问题时必须注意的基本场景假设。

公司角度:

推荐系统解决产品能够最大限度地吸引用户、留存用户、增加用户黏性、提高用户转化率的问题,从而达到公司商业目标连续增长的目的。不同业务模式的公司定义的具体推荐系统优化目标不同,例如,视频类公同更注重用户观看时长,电商类公司更注重用户的购买转化率( Conversion Rate, CVR),新闻类公司更注重用户的点击率,等等。需要注意的是,设计推荐系统的最终目标是达成公司的商业目标、增加公司收益,这应是推荐工程师站在公司角度考虑问题的出发点。

正因如此,推荐系统不仅是用户高效获取感兴趣内容的“引擎”,也是互联网公司达成商业目标的“引擎”,二者是一个问题的两个维度,是相辅相成的。接下来,笔者尝试用两个应用场景进一步解释推荐系统是如何发挥“增长引攀”这一关键作用的。

1.1.2 推荐系统与YouTube的观看时长增长

上文提到,推荐系统的“终极”优化目标应包括两个维度: 一个维度是用户体验的优化:另一个维度是满足公司的商业利益。对一个健康的商业模式来说这两个维度应该是和谐统一的。这点在YouTube推荐系统上体现得非常充分。

YouTube是全球最大的UGC ( User Generated Content,用户生成内容)视频分享平台(如图1-1 所示),其优化用户体验结果的最直接体现就是用户观看时长的增加。YouTube作为一家以广告为主要收人来源的公司,其商业利益也建立在用户观看时长的增长之上,因为总用户观看时长与广告的总曝光机会成正比。只有不断增加广告的曝光量,才能实现公司利润的持续增长。因此,YouTube 的用户体验和公司利益在“观看时长”这一点上达成了一致。

正因如此,YouTube推荐系统的主要优化目标就是观看时长,而非传统推荐系统看重的“点击率”。事实上,YouTube 的工程师在一篇著名的工程论文DeepNeural Networks for YouTube Recommenders中,非常明确地提出了将观看时长作为优化目标的建模方法。其大致推荐流程是:先通过构建深度学习模型,预测用户观看某候选视频的时长,再按照预测时长进行候选视频的排序,形成最终的推荐列表。笔者会在后面的章节中详细介绍YouTube推荐系统的技术细节。

1.1.3 推荐系统与电商网站的收入增长

如果说推荐系统在实现YouTube商业目标的过程中起的作用相对间接,那么它在电商平台上则直接驱动了公司收入的增长,因为推荐系统为用户推荐的商品是否合适,直接影响了用户的购买转化率。

2019年天猫“双11”的成交额是2684亿元。 驱动天猫达成如此惊人成交额的是阿里巴巴著名的 “千人千面”推荐系统 (天骗手机端首页如图1.2所示)
对比某位男士和某位女士看到的天猫首页,可以看出, 天猫的推荐 系统不仅为不同用户推荐了不同品类的商品(例如, 在“快抢购”模块中,为男士推存了手机和手表,为女士推荐了女装和睡衣), 还根据用户的特点生成了相同品类的不同编略图(例如,在“为你推荐”模块中,相同频道的缩略图是个性化的)。

可以说,天猫的推荐系统真正实现了首页所有元素的个性化推荐。实现了名副其实的“千人千面”。这背后的一切是由以提高转化率、点击率为核心的推荐算法驱动的。假设通过推荐系统的某项改进,将平台整体的转化率提升了1%,那么在2684亿元成交额的基础上,增加的成交额将达到26.84亿元(2684x10%)也就是说,算法工程师仅通过优化推荐技术,就创造了26.84亿元的价值。这无疑是推荐工程师最大的职业魅力所在。 推荐系统的价值远不止于此,2018年,全球在线广告市场规模达到2200亿美元,这背后的驱动者正是各大公司的广告推荐系统; 同样在2018年,中国短视频应用的用户使用时长增长了89.2%。这背后,视频推荐引擎发挥着不可替代的作用。从2015年开始,个性化资讯应用更是以摧枯拉朽之势击败了传统的门户网站和新闻类应用,成为用户获取资讯最主要的方式。可以说,推荐系统几乎成了驱动互联网所有应用领域的核心技术系统,当之无愧地成为当今助推互联网增长的强劲引擎。

1.2 推荐系统的架构

通过1.1节的介绍,读者应该已经对以下两点有所了解:

(1)互联网企业的核心需求是“增长”,而推荐系统正处在“增长引擎”的核心位置。

(2)推荐系统要解决的“用户痛点"是用户如何在“信息过载”的情况下高效地获得感兴趣的信息。

第一点告诉我们,推荐系统是重要的、不可或缺的;第二点则清晰地阐释了构建推荐系统要解决的基础问题,即推荐系统要处理的是“人”和“信息”的关系。

这里的“信息",在商品推荐中指的是“商品信息”,在视频推荐中指的是“视频信息",在新闻推荐中指的是“新闻信息”,简面言之,可统称为“物品信息”。而从“人”的角度出发,为了更可靠地推测出“人”的兴趣点,推荐系统希望利用大量与“人”相关的信息,包括历史行为、人口属性、关系网络等,这些可统称为“用户信息”。
此外,在具体的推荐场景中,用户的最终选择般会受时间、地点、用户的状态等一系列环境信息的影响, 可称为“场景信息” 或“上下文信息”。

1.2.1 推荐系统的逻辑框架

在获知“用户信息”“物品信息”“场景信息”的基础上,推荐系统要处理的问题可以较形式化地定义为:对于用户U(user),在特定场景C ( context)下,针对海量的“物品"信息,构建一个函数f(U,I,C),预测用户对特定候选物品(item)的喜好程度,再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题。


根据推荐系统问题的定义,可以得到抽象的推荐系统逻辑框架(如图1.3所示)。虽然该逻辑框架是概括性的,但正是在此基础上,对各模块进行细化和扩展,才产生了推荐系统的整个技术体系。

1.2.2 推荐系统的技术架构

在实际的推荐系统中,工程师要将抽象的概念和模块具体化、 工程化,在图1-3的基础上,工程师需要着重解决的问题有两类。

(1)数据和信息相关的问题,即"用户信息"“物品信息”“场景信息”分别是什么? 如何存储、更新和处理?

(2)推荐系统算法和模型相关的问题, 即推荐模型如何训练、如何预测、如何达成更好的推荐效果?

可以将这两类问题分为两个部分,“数据和信息“部分逐渐发展为推荐系统中融合了融合了数据离线批处理、 实时流处理的的数据流框架;“算法和模型”部分则进一步细化为推荐系统中集训练(training)、评估(evaluation)、部署(deployment)、线上推断(online interence)为一体的模型框架。具体地讲,推荐系统的技术架构示意图如图1-4所示。

1.2.3 推荐系统的数据部分

推荐系统的数据部分(如图1-4中米黄色部分所示)主要负责“用户”“物品”“场景”的信息收集与处理。具体地讲,将负责数据收集与处理的三种平台按照实时性的强弱排序,依次为“客户端及服务器端实时数据处理”“流处理平台准实时数据处理”“大数据平台离线数据处理”。在实时性由强到弱递减的同时,三种平台的海量数据处理能力则由弱到强。因此,一个成熟的推荐系统的数据流系统会将三者取长补短,配合使用。

在得到原始的数据信息后,推荐系统的数据处理系统会将原始数据进一步加工,加工后的数据出口主要有三个:

(1)生成推荐模型所需的样本数据,用于算法模型的训练和评估。

(2)生成推荐模型服务( model serving )所需的“特征”,用于推荐系统的线上推断。

(3)生成系统监控、商业智能( Busines Ielligence, BI) 系统所需的统计型数据。

可以说,推荐系统的数据部分是整个推荐系统的“水源”,只有保证“水源”的持续、纯净,才能不断地“滋养”推荐系统,使其高效地运转并准确地输出。

1.2.4 推荐系统的模型部分

推荐系统的“模型部分”是推荐系统的主体(如图1-4中浅蓝色部分所示)。模型的结构一般由 “召回层”“排序层”“补充策略与算法层”组成。

“召回层”一般利用高效的召回规则、算法或简单的模型,快速从海量的候选集中召回用户可能感兴趣的物品。
“排序层”利用排序模型对初筛的候选集进行精排序。

“补充策略与算法层”,也被称为“再排序层",可以在将推荐列表返回用户之前,为兼顾结果的“多样性”“流行度"“新鲜度”等指标,结合一些补充的策略和算法对推荐列表进行一定的调整, 最终形成用户可见的推荐列表。

从推荐模型接收到所有候选物品集,到最后产生推荐列表,这一过程一般称为模型服务过程。

在线环境进行模型服务之前,需要通过模型训练( mode training )确定模型结构、结构中不同参数权重的具体数值,以及模型相关算法和策略中的参数取值。模型的训练方法又可以根据模型训练环境的不同,分为“离线训练和“在线更新”两部分,其中,离线训练的特点是可以利用全量样本和特征使模型逼近全局最优点,在线更新则可以准实时地“消化”新的数据样本,更快地反映新的数据变化趋势,满足模型实时性的需求。

除此之外,为了评估推荐系统的效果,方便模型的迭代优化,推荐系统的模型部分提供了“离线评估”和“线上A/B测试”等多种评估模块,用得出的线下和线上评估指标,指导下一步的模型迭代优化。

以上所有模块共同组成了推荐系统模型部分的技术框架。模型部分,特别是“排序层”模型是推荐系统产生效果的重点,也是业界和学界研究的重心。因此在后面的章节中,笔者将着重介绍模型部分,特别是“排序层”模型的主流技术及其演化趋势。

1.2.5 深度学习对推荐系统的革命性贡献

深度学习对推荐系统的革命性贡献在于对推荐模型部分的改进。与传统的推荐模型相比,深度学习模型对数据模式的拟合能力和对特征组合的挖掘能力更强。此外,深度学习模型结构的灵活性,使其能够根据不同推荐场景调整模型,使之与特定业务数据“完美"契合。

与此同时,深度学习对海量训练数据及数据实时性的要求,也对推荐系统的数据流部分提出了新的挑战。如何尽量做到海量数据的实时处理、特征的实时提取,线上模型服务过程的数据实时获取,是深度学习推荐系统数据部分需要攻克的难题。

1.2.6 把握整体,补充细节

推荐系统的整体技术架构及其对应的技术细节是异常复杂的,它不仅要求从业者有较深厚的机器学习知识、推荐模型相关的理论知识,还对从业者的工程能力和针对不同技术方案进行权衡,做出最优选择的“业务嗅觉”有着很高的要求。也许这正是推荐系统魅力之所在。

通过学习本章,读者将从整体上对深度学习推荐系统的框架有所了解。如果读者对本章涉及的技术名词、推荐系统的相关概念不太清楚,也完全不用担心,仅保留对深度学习推荐系统的初步印象即可。希望你能把推荐系统的技术框架埋藏于心,秉着“把握整体,补充细节”的方式进行具体章节的阅读。相信本书会抽丝剥茧地帮助你解答心中的疑惑。

1.3 本书的整体结构

本书的整体结构在图1-4的基础上展开,并重点介绍深度学习在推荐系统中的应用知识点和实践经验。在介绍具体的技术点时,笔者力图介绍清楚技术发展的主要脉络和前因后果。

由于推荐系统搏序模型在推养系统中占据地对核心的地位,本书的前几章将若重介绍深度学习排序模型的技术演化趋势,在之后的章节中,会依次介绍推荐系统其他模块的技术细节和工程实现,通过业界前沿的推荐系统实例将所有知识融汇贯通。具体地讲,本书的主要内容共分为9章。

第1章 互联网的增长引擎——推荐系统
介绍推荐系统的基础知识,在互联网中的地位和作用; 介绍推荐系统的主要技术架构,使读者对推荐系统有宏观的认识,从整体到部分地展开本书的内容。

第2章 前深度学习时代一推荐系统的进化之路

介绍前深度学习时代推荐模型的演变历史,并介绍与推荐模型相关的基础机器学习知识,为深度学习推荐系统的学习夯实基础。

第3章 浪潮之巅——深度学习在推存系统中的应用

介绍业界主流的深度学习推荐模型结构,以及不同模型之间的演化关系,希望读者能够在掌握深度学习推荐系统主要技术途径的同时, 建立起改进推荐模型的思路和技术直觉。

第4章 Embedding技术在推荐系统中的应用
重点介绍深度学习的核心技术——Embeding技术在推荐系统中的应用,其中包括主流Embedding技术的发展过程和技术细节,及其实践和应用

第5章 多角度审视推荐系统
如果说深度学习推荐根盟是推存系统的核心,那么本章将从核心之外的角度重新审视推荐系统,内容覆盖推荐系统的不同技术模块及优化思路,其中包括特征工程、召回层策略、推荐系统实时性、优化目标、业务理解、冷启动、“探索与利用”等多个重要的推荐系统话题。

第6章 深度学习推荐系统的工程实现
介绍深度学习推荐系统的工程实现方法和主要技术平台。包括数据处理平台、离线训练平台、线上部署和预估方法等三大部分内容。

第7章 推荐系统的评估

介绍推荐系统评估的主要指标和方法。建立从传统离线评估、离线伤真评估方法,到快速线上评估测试方法,最终到线上AB测试评估的多层推荐系统评估体系。

第8章 深度学习推静系统的前沿实践
介绍业界前沿推荐系统的技术框架和模型细节。主要包括YouTube、Airbnb、Facbook阿里巴巴等业界巨头的推荐系统的前沿实践。

第9章 构建属于你的推荐系统知识框架
汇总与本书相关的推荐系统知识,介绍推荐工程师应具备的主要技能点和思维方法。

参考文献
[1]Paul Covington,Jay Adams and Emre Sargin.Deep neural networks for youtube Recommenders. Poceeding of the 10th ACM conference on recomender systems. ACM, 2016.