一种融合协同因子的知识图谱传播推荐模型
2022-05-11朱欣娟童小凯王西汉高全力
朱欣娟,童小凯,王西汉,高全力
(西安工程大学 计算机科学学院,陕西 西安 710048)
0 引 言
大数据时代,信息过载问题给人们带来新挑战,用户难以从海量数据中找到其感兴趣的内容。作为信息过滤工具,推荐系统目前已被广泛地应用到各个在线平台,从而为用户提供精准的个性化推荐服务[1-3]。传统推荐算法主要分为2种:基于协同过滤和基于内容。其中基于协同过滤的算法通过用户的历史交互信息来捕获其潜在的共同偏好进行推荐,不依赖于用户信息与物品本身的属性,效果较好且易于实现,在早期被广泛地使用,但是存在稀疏性和冷启动问题;基于内容的算法在欧几里得空间中对用户和物品的特征进行向量表征[4],可以缓解以上问题,但现实生活中还存在许多非欧几里得空间的数据[5]。这类数据可以通过知识图谱进行表示,使用多种关系将不同的实体进行关联。将知识图谱引入到推荐系统中作为辅助信息[6],不仅能够丰富用户和物品间的联系[7],增强推荐算法的挖掘能力,还可以提供可解释的推荐理由[8]。因此越来越多的学者考虑利用知识图谱来提升推荐效果。
现有基于知识图谱的推荐算法可划分为3类:基于连接、基于嵌入和基于传播[9]。
基于连接的方法通过构造物品之间的元路径或元图挖掘知识图谱中的潜在关系。文献[10]在具有共同注意机制的三向神经交互模型中建模了基于元路径上下文的推荐模型MCRec,与基于<用户-物品>交互关系不同的是该方法使用了<用户-元路径-物品>构成的三方上下文交互。基于连接的方法在设计元路径或元图时需要大量领域知识,人工设计成本较高[11]。人工定义的元路径和元图可能存在信息丢失,因而限制了算法对于高阶关系的捕捉[12]。
基于嵌入的方法将知识图谱视作丰富的语义信息嵌入到推荐任务中,丰富了用户和物品特征。文献[13]针对新闻推荐提出了深度知识感知网络模型,通过TransD[14]获得知识图谱的结构特征,融合文本和上下文特征作为物品的最终特征进行推荐。文献[15]提出Entity2rec,通过Node2Vec这种灵活的随机游走方法学习实体表示并展开推荐。由于以上2种方法的嵌入和推荐模块相互解耦,所以其嵌入结果可能并不适合推荐任务,而更适用于知识图谱补全和链路预测场景[16]。文献[17]提出的协同知识嵌入模型是一种端到端的学习方法,除了知识图谱嵌入,该模型还融合了文本和图像特征学习,推荐模块学习用于指导嵌入模块学习。虽然基于嵌入的方法比基于连接的方法更加灵活,但是在嵌入时难以考虑到用户兴趣偏好在实体关系传播过程中的影响,忽略了用户的潜在偏好[18]。
为了充分利用知识图谱中的信息,基于传播的方法结合了以上2种方法,成为近年来一个新的研究趋势[19]。文献[20]提出的RippleNet从用户初始兴趣集合出发,沿着知识图谱进行邻域多跳传播来模拟用户兴趣偏好的传播,将最终得到的集合聚合为用户表征。文献[21]提出的知识图谱卷积网络(knowledge graph convolutional, KGCN)则从物品实体出发,通过空域图卷积网络对物品实体在知识图谱中的邻域多跳传播来获取物品的表征,有效地捕获物品间的相关性。文献[22]提出的知识图谱注意力网络将用户物品交互信息融入知识图谱中,使用TransR[23]获得初始的物品表示,通过多层传播获取用户多阶表示,最终聚合物品和用户的嵌入表示进行推荐。虽然基于传播的方法在探索用户潜在偏好上得到了很好的效果,但在传播过程中容易引入不相关实体而受到噪声影响[24]。对于高阶关系的捕捉,随着传播阶数的增长,其算法复杂度呈指数增长。
基于知识图谱的推荐算法本质上是基于内容的体系结构在知识图谱这类异构信息网络上的拓展[25]。通过对知识图谱中实体和关系的学习得到低维的向量表示,将非欧几里得空间的数据特征映射到欧几里得空间中,因此也可用基于物品相似度的方法进行推荐[26]。但实际场景中还存在着“啤酒与尿布”这类难以依据物品相似度的隐式模式。这种隐式模式在知识图谱中可能表现为高阶关系或者不存在关系,在用户物品交互信息构成的共现矩阵中表现为用户对物品做出的高频组合选择。为了加强对于隐式模式的发现和高阶关系的捕捉,本文在知识图谱传播推荐算法中引入协同因子模块和密度门,提出了融合协同因子的传播推荐模型。
1 融合协同因子的传播推荐模型
1.1 问题描述
假设有M个用户U={u1,u2,…,uM}和N个物品V={v1,v2,…,vN}。根据用户隐式反馈定义用户物品交互共现矩阵Y∈RM×N。ymn=1表示用户um与物品vn之间存在隐式交互,如点击、观看、浏览等行为,说明用户对物品有反馈,否则ymn=0。
本文用G=(E,R)表示知识图谱,其中E为图中节点所对应实体的集合,R为边所对应实体之间关系的集合。知识图谱中任意一条边可用三元组(h,r,t)表示,其中h∈E,r∈R,t∈E分别代表三元组的头实体、关系和尾实体。
1.2 传播推荐算法
目前主流的传播推荐算法有2种传播途径,分别以用户初始兴趣集合或物品实体为起点在知识图谱上进行邻域多跳传播,但是根据实验结果来看,该方法还存在以下问题:
1) 容易受到知识图谱自身限制,知识图谱的构建过程更偏向知识传播,与用户对物品特征属性的关注和偏好可能存在偏差,仅根据知识图谱提供的知识进行推理传播会使得模型学习的感知视野片面。
2) 对于高阶关系的捕捉,虽可设置为高阶传播,但高阶传播会使得模型学习的复杂度增大并引入噪声,在传播过程中引入与用户兴趣偏好无关的实体。
本文选取RippleNet和KGCN作为从用户和物品这2个角度出发的传播推荐算法融入协同因子模块。如图1所示,传播推荐算法的流程可划分为传播阶段和聚合阶段。
(a) 以用户为起点的 (b) 以物品为起点的 传播模型 传播模型图 1 传播推荐算法流程Fig.1 Propagation-based recommendation algorithm
从图1可以看出,在传播阶段,以系统中用户或物品为起点在知识图谱上通过实体关系进行传播采样,涉及的参数有采样跳数H和邻采样大小K。该阶段存在多种采样方法,本文采用均匀采样。有效地设计采样方法可以帮助算法避免噪声,对于计算性能也有重要意义。
聚合阶段会把采样出的候选集合通过聚合方法聚合为用户或物品表征,该过程中决定实体传播的强度,引入用户的兴趣偏好。例如采样跳数越深的实体对于最终表征学习的影响一般是最小的。或者对于某一个用户,某一条实体关系的传播力度会大于另外一条。
k=1,2,…,H
(1)
通过以上多跳相关实体集可得当前用户的多跳偏好传播集:
k=1,2,…,H
(2)
(3)
(4)
(5)
1.3 协同因子模块
传播推荐算法游走于知识图谱的几何空间中,如图2所示,当系统中大部分用户存在(v1,v3)这样一种高频组合的选择,在共现矩阵中其可被发现为一类隐式模式,但在知识图谱中v1和v3之间可能是高阶关系或不存在关系,难以通过传播推荐算法发现。
图 2 从共现矩阵中发现隐式模式Fig.2 Discovery of latent patterns from co-occurrence matrix
为了解决以上问题,本文引入协同过滤中矩阵分解[27]的思想,设计了协同因子模块,通过共现矩阵来发掘隐式模式。该模块将推荐问题视作矩阵填充问题,为系统中的每个用户和物品分别关联一个隐因子向量pu∈Rd×1和qv∈Rd×1,认为在推荐任务中的用户和物品都可用一个d维向量来表示,其中d值越大则该模块的信息表达能力就会越强。所以共现矩阵可以分解为P∈Rd×M和Q∈Rd×M这2个低秩矩阵,当前用户u对物品v的偏好评分可通过点积进行计算。为了消除不同用户评分基准的偏差,可在此基础上加入偏置项bu和bv。所以协同因子模块的预测结果可表示为
(6)
使用交替最小二乘法对该模块进行训练,损失函数为
(7)
式中:Iuv为指示函数,有交互为1,否则为0。Ω为防止过拟合正则化参数。
协同因子模块虽缓解了隐式模式发现的问题,但该模块存在稀疏性问题,在稠密的共现矩阵中才能发挥效果。为了使得协同因子模块能够感知共现矩阵的稀疏程度动态控制输出,本文设计了全局交互密度、物品交互密度和用户交互密度3类共现矩阵密度参数。
全局交互密度可表示为
(8)
式中:M和N分别代表用户和物品数量。全局交互密度可以感知共现矩阵的填充密度,反馈当前模型所处的生命周期阶段,较小值代表模型处于冷启动阶段,知识图谱作为辅助信息对推荐结果具有主导作用。随着交互信息产生,该值增大,表示当前模型具有展现更为精准的推荐水平。该值一般较小,所以使用指数函数exp对其放大。
物品交互密度可表示为
(9)
物品交互密度反映了当前物品被交互的程度,热门物品的该值较大,所以对于这类物品的隐因子学习是较为精准的。
用户交互密度可表示为
(10)
用户交互密度是模型对当前用户熟知程度的度量值,随着用户行为的增长而增大。为了保证参数规模,最后利用sigmoid函数将后2个参数压缩到0至1之间。通过联合以上3个共现矩阵密度参数可组成密度门,进而多角度感知并控制协同因子模块的输出,其表达式为
W(u,v)=σ(MLP(CT(Dg,Dv,Du)))
(11)
式中:MLP表示多层感知机;CT表示向量拼接操作。
(12)
图 3 融合协同因子的传播推荐模型Fig.3 Propagation-based recommender modelwith collaborative factor
2 实验与结果分析
2.1 数据集及评价指标
为了验证本文提出模型的效果,将本文模型RippleNet-CF(RippleNet with collaborative factor)和KGCN-CF(KGCN with collaborative factor)与原传播推荐算法RippleNet和KGCN进行对比实验。
实验集来自于3个实际场景公开数据集:电影MovieLens-1M、图书Book-Crossing和音乐Last.fm。MovieLens-1M是电影领域推荐评估中常用数据集,包含用户对电影1~5分显式评级;Book-Crossing是来自Book-Crossing社区用户对于图书显式和隐式评分的数据集,其中显式评分范围从1~10,用0表示用户对图书的隐式评分;Last.fm是用于音乐推荐的数据集,包含了Last.fm平台上用户对音乐家列表的播放次数。
使用微软开放领域知识图谱Satori为以上数据集构建知识图谱:首先在Satori中匹配置信度大于0.9的三元组子集,因为通过字面量进行的实体匹配存在一个置信度,此处置信度越接近于1,则当前物品与知识图谱中的实体越匹配。针对电影和图书数据集,为了进一步缩减知识图谱规模,只选择关系名中包含“film”和“book”的三元组子集。然后对给定子集通过(head,film.film.name,tail)、(head,book.book.title,tail)和(head,type.object.name,tail)的尾部来匹配数据集中物品ID与实体ID的对应关系。为了保证每个物品都能够在知识图谱中进行传播,匹配过程中忽略知识图谱中不存在物品和多匹配情况,所以最终能够用于训练和测试的物品、用户和交互数量会比原始数据提供的数量少。表1中列出了3个数据集经过知识图谱识别匹配处理后的基本统计情况。
表1 处理后的数据集统计信息Tab.1 Statistics of processed datasets
实验过程中选取80%的数据作为训练集,余下20%作为测试集。在正负样本处理上采用了等比例随机负样本抽取的策略。
表2列出了实验中在3个数据集上经过参数搜索后得到的最终训练参数,其中K为邻采样大小,H为采样跳数,d为嵌入层维度,σ为正则化系数,λ为模型学习率。为了保证对比的公平性,对比的模型参数与本文模型保持一致。
表 2 训练参数Tab.2 Hyper-parameter settings
评价指标选取方面,设置了2个场景下的对比。针对点击率预测(click-through-rate, CTR)场景设置了ROC曲线下面积指标(area under curve, AUC),针对Top-K推荐场景选取了召回率R、精确率P和综合评价指标F1。
2.2 实验结果与分析
表3展示了各算法在CTR场景下的AUC指标,括号内列出了相比于原模型AUC指标提升的百分比。从表3中可观察到,改进后的算法在原算法的AUC指标上均有提升,在图书和音乐数据集上的提升效果较为显著。
表 3 CTR场景下AUC指标对比Tab.3 Comparsion of AUC in CTR prediction
图4展示了3类数据集对应知识图谱中实体关系的种类和分布,其中电影数据集有12种实体关系,图书数据集有25种,音乐数据集有60种。
(a) 电影数据集知识图谱实体关系 (b) 图书数据集知识图谱实体关系 (c) 音乐数据集知识图谱实体关系图 4 知识图谱中实体关系分布占比Fig.4 Relation distribution of knowledge graph
图4在统计时对占比较小的实体关系类型进行了合并,可以观察到,电影数据集的实体关系分布均匀且符合用户对于电影兴趣偏好的传播。图书与音乐数据集相反,图书数据集关于“作者”和音乐数据集关于“影视”的实体关系占比较高,且音乐数据集占比较小的实体关系种类数量较多,容易引入噪声。此外,后2个数据集的实体关系设计显然不是从用户的兴趣偏好传播出发,而更偏向于知识传播角度。这解释了本文模型在图书和音乐数据集上的提升更为明显的原因在于隐式模式的发现在图书和音乐数据集中发挥了更大作用,弥补了传播推荐算法在兴趣偏好传播过程中受到知识图谱限制的短板。
图5列出了Top-K推荐场景下的指标对比结果。由于图书和音乐相比电影数据集稀疏,其Top-K指标比电影数据总体偏低。本文模型在K值较小的精确率上提升较为明显,因为此时与CTR场景较为相似。对于其他指标,本文的模型均有小幅提升。
(a) MovieLens-1M电影数据集
(b) Book-Crossing图书数据集
(c) Last.fm音乐数据集图 5 Top-K预测场景下的准确率、召回率和F1指标结果Fig.5 The result of precision,recall and F1 in Top-K recommendation
通过对CTR和Top-K这2个场景的实验结果分析,本文模型保留了原有传播推荐算法的学习能力,通过协同因子模块增强对隐式模式的发现缓解了知识图谱对用户兴趣偏好刻画不精准和高阶关系发掘的问题。本文模型在损失函数优化时使用的是Pointwise排序策略,比较符合CTR场景,在该场景下有明显的提升效果,在Top-K场景下表现稳定。
3 结 语
本文提出在知识图谱传播推荐算法中引入协同因子模块来提升推荐效果。首先通过传播推荐算法将知识图谱中的实体和关系作为辅助信息引入到推荐中,其次设计了协同因子模块加强对隐式模式发现和高阶实体关系捕捉,设计了由3类共现矩阵密度参数构成的密度门对协同因子模块进行控制,共同进行推荐预测。实验结果证明本文模型适用于CTR预测场景,对于实体关系难以解释用户兴趣偏好的知识图谱数据集提升效果较为明显。
由于本文采用的3类数据集是静态的,没有从动态时间的角度去进行模拟验证模型在实际推荐场景中对于生命周期的感知能力。因此在实际场景中证明其动态推荐的效果是下一步工作的重点。