基于协同信号的知识图注意力网络推荐算法

2024-03-21 02:00裴帅华
计算机工程与设计 2024年3期
关键词:图谱实体向量

郭 伟,裴帅华

(西安科技大学 通信与信息工程学院,陕西 西安 710600)

0 引 言

随着互联网技术的不断发展,资源过载[1]问题日益严重。人们需要从海量信息中筛选自己感兴趣的内容,企业则希望推送的内容能最大程度上匹配用户需求。推荐系统恰好可以很好处理两者以实现个性化推荐。协同过滤[2-4]作为经典的个性化推荐算法,面临着数据稀疏和冷启动问题。缓解这一问题的普遍做法是在推荐系统中引入辅助信息,丰富用户和项目的内容,从而有效地补偿稀疏或缺失的用户兴趣。知识图谱作为一种新兴辅助信息,由于存在大量的三元组数据,受到了研究人员越来越多的关注。文献[5]将用户的历史数据在知识图谱中进行向外传播,以探索用户潜在兴趣。文献[6]则借鉴于GCN[7]信息传播的思想,用于预测用户对项目的偏好程度。文献[8]将用户嵌入到知识图谱中构成协同知识图,利用注意力机制区别对待邻居信息分别得到用户向量和项目向量,最后通过内积得到用户对项目的评分。上述模型都取得了很好的效果,但也存在着不足,文献[5,6]都选取均匀采样器在知识图谱中随机选取固定的邻居大小,使得一些重要的节点信息丢失。文献[8]将用户-项目二质图嵌入到知识图谱中,将用户视为知识图谱中的节点,一旦有新用户必须重新训练整个模型,其计算成本过大。为了解决上述模型存在的问题,本文提出了基于协同信号的知识图注意力网络推荐算法(collaborative signal knowledge graph attention network for recommender algorithm,CKGAN)。该算法利用用户的历史交互项目作为用户的初始表示,将这些项目以及待推荐项目在知识图谱上进行无采样传播,通过设计新的聚合函数来丰富用户/项目表征,最后引入动态建模思想,在面对不同待推荐项目时得到不同的用户表征。在多个数据集的实验结果表明,本文所提方法具有更好的推荐效果。

1 相关研究

基于知识图谱的推荐算法主要有以下几个方面:

①基于路径的方法。在知识图谱中,由于各个实体通过复杂的关系连接在一起,可以探索其间的连接方式(元路径)提供额外的信息,特别是在可解释方面。例如,文献[9,10]将KG视为异构信息网络,提取基于元路径/元图的潜在特征,表示不同类型的关系路径/图上用户和项目之间的连接性。然而,文献[9,10]很大程度上依赖于手动设计的元路径或元图,这在现实中很难是最优的。②基于嵌入方法(如TransR[11])。基于嵌入的方法采用KG的信息来丰富项目的表示。文献[12]模型首先通过采用TransR对知识图谱进行预训练得到项目的嵌入向量,并在贝叶斯的框架下,将项目向量输入到CF框架中,去获得用户的潜在向量,最后通过内积得到用户对项目的偏好分数。文献[13]使用TransR对协同知识图进行预处理,设计了去除偏差的注意力模块聚合邻域信息,最后分别得到用户和项目的向量表示进行推荐。③基于图的方法。文献基于图的方法和基于路径的方法均采用知识图谱结构进行建模,不同之处在于,基于图的方法并不局限于实体之间的特定连接,而是将KG视为一个以特定用户或物品为中心的异构网络,该方法从中心实体沿着关系边进行传播,最后提取对应实体的特征。文献[14]则是在文献[6]的基础上提出改进,将用户作为一种新的实体嵌入到知识图谱中,使用新的聚合函数用来生成用户向量。文献[15]则利用协同信号作为用户和待推荐项目的向量表示,通过设计知识感知注意力模块得到用户和项目的最终表示。但其都未解决采样所引起的误差。

2 问题的数学描述

在推荐场景中,存在m个用户和n个项目分别表示为U={u1,u2,u3,…,um} 和I={i1,i2,i3,…,in},以及用户与项目的交互矩阵Y∈m×n。若yui=1,则表示用户u与项目i存在联系,比如浏览、点击、喜欢等。尽管交互信息不一定能反映用户真正喜欢该项目,但在一定程度上他们包含用户喜欢的信息,yui=0表示用户对此项目不感兴趣。除了交互信息外,还有知识图谱G,可表示为 {(h,r,t)|h,t∈ε,r∈R},ε,R分别表示实体集合和关系集合,每个三元组由真实世界的实体和实体之间的关系构成,例如(人在囧途,主演,徐峥)为知识图谱中一个结构化的三元组,表明了徐峥是电影《人在囧途》的主演。给定用户与项目交互矩阵Y和知识图谱G,推荐算法的任务就是预测用户u是否对物品i有潜在的兴趣。具体来说,就是学习一个预测函数表示用户u喜欢i的概率,Θ为可学习参数。

3 模型介绍

本文所提CKGAN模型的框架如图1所示。①协作传播层:将用户-项目二质图与知识图谱中头实体关联,并将实体在知识图谱中进行传播。②图注意力层:利用图注意网络[16]思想,为不同的节点分配不同的权值,通过聚合更新所有节点的特征。③预测层:通过待推荐项目和用户交互过的历史项目得到最终用户向量表示,将用户和待推荐项目通过MLP,最终输出预测结果。

图1 CKGAN模型框架

3.1 协作传播层

协作传播层由用户项目二质图和知识图谱两部分构成,用户与项目的交互信息能够在一定程度上表示用户的偏好,知识图谱中又包含了关于项目的额外事实和联系,因此将两者结合起来可以更加精准地描述项目和用户。

本文使用用户交互过的项目来表示用户,这些项目与知识图谱中实体对齐,作为用户的初始种子集,并沿着知识图谱中边进行传播,对于特定的用户u,兴趣传播的起源定义为

(1)

(2)

这些实体可以沿着边的信息在知识图谱中进行迭代传播,可以得到与初始集不同距离的实体集,它们能够有效地扩展用户和项目的向量表示,用户u和项目i的递归公式如下

(3)

式中:rk表示实体hk-1与实体tk之间通过关系rk相连,k代表与初始实体集的距离,下标o作为用户u和项目i的统一占位符。为了讨论实体的邻居对实体的重要程度,根据实体集的定义,我们得到用户u和项目i的第k层三元组,公式如下

(4)

3.2 图注意力层

πirt=a(wrei,wret)

(5)

式中:ei,et∈d分别表示为头实体,尾实体的向量表示,wr∈d×d为关系r的线性变换矩阵。为了描述不同关系下的尾实体对头实体的重要程度,本文使用Softmax函数

(6)

本文所述图注意力网络a是单层前馈神经网络,选择LeakyReLU作为非线性激活函数,则图注意力网络数学描述为

(7)

式中:‖代表拼接操作,在实际工作中,同时也考虑了实体i的自连边。

(8)

式中:σ(·) 为LeakyReLU函数,可以进一步堆叠更多的传播层来收集从高跳邻居传播过来的信息,对于高阶信息递归公式如下

(9)

3.3 预测层

在执行H+1层操作以后,项目i的最终表示

(10)

(11)

然而考虑到用户对项目的兴趣是多样的,当考虑用户是否会点击项目i时,项目i应该对用户的历史交互数据有不同的影响,本文采用DKN[17]、DIN[18]模型的思想动态建模用户的向量表示。公式如下

(12)

式中:ξ(·) 采用的是点乘求和。

得到用户节点u最终向量表示

(13)

(14)

MLP为两层全连接神经网络,激活函数为PReLU,为确保用户对于项目的评分在[0,1],设置σ(·) 为sigmoid函数。值得注意的是,在训练过程中本文使用了负采样策略,最终模型的损失函数公式定义如下

(15)

4 实 验

本节基于音乐、书籍、电影领域公开的数据集来评估模型性能,并与经典推荐算法进行性能对比,最后讨论参数对实验结果的影响。

4.1 数据集

实验选用Last.FM、Book-Crossing以及MovieLens-1M测试模型性能。Last.FM数据来源于Last.FM在线音乐平台。Book-Crossing数据集来源于book-crossing社区,由读者对各种书籍的评分(从0到10)构成。MovieLens-1M由GroupLens项目组提供。

由于3个数据集都为显示反馈数据,本文首先将其转换为隐式反馈数据。在MovieLens-1M中用户对电影的评分从0-5,设值阈值为4,即大于等于4的为正样本,本文根据正样本数据大小,在用户未交互过的电影和评分小于4的数据随机采样得到该用户负样本。由于Book-Cros-sing和Last.FM数据稀疏,未设置阈值,负样本数据生成与MovieLens-1M相同。表1中给出用户数、项目数以及知识图谱数据,此外考虑到复杂度问题,本文只保留了与用户有交互的项目以及与其对应的不同距离的三元组。

表1 实验数据集统计信息

4.2 基准实验

在CKGAN的实验中,选取了以下的基准算法:

BPRMF[19]:一种经典的CF模型,采用pairwise的训练方式来改进传统MF算法。

CKE[12]:将协同过滤与知识图谱嵌入、文本嵌入和项目图像嵌入结合在一个统一的贝叶斯框架中进行推荐。在本文中,只利用了知识图谱嵌入来学习项目的向量表示。

RippleNet[5]:将用户的历史信息作为种子,通过知识图谱中的实体连接迭代向外扩展用户的兴趣,由此来丰富用户向量。

KGCN[6]:一种基于GCN方法的模型,将知识图谱变成向量加权图,通过特定用户对不同实体关系的兴趣不同改变聚合系数,最终得到项目向量。

KGAT[8]:另一种基于GCN方法的模型,将用户嵌入到知识图谱中,使用TransR[11]模型改变聚合系数,最终分别得到用户向量和项目向量,最后采用BPR算法进行推荐。

NACF[14]:基于KGCN的思想,引入双注意力机制生成用户向量。

4.3 实验设置及评价指标

4.3.1 实验设置

表2 CKGAN模型的超参数设置

4.3.2 评价指标

在两个实验场景中评估本文算法:①在点击率(CTR)预测中,将测试集使用训练好的模型参数验证用户是否会点击项目,采用AUC和ACC作为推荐结果的评价指标。②在top-k推荐中,对用户未点击过的所有项目进行排序,将用户最有可能点击的前k个项目进行召回,查看测试集中的用户的正样本数据被召回的概率,采用Recall@K作为评价指标。

ACC:模型预测正确的概率。其中R(u) 为关于用户u的真实标签包括喜欢和不喜欢,F(u) 为模型预测结果

(16)

AUC:用于评估模型的性能,简单说AUC越大,模型正确率越高。M表示用户喜欢项目的数目,N表示用户不喜欢的数目。模型输出结果中有a组用户喜欢的项目分数大于不喜欢的项目分数,有b组用户喜欢项目的分数等于不喜欢项目的分数。AUC计算方式如式(17)所示

(17)

4.4 实验结果

4.4.1 与基准算法的比较

模型按照4.3.1节的参数设置,表3总结了3个数据集的CTR预测结果,3个数据集的top-k推荐曲线如图2所示。

表3 基于AUC和ACC评价指标的CTR预测结果

图2 top-k推荐的Recall@K实验结果

观察实验结果可以发现,CKGAN在两个实验场景都优于基线算法,从实验结果中可以得出以下结论。

(1)在3个公共数据集中,CKGAN在CTR预测中准确率上分别提升2.3%、5.8%、1%,在top-k推荐中recall@100分别提升2.1%、2.4%、0.9%。

(2)基于知识图谱的推荐算法优于传统的BPRMF算法,说明引入KG作为辅助信息对推荐算法性能有很大的提升。但在Last.FM数据集上,CKE的表现性能还不如BPRMF模型,表明仅通过建模知识图谱两项目之间相似度进行推荐并不能充分发挥知识图谱的作用,间接表明了用户兴趣的多样性。

(3)与其它基线算法相比,CKGAN和NACF总体表现的性能更出色,表明通过待测项目动态建模用户表示能够捕获到用户不同的兴趣,值得注意的是在交互数据更为稠密的MovieLens-1M数据集上,RippleNet表现性能优于KGAT、KGCN、NACF,我们推测使用GCN模型在进行聚合操作时可能引入过多的噪声,而CKGAN利用GAT思想只聚合了重要的信息取得了更佳的效果。

(4)在两个实验场景下,CKGAN的性能都优于现有的最先进的基线,尤其在数据稀疏的Last.FM和Book-Crossing数据集上,表明无论是侧重对知识图谱建模的KGAT模型,还是侧重对用户交互数据建模的KGCN、RippleNet模型都无法准确的获得用户和项目的表示,CKGAN通过从用户历史数据中获取协同信号,利用GAT思想结合知识图谱属性信息更好地得到了用户和项目表示。

4.4.2 模型参数对比实验

本节对CKGAN模型中嵌入向量的维度和传播层数进行对比分析。

(1)嵌入向量维度的影响

如表4所示对比实验,只调整了嵌入向量的维度,其余参数设置参照表2,通过实验分析可以看出,随着嵌入向量维度的增加,CKGAN模型的效果越好,但是超过一定的阈值后,由于出现过拟合现象,性能会下降。值得注意的是电影数据集受嵌入向量的维度的影响较小,一个可能的原因是数据的稀疏度会影响实验结果。

表4 基于AUC指标的嵌入向量维度实验

(2)传播层数的影响

如表5所示,在传播层数的对比实验中,可以观察到,音乐、书籍、电影的最佳传播层数分别是1、1、2。对于这个合理的解释是,音乐和书籍数据集中用户-项目的平均交互数要远低于电影数据集中的平均交互数,可能导致项目之间的连接距离不一致,如果层数太高会引入更多噪声,所以选择合理传播层数才能发挥模型的最佳性能。

表5 基于AUC指标的传播层数实验

4.5 冷启动实验

本节验证了引入KG可以有效缓解冷启动问题。逐步将Book-Crossing训练集的大小从r=100%减少到r=20%(测试集大小不变),以研究模型在冷启动问题场景的性能。如图3所示,当r=20%时,按4.2节中基线顺序,6条基线的AUC分别下降34.7%、27.5%、15.2%、18%、10.5%、10.4%,而CKGAN的性能下降了9.2%。这表明,在冷启动情况下,CKGAN可以比基线取得更好的结果。

图3 冷启动场景下模型的性能对比

4.6 消融实验

为了讨论图注意力层和协作传播层对实验结果的影响,本文设计了两个变体模型CKGANw/o GAT和CKGANw/o CP,CKGANw/o GAT取消了图注意层将airt设置1/|εi|,CKGANw/o CP去掉了协作传播层以及在预测层不再使用历史交互项表示用户。表6可以说明,删除协作传播层和图注意力层会降低模型的性能,CKGANw/o GAT低于CKGAN可以说明运用GAT思想能够捕获到不同关系下的邻居对于中心实体的重要性。CKGANw/o CP低于CKGAN以及CKGANw/o GAT可以表明利用用户历史交互数据能够更准确地表达用户以及用户交互过的历史项目之间的关系是模糊的。

表6 基于AUC指标的消融实验

5 结束语

本文提出一种融合知识图谱信息和协同信息的推荐模型,模型首先通过使用用户历史交互项目来表示用户,这些项目在知识图谱中进行传播,通过图注意力网络使这些项目得到丰富的表示,最后根据候选项目动态建模出用户表示。最后在真实数据集上验证了CKGAN模型的有效性。在未来的工作中,模型需要进一步解决的问题:①当前的工作将基于KG的推荐视为一个受监督的任务,其中监督信号仅来自历史交互数据,未来考虑引入知识图谱中实体类别作为监督信号来进一步优化模型。②仅考虑了项目侧对推荐结果的影响,未来考虑引入用户本身信息,以获得更准确的推荐结果。

猜你喜欢
图谱实体向量
向量的分解
聚焦“向量与三角”创新题
绘一张成长图谱
前海自贸区:金融服务实体
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
补肾强身片UPLC指纹图谱
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
主动对接你思维的知识图谱
向量垂直在解析几何中的应用