张素琪,王鑫鑫,佘世耀,顾军华,4
(1.天津商业大学信息工程学院,天津 300134;2.天津商业大学理学院,天津 300134;3.河北工业大学人工智能与数据科学学院,天津 300401;4.河北省大数据计算重点实验室(河北工业大学),天津 300401)
近几年来,伴随着移动互联网、大数据的飞速发展,人们可以访问大量的在线内容,如新闻、电影、商品,然而过多的商品数量可能会让用户不知所措。推荐模型能够根据用户的属性和历史行为记录,学习用户的兴趣偏好,并从海量的信息中筛选出用户可能感兴趣的项目推荐给用户,从而提高用户筛选信息的效率,解决大数据时代下的信息过载问题,提高用户体验。但是传统的推荐模型通常受到用户-项目交互稀疏和冷启动问题的困扰。为了解决这些问题,将知识图谱引入推荐模型能够提供用户、项目之间更丰富的语义关联,从而弥补用户的历史偏好数据集的稀疏或缺失,提高推荐的精确度和可解释性。
现有的基于知识图谱的推荐模型利用模型挖掘用户的兴趣路径,并将兴趣聚合为知识图谱的嵌入。Wang 等提出了知识图卷积网络(Knowledge Graph Convolutional Network,KGCN)模型,该模型利用了图卷积网络(Graph Convolutional Network,GCN)通过邻域聚合的操作自动捕获高阶结构和语义信息,体现了用户在关系中的个性化兴趣。Tang 等提出了注意力增强的知识感知用户偏好模型(Attention-enhanced Knowledge-aware User Preference Model,AKUPM),通过从知识图中将随机挑选的实体合并来推断用户的潜在兴趣。然而与用户相关的实体数量是可变的,因此通过引入递归神经网络可以学习到更好的潜在表示。Wang等提出了利用图注意力网络(Graph Attention Network,GAT)表示知识图谱的方法,知识图注意力网络(Knowledge GAT,KGAT),该方法通过注意力机制挖掘用户感兴趣的实体,再通过邻域聚合的方法实现兴趣路径的表示。
现有的基于知识图谱的推荐模型存在两点不足,首先在用户的表示中没有考虑到用户的周期特征,其次没有从待推荐项目这个角度去考虑用户的近期兴趣。本文以KGCN为基础,对上述两个问题进行研究,主要工作如下:
1)由于现有模型忽略了用户的周期兴趣特征,即用户会随着时间周期性地交互一些具有相同或相似特征的项目。本文提出了基于多时间尺度的用户表示(Multi-Time scales User Embedding,MTUE)模块,该模块使用多个不同的时间尺度分析用户行为得到用户的向量表示。
2)由于用户近期交互的历史项目对用户选择新项目影响较大。本文提出了基于特征加强的待推荐项目表示(Feature Enhanced Item Embedding,FEIE)模块。该模块首先利用自注意力机制得到用户的近期特征,再通过注意力机制找到待推荐项目中与用户近期特征相关性较强的特征作为项目的加强特征,融入项目表示中作为待推荐项目的向量表示。
3)将MTUE 模块和FEIE 模块应用于推荐模型中提出了基于多时间尺度和特征加强的知识图谱推荐(knowledge graph recommendation based on Multi-Time scales and Feature Enhanced,MTFE)模型。
u
;然后,通过不同的时间尺度对用户的历史项目序列进行划分,得到由不同时间尺度划分后的周期序列,将不同的周期序列输入到LSTM 中得到不同的周期用户表示u
和u
。最后,将基础用户表示u
与周期用户表示u
和u
聚合在一起得到最终的用户表示u
。图1 MTFE模型框架Fig.1 MTFE model frame
FEIE 模块通过自注意力机制在用户近期交互的历史项目中获取用户的近期特征u
;然后,通过注意力机制找到待推荐项目邻居特征中与用户近期特征相关性较强的特征作为项目加强特征i
;最后,将项目加强特征与待推荐项目结合在一起作为特征加强后的项目表示i
。根据用户表示u
和待评估项目表示i
输出当前用户对待评估项目的预测概率y
。1.1.1 基础用户表示
根据用户u
交互的历史项目v
可以获得基础用户表示,基础用户表示并不包含用户的周期特征,是用户历史项目的整体表示。对于用户u
和其交互的n
个历史项目v
,利用基于知识图卷积网络的项目表示方法得到历史项目序列v
=v
,v
,…,v
,…,v
。为了得到基础用户表示,本文采用LSTM 处理历史项目序列v
,由于用户交互的历史项目序列具有时间性,每个交互的项目都会对用户产生影响,且近期交互的项目会对用户选择新项目产生更大的影响。LSTM 是处理序列问题的网络,能够学习到序列的长期依赖性,因此采用LSTM 对用户历史项目序列进行处理。用户u
的历史项目序列v
=v
,v
,…,v
,…,v
作为输入信息依次输入到LSTM 中,如图2 所示。图2 LSTM结构Fig.2 LSTM structure
在LSTM 中,输入t
时刻交互的项目v
,首先需要通过遗忘门f
确定上一时刻h
需要遗忘的项目信息:其中:σ
为Sigmoid,w
、b
为遗忘门中的权重参数和偏置参数。其中:w
、w
、b
、b
为候选记忆单元中的权重参数和偏置参数。得到候选记忆单元之后,将旧的记忆单元c
进行更新得到新的记忆单元c
:最后通过输出门o
的Sigmoid 层可以得到判断条件,然后将记忆单元c
经过tanh 层与输出门得到的判断条件相乘得到当前的时刻的最终输出h
:其中:w
和b
为输出门中的权重参数和偏置参数。最终得到最后一个时刻的输出h
,即基础用户表示u
:1.1.2 多时间尺度下的用户表示
用户拥有不同的周期特征,比如用户每周交互的项目与每天交互的项目会有所不同,因此需要采用不同的时间尺度T
={T
1,T
2,…,TK
}对用户的历史项目序列进行划分,获取不同的周期特征。受营销策略和人类行为研究的启发,人类行为规律性最大的影响是由每天产生的,其次是每周。因此本文制定了两个不同的时间尺度T
={T
1,T
2}对用户u
交互的历史项目序列v
=v
,v
,…,v
,…,v
进行划分,得到两个不同的历史项目集合序列v
={v
,v
}:得到经过时间尺度T
1 和T
2 划分后的历史项目集合序列v
和v
后,采用加和的方式将一个时间尺度划分的历史项目集合内所有项目的特征聚合在一起,如图1 所示,得到该项目集合序列对应的周期序列V
和V
:最终通过加和的方式将基础用户表示u
与不同时间尺度下的用户表示u
,u
进行聚合作为最终的用户表示:由于用户近期交互的历史项目对用户选择新项目的影响较大,如果用户近期更关注某个方面,那么用户选择新物品就更看重该方面的物品特性。因此使用用户近期交互的项目来表示用户的近期特征,并对待推荐项目进行加强。
1.2.1 用户的近期特征表示
为了得到用户的近期特征表示u
,采用自注意力机制从用户近期交互的项目中获取用户的近期特征表示。首先从用户u
交互的n
个历史项目v
=v
,v
,…,v
,…,v
中选取用户最近交互的M
个项目{q
,q
,…,q
},将其作为自注意力机制中的query、key、value:其中:V
、Q
、K
为以近期交互的M
个项目作为输入对应的value、query、key。然后计算Q
、K
的相似度矩阵C
:其中:C=
R。最后通过Softmax 函数得到近期项目经过自注意力机制后的输出向量a
,即近期特征表示u
:其中:Softmax 函数计算了V
中每个实体向量的权重。权重的计算方式如下:其中:X
为相似度矩阵C
中的第m
列,β
为参数向量。1.2.2 近期特征加强的待推荐项目表示
图3 不同阶邻居实体集合Fig.3 Sets of neighbor entities with different orders
得到代表每阶邻居特征表示后,通过注意力机制找到每阶邻居特征中与近期特征相关性较大的作为项目加强特征i
。归一化后得到每阶邻居特征的相关性评分,也就是每阶邻居特征的权重θ
:再根据每阶邻居特征的权重θ
将每阶邻域特征进行线性组合,得到项目加强特征i
:最终通过加和的方式将项目加强特征融入到待推荐项目上,得到经过项目特征加强后的待推荐项目表示:
f
得到用户对待推荐项目的评分y
,在这里采用内积函数作为评分函数:将提出的MTFE 应用到三个不同的数据集上,并通过实验结果分析,验证模型的有效性。
本文选用三个基准数据集进行实验,Last.FM 的数据来自Last.FM 在线音乐系统,数据集中包含大约2 000 个用户的评分信息。MovieLens-20M 的数据来自于Movie Lens 网站,该数据集被广泛应用于推荐系统的实验中,大致包含1 000 万条用户对电影的评分信息;MovieLens-1M 的数据来自于Movie Lens 网站,大致包含用户的100 万条用户对电影的评分信息。数据集的具体统计结果见表1。
表1 数据集统计Tab 1 Dataset statistics
实验中将每一个数据集随机划分为训练集、验证集和测试集,三者的比例为6∶2∶2。本文实验为点击率(Click-Through-Rate,CTR)预测,即判断用户交互待推荐项目的概率,本文采用F1 值和受试者工作特征(Receiver Operating Characteristic,ROC)曲线下的面积(Area Under Curve,AUC)来评价模型的性能。
d
为向量维度,L
为知识图谱的迭代层数,M
为用户最近交互的项目个数,λ
为正则化权重,Lr
为学习率,Batch
为批处理大小。表2 实验参数设置Tab 2 Experimental parameters setting
将本文提出的推荐模型与以下五种方法在相同的三组数据集上进行对比实验,结果见表3。
1)个性化实体推荐(Personalized Entity Recommendation,PER)将知识图谱视为异构信息网络,将观察到的用户隐式反馈沿着不同的元路径进行扩散,从而在相应的用户兴趣语义下找到推荐项目;
2)协同知识嵌入(Collaborative Knowledge base Embedding,CKE)模型在推荐系统中引入知识图谱,用TransE方法学习知识图谱中的实体向量表示,并将该类信息与文本以及图像信息融入到模型中,共同学习用户和项目表示;
3)LibFM将基于特征的因子分解的方法以及通过预先训练得到实体表示的方法应用在点击率预测任务上;
4)RippleNet以已交互的历史项目实体作为波纹的中心,并在知识图谱上进行逐层的传播,通过注意力机制逐层挖掘用户的兴趣;
5)KGCN通过在知识图谱上利用图卷积网络将项目对应的中心实体与邻居实体进行聚合,得到项目的向量表示,通过评分函数找到用户的潜在兴趣项目;
6)协同知识感知注意网络(Collaborative Knowledgeaware Attentive Network,CKAN)通过在知识图谱上逐层聚合历史项目实体,并通过注意力机制去区分不同的头部实体和关系时,尾部实体所具有的不同意义。
由表3 可以看出,本文提出的MTFE 相较于其他对比模型拥有较好的实验结果。具体来说,在三个数据集上MTFE的F1 值相较于最优对比模型分别提升了0.78、1.63 和1.92个百分点,AUC 分别提升了3.94、2.73 和1.15 个百分点。
表3 不同模型的实验结果Tab 3 Experimental results of different models
其中PER 的实验结果最不理想,是因为该方法需要在元路径的基础上寻找用户和项目的关系,而元路径需要人工设计,人工设计的元路径存在局限性,很难准确找到最佳的元路径使实验结果达到最佳。CKE 的实验结果较差,是因为实验需要利用TransE 方法得到知识图谱中的实体表示,缺乏端到端的训练,且该模型没有利用到引入的文本等信息。同样LibFM 需要利用TransE 方法学习知识图谱中实体的向量表示作为输入,缺乏端到端的训练。RippleNet 和CKAN 模型是在知识图谱上扩散挖掘用户的兴趣路径,得到用户兴趣向量,但是两个模型没有考虑到用户的周期特征,并且RippleNet 没有考虑待推荐项目的图谱信息。KGCN 则考虑到构建项目知识图谱,利用图神经网络的方法表示项目,但是该模型没有考虑到用户近期交互的项目对待推荐项目的影响,同时没有考虑到用户的周期特征。而MTFE 通过用户近期交互的项目提取用户近期特征,并利用用户近期特征找到对待推荐项目影响较大的特征,进而得到待推荐项目的向量表示。在得到用户表示时,利用不同的时间尺度对用户历史交互的项目进行处理。实验结果证明相较于其他五种推荐模型,MTFE 可以有效提升推荐效果。
由于在用户表示模块通过不同时间尺度得到用户的表示,所以可以探索在不同时间尺度上的用户表示对实验性能的影响。分别在Last.FM 和MovieLens-20M 上,将时间尺度划分为单一时间尺度,即日尺度(MTFE-day)和周尺度(MTFE-week),以及不划分时间尺度(MTFE-item)进行实验,与本文模型对比,实验结果如表4 所示。
表4 不同时间尺度的实验结果Tab 4 Experimental results on different time scales
由表4可知,与KGCN相比,MTFE-item、MTFE-day、MTFEweek 的AUC 与F1 值有所提升,这是因为这三种方法都利用了用户的历史交互信息来获取用户的表示,虽然在一定程度上提升推荐的效果,但提升效果并不明显。MTFE 的推荐效果最好,这说明了用户具有不同的周期特征,且在用户表示中对不同的周期特征进行加强可以有效地提升推荐效果。
由于MTFE 中知识图谱为多层结构,可探索知识图谱迭代层数L
对实验性能的影响。分别在Last.FM 和MovieLens-20M 上,将L
设置为1~4 层进行实验,实验结果如表5 所示。表5 不同迭代层数时MTFE的AUC值Tab 5 AUC values of MTFE with different iteration layers
可以观察到,在Last.FM 数据集上当模型处于3 层时可获得最佳性能,在MovieLens-20M 数据集上当模型处于3 层时可获得最佳性能。当层数较小时其AUC 值较小,说明层数较小时不足以找到项目丰富的特征。当层数较大时并不能提高性能,这是因为随着模型层数的增加,模型难以训练并且不容易泛化。
由于在项目特征加强模块需要通过用户近期的交互历史获得近期特征,所以可探索选取用户最近交互的项目个数M
对实验性能的影响。分别在Last.FM 和MovieLens-20M上,将M
设置为10~40 进行实验,实验结果如表6 所示。由表6 可知:在Last.FM 数据集上当模型M
=20 时可获得最佳性能;在MovieLens-20M 数据集上当M
=30 时可获得最佳性能。当选取数量较少时效果较差,这是因为选取个数较少时不足以代表用户的近期特征;当选取数量过多时效果较差,这是因为选取个数过多会失去近期特征的特性。表6 不同的近期交互的项目个数时MTFE的AUC值Tab 6 AUC values of MTFE with different numbers of items recently interacted
本文对基于知识图谱的推荐模型进行研究,提出的融合多时间尺度和特征加强的知识图谱推荐模型(MTFE)既考虑了用户的周期特征,又考虑了用户近期交互的项目对用户的影响。在三个真实数据集(Last.FM、MovieLens-1M 和MovieLens-20M)上的实验结果验证了模型的有效性。当使用多个时间尺度得到用户周期特征的想法得到验证时,实验可以进一步改进,从数据中自动检测出最佳的时间尺度,这也是下一步的研究方向。