蒋宗礼, 李静文
(北京工业大学信息学部, 北京 100124)
大数据时代带来的海量信息导致用户很难快捷、精准地找到目标内容,甚至迷失在信息中找不到目标内容. 推荐系统能够帮助用户解决“信息过载”问题,同时帮助公司提高对用户的吸引力,增加用户黏性[1]. 传统的推荐系统存在“冷启动”的问题[2],为了缓解该问题,一些学者将辅助信息纳入推荐模型. 然而,过多的辅助信息也给推荐系统带来新的挑战. 由于现实世界的异质性,辅助数据通常包含不同类型的实体,同时它们之间存在多种类型的交互,而将这些相互作用的对象建模成同质信息网络的方法往往只抽取实际交互之中的部分信息,没有区分交互系统中对象及关系的差异性,这样就造成信息亏损. 因此,越来越多的研究人员开始将这些数据建模为异质信息网络. 与同质信息网络相比,异质信息网络可以融合更多类型的对象及其之间复杂的交互关系.
目前,很多学者对异质信息网络的表示进行了研究,基于异质信息网络也可以开发出各种数据挖掘任务,例如链路预测、分类、聚类等. 其中,基于异质信息网络的推荐任务越来越受到研究人员的关注. Yu等[3]引入基于元路径的隐含特征,分别在全局和个性化级别上定义推荐模型. Zhao等[4]在基于异质信息网络的推荐中引入元图,然后通过“矩阵分解+因子分解机”的方法融合异质信息网络. Wang等[5]采用两层注意力机制对不同元路径上生成的用户和项目特征的重要性进行建模. Hu等[6]设计了注意力机制,利用元路径的上下文信息进行推荐. Shi等[7]设计了基于元路径的随机游走策略,将得到的异质信息和矩阵分解模型融合. 但这些基于异质信息网络的推荐存在3个缺陷:1) 在异质信息网络的信息挖掘中,忽略了节点的内容特征,难以充分处理具有丰富的节点属性特征的异质信息网络;2) 使用元路径捕获语义信息的方法存在用户和项目之间部分交互信息丢失的问题;3) 嵌入方法中隐藏层和推荐模块之间单向的信息流导致更新的异质信息网络不能被推荐模块感知,而现有的方法仅仅是对推荐进行优化.
图神经网络能够端到端地拟合输入数据和输出数据之间的函数关系,从结构和功能2个方面对数据整体特性建模,很好地刻画物理世界. 得益于图神经网络的发展,很多学者提出了基于图神经网络的推荐方法[8-11]. 因此,结合图神经网络,本文提出基于异质信息网络的多任务推荐模型(multi-task learning based heterogeneous information network for recommendation, MHRec). MHRec中的分层注意力分别在多视图嵌入层和语义注意力层捕捉节点的属性信息和语义信息. MHRec利用链路预测任务和推荐任务的相关性,使用多任务学习方法同时学习链路预测任务来缓解使用元路径造成的部分链接丢失问题,并且该模型是一个端到端的模型,直接对推荐任务进行优化,使得推荐任务及时感知更新的异质信息网络图. 本文通过以上方法解决了目前研究存在的3个问题.
传统的推荐系统通常依赖于协同过滤方法,尤其是矩阵分解,其利用用户项目的历史交互进行推荐. 矩阵分解将用户项目的交互矩阵分解出因子向量形式的用户特征和项目特征. 因为矩阵分解能够处理大规模数据,所以其已经在很多平台(例如亚马逊和易趣)上得到部署. 遗憾的是基于协同过滤的推荐系统存在“冷启动”问题,新用户或新项目无法获得历史数据. 为了缓解“冷启动”情况,一些学者开始在推荐模型中融合附加的上下文信息,这些上下文信息也称为辅助信息.
最近,深度学习的发展促进了推荐系统的发展. 多层感知器[12]、图神经网络[13]、自编码器[14]和其他深度神经架构已经被引入推荐模型,并显示出很好的结果.
近几十年来,推荐辅助数据大量增加. 然而,使用传统的网络分析方法很难管理和利用这些异质且复杂的信息. 异质信息网络提供了一种对数据异质性建模的新思路,它能为推荐任务描述辅助数据中的结构信息和语义信息.
Feng等[9]设计了优化框架OptRank,利用异质信息来缓解社交标签推荐系统的冷启动问题. Yu等[15]提出将用户偏好数据经由元路径扩散,建立了一个属性丰富的异质信息网络. 随后,他们通过考虑个性化来改进模型. Luo等[10]采用PathSim度量用户、项目和用户项目对之间的关系. 他们使用统一的矩阵分解模型将异质信息整合到社交推荐任务中. Shi等[16]设计的SemRec考虑了异质信息网络中链接的属性值和推荐中每个用户的不同元路径的个性化权重. Pham等[8]提出的HeteRS将异质信息网络表示为多个转移矩阵,每个转移矩阵对应一种对象到另一种对象的关系. HeteRS通过一些查询节点将推荐问题转化为节点邻近度计算问题,然后使用多元马尔可夫链进行求解. Fang等[17]设计了一种新的游走策略,可以引导随机漫步生成带有偏好的节点序列,使用异质Skip-Gram学习节点的特征表示,最后结合表示学习和贝叶斯个性化排序得到推荐结果. 以上基于异质信息网络的推荐模型主要基于元路径的相似性,这种相似性受到高计算复杂度的困扰,并且不能完全反映异质信息网络中用户和项目的潜在特征.
近年来,人们尝试利用异质信息网络嵌入来有效地挖掘基于异质信息网络的用户和项目特征. Yu等[18]提出通过元路径学习用户嵌入,然后通过计算用户嵌入的余弦相似度来识别社交推荐中的高相似度用户. Han等[11]提出的NeuACF模型通过不同的元路径提取用户和项目不同方面的潜在特征,使用深度神经网络学习并且融合这些潜在因素. Shi等[7]提出的HeRec采用随机游走生成项目序列,并学习项目的嵌入表示,将转换对象嵌入并集成到扩展的矩阵分解方法中. Chan等[19]通过计算每个元路径的数量从元路径中提取特征,使用多层感知机学习用户和物品的特征表示. Hu等[6]在基于异质信息网络的推荐中不仅考虑了不同元路径的特征嵌入,还考虑了用户和项目之间的相互作用.
链路预测任务可以概括为:给出不相交的源节点s和目标节点t,预测这对节点是否有关系. 在现实生活中,链路预测可以用于预测未来的行为,识别难以直接观察到的但是可能存在的关系. 部分链路预测方法是利用采样策略,平滑节点嵌入,例如Metapath2vec[20]、HHNE[21],它们都是提出一个偏好随机行走框架,使用Skip-Gram模型来最大化目标节点的概率. 但是这种处理异质信息网络的方法在重建原始图时会丢失信息. 为此,一些学者引入图神经网络,Wang等[5]提出HAN模型,该模型整合节点级注意力和语义级注意力,从异质信息网络图中学习节点嵌入.
多任务学习是一种旨在同时解决多个任务的机器学习方法,它可以利用其他相关学习任务中的有用信息来帮助解决数据短缺问题. 多任务学习可以同时优化多个相关的学习任务,深度学习不需要设计明确的公式就能学习数据的潜在表示,因此,多任务学习已经开始使用深度神经网络框架. 共享方式分为2种:硬共享和软共享. 硬共享是共享所有任务之间的隐藏层;软共享是每个任务都有自己独立的隐藏层和参数.
Ranjan等[22]采用多任务学习的方法,能够同时做人脸检测、关键点定位、姿态估计和性别预测4项任务. Seltzer等[23]将多任务学习应用于连续音素识别任务,依次从3个备选的次要任务中选择1个扩充主任务,分别从3个方面提高连续音素识别的性能. 为了解决感知次优性问题,Li等[24]提出了一种基于图神经网络的多任务学习框架,对交通的交互进行建模,同时识别和预测交通参与者的交互行为.
本文基于异质信息网络和多任务学习同时学习链路预测任务和推荐任务. 有关异质信息网络、链路预测任务和推荐任务的基本概念定义如下.
定义1异质信息网络可以用图G=(V,E)来表示,V代表节点集,E代表边集,它存在2种映射函数Φ:V→A和Ψ:E→R.其中A和R分别表示节点类型和边类型且必须满足|A|+|R|>2.
图1(a)显示了一个根据数据集LastFM构建的异质信息网络示例.图中有3种类型的节点(用户、音乐家和标签)和2种类型的边(听过、属于).
定义2网络模式是一种对异质信息网络元结构的描述,说明对象类型及其交互关系.给定异质信息网络G=(V,E),有映射关系Φ:V→A和Ψ:E→R,则定义其网络模式为TG=(A,R).图1(b)是图1(a)的网络模式.
图1(c)列举了图1(a)的一些元路径,这些元路径带有语义信息,第1行表示2个用户存在社交关系,第2行表示2个用户都听过某位艺术家的音乐,第3条元路径表示2个用户听过同种类型的音乐.
图1 基于LastFM数据集的异质信息网络示例Fig.1 Sample of heterogeneous information network based on the LastFM dataset
本文旨在解决基于异质信息网络的推荐问题,关注场景中的隐式反馈.在推荐场景中,假设有N位用户U={u1,u2,…,uN}和M个项目V={v1,v2,…,vM}.用户和项目之间存在代表隐式反馈的交互矩阵Y∈RN×M.若用户u和项目v之间存在积极交互,那么yuv=1;否则yuv=0.
图2 MHRec的总体网络框架Fig.2 Overview of MHRec network architecture
给定用户项目交互矩阵和异质信息网络图G,推荐的目的是预测用户u是否对未交互的项目v有潜在的兴趣.本文的推荐任务目标是学习预测函数uv=F(u,v|θ,Y,G),uv表示用户u可能与项目v产生交互的概率,θ表示可学习的参数.
本文提出的MHRec模型的整体框架见图2.可以看出,MHRec由3个主要模块组成,即多视图嵌入层、语义注意力层和多任务学习层.
在异质信息网络图中,不同类型的节点可能具有不同的特征向量维度.因此,在将节点输入到多视图嵌入层进行学习之前,首先将不同的节点特征映射到相同的潜在向量空间中.本文对每类节点使用特定类型的线性变换来完成特征转换步骤,对类型为A∈A的节点v∈VA,使用公式
(1)
多视图嵌入层通过学习节点不同类型的局部邻居属性生成节点表示.为了挖掘异质信息网络中丰富的语义信息,文献[25]提出了元路径的概念.给定异质信息网络G=(V,E)和元路径p,基于元路径的视图Gp是一个基于元路径的邻接关系.它可以通过元路径捕获节点不同方面的结构信息,并且可以动态增加节点.在不同视图上,本文使用注意力机制学习节点和节点邻居之间的上下文关系.如图3所示,首先使用编码器将视图中所有节点的邻居实例转换为特征向量,即
hp(u,v)=fθ(h′v,h′u,{h′t,∀t∈{mp(u,v)}})
(2)
图3 元路径内节点聚合Fig.3 Intner-metapath aggregation
(3)
(4)
(5)
每个用户节点在不同的元路径视图下得到不同表示,它们可以相互协作.每条元路径对节点的重要性可能是不同的,因此,使用注意力机制来捕获它们的贡献,融合节点表示.
首先,使用非线性函数将基于元路径的节点表示的维度d转换为d′维,即
(6)
(7)
计算.式中‖·‖表示向量的L2归一化.使用softmax函数计算所有元路径p∈P对目标节点v的重要性,公式为
(8)
最后,以加权和的形式融合不同元路径上节点的嵌入,得到包含语义信息的节点特征
(9)
3.4.1 推荐任务的损失函数
将学习到的用户节点表征向量hi和项目节点表征向量hj输入函数f∶Rd′×Rd′→R,得到用户i和项目j产生交互的预测值
ri,j=f(hi,hj)
(10)
在推荐任务中,使用负采样策略来训练模型.本文为每轮训练中的用户节点i采样负样本nneg(i),这些负样本在训练集中和用户节点i不存在积极交互.本文使用二元交叉熵作为优化目标,通过反向传播和梯度下降最小化交叉熵,从而优化模型参数.该二元交叉熵损失公式为
(11)
式中:Trec为推荐任务中的训练集;θrec为模型中的参数;〈i,j〉表示用户i和项目j存在积极交互.
3.4.2 链路预测的损失函数
与推荐任务类似,采用负采样策略最小化损失函数来优化模型.将已连接的用户项目对视为正样本,所有未连接的用户项目对视为负样本.在验证和测试时,添加等量的随机抽样的负节点对.在训练时,动态均匀地采样负节点对,然后最小化损失函数
(12)
式中:σ(·)为激活函数;Ω为观察到的节点对集,即正样本;Ω-为所有未观察到的节点对中采样的负节点对集.
3.4.3 多任务损失优化
为了充分挖掘异质信息网络,解决使用元路径带来的链路丢失问题,通过多任务学习同时学习推荐任务和链路预测任务.如果简单地将2个任务的损失相加,可能会出现其中一个任务占主导地位,即其损失函数减小得非常快,而另一个任务的损失函数减小得很慢.近年来,同方差不确定性在多任务学习的损失函数的设计上取得了很好的效果[26].通过考虑每个任务的同方差不确定性,自动学习不同损失的权重,总体损失可记为
(13)
式中σ1和σ2是不确定性系数.为了防止模型过拟合,提高模型的泛化能力,本文加上了正则化损失Lreg.通过该多任务学习模型,MHRec可以端到端地执行2个任务.
本文在3个公开数据集Movielens、LastFM、Yelp上进行实验.这3个数据集都是显式反馈,而本文更关注隐式反馈,因此,需要进一步转换.如果目标用户对项目的评价是积极的,将该项目标记为1,同时为用户抽样一个未被观察的集合,该集合中的项目都被标记为0.将Movielens、Yelp数据集中积极评价的阈值设为4,因为LastFM不存在评价值,所以不设置阈值.对于每个数据集,按照6∶2∶2的比例划分训练集、验证集和测试集.
针对每个数据集,表1第2列列出了本文选择的元路径.因为元路径越长越容易引入噪声,所以本文选择的元路径最长为4步.其中:U表示用户;M表示电影;G表示电影类型;A表示艺术家;T表示标签;B表示商家;Ca表示商家种类;Ci表示城市.
表1 数据集的统计信息
表2 在3个数据集上的实验结果
4.2.1 推荐任务的评价指标
本文使用了2种在推荐算法中被广泛使用的评价指标:前K个预测值的精确率(precision@K, Prec@K)和前K个预测值的归一化折扣累计收益(normalized discounted cumulative gain@K,NDCG@K). Prec@K用来计算预测的K个结果中与用户相关的项目概率,然而它没有考虑预测值的顺序,于是本文还使用与顺序相关的评价指标NDCG@K来衡量预测结果的标准化累计收益.
4.2.2 链路预测的评价指标
对于链路预测任务,本文通过曲下面积(area under curve,AUC)和平均准确率(average precision,AP)对模型进行评估. 经过训练,模型能够计算出每对节点的相似度. 通过比较测试集中已经存在的边的相似度和不存在的边的相似度,得出评价指标AUC的值,它会从整体上衡量算法的准确性. AP可以平衡准确率和召回率,因此,使用AUC和AP来评估本文模型的性能.
4.3.1 推荐任务的对比模型
将本文提出的MHRec模型与2类方法进行比较. 这2类方法中,一类是传统的方法,即贝叶斯个性化排序(Bayesian personalized reanking, BPR)和NeuMF,另一类是基于异质信息网络的方法HeRec.
BPR是基于矩阵分解的一种排序算法. 它利用数据的隐式反馈对用户的商品喜好做排序优化.
NeuMF是一个基于深度学习的推荐算法. 同样考虑数据的隐式反馈,它结合传统的矩阵分解和多层感知机能够同时提取用户和物品的低维和高维特征.
HeRec是基于异质信息网络的非端到端的推荐模型. 它将节点嵌入学习和矩阵分解相结合来优化推荐任务,该模型通过使用DeepWalk将异质信息网络转换成基于元路径的同质信息网络来学习节点嵌入.
4.3.2 链路预测任务的对比模型
为了与一些基础模型做对比,对链路预测任务的性能进行了实验测试. 这些基础模型包括基于同质信息网络的图卷积神经网络(graph convolutional network,GCN)模型、基于随机游走的异质信息网络模型Metapath2vec以及基于异质信息网络的图神经网络模型HAN.
Metapath2vec是一个传统的异质信息网络的模型. 它将元路径引导的随机游走的节点序列输入到Skip-Gram模型来生成节点嵌入.
GCN是一个基于同质信息网络的图神经网络模型. 该模型在傅里叶域进行卷积运算.
HAN是基于异质信息网络的图神经网络模型. 它从不同的基于元路径的同质信息网络图中学习特定元路径的节点嵌入,并利用注意力机制融合它们生成节点的特征向量.
在表2中列出了所有模型的实验结果, 进行分析后得到如下结果:
1) 本文提出的模型MHRec相比所有基线拥有最好的性能,并且发现MHRec在数据集LastFM和Yelp上的性能比数据集MovieLens提升的效果更明显. 通过表1最后3列可以看出,数据集LastFM、Yelp比数据集MovieLens更稀疏,这说明MHRec可以有效解决数据稀疏问题.
2) HeRec在数据集MovieLens上的性能不如传统的神经网络推荐模型NeuFM,说明HeRec模型使用基于元路径的随机游走策略学习节点嵌入的方法没有充分利用异质信息网络的信息.
3) 总体上,基于异质信息网络的模型HeRec优于不基于异质信息网络的模型BPR和NeuFM,说明使用异质信息网络能够有效学习节点信息,提高推荐效果.
4.4.1 模型在链路预测任务上的效果
本文分别在3个数据集上使用几种基线模型进行实验,将实验结果列在表3中. 可以看出,MHRec在链路预测上的性能依然优于其他基线. 与性能最好的对比模型HAN相比,MHRec在数据集MovieLens、LastFM、Yelp上分别提高了约3%、1%、1%. 这表明本文提出的模型能够同时适用于2种任务.
表3 MHRec在链路预测任务上的AP和AUC结果
4.4.2 节点嵌入维度的影响
本文研究了嵌入维度d对MHRec的影响. 从图4中看出:增加d可以提高模型的性能,因为维度高可以编码用户和项目的信息,但是当维度从64继续增加时,出现了精确度减小的情况,这说明d太高会导致过拟合.
图4 在3个数据集上不同节点维度的实验结果Fig.4 Experimental results of different node dimensions on three datasets
4.4.3 消融实验
为了研制模型各部件的有效性,本文进一步在不同的MHRec变体上进行了实验. 表4列出了各个变体在3个数据集上进行实验得到的结果. 其中:MHRec-rec不使用多任务学习;MHRec在语义注意力层使用了注意力机制动态学习不同元路径的重要性,将加权求和替换成平均相加来得到模型MHRec-avg; MHRec-loss使推荐和链路预测的损失权重相等而不使用不确定性损失.
从表4可以看出,本文增加的这些部件对推荐效果的提升都起到促进作用. 去掉语义注意力层后推荐效果大幅下降,说明语义注意力层对基于异质信息网络的推荐模型是十分重要的. 删去多任务学习后,模型性能也有所下降,由此可见,多任务学习对推荐任务的准确性具有促进作用. 同时,3个数据集上的实验结果都表明没有删掉多任务学习的MHRec-loss指标值比MHRec-rec更低,这说明多任务学习损失的设定非常关键,证明使用同方差不确定性平衡2个任务是有效的.
表4 在3个数据集上进行消融实验的 结果(NDCG@10)
1) 本文提出了一种基于异质信息网络的多任务学习推荐模型MHRec,该模型能够捕捉异质信息网络的节点属性信息、语义信息和结构信息. 在3个数据集上的实验证明,该模型能够明显提高基于异质信息网络推荐任务的性能. 消融实验结果证明了注意力模块的有效性,以及多任务学习中损失函数设置的重要性.
2) 本文在多视图嵌入层上区分了每个节点的贡献,并在语义注意力层上考虑了语义信息. 此外,设计了多任务学习框架,可同时学习推荐任务和链路预测任务. 实验结果表明,该方法有效缓解了使用元路径导致的信息丢失问题.
3) 本文旨在充分挖掘异质信息网络中用户和项目之间存在的潜在关系,实际上,用户的行为前后存在关联性甚至是因果性,因此,将行为的顺序信息引入模型是未来研究工作的方向.