蒋仕艺
(四川大学计算机学院,成都610065)
信息化时代,大量信息充斥于网络,推荐算法的目的在于帮助用户从海量的数据中,挑选出用户感兴趣的目标数据,大量网站都已经开始应用了相应的推荐算法帮助推荐自己的产品或者服务,并取得了良好的效果[1]。传统的推荐算法,更偏向于以静态的方式对用户-物品行为进行建模,得到了用户的长期的一般偏好,而现实生活中,用户的偏好会有很多是短时、非持续的。序列推荐算法将用户与物品的交互视为了动态的、持续性的序列,它是具有一定顺序性的,其能有效捕获用户的短期偏好,显著提高推荐效果。
传统推荐算法,主要包括了基于内容的推荐算法、协同过滤算法和混合推荐算法等。基于内容的推荐算法一般依赖于自然语言处理的相关知识,通过计算得到物品的向量特征表示,进而得到用户的偏好,进行推荐相似的物品,该算法推荐效果的好坏主要是取决于对物品特征向量的建模效果。协同过滤(Collaboration Filtering)算法因其现实工程实现较为简单,同时也可以提供不错的推荐效果,所以协同过滤算法成为了推荐算法中应用范围最广的算法。但是它也存在着一些问题影响推荐效果,例如数据太少的“冷启动”问题,不能表达瞬时偏好等。混合推荐算法是为了提高推荐效果,融合了多种推荐技术的算法,当前大多数推荐算法主要是融合了深度神经网络和协同过滤,主要能提升推荐效果,还可以一定程度解决协同过滤算法的弊端(数据稀疏、个性化不足等)。
序列推荐算法由于其针对行为序列进行建模,在可以不过多依据用户长期偏好的情况下,更加偏向于用户当前瞬时的、短暂的偏好,从而得到较好的推荐效果。例如,用户过去喜欢国外手机品牌,但是随着目前国内手机品牌的日益崛起,用户开始将更多注意力关注于国内手机品牌了,大量浏览关注国产品牌手机。传统的推荐算法,难以获取用户兴趣的快速变化,而序列推荐能通过用户与物品的交互捕获用户的动态偏好。
目前,序列推荐算法大体分为两大类。一类为基于传统推荐算法的序列推荐,更多的采用了较为经典传统的协同过滤和马尔科夫链等算法。另一类为融入深度神经网络的序列推荐,在初期,主要应用了循环神经网络(Recurrent Neural Network,RNN)、长短期记忆网络(Long Short-Term Memory,LSTM)和卷积神经网络(Convolutional Neural Network,CNN)等,最近随着图神经网络(Graph Neural Networks,GNN)在图像、自然语言处理等领域的应用并取得快速发展,研究人员也开始将图神经网络用于交互序列建模,并取得了优异的表现。
序列推荐作为推荐算法的一个分支,在初期,研究人员更多的是直接将成熟的、经典的传统推荐算法应用于序列推荐中。协同过滤作为推荐算法中使用最广泛的算法,潜在因子表示模型和嵌入表示是其中的典型代表。潜在因子表示其首先通过分解学习得到用户和物品的潜在表示,然后利用得到的表示信息进行预测。嵌入表示将学习得到的潜在表示输入,利用余弦或皮尔逊相似度来计算用户与物品的相似度作为预测。马尔科夫链由于其本身定义为假设某一时刻状态转移的概率只依赖于它的前一时刻的状态,也很自然地应用到了序列推荐当中。
接下来对两类传统推荐模型与方法进行相应介绍。
Hidasi 等人[2]提出一种通用的分解框架,以偏好模型作为输入,计算输入维数的潜在特征矩阵,一个维度为用户,另一个维度为物品,其他行为等操作可以影响用户的偏好,该框架能让不同的线性框架在任意的上下文感知的推荐任务中进行实验,为序列推荐算法提供了一个新的思路。He 等人[3]提出了可扩展的张量分解方法,采用一个模型来模拟用户、物品和交互的三种关系,物品作为一个点嵌入到“转移空间”内,每个用户作为空间内的一个转移向量,用户从一项到另一项的转换由特定于用户的转换操作捕获,用户的待选推荐完全由用户的过去交互的物品和用户转移向量得到,最终得到了用户与待选物品之间的潜在表示,直接利用了欧氏距离来表示的物品预测。该类模型虽然较为简单,但是推荐效果不错。
协同过滤在推荐算法中也存在一些不足,数据过分稀疏、新用户等问题都会影响推荐效果,同时由于现实用户交互序列中,存在时间和空间的关系,这种关系也不能很好通过协同过滤进行表达出来,进而影响了推荐效果。
基于马尔科夫链的序列推荐模型将用户与物品的交互序列直接进行建模,得到序列模型,通过利用马尔科夫链的特点,用以预测下一次交互的物品。Rendle等人[4]成功把马尔科夫链应用到了短序列的序列推荐模型中,它能在短序列中捕获到物品的转换,即使在数据一定稀疏的情况下也能表现良好。Feng 等人[5]先将每个兴趣点(POI)通过距离嵌入映射到一个潜在空间中,然后利用马尔科夫链模型预测POI 的变化,POI 之间的距离作为衡量两者序列关系的依据,最后依据排序进行推荐。该模型依据基于马尔科夫链的理论依据,认为短时间内的两个POI 的访问,对后者POI 的访问会受上一个POI 访问的影响。
马尔科夫链用于序列推荐也存在着明显的不足,首先就是其只能在短序列当中取得明显的作用,当序列长度太长时,推荐效果显著下降。其次,它更多的是获取单个物品与单个物品之间的联系,而忽略了多个物品之间相互作用,而多个物品之间相互影响正是现实序列的重要特征。
近年来,随着硬件技术的发展,深度神经网络逐渐从理论走向了实际,并且逐步应用到了推荐算法当中。主要应用到的深度神经网络模型包括了循环神经网络(RNN)、卷积神经网络(CNN)和图神经网络(GNN)等。
接下来对三类神经网络模型与方法进行相应介绍。
循环神经网络(RNN)初期在图像、音频和自然语言处理等领域取得了较大成功,RNN 由于其网络结构的特点,通过门(gate)这一结构,可以有选择性的让信息在循环神经网络中进行流通,并衍生了许多变体模型。
B. Hidasi 等人[6]创新性的将RNN 带入到推荐算法,把一个会话点击了一系列物品的交互当成了一个序列,将该序列输入到模型当中,预测下一个点击的物品。该模型使用了RNN 融入进序列推荐,解决了在缺少用户历史长期记录的情况下,仅仅使用交互序列,推荐效果不佳的问题。作为RNN 的变体,Wu 等人[7]采用了长短期记忆网络(LSTM)构建模型,用来适应用户与电影的动态性,而达到更精准的视频推荐。每当用户对电影进行一次评分之后,利用LSTM 模型更新用户表示,相对应的电影表示的也进行更新,推荐模型通过二者的表示预测用户对某电影的评分。针对单层RNN模型不能有效捕获用户长期偏好的问题,Quadrana 等人[8]提出了层级循环神经网络模型(HRNN)。针对了不同的用户群体采取了不同策略,如果用户有历史记录,则根据用户历史记录得到一般偏好,并传递给下一个序列,如果用户没有历史记录,则单纯对用户序列行为进行建模。相较于单层的RNN 模型,该模型的优势在于,可以融入用户的一般偏好,再结合序列信息反映的短期偏好,共同提高推荐效率。Wu 等人[9]提出了用户过去的行为和现在的行为对用户偏好的影响会随着时间的变化而变化,利用了上下文时间注意力机制(Con⁃textualized Temporal Attention Mechanism)去学习用户过去行为的影响权重,既包含行为本身的信息,还附带了时间、空间信息,最后融合双向循环网络(BiRNN)一起输出。
卷积神经网络(CNN)同样是率先在计算机视觉、自然语言处理等领域取得重要突破,受此启发,研究人员也开始探究CNN 在序列推荐算法领域的应用。
Tang 等人[10]提出了Caser 模型,把在时间和空间上距离最近的一些物品交互序列当做一个“图像”矩阵,该矩阵的行是作为物品交互顺序的表示,然后使用不同的卷积滤波器学习序列模式作为图像的局部特征,该模型不仅可以表示用户序列偏好,还可以表示出用户的一般偏好。但是Caser 模型在面对长序列时,由于CNN 的结构限制,会丢失一些重要的、重复的信息,序列越长,表现出来的问题就越明显。Yuan 等人[11]针对CNN 在长序列中表现不佳的情况,在Caser 模型基础上,提出了NextItNet 模型,该模型的核心是采取扩张的CNN,区别于标准的CNN 中,接受域宽度的是线性增加,而扩张的CNN 接受域宽度采取的是指数级增长,利用的信息更加宽广,从而达到了在使用相同核和相同层次的情况下,较之传统的CNN 模型,能高效处理长序列的丰富信息。
传统的深度学习方法被大量应用在提取欧氏空间数据的特征,然而实际生活中大量的数据存在场景都不是简单的欧氏距离能生成表达的。图(Graph)作为一个较为复杂的数据结构,在描述物品与物品之间或者物品与用户之间的交互较为贴合现实世界,也正是因为图的复杂性使得图神经网络在序列推荐的应用上存在相应的困难。
Wu 等人[12]第一次将图神经网络(GNN)应用于序列推荐,提出了SR-GNN 模型,模型把将每个会话序列当做一个有向图,针对重复的边和节点,其中采取了边权重均一化,然后利用GNN 得到节点潜在向量,通过门控制,得到最好的节点向量表示,最后通过对局部和全局向量的拼接,得到了结合了长期短期偏好相结合的序列向量表示,推荐效果得到明显提高。Xu 等人[13]利用图神经网络和自注意力网络的互补性,提出了GC-SAN 模型,利用了多层自注意力网络得到长距离之间的全局依赖关系,模型寻求在相邻项中建立一个一个复杂的上下文表示关系,从而得到了比SR-GNN模型更加好的推荐效果。
图神经网络在序列推荐领域尚处在起步阶段,但是已经取得了不错的效果,具备很强的发展潜力。
如今推荐算法已经逐渐成熟,在各个领域都得到了应用,从最初的电商网站、视频网站到如今的各种手机应用软件,都能看到它的影子。序列推荐,作为推荐算法的子领域,在过去几年也取得了长足发展。序列推荐不仅可以针对已知用户进行融合用户特征的个性化推荐,更可以针对未登录的匿名访问者的浏览记录进行推荐。图神经网络在序列推荐中的应用,为序列推荐发展开辟了新的发展方向,值得更多的研究人员在图神经网络上进行探索。本文通过介绍了两大类序列推荐算法的模型与方法,希望能给相关研究人员对在列推荐算法领域提供相应的帮助。