推荐序
推荐系统:信息海洋中的导航者
2020 年,全球数据总存储量超过了40ZB,预计在2025 到2026 年,这个数字会达到200ZB。面对如此巨量的数据,大数据时代面对的第一个挑战就是如何解决信息过载的问题,即如何帮助用户在信息的海洋中找到他们需要或者喜欢的内容。我们见识过不同类型的“信息中介”,导航网站(如hao123)、门户网站(如搜狐新闻)、搜索引擎(如百度)……还有本书要介绍的推荐系统。读者可能会觉得搜索引擎在信息获取方面扮演了最重要的角色,然而实际上,绝大部分我们被动获取或者看似主动却实际被动获取的信息都来自推荐系统,这些信息占据了我们从互联网中获取信息的最大份额。举个例子,尽管我们有时会在抖音、快手和小红书上浏览关注对象的视频,但是大部分时候,当我们滑屏之后,新的视频都来自推荐系统。我们可能以为自己观看的长视频都来源于对我们兴趣的准确把握和对内容的主动定位,其实Netflix 上超过2/3 的点击来自推荐,爱奇艺超过1/2 的点击来自推荐。还有今日头条的新闻推荐、淘宝的商品推荐……我们一直被推荐系统紧紧包裹,只是这层包裹很柔软,我们往往并不自知。
读者手头的这本书,就是从理论、方法到实践,系统地介绍推荐系统这一信息海洋中最重要导航者的专著。这本书的作者是该领域蜚声国际的大学者。不得不说,针对推荐系统,已经有了很多高质量的综述论文和专著,它们各有特色。然而,大部分综述只集中于某类方法(例如Adomavicious 和Tuzhilin 主要聚焦于协同过滤,我们的综述主要聚焦于物理学的方法)或者只深入讨论某一个问题(例如Herlocker 等人的综述主要关注如何评价一个推荐系统)。Francesco Ricci 等人编写了Introduction to Recommender Systems Handbook一书,影响力很大,但这本书其实是若干专题性综述的汇编,没有在同一套语言和符号系统中由浅入深地展开叙事,因此只适合很专业的研究人员阅读。项亮撰写的《推荐系统实践》是从业者的入门和实战宝典,但理论方面的笔墨不多。与此同时,推荐系统自身的发展速度很快,原来以协同过滤、矩阵分解等为代表的单算法,已经无法应对现在的大规模推荐系统。事实上,在目前主流的推荐系统框架中,深度学习和特征工程已经扮演主角,原来不可一世的单算法(例如基于用户和基于商品的协同过滤)已经退化成前沿推荐系统框架中若干召回算法中不起眼的一员。所以,一些较完整的著作,距离推荐系统的前沿技术也比较远了。总的来说,本书是一本“来得恰到好处”的推荐系统著作,兼顾了理论性和实践性,包含了经典算法和前沿方法。
我和推荐系统有很深的缘分。2007 年,我到瑞士弗里堡大学读博士,张翼成教授与我合作的第一个题目就是推荐系统,后来推荐系统和链路预测成了支撑我博士论文的两个主要方向。回国后,我参与创立的第一家企业°最初的业务就是为电子商务网站开发推荐系统。我老婆有很长一段时间也从事推荐系统的实战工作,并作为主要负责人构建了爱奇艺的推荐系统。我和她有一段重要的共同经历,就是都曾在谢幸老师的指导下从事位置分析和推荐系统的工作。我和谢幸老师一共合作过四篇论文±,其中有三篇有关如何为用户推荐他(她)可能感兴趣的位置的,这也使我真正有机会系统地考虑如何推荐位置,以及一个相关的问题——如何利用位置信息推荐内容。
推荐系统尽管已经历了近三十年的发展,但该领域的研究依然充满活力。这在很大程度上是因为推荐系统占据了我们获取的信息活动的很大比重,而获取信息又是现代人生活学习中特别重要的部分。除了刚才提到的深度学习框架的应用,最新的技术发展又提出了若干新的挑战,例如,如何在多媒体环境中更好地设计推荐系统(与目前流行的多模态学习密切相关),如何融入专家知识来构建具备“认知能力”的推荐系统,如何在隐私保护的前提下设计推荐系统,等等。在大数据概念热火朝天时,美国网络安全和新兴技术局(CSET)发布报告,建议重新重视小数据下的人工智能应用。如何在稀疏和不充分数据条件下设计推荐系统,也是一个重大的挑战。其中,谢幸老师和他的同事们最近针对基于知识图谱的推荐系统的研究,为这个问题提出了一个可能的解决方案。我最近在推荐算法方面研究较少,又反过来关注推荐系统的伦理问题,例如,如何避免由于过度个性化让我们的视野变得狭窄,甚至陷入信息茧房中——这实际上是我博士阶段工作²的自然延续。可以说,推荐系统是一个将科学问题、技术问题和产业实践无缝结合的充满活力的领域。本书的作者们都是该领域全球范围的研究学者,且多数身在微软,因而对产业需求非常敏锐!希望各位读者都能从本书中有所得。
是为序。
周涛
电子科技大学教授
前言
推荐系统诞生于20 世纪90 年代的互联网技术蓬勃发展时期,出现伊始,便得到了学术界和工业界的普遍认可,在电子商务、新闻门户、多媒体内容、生活服务、社交网络甚至广告营销等诸多领域取得了广泛的成功,逐步成为互联网应用中不可或缺的组成部分。在移动互联网和新媒体等日益繁荣的今天,推荐系统发挥着更加无可取代的重要作用,不断降低互联网用户获取信息的难度,提升用户与信息系统交互过程中的用户体验。近年来,诸多成功的应用案例表明,推荐系统正在持续影响甚至改变人类与信息世界的交互方式。
深度学习的出现极大地改变了推荐技术的发展方向,深入理解基于深度学习的推荐技术对于推荐系统领域的研究人员和技术人员是非常必要的。首先,技术的发展通常是螺旋式的,推荐技术也不例外。众多新方法、新技术的背后往往会有传统推荐技术的影子,将传统推荐技术与基于深度学习的推荐技术融会贯通至关重要,因此本书花费较多的篇幅介绍经典推荐技术。其次,推荐技术并不局限于互联网领域,人们的日常生活中也存在着大量推荐场景,
传统行业也可以通过推荐系统来驱动其业务或者管理方式的变革。因此,本书着重介绍与业务无关的基础技术,以便处于不同阶段的研究人员以及不同行业的技术人员都能从中受益。最后,推荐系统是一个以应用为主的领域,在掌握方法和原理外,更重要的是学会如何设计和实现工业级的推荐系统。因此,本书结合微软推荐系统开源项目,以理论与实践相结合的方式呈现给读者。
为了使不同背景、不同行业的读者都能够清晰和完整地理解推荐技术发展的因与果,本书尝试从更广阔的视角看待推荐系统。本书首先从经典的推荐算法入手,介绍传统推荐算法的基本原理和主要概念,分析其优势与局限,为读者更好地理解基于深度学习的推荐技术奠定基础。然后,本书介绍深度学习的基础知识,着重介绍基于深度学习的推荐技术,分析推荐系统理论与实践中的问题,使读者能够更深入地理解推荐系统的前沿技术。最后,本书结合微软的开源项目Microsoft Recommenders 介绍推荐系统的实践经验。读者可以基于本书提供的源代码,深入学习推荐算法的设计原理和实践方式,并可以基于本书从零开始快速搭建一个准确、高效的推荐系统。
本书由李东胜、练建勋、张乐、任侃、卢暾、邬涛和谢幸撰写,具体分工如下:
李东胜撰写了本书的第1、2、3、5、7 章的部分内容;
练建勋撰写了本书的第4、6 章的部分内容;
张乐撰写了本书的第6 章的部分内容;
任侃撰写了本书的第3、4 章的部分内容;
卢暾、邬涛和谢幸对所有章节的内容进行了统筹、修改和审阅。
除本书作者外,多名博士、硕士研究生与合作伙伴协助撰写了本书的部分章节。其中,夏家峰、张光平、汪方野和王迎旭协助撰写了本书的第2 章和第5 章。杨正宇、李梓玥、王可容、张光平协助撰写了本书的第3 章。我们由衷地感谢他们对本书做出的贡献。
感谢宋亚东先生和电子工业出版社对本书的重视,以及为本书出版所做的一切。
由于时间有限,书中不足之处在所难免,敬请广大读者批评指正!
作者