前言
今天读的论文为一篇于2023年3月15日发表于《中文信息学报》的期刊论文,文章属于综述;文章对基于会话的推荐模型进行了详细的分析、分类和对比,阐明了这些方法各自解决的问题与存在的不足。
摘要
近年来,基于会话的推荐方法受到学术界的广泛关注。随着深度学习技术的不断发展,不同的模型结构被应用于基于会话的推荐方法中,如循环神经网络、注意力机制、图神经网络等。该文对这些基于会话的推荐模型进行了详细的分析、分类和对比,阐明了这些方法各自解决的问题与存在的不足。具体而言,该文首先通过调研,将基于会话的推荐方法与传统推荐方法进行比较,阐明基于会话的推荐方法的主要优缺点;其次,详细描述了现有的基于会话的推荐模型如何建模会话集中的复杂数据信息,以及这些模型方法可解决的技术问题;最后,该文讨论并指出了在基于会话推荐的领域中存在的挑战和未来研究的方向。
引言
随着大数据时代的到来,互联网的规模日益庞大,这为用户带来极其丰富且复杂的信息,使得用户能方便、快捷地获取信息。然而,面对海量的信息,用户往往不能迅速地获取自己需要的内容,导致对信息的使用效率有所下降,也就是所谓的信息超载(Inofrmation Overload)。
解决信息超载问题,目前有两个常用的方法,一是搜索引擎,二是推荐系统。推荐系统根据用户的个人信息或历史行为来学习用户的兴趣偏好,并为用户生成其感兴趣的推荐序列。目前,推荐系统应用于许多领域,例如,电子商务、新闻推荐、音乐推荐以及位置服务等。传统推荐方法主要包括两种:一是基于内容的推荐方法,二是基于协同过滤的推荐方法。
基于内容的推荐算法
基于内容的推荐方法是根据用户(User)的兴趣简介与项目(Item)的特征描述实现推荐。其中,用户的兴趣简介也就是用户的兴趣偏好,它可以来源于用户主动输入,但往往是从用户与过去项目交互中获得的;项目的特征描述可以是项目的描述或用户对该项目的评论。基于内容的推荐方法在一定程度上可以解决冷启动(Cold-Start)问题。同时,基于内容的推荐方法具有很好的可解释性,但基于内容的推荐方法在项目的特征提取上存在一定难度,且难以挖掘出用户的潜在兴趣偏好。
基于协同过滤的推荐算法
基于协同过滤的推荐方法是基于用户或项目间的相关性进行推荐的方法,主要可以分为两类,即基于用户的协同过滤以及基于项目的协同过滤。
基于用户的协同过滤,也可称为K-NN(K-Nearest Neighbor)协同过滤,其核心思想是根据用户的历史行为找到与当前用户行为偏好相似的用户,然后为该用户推荐这些相似用户感兴趣的项目。基
于项目的协同过滤的方法关注的不是用户之间的相似性,而是项目之间的关联性,也就是说,若两个项目被相同的用户喜欢或不喜欢,那么这两个项目是相关的,系统为用户推荐相关的项目。基于协同过滤的推荐方法能够挖掘出用户的潜在兴趣,帮助用户发现新的兴趣,提高推荐的质量,但是其难以解决冷启动问题;同时,基于协同过滤的推荐方法受到数据稀疏性的影响,随着数据量的增大,数据的稀疏性也随之增大(如一个用户只与所有项目中的几个有交互),这就使得计算最邻近(最相似)用户或项目的准确率降低,影响最终推荐结果。
基于序列的推荐算法
以上传统的推荐方法各有优缺点,随着互联网规模的增大,数据量也越来越大,传统推荐方法的不足也越来越明显。除了它们各自的缺点外,传统推荐方法存在的共同点是:只能够考虑用户长期静态偏好,而忽略了用户兴趣随时间的变化。因而出现了序列推荐(Sequential Recommendation)。这一类专注于行为序列性的推荐模型,通过对用户历史行为的序列化建模,学习用户的兴趣,进而对用户进行相关推荐。随着序列推荐的深入研究,其弊端也开始出现,即:偏向于长期兴趣的学习,而忽略了用户短期内偏好的转移,使得用户在某一段时间内的兴趣变化被其历史交互行为所掩盖,从而生成不可靠的推荐结果。产生这个问题的原因是忽略了用户行为的事务性结构,例如用户之前长期购买牛仔裤,某一时段突然喜欢运动裤,但由于用户购买的牛仔裤历史记录远远多于运动裤,使推荐系统认为用户的偏好仍为牛仔裤。在此背景下,将用户行为分解成更小的粒度,考虑用户行为的事务性结构,捕捉用户短期偏好的转移是十分有必要的,因此基于会话的推荐系统(Session-Based Recommendation System,SBRS)得到了快速的研究和发展。
基于会话的推荐算法
基于会话的推荐方法是将用户的全局交互行为分割成一个个更小粒度的事务单元,每个事务单元是由用户的部分交互行为组成的,这些事务单元被称为会话。
会话可以在不同的场景中表现出不同的含义,例如,在电子商务领域,会话可以是用户一次购买的物品,或一小时内添加到购物车的商品;在旅游场景,会话可以是用户一年内游玩的景点;另外,会话也可以是用户一小时内浏览的网页、一天内看的电影等。基于会话的推荐算法通过学习这些会话内以及会话间项目的依赖关系,挖掘出用户的兴趣偏好,并为用户生成其感兴趣的推荐列表。
如图1所示,用户的购物行为构成用户与项目的交互序列,其中,U表示用户、V表示项目、S表示会话。在传统的推荐方法中往往通过全局的项目序列来挖掘用户兴趣,而在基于会话的推荐系统中,用户的购物行为会根据购物的次序将用户行为分割成粒度更小的会话,以这种方法保留用户行为的事务结构,获取用户行为中更多的转换信息和依赖关系;基于会话的推荐方法不仅仅关注用户最新的交互行为,同时包括当前会话中其他项目以及历史会话。
对当前推荐结果的影响,这种只需要根据会话中物品依赖关系进行推荐的特性,使其能够为匿名用户进行推荐。总的来说,基于会话的推荐方法以会话作为基本单元,不仅能够捕捉更多的项目间的转换信息和依赖关系,还能聚焦于当前会话,适时捕捉到用户兴趣的变化,从而改善推荐的效果。
基于会话推荐方法解决了传统推荐系统只关注用户长期静态偏好、无法及时发现用户兴趣变化的问题。但是,基于会话的推荐方法仍存在一些问题,例如,基于会话的推荐方法难以捕捉用户长期静态偏好。表1在输入、核心思想、优点与缺点等方面,将传统的推荐方法与基于会话的推荐方法进行了对比,能直观地表现出各类推荐方法的优势与不足。
针对基于会话推荐方法存在的问题,许多学者开展了深入的研究。近年来,深度学习的发展为基于会话的推荐方法带来了机遇。随着深度学习在自然语言处理、语音识别、图像识别等多个领域的突破性进展,循环神经网络(Recurrent Neural Network, RNN)、图神经网络(Graph Neural Network,GNN)等深度学习模型被应用于基于会话的推荐算法中。目前,随着新技术的不断发展,国内外的基于会话的推荐领域的综述性文章较少,且这些文章并未对目前已提出的方法和已解决的问题进行详细的对比、分析和总结。因此,一篇详细归纳和总结在基于会话的推荐领域已取得的进展的综述文献十分必要。本文对基于会话的推荐方法进行了详细、全面的调研,对已有的研究成果进行梳理.
基础知识和相关定义
基于会话的推荐是推荐系统领域的一个子任务,其本质是通过用户过去的行为记录来挖掘用户的兴趣偏好,并根据用户的兴趣偏好生成其感兴趣的推荐列表。与传统的推荐方法关注用户长期偏好不同,基于会话的推荐方法聚焦于用户短期偏好的转移,这就意味着基于会话的推荐方法能够及时感知用户兴趣变化,且用户当前的意图不会被历史行为所淹没,从而使推荐的结果更加可靠。上述优点得益于会话这种基本单元的设定,它是通过将用户的全局行为分割成更小的粒度得到的。会话是一组项目的集合,如用户一次购买的项目、一小时内听的歌曲都可以构成一个会话。虽然会话也是由与用户交互的项目组成的,但其具有事务性。换句话说,会话能有效地保持数据的自然特性(更符合用户实际的行为习惯),避免了会话数据动态和局部信息的丢失。
基于会话的推荐方法不仅能充分分析会话内的项目分布,也能捕捉不同会话内项目的依赖关系以及不同会话间的转换信息。这些是传统推荐方法无法考虑的信息,这些信息可分别被称为会话内上下文以及会话间上下文。基于会话的推荐方法通过分析会话内上下文以及会话间上下文挖掘出用户行为模式,生成与用户偏好相匹配的个性化推荐结果。按推荐结果进行分类,基于会话的推荐方法可分为下一项推荐和下一会话推荐。下一项推荐是根据当前会话和历史会话对当前会话的下一个可能项目进行推荐;下一会话推荐是指根据邻近会话与历史会话推荐出下一个会话中一个或多个可能项目。目前大多数研究的是下一项推荐方法,而对于下一会话推荐方法的研究相对较少。
后文将用到的符号表在这儿贴出来:
基于会话推荐系统的分类
近年来,基于会话的推荐方法发展迅速,众多学者提出了大量的模型和方法,本节从技术角度对基于会话的推荐方法进行分类。首先介绍如协同过滤、矩阵分解、马尔科夫链等的传统会话推荐方法;进而介绍基于深度学习的会话推荐方法,包括循环神经网络、注意力机制、图神经网络等,最后介绍基于强化学习的会话推荐方法。
传统的会话推荐方法
- 基于协同过滤的推荐方法
协同过滤是传统的推荐系统中常用的方法,其主要包括两种算法:基于用户的最邻近算法和基于项目的最邻近算法。以基于用户的最邻近算法为例,其核心思想是根据用户的历史行为找到与当前用户相似的用户,然后为该用户推荐这些相似用户感兴趣的项目。该方法存在两个核心问题:一是如何寻找用户u的相似用户,二是如何计算N个相似用户对项目v的评分。将协同过滤引入基于会话的推荐方法,其核心思想不变。
- 基于矩阵分解的会话推荐方法
推荐方法往往是通过分析用户的历史交互数据来挖掘用户偏好,通常这些数据包含两种类型:用户和项目。这些数据可以构成一个矩阵,一维代表用户,另一维代表用户感兴趣的项目。但由于大多数用户只与少量项目交互,因此该矩阵是比较稀疏的,单纯依赖这种稀疏矩阵去产生推荐的正确率是十分低下的。矩阵分解通过补充隐式反馈信息构造一个相对稠密的矩阵,然后将用户和项目映射到同一潜在向量空间中,使得每一个用户u都对应一个潜在的向量qu,每一个项目v都对应一个潜在向量pv,此时,用户u对项目v的评分ru,v可表示为下图所示式子,即用户的潜在向量qu表示与项目的潜在向量表示pv的点乘。
- 基于马尔科夫链的会话推荐方法
协同过滤为了寻找用户或项目的邻居,往往过于依赖用户与系统的历史交互数据,尤其是用户对项目的评级(评分)信息,但是忽略了用户与项目交互的顺序性。例如,用户在浏览商品时,用户的点击浏览操作是有次序的(一个商品到另一个商品),协同过滤无法对这种顺序行为进行建模,从而无法挖掘出用户行为的序列模式。
用一阶马尔科夫链对会话内项目的转移进行建模,其核心思想是计算一系列项目的转移概率,然后,将用户的购物序列与计算出的转移概率的序列进行匹配,将概率较高的项目添加至候选列表。
上述几种推荐方法的比较:
基于深度学习的会话推荐方法
随着算力的不断提升和深度学习的不断发展,越来越多的科研人员将深度学习应用到基于会话的推荐方法中,并取得了一系列的成果。基于深度学习的会话推荐方法不仅能够分析数据间的显式联系,还能够学习到用户、项目等数据的隐式特征,生成表达能力强大的嵌入表示,进行更可靠的推荐。不同的深度学习模型被应用于基于会话的推荐系统中来解决不同的问题。例如,会话集常按照时间戳或用户实际的交互顺序来进行分割,会话集中的会话往往具有序列关系,同时,会话中的项目也具有顺序关系,因此对序列关系敏感的循环神经网络被应用于基于会话的推荐方法中。传统的推荐方法往往只能够考虑到用户的长期偏好,而基于会话的推荐方法将用户行为分割成更小粒度的会话集,通常只能聚焦于用户的短期偏好。为了使基于会话的推荐方法既能考虑用户的长期偏好也能够关注用户的短期偏好,注意力机制被应用其中;图神经网络能够建模会话集中复杂的项目转移关系,从而学习出表达能力极强的项目嵌入表示,在基于会话的推荐方法中广泛应用。后文将根据模型类别对已有的推荐方法进行分类总结,并对各类方法进行详细对比。
基于循环神经网络的会话推荐方法
传统的推荐方法在分析用户交互数据时,每一个项目都是相互独立的,无法捕获项目间的连续信息。然而,用户的下一个交互项目,往往会受到历史交互记录的影响(尤其是上一个交互项目),因此关注项目间的序列信息是十分必要的。RNN最早被应用于自然语言处理领域,并取得了显著的成绩。RNN的特性是对序列化数据敏感,而在基于会话的推荐系统中,每个会话是由一组连续的项目组成的,可被看做是一个序列。因此,Hidasi等人将RNN应用于基于会话的推荐方法,提出了 GRU4Rec模型,这是循环神经网络首次被应用于基于会话的推荐方法。
下表详细展示了基于循环神经网络的会话推荐方法的比较。
基于注意力机制的会话推荐方法
注意力机制最早被应用在NLP领域中的翻译模型,其能够有效地抽取序列信息中的有用信息,忽略无效信息,随着对注意力机制的深入研究,其被应用于基于会话的推荐领域。注意力机制能够强调用户当前的意图,这意味着推荐方法能够忽略用户的一些错误交互行为(误点击),这是传统的基于RNN的会话推荐方法所欠缺的能力。
基于图神经网络的会话推荐方法
以上基于深度学习的会话推荐方法主要聚焦于用户行为的序列模式,通过模拟连续项目之间的单项转换学习用户的偏好,忽略了会话中上下文之间的转换,即会话中其他的项目(包括同一会话中的项目以及不同会话中的项目)。图神经网络能够通过图节点之间的消息传递来捕捉节点间的依赖,随着图嵌入学习的发展,图神经网络也被广泛应用于基于会话的推荐方法中。基于图神经网络的会话推荐(Session-basedRecommendationwithGraphNeuralNetworks,SR-GNN)首次将图神经网络应用到基于会话的推荐方法中。SR-GNN将会话序列构建成只包含一种类型节点的图结构,并采用GNN捕捉项目间复杂的转换关系,生成表达能力更强的潜在项目表示向量。其模型结构如下图所示。
其他基于深度学习的会话推荐方法
除了上文提到的基于循环神经网络、注意力机制、图神经网络的会话推荐方法外,近两年基于深度学习的会话推荐方法快速发展。在实际的场景中,与用户交互的下一个项目往往是由之前多个项目共同作用触发的,即可能被推荐的下一个项目与之前的项目存在更高阶的关系,并非是简单的两两相互依赖(一阶依赖)。
在会话推荐中,大部分方法只能根据短期会话中产生的有限项目来完善相应的用户或会话表示,这会产生数据稀疏的问题。近年来,对比学习作为一类新兴的解决数据稀疏的方法,在会话推荐中逐渐推广。
基于深度学习的会话推荐方法,能够建模会话集中丰富的数据信息,不同的深度学习模型都拥有其各自的优势,能够解决基于会话推荐中遇到的不同问题。表5列出了不同深度学习模型的工作机制和优缺点。
基于强化学习的会话推荐方法
会话推荐通常以自监督进行训练,给定会话序列,计算下一项推荐。这种训练模式可能会根据项目相关性找出最优的结果,但是对于用户来说有可能还有其他需求。近年来,推荐结果多样性和新颖性的重要程度逐渐提高,因为推荐多样化的项目更有可能符合用户的实际需求。为了针对上述多个目标优化推荐系统,通常需要用可微函数进行优化,然而在目标只能以不可微的形式呈现的领域难以使用多目标优化(Multi-ObjectiveOptimization,MOO)。
基于会话的推荐方法未来研究方向
近年来,基于会话的推荐方法快速发展,众多学者针对已存在的问题提出了不同的模型方法,如上文提到的利用循环神经网络挖掘会话中项目的序列模式、利用图神经网络建模项目间复杂的转换关系等。但目前对于基于会话的推荐方法的研究仍处于初级阶段,仍存在一些挑战,这些挑战是未来值得研究的方向。本节将针对基于会话的推荐方法可能面临的挑战进行阐述。
-
基于会话的推荐中的长期偏好
在推荐系统中,用户的偏好往往分为长期偏好(静态偏好)和短期偏好(动态偏好)。基于会话的推荐方法往往是通过学习出当前会话的嵌入向量去进行下一个项目的推荐,通常这只能捕捉用户的短期偏好(动态偏好),更多关注用户兴趣的变化。然而,在推荐系统的实际应用中,用户的长期偏好和短期偏好对于提升推荐方法的性能都是十分重要的。因此,为了提高基于会话的推荐方法的推荐效果,挖掘用户的长期偏好是有必要的。然而,会话具有事务属性,连续的会话相关性可能不强,使用连续的会话数据学习用户长期偏好的方法不可行。因此,如何在会话数据集中构造长期相关会话(邻居会话)数据是学习长期偏好的关键。 -
用户多行为联合推荐
在实际场景中,用户的交互行为常常是多种类型操作同时进行的。例如,在购物场景中,用户的行为可能包含点击商品、添加购物车、购买商品等,而且这些类型的操作是无序的,即用户在进行点击操作后可能进行添加购物车操作或购买操作。而不同类型的交互行为对于下一项可能推荐的项目的影响是不同的。在以往研究所用的数据集中,每个会话往往是由同种交互类型的项目组成的,但是,下一个可能推荐的项目可能也会受到其他类型交互的影响。如图9所示,用户在会话s1中进行了如下操作,连续点击项目v1,v2,v3后进行购买项目v3操作,其中项目v1,v2,v3都属于T恤类别。用户在购买操作后,对当前类别商品的感兴趣程度降低,因此推荐方法应捕捉到用户当前的兴趣变化,为用户推荐其他类别的商品,如图9中的项目v4。在会话s2中,用户在进行点击操作后,执行了添加购物车行为,此时,用户对当前类别的商品仍十分感兴趣。由此可见,用户不同的交互行为会影响下一个项目的推荐。如何将用户多种行为结合,实现用户多行为的联合推荐是一个值得研究的方向。
-
下一个会话的推荐
目前已有的基于会话的推荐方法,大多数是根据当前会话的项目序列去推荐用户感兴趣的项目,推荐项目仍属于当前会话,这种推荐方式可以被称为当前会话的下一项推荐,但该方式存在一个问题,当一个新的会话产生时,基于会话的推荐方法无法为用户推荐会话的第一个项目。虽然推荐方法可以根据用户的历史会话来挖掘用户偏好,但是若上一个会话距当前的时间间隔较长,则分析上一个会话的项目序列作为当前用户兴趣偏好的意义不大,因为推荐方法无法捕捉用户当前的兴趣偏好,从而无法发挥基于会话推荐方法的优势(关注用户的短期偏好)。近年来,对于下一会话推荐的研究较少,但它仍是一个值得研究的方向。 -
跨域会话推荐
现有的会话推荐大多数是针对匿名用户的会话行为进行推荐,而在会话推荐中引入用户信息以提高推荐性能成为最近的研究热点。然而在实际使用中会出现用户信息稀疏的问题,此时可以考虑与跨域推荐相结合以缓解数据稀疏的问题[69]。但是跨域推荐与会话推荐的结合面临着诸多的挑战。首先是不同域之间数据的差异性。由于不同的数据域包括不同种类的项目,如电影域和音乐域,将这两个域的数据进行结合时需要考虑如何进行跨域转换。其次是时间异步性,即用户在不同域上的相关行为可能时间跨度特别大。如用户多年前看过哈利波特小说,但可能最近才去看哈利波特的电影。因此对不同域的会话行为不能简单地按照发生的时间进行划分。