推荐系统(RS)主要是指应用协同智能(collaborative intelligence)做推荐的技术。个性化推荐系统能够有效的解决信息过载问题,推荐系统根据用户的历史偏好和约束为用户提供排序的个性化物品(item)推荐列表,更精准的推荐系统可以提升和改善用户体验。通常可以根据用户偏好、商品特征、用户-商品交易和其他环境因素(如时间、季节、位置等)生成推荐结果。所推荐的物品可以包括电影、书籍、餐厅、新闻条目等等。
推荐系统的相关文献把它们分成三类:协同过滤(仅使用用户与商品的交互信息生成推荐)系统、基于内容(利用用户偏好和/或商品偏好)的系统和混合推荐模型(使用交互信息、用户和商品的元数据)。这些类别中的模型都有局限性,如数据稀疏性、用户和商品的冷启动。推荐系统的两大主流类型就是上文提到的①基于内容的推荐系统和②协同过滤(Collaborative Filtering)。协同过滤方法根据用户历史行为(例如其购买的、选择的、评价过的物品等)结合其他用户的相似决策建立模型。这种模型可用于预测用户对哪些物品可能感兴趣(或用户对物品的感兴趣程度)。基于内容推荐利用一些列有关物品的离散特征,推荐出具有类似性质的相似物品。目前,协同过滤技术已成为最广泛采用的推荐技术,已经被广泛应用到了很多商业系统中,比较著名的有Amazon、Netflix、淘宝等。
另一方面,随着深度学习应用的爆发式发展,特别是在计算机视觉、自然语言处理和语音方面的进展,基于深度学习的推荐系统越来越引发大家的关注。循环神经网络(RNN)理论上能够有效地对用户偏好和物品属性的动态性进行建模,基于当前的趋势,预测未来的行为。
[描述来源:融合 MF 和 RNN 的电影推荐系统|机器之心]
用于推荐系统的深度学习方法可以分为:
- 基于多层感知机(Multilayers Perception)的推荐系统;
- 基于自编码器(Autoencoders)的推荐系统——将自编码器应用于推荐系统一般有两种常用方式:(1)使用自编码器在瓶颈层(bottleneck layer)来学习低维度特征表征;或者(2)直接在重构层填充评分矩阵的空白处;
- 基于卷积神经网络(CNN)的推荐系统:此种系统中的卷积神经网络大多是用于特征提取(feature extraction)的;
- 基于循环神经网络(RNN)的推荐系统:循环神经网络特别适用于处理推荐系统中的评级和序列特征的时序动态;
- 基于深度语义相似性模型(Deep Semantic Similarity Model)的推荐系统:深度语义相似性模型(DSSM)是一种广泛应用于信息检索领域的深度神经网络。它非常适用于排行榜(top-n)推荐。基础型DSSM由MLP组成,更高级的神经层比如卷积层和最大池化(max-pooling)层可以被很容易地添加进去;
- 基于受限玻尔兹曼机(Restricted Boltzmann machine)的推荐系统;
- 用于推荐系统的深度复合网络(Deep composite models);
下图总结了基于深度学习的推荐系统分类的二维体系,左侧部分对神经网络模型进行了说明,右侧部分则说明了整合模型。
[描述来源:学界 | 一文综述所有用于推荐系统的深度学习方法|机器之心]
另外还有基于知识的推荐系统(包括基于本体和基于案例的推荐系统)是一类特殊的推荐系统,这类系统更加注重知识表征和推理。目前也有许多研究试图将这些不同的技术结合起来,以结合各类技术的长处。
发展历史
1985年,David K. Gifford等学者发表了An architecture for large scale information systems,奠定了推荐系统相关研究的基础。1988年,Stephen Pollock描述了用于筛选文本消息的ISCREEN系统。 ISCREEN包含用于定义规则的高级界面,用于屏幕显示文本消息的组件以及用于检查不一致的冲突检测组件。 这是比较早期的过滤系统。1990年,Ernst Lutz等学者提出了MAFIA,当时的消息过滤系统要求要处理的消息至少是半结构化的,MAFIA系统(MAil-FIlter-Agent)通过提供自动文档分类组件来克服这个限制,自动识别弱结构化文档的相关概念。1992年,David Goldberg等学者提出了Tapestry,第一个协同过滤系统。这是在施乐帕洛阿尔托研究中心开发的邮件系统。 Tapestry的动机来自于电子邮件的使用越来越多导致用户被大量传入的文档淹没。 处理大量邮件的一种方法是提供邮件列表,使用户可以只订阅他们感兴趣的列表。一个更好的解决方案是让用户指定一个过滤器来扫描所有列表,选择感兴趣的文档,而不管邮件究竟在哪个列表中。这即是Tapestry的设计理念,Tapestry工作的一个基本原则是可以通过让人类参与过滤过程来进行更有效的过滤。
推荐系统成为一个相对独立的研究方向一般被认为始自 1994 年明尼苏达大学 GroupLens 研究组推出的GroupLens 系统。该系统有两大重要贡献:一是首次提出了基于协同过滤 (Collaborative Filtering)来完成推荐任务的思想,二是为推荐问题建立了一个形式化的模型。 基于该模型的协同过滤推荐引领了之后推荐系统在今后十几年的发展方向。这个团队的设计思路也延伸到其他产品设置,例如书籍和电影。 相应的推荐系统分别被称为BookLens和MovieLens。
1998年,John S. Breese等学者对基于用户的协同过滤系统的表现进行了评价,使用的算法包括基于相关系数,基于向量的相似度计算和统计贝叶斯方法的技术。他们使用两种基本的评估指标,第一个指标衡量了一组单个预测的准确度,以平均绝对误差为指标;第二个指标衡量推荐的项目排名列表的效用,以用户在有序列表中看到推荐的概率的估计值为指标。2001年Badrul Sarwar, George Karypis, Joseph Konstan, 和John Riedl对不同的基于项目的推荐生成算法(item-based recommendation generation algorithms)进行了比较,主要从计算项目相似度的技术和随后应当使用的推荐生成模型两方面进行比较。他们以k-近邻方法为基准,比较结果显示基于项目的算法比基于用户的算法(user-based algorithm)表现更好,同时能提供比最好的基于用户的算法更好的推荐结果。
Thomas Hofmann于1999年提出了pLSA,并在文中描述了pLSA与LSA(潜在语义分析)的区别,即LSA主要基于奇异值分解(SVD)而pLSA则依赖混合分解。他随后进行了一系列实证研究,并讨论了pLSA在自动文档索引中的应用。他的实证结果表明pLSA相对于LSA的表现有明显进步。同年底,Will Glaser和Tim Westergren提出了音乐基因组计划(Music Genome Project)的设想。2000年1月,他们与Jon Kraft联手创立了Savage Beast Technologies,将他们的想法推向市场。这是比较早的将推荐系统技术应用于实际的商业项目之一。此后推荐系统技术的落地越来越快。如Last.fm于2002年开始使用推荐算法为用户推荐他们可能喜欢的音乐。首次在商业系统中使用协同过滤技术的公司应当是Netflix,他们取得了很好的效果,随后许多公司也纷纷采用了这一技术。如在亚马逊网站上,他们使用推荐算法为每位顾客个性化网上商店。他们在发表的论文中提出了项目到项目协同过滤(item-to-item collaborative filtering),并与常见的方法——传统协同过滤(traditional collaborative filtering),聚类模型(cluster models)和基于搜索的方法(search-based methods)——进行了比较。他们算法的在线计算规模与客户数量和产品目录中的项目数量无关,并能实时生成建议,也可以扩展到海量数据集,生成高质量的建议。Netflix在这一领域也一直在不断研究,在Netflix Prize竞赛上,Yehuda Koren考虑到由于客户对产品的偏好随着时间的推移而变化,对时间动态进行建模对于设计推荐系统或一般顾客偏好模型至关重要而提出了动态推荐系统。随着推荐系统越来越受到重视,ACM RecSys会议于2007年创立,目前已成为是推荐系统领域最好的专门会议。
近年来,随着神经网络的发展,不少研究也将神经网络与推荐系统结合了起来,其中不少方法都在尝试使用一些深度神经网络代替矩阵分解。2017年He等人使用深度学习开发了一个通用框架对用户-条目交互矩阵进行直接建模——而非只对辅助数据应用深度学习。该研究提出的方法完全取代了基于矩阵分解,或矩阵分解作为通用模型特例用于生成用户和条目隐藏特征的方法。该研究提出的通用模型与业内最佳矩阵分解方法(如 eALS 和 BPR)和基础基准(如 ItemPop 和 ItemKNN)在 MovieLens 和 Pinterest 数据集上进行了比较。该方法在两个数据集上的表现均较上述方法有了提高。V. Bogina和T. Kuflik则提出了一个 RNN 模型以结合停留时间(用户花在某个推荐条目上的时间),因此该模型可以提升基于会话的推荐系统在电子商务数据集(Yoochoose)上的推荐准确度。
推荐系统已有的各种应用让我们将其归入了应用阶段。因为推荐系统仍有一些问题尚待解决,而且很多人可能甚至还不知道推荐系统的存在,所以我们没有将其归入社会影响阶段。但推荐系统的应用范围在日益广泛,许多媒体和行业也在日益扩增其影响力;所以我们相信推荐系统很快就将进入社会影响阶段。
主要事件
年份 | 事件 | 相关论文 |
1985 | David K. Gifford等学者发表了An architecture for large scale information systems,奠定了推荐系统相关研究的基础 | Gifford, D. K. (1985). An architecture for large scale information systems. Proceedings of the tenth ACM symposium on Operating systems principles. pp 161-170. |
1988 | Stephen Pollock描述了用于筛选文本消息的ISCREEN系统 | Pollock, S. (1988).A rule-based message filtering system.ACM Transactions on Information Systems (TOIS). 6(3):232-254. |
1990 | Ernst Lutz等学者提出了MAFIA | Lutz, E.; Kleist-Retzow, H. V.; Hoernig, K. (1990).MAFIA—an active mail-filter-agent for an intelligent document processing support.ACM SIGOIS Bulletin. 11(4):16-32. |
1992 | David Goldberg等学者提出了Tapestry,第一个协同过滤系统 | Goldberg, D.; Nichols, D.; Oki, B. M.; Terry D. (1992).Using collaborative filtering to weave an information tapestry.Communications of the ACM - Special issue on information filtering. 35(12):61-70. |
1992/1994 | 明尼苏达大学 GroupLens 研究组成立并推出GroupLens 系统 | Resnick, P.; Iacovou, N. et al. (1994). GroupLens: An Open Architecture for Collaborative Filtering of Netnews. Proceedings of ACM Conference on Computer Supported Cooperative Work, CSCW. pp.175-186. |
1998 | John S. Breese等学者对基于用户的协同过滤系统的表现进行了评价,使用的算法包括基于相关系数,基于向量的相似度计算和统计贝叶斯方法的技术 | Breese, J. S.; Heckerman, D.; Kadie, C. (1998). Empirical Analysis of Predictive Algorithms for Collaborative Filtering. Proceedings of the Fourteenth conference on Uncertainty in artificial intelligence. pp 43-52. |
1999 | Thomas Hofmann提出了pLSA | Hofmann, T. (1999). Probabilistic Latent Semantic Analysis. Uncertainity in Arti cial Intelligence. |
2001 | Badrul Sarwar, George Karypis, Joseph Konstan, 和John Riedl对不同的基于项目的推荐生成算法(t item-based recommendation generation algorithms)进行了比较 | Sarwar, B.; Karypis, G.; Konstan, J. Riedl, J. (2001). Item-Based Collaborative Filtering Recommendation Algorithms. Proceedings of the 10th international conference on World Wide Web. pp 285-295. |
2003 | 亚马逊提出项目到项目协同过滤(item-to-item collaborative filtering) | Linden, G.; Smith, B. and York, J.(2003). Amazon.com recommendations: item-to-item collaborative filtering.IEEE Internet Computing.7(1): 76-80. |
2010 | Yehuda Koren提出了动态推荐系统 | Koren, Y. (2010).Collaborative filtering with temporal dynamics.Communications of the ACM. 53(4):89-97. |
2017 | He等人使用深度学习开发了一个通用框架对用户-条目交互矩阵进行直接建模——而非只对辅助数据应用深度学习 | He, X.; Liao, L.; Zhang, H.; Nie, L.; Hu, X.; and Chua, T. -S.(2017). Neural Collaborative Filtering. Proceedings of the 26th International Conference on World Wide Web - WWW ’17, pp. 173–182. |
2017 | V. Bogina和T. Kuflik提出了一个 RNN 模型以结合停留时间(用户花在某个推荐条目上的时间),因此该模型可以提升基于会话的推荐系统在电子商务数据集(Yoochoose)上的推荐准确度 | Bogina, V.; Kuflik, T. (2017). Incorporating dwell time in session-based recommendations with recurrent Neural networks. CEUR Workshop Proceedings. 1922: 57–59. |
发展分析
瓶颈
推荐系统的主要瓶颈是在权衡方面:随着推荐变得越来越细,就很容易将人们限制在一个已经受益的领域。调整新鲜度所占的百分比是很难选择的;另外做推荐还需要找到更好的推荐与隐私保护之间的平衡。另外,推荐系统的结果除了依赖于算法的选择之外,对数据也比较敏感,如何避免用户提供恶意评价而对推荐系统的结果带来的偏差,以及如何使得那些与任何一群人不一致的用户从推荐系统中受益,都需要更多的突破。
未来发展方向
- 可能会出现更类似人类的推荐,就像是身边的朋友给出的建议一样。
- 推荐系统的应用将快速扩散到很多领域。
- 理想的情况是一个360°全方位的推荐系统:推荐不限于单个领域,而是可以整合一个人的方方面面,从而给出跨领域的更有帮助/更有意义的推荐。
- 涵盖更多领域的、更多的公开数据集,能够有益于在同样的基准上进行比较学习的研究。
- 能够与用户有更多互动的推荐平台,使得评估推荐系统能够在近真实环境中的进行性能改进。
- 在其他领域创造公开数据集,例如学术作者-文章数据集、在线零售数据集、包含用户-推荐条目的交互信息以及有关用户。
Contributor:Yuanyuan Li, Mos Zhang