1. 引言
推荐系统旨在解决信息爆炸问题并解决用户的个性化需求。目前使用的协同过滤推荐算法使用用户–物品交互矩阵存在稀疏性和冷启动等问题。因此,通常在推荐系统中加入辅助信息来提高推荐性能。本文将知识图谱作为辅助信息,因其包含丰富的实体和关系。目前经常使用的知识图谱包括:NELL1、DBpedia2、Google Knowledge Graph3和Microsoft Satori4。由于知识图谱高维性和异构性,使用知识图谱嵌入(Knowledge Graph Embedding, KGE)将知识图谱中的实体和关系映射到低维向量中,并保持其原有的语义和结构 [1]。
文献 [2] 提出了CKE模型,将结构化、文本、视觉等知识输入到贝叶斯框架中,但推荐部分和知识嵌入部分在贝叶斯框架下是松散耦合的 [3],因此知识图谱对提高推荐系统的推荐效果起到的辅助性不太明显。文献 [4] 设计了基于内容的深度知识感知网络DKN,其结合了实体嵌入和文字嵌入进行新闻推荐。但其只针对文本数据,使用场景受限,也无法做到端到端的训练。文献 [5] 设计了RippleNet记忆网络的类似模型,在知识图谱中传播用户的潜在偏好,探索分级兴趣,但关系的嵌入矩阵很难捕捉关系的重要性。文献 [6] 设计了一个通用的端到端的深度推荐框架MKR,通过交叉压缩感知单元让推荐模块和知识嵌入模块进行交替学习,通过知识图谱提高推荐系统的性能。但在推荐过程中只考虑到了特征间的高阶非线性关系;在知识嵌入过程中,深度学习虽能够学习到更高效的特征与模式,但处理图数据结构不具普适性,使用深度神经网络存在一定的限制。
基于上述背景,本文的主要贡献如下:
a) 基于知识图谱的思想提出了基于注意力分解机和图卷积神经网络的知识图谱的多任务推荐模型(Multi-Task Recommendation of Knowledge Graph Based on Attention Factorization Machine and Graph Convolution Neural Network, MKAFG);
b) 本文将加入Attention [7] 思想的因子分解机(Factorization Machines, FM)引入到深度推荐模型中,Attention机制对目标有用的特征赋予更高的权重,提取对目标预测起到重要作用的低阶线性特征交互。
c) 使用图卷积神经网络(Graph Convolutional Networks, GCN) [8] 对知识图谱进行的知识嵌入,解决深度学习模型处理图数据结构不具有普适性的问题。
2. 相关理论
2.1. 基于因子分解机的深度神经网络推荐模型
在推荐领域中,对辅助信息进行One-hot编码时,会带来数据稀疏问题,而因子分解机(FM) [9] 是一种较好的特征组合的方法来构建新特征 [10]。FM只能构建特征之间的低阶线性关系。深度神经网络具有学习复杂特征的交互潜力,使用多层感知机(MLP) [11] 实现高阶非线性的特征组合,但无法实现低阶线性特征组合。针对以上Cheng等人提出了Wide & Deep [12],在FM的基础上引入了深度神经网络(Deep Neural Network, DNN),加强模型的非线性能力,但Wide & Deep没有将二阶交叉特征的信息完全表征出来,造成DNN部分学习更高阶交叉信息效率低下。因此,Xiang等人提出NFM [13],使用双向交互池结构对二阶交叉信息进行处理,使高阶交叉特征的信息能更好的被DNN学习。Guo等人提出了DeepFM [14],FM和Deep分别进行特征间低阶线性和高阶非线性组合,提高训练效果。为了提高预测性,阿里提出了融合Attention机制的Det Interest Network,在模型嵌入层和拼接层加入Attention单元,根据特征的贡献程度调整不同的特征权重,提高预测性 [15]。
本文提出将Attention机制的FM融入到基于知识图谱的推荐算法中,将具有Attention机制的FM与DNN相结合运用到推荐模块进行推荐。
2.2. 基于知识图谱的特征表示学习
知识图谱表示学习 [16],是知识图谱研究的重点。Mikolov等人提出了word2vec词表示学习模型,并发现词向量空间存在平移不变现象 [17]。针对上述的启发,Bordes等人提出了TransE [18] 模型,其便于计算、参数少,但TransE无法处理知识图谱复杂的实体和关系的建模。后人依次提出TransH [19]、TransR [20]。但这些模型虽然在低维空间中可以重构出原有的网络结构,但学习到的表征无法进一步学习。网络表示学习,代表有深度神经网络、卷积神经网络等。深度学习虽能够学习到更高效的特征与模式,但图数据结构,具有不规则、多重结构、可扩展性等特点,因此知识表示过程中深度神经网络存在一定的限制。
本文使用图卷积神经网络(GCN)对知识图谱进行嵌入。通过给边和节点赋予特征,不仅可以学习到知识图谱自身的关系和特征,在卷积层传播过程中,节点会接受邻居节点的信息不断更新自身的节点。
3. 方法的提出
本文提出了基于注意力分解机和图卷积神经网络的知识图谱的多任务推荐模型(Multi-Task Recommendation of Knowledge Graph Based on Attention Factorization Machine and Graph Convolution Neural Network, MKAFG)。由推荐部分、知识嵌入部分、交叉压缩感知部分组成。其中推荐部分由具有注意力机制的因子分解机(AFM)和深度神经网络(DNN)两块组成。
3.1. 问题的定义
在推荐场景中,假设有m位用户
,n个物品
。组成用户–物品交互矩阵
,并用隐式反馈。
表示用户u对物品v有过历史行为,否则
。同时加入知识图谱G来提高推荐效果。G由头实体–关系–尾实体
三元组组成。在很多推荐场景中,
与知识图谱中一个或者多个实体有关联。
本文中,给定用户-物品交互矩阵
和知识图谱G,去预测用户u是否会对之前没有过交互的物品v产生兴趣。定义了预测函数
,
表示用户u对物品v点击的概率,
为函数
的参数。
3.2. MKAFG算法框架
MKAFG算法框架如图1所示。由推荐部分、知识嵌入部分、交叉压缩感知部分三个模块组成。左边的推荐模块以用户和物品作为输入,右边的知识嵌入模块以实体和关系作为输入。左右两部分使用One-hot编码,对输入的数据采用稀疏表示,通过嵌入层将每个非零特征嵌入到一个稠密向量中。

Figure 1. MKAFG algorithm recommendation framework
图1. MKAFG算法推荐框架
左边的推荐部分由具有注意力机制的因子分解机(Attentional Factorization Machines, AFM)与深度神经网络(DNN)组成。AFM部分如图2,通过Attention机制对目标有用的特征赋予更高的权重,从而使FM提取对目标预测起到重要作用的一阶和二阶线性交互特征;DNN部分,融合用户和物品特征向量之间高阶非线性关系。两部分学习到的特征输入到预测函数中,得到预测概率;右边的知识嵌入模块通过图卷积神经网络(GCN)从三元组的头实体和关系实体中提取特征,并在函数f和真实的尾实体t的监督下输出预测的尾部实体
;推荐模块和知识嵌入模块通过交叉压缩单元连接,可以自动学习推荐系统中物品和知识图谱中实体的高阶特征交互。

Figure 2. FM based on attention mechanism
图2. 基于注意力机制的FM
3.3. 推荐部分
本文将注意力机制(Attention)与FM加入到文献 [6] 提出的MKR左边的推荐部分中,由具有注意力机制的因子分解机(AFM)与深度神经网络(DNN)两部分共享相同的输入和嵌入层的输出,模型输出见公式(1),用来预测用户u对物品v的点击概率。其中
是AFM部分的输出,
为DNN部分的输出。
(1)
3.3.1. AFM模块
AFM是用来学习加权组合特征的,是具有注意力机制的FM [7]。AFM输入层将输入的物品和用户数据进行One-hot编码后,通过嵌入层,将每个向量投入到一个密集的向量中,得到如下公式:
(2)
其中
代表全局偏差,n是经过One-hot编码后特征空间的维度,
代表第i个特征。我们将上述 结果通过文献提出的成对交互层 [7],如图2,其是将m个向量扩展为
个相互作用的向量,其中每个相互作用的向量是两个不同向量元素的点积,来编码它们的相互作用。模型表达式为:
(3)
表示预测层的偏差,
为两个元素的点积,
用于表达特征之间的相互作用。经过成对交互层,AFM学到了特征向量之间低阶线性组合特征。
并非所有的组合特征会对目标预测产生相同的作用,因此本文采用文献 [7] 提出的Attention机制,对越重要的特征赋予越高的权重。使用多层感知机参数化注意力得分。如图2,其由两个特征的交互向量
作为输入,输入向量的加权算数平均值为输出。得到的权重代表特征各个组合特征的重要程度,权重函数为:
(4)
(5)
是激活函数,
,W,b为模型学习的参数。对于输入的组合特征,其返回的是非标准化的权重分值
。当得到所有组合特征的分值后,带入到公式(5)就可以得到标准化的权重分值
。将
带入到公式(3)。AFM提取到对目标预测起到重要作用的一阶和二阶线性交互特征。AFM模型公式如下:
(6)
3.3.2. 深度神经网络(DNN)模块
给定用户u的原始特征向量u,经过特征嵌入后,使用一个L层MLP提取其隐性压缩特征,见公式(7)。其中
为全连接的神经网络,w为权重(使用高斯分布初始化权重),b为偏差,
为非线性激活函数。
(7)
对于物品v,通过特征嵌入层,使用交叉压缩单元共享知识图谱中对应实体的信息之后,获取深层次的特征 [6],见公式(8)。其中
是物品v相关联的实体h集合,
是区分物品向量的标志 [6]。
(8)
有了用户和物品的潜在特征
和
后,投入到DNN中,得到用户和物品的高阶组合特征。输出为:
(9)
3.4. 知识嵌入部分
知识图谱的嵌入,是将实体和关系嵌入到连续的向量空间中,同时保持它原有的信息和结构。本文使用GCN提取知识图谱的空间特征,利用边的信息对节点信息进行聚合从而生成新的节点表示,信息可沿着边直接从一个节点传递到另一个节点 [8]。
对于给定的知识三元组
,首先对One-hot编码的特征进行嵌入操作。让头部实体h经过多个交叉压缩单元来学习深层次的特征,对于关系实体r使用L层的MLP提取隐性压缩特征。然后将
和
一起投入到图卷积神经网络中,来预测尾实体
。见如下公式:
(10)
(11)
(12)
是与头实体h相关联的物品集合,
区分头实体向量的标志 [6]。
是尾实体的预测向量。
是k层的图卷积神经网络,本文设置k = 2,叠加两层GCN,每个节点可以把2-hops邻居的特征加以聚合,得到自身特征。
,表示通过添加自环,把自身特征和邻居特征结合起来,更新自身节点。A为描述节点之间关系的邻接矩阵。
对自身节点和邻居节点所传播的信息进行归一化。
为特定层的可训练权重矩阵。
为非线性激活函数。使用分数函数
来计算三元组分数:
(13)
3.5. 交叉压缩部分
本文使用交叉压缩单元与MKR [6] 一致。物品v向量和实体h向量通过交叉特征共享单元进行信息交互,弥补自身信息稀疏性的不足 [6],如图3。
对于物品v与其相关联的实体h,其L层的隐特征分别为
和
。通过计算
与
的外积,构建了一个
维的隐特征成对相互作用的交叉特征矩阵。如下:
(14)
其中
是L层的交叉特征矩阵,d是嵌入向量的维度。由公式(14)可知,交叉特征矩阵
显示建模了物品v和其相关联的实体h的每个特征间的交互
[6]。然后,将
投影到隐性表示空间,输出下一层的项目和实体的特征向量,此过程为压缩操作,见如下公式:
(15)
(16)
其
和
是可训练的权重和偏差向量。权重向量将
从
维压缩到
维。
沿着,水平和垂直两个方向进行对称压缩。交叉压缩单元可简单表示为:
(17)
[v]和[h]分别表示物品向量和实体向量的输出,通过交叉压缩感知单元,MKAFG可以自适应地调整知识转移的权重,并学习两个任务之间的相关性 [6]。
3.6. 算法设计
(18)
MKAFG的损失函数如公式(18)。
为推荐部分的损失函数,
为交叉熵函数;
为知识嵌入部分的计算损失,旨在提高正确三元组得分,降低错误三元组得分;
为正则化项,用来防止过拟合,其中
和
表示平衡系数,
可视为两项任务的两个学习率之比,本文设置
,
。上述公式遍历了所有可能的用户–交互矩阵和知识三元组。本文在训练过程中使用负采样策略 [21] 来提高计算的有效性。见“算法1”(表1),由推荐部分与知识嵌入部分联合训练。每次迭代过程中,更加倾向于提高推荐性能,所以RS训练t次(t是超参,t > 1)后,KGE训练1次。

Table 1. Model Training Structure about MKAFG
表1. MKAFG模型训练结构
4. 实验
4.1. 实验环境
本实验的运行环境为:Python3.6、TensorFlow2.1、32G内存、Intel Core i5CPU、GeForce GTX 1050 2G显卡。
4.2. 数据集及预处理
4.2.1. 数据集
推荐模块数据集:选用公开的MovieLens-1M数据集。其中评分数据集含有来自6036名用户对3952部电影约100万条显示评分数据(评分值从1~5,值越高表示用户对该电影越喜欢);用户数据集包含了用户属性信息(年龄、性别等);电影属性数据集包含了电影属性(类别、年代等)。
知识图谱数据集:使用Microsoft Satori来构建电影知识图谱。Microsoft Satori存储实体(真实世界中的人物、地点、事件等)的信息和关系,索引量并在不断增长。
4.2.2. 数据预处理
推荐模块数据预处理:在MovieLens-1M中需要将显示反馈数据转换为隐式反馈数据。用户对电影的评分为最高为5,最低为1。本文根据电影评分的经验,设阈值为4,当用户对某一部电影的评分>=4时,表示用户对该部电影很喜欢,是正反馈,用1表示;反之是负反馈,用0表示。0不只意味着用户不喜欢这个电影,它是用户不喜欢此电影和暂无交互(用户还未注意到此电影)的混合。
知识图谱数据预处理:电影知识图谱的构建与MKR [6] 中保持一致。先从整个Microsoft Satori中选出置信度大于0.9的三元组子集,进一步选择出关系名称为“电影”的三元组集合,来减少知识图谱的大小。在得到的子集中,通过将所有有效电影与三元组的尾部(head, film.film.name, tail)进行匹配来收集所有有效电影的ID标识,将没有匹配或多个匹配的实体ID删除,然后将剩下的ID集合与KG子集中的三元组头尾部进行匹配,从KG中选择能够匹配上的三元组 [6]。但用户、项目及交互的数量比原始数据集少,因为过滤掉了KG中没有对应到的实体的项目。
4.3. 衡量指标及实验结果
本文将MovieLens-1M数据集,按照6:2:2的比例划分为训练集、测试集、验证集。实验重复3次,计算3次平均的结果。
4.3.1. 衡量指标
使用ACC和AUC来评估点击率预估(CTR)预测MKAFG推荐框架的性能。其中ACC可以从混淆矩阵中导出,混淆矩阵见表2。
(19)
AUC被定义为ROC曲线下的面积。ROC曲线的横坐标是伪阳性率(FPR),纵坐标是真阳性率(TPR)。AUC越大模型的推荐效果更好。
(20)
(21)
4.3.2. 实验结果
本实验使用Movielens-1M电影数据集进行了点击率预估任务。第一部分将MKAFG与主流推荐模型进行比较;第二部分是自身实验的比较,见表2。结果最好已经加粗表示。
PER在电影数据集上表现不佳,因为PER需要手动进行元路径的设计,手动设计很难使结果达到最佳。DKN在所有推荐模型中表现最差,可能是DKN主要应用在新闻领域的推荐,新闻文本的特点是语言高度浓缩,而电影名称较短无法提供有用的信息。RippleNet在所有模型中表现较好,说明通过兴趣点传播可以更好的捕获用户的兴趣偏好。MKR在所有模型中表现较佳,说明知识图谱作为辅助信息可以辅助推荐任务进行学习,其物品、实体通过交叉压缩单元共享信息表现出多任务学习的有效性。
自身实验的比较。MKFM表示在推荐模块加入FM,学习用户、物品的低阶交互特征。由表3可知,MKFM与基础模型相比要好,说明在推荐模块加入FM的有效性,但推荐效果不如 MKAFM,其是加入了具有Attention的FM,能更好的能获取到,起到重要作用的一阶二阶交互特征。推荐效果最好的是本文提出的MKAFG模型,AUC分别比MKR、MKFM、MKAFM提高了2.8%、1.1%、0.6%。说明加入的图卷积神经网络能更好的学习知识图谱的特征。因此,在电影推荐领域,本文提出的MKAFM效果最佳。

Table 3. Click rate estimation results of the model
表3. 模型的点击率预估结果
4.4. 推荐模块超参数分析
本部分实验研究在推荐模块引入AFM机制后,推荐模块的DNN部分的激活函数、神经元数量、隐藏层数量使MKAFG达到推荐效果最佳。
4.4.1. 激活函数
此部分研究了ReLU和Tanh作为左侧推荐模块的激活函数时,对总体框架结果的影响。由图4可得ReLU比Tanh性能更好。

Figure 4. Influence of activation function on results
图4. 激活函数对结果的影响
4.4.2. 隐藏层数量
一般认为,隐藏层的个数越多,模型的学习能力越强。但随着隐藏层数量的不断增加,更容易产生过拟合,同时训练难度也不断加大。如图5,当神经网络隐藏层数为2时,模型的推荐效果最佳。

Figure 5. Influence of the number of hidden layers on the results
图5. 隐藏层的数量对结果的影响
4.4.3. 隐因子维度分析
如图6,研究了隐因子的个数对MKAFG模型的影响。此处隐藏层数设置为2。随着隐因子维度的增加,并不能总给推荐效果带来提升。当隐因子维度为128时,推荐效果最佳。

Figure 6. Influence of the number of hidden factors on experimental results
图6. 隐因子个数对实验结果的影响
4.5. MKAFG模型参数分析
4.5.1. 训练集稀疏程度分析
实验将MovieLens-1M的训练集大小设置为10%到100%。测试集和验证集不变。所有模型的AUC全部升高;同时r = 100%与r = 10%时,各个模型AUC差分别为:PER (11.2%)、CKE (12.7%)、DKN (7.6%)、RippleNet (7.7%)、MKR (5.5%)、MKAFG (5.1%)。如图7,MKAFG面对数据稀疏性问题时,依然保持良好的性能。

Figure 7. Analysis of sparsity of training set
图7. 训练集稀疏程度分析
4.5.2. 知识图谱KG大小分析
本部分研究辅助信息数据集的大小对推荐效果的影响。将知识图谱的大小设置为原来的0.1倍到1倍。由图8,随着知识图谱数据集增大,推荐效果不断上升。且AUC和ACC分别增加了14.1%、12.8%。说明引入辅助信息可以提高推荐效果,同时辅助信息数据集越大,推荐效果会越好。
4.5.3. 推荐模块训练频次分析
每个epoch,推荐部分训练t次,知识嵌入部分训练1次。本文设计t (1 - 10),同时保持其他参数不变。如图9,当t = 4时,MKAFG性能最佳,当t > 4时,随着t的增大时,MKAFG性能降低。因为如果知识图谱嵌入模块训练频次太少,不能充分利用知识图谱的知识;训练频次过高,则会影响MKAFG的目标函数。
4.5.4. 嵌入维度分析
在嵌入层,用户、物品、实体、关系的嵌入维度会影响MKAFG的表现。当嵌入维度增加时,会带来更多的编码信息。如图10,当dim = 8时,MKAFG的推荐结果达到最优。原因是,随着嵌入维度的增加,会引入噪声,这会误导预测函数的预测。

Figure 9. Analysis of training frequency of recommendation module
图9. 推荐模块训练频次分析
5. 结束语
本文提出了融合知识图谱和用户行为信息的深度算法推荐模型。在推荐模块加入具有注意力机制的FM,通过注意力网络区分不同特征交互的重要性,使FM提取到对目标预测起到重要作用的一阶、二阶线性交互特征。在知识嵌入模块通过GCN学习知识图谱自身的关系和特征,还可以通过不断学习让每个节点接受邻居节点的信息从而更新自身的节点表示。通过实验表明,该模型的性能相比目前主流推荐模型有所提升。由于本文数据只在Movielens-1M电影数据集上进行研究,未来将应用到图书、新闻、音乐等领域进行推荐研究,以能在所有数据集上获取较好的效果。
参考文献