融合知识图谱与循环神经网络的推荐模型

2020-09-03 08:38程淑玉黄淑桦
小型微型计算机系统 2020年8期
关键词:图谱向量物品

程淑玉,黄淑桦,印 鉴

1(安徽电子信息职业技术学院,安徽 蚌埠 233060)

2(中山大学 数据科学与计算机学院 广东省大数据分析与处理重点实验室,广州 510006)E-mail:csygold@163.com

1 引 言

近几年来,伴随着移动互联网、大数据的飞速发展,网络上的信息内容和服务也迅猛增长,如网购的商品信息、新闻资讯、多媒体服务等,这些信息将会毫无规律地、毫无差别地展现在每个用户面前.对于普通用户来说,如何在这些海量信息中获得自己需要的内容是一件极其困难并且十分耗费时间的事.同时,对于商家而言,无法将用户需要的商品及时呈现给用户,会导致用户体验大打折扣,难以提高交易量.所以,为了解决信息过载的问题,人们提出了推荐系统.

推荐系统能够根据用户的属性档案和历史行为记录,学习用户的兴趣偏好,并从海量的内容中筛选出用户可能感兴趣的部分推荐给用户,过滤掉冗余、用户不感兴趣的部分,从而提高用户筛选信息的效率,解决了大数据时代下的信息过载问题,提高了用户体验,被大量应用在新闻、电影、书籍电子商务、社交网络等在线内容和服务平台,并取得了不错的成果.目前,推荐系统大概分为三类,分别是基于内容的推荐、协同过滤推荐,以及混合推荐.其中协同过滤推荐是目前应用最广泛的推荐方法[1],它以用户对物品或者信息的偏好为基础,发现物品或者信息本身的相关性,为用户推荐具有相关性的物品或者信息;或者发现用户的相关性,然后将该用户偏好的物品推荐给其他具有相关性的用户.由于协同过滤推荐依赖用户的历史偏好数据,且偏好数据十分稀疏,从而降低了推荐的精确度.同时,新用户和新物品还将面临冷启动问题.

为了解决这些问题,研究者们尝试将额外的辅助信息引入推荐算法中,来丰富用户、物品或者信息的描述,从而弥补用户的历史偏好数据集的稀疏或缺失.常用的辅助信息包括:社交网络[2]、用户/物品属性[3]、图像/文本等多媒体信息[4]、上下文信息[5]、知识图谱等.

知识图谱是近年来新兴的一种辅助信息[6],其基本结构是一种有向异构图,图中节点对应实体,边对应实体间的语义关系,例如NELL、DBpedia、Google Knowledge Graph、Microsoft Satori等.知识图谱可以对多源异构数据进行整合和知识提取,包含了实体之间更丰富的语义关联,并且可以结合推理得到的隐含信息为用户提供个性化服务,被广泛应用于智能搜索、智能问答、文本分类等领域.将知识图谱引入推荐系统能够提供用户、物品之间更丰富的语义关联,有助于挖掘物品间的更深层次的关系,提高推荐的精确度;同时知识图谱包含多种关系,可以从多个方向且合理地扩展用户的兴趣范围,提高推荐物品的多样性;知识图谱将用户的偏好物品与推荐物品相连接,为推荐结果提供更好的解释性,从而提高用户对推荐结果的满意度和接受度.

基于知识图谱的推荐系统分为两类,一类采用的是基于知识图谱特征学习(knowledge graph embedding ,KGE)方法,如Fuzheng Zhang等提出的CKE[7]模型,该模型首先进行物品的知识图谱特征、文本特征及图像特征学习,然后将这些特征应用于协同过滤;Hongwei Wang等提出DKN[8]模型,该模型首先学习新闻标题的词向量和实体向量、实体上下文向量,然后通过卷积神经网络的框架进行融合得到新闻实体的特征向量,用于后续的个性化推荐,这些模型中的知识图谱特征学习模块和推荐模块是相互独立的,其中知识图谱特征学习模块学习到的实体特征表示更适用于知识图谱内部的应用,如实体间的连接预测,无法引入关系特征,对推荐生成的帮助比较有限.另一类采用的是基于开放链接数据(linked open data,LOD)的方法,如Xiao Yu等提出的PER[9]模型,HuanZhao等提出的Meta-Graph[10]模型都采取将知识图谱视为一个异构信息网络,构造物品之间的基于meta-path或meta-graph的特征.例如,“电影->题材->电影->主演->电影”这条meta-path可以连接两部电影,因此可以视为一种挖掘电影之间的潜在关系的方式.这类方法的优点是充分且直观地利用了知识图谱的网络结构,缺点是需要手动设计meta-path或meta-graph,使得模型在实践中难以优化.

针对以上两个问题及推荐系统中的数据稀疏问题,本文借鉴RippleNet模型[11]中的“偏好扩散”思想,提出融合知识图谱结构特征学习及循环神经网络的推荐方法,主要贡献如下:

1)针对以上两类基于知识图谱的推荐系统中存在的问题,提出通过“偏好扩散”自发挖掘用户的潜在偏好,将知识图谱特征学习融入到推荐系统内,利用知识图谱中实体的连接获取用户扩散偏好集.

2)针对用户历史偏好数据稀疏问题,提出利用循环神经网络(RNN)进行推荐,将用户扩散偏好集作为循环神经网络的输入,结合基于物品的注意力机制对用户扩散偏好集进行学习,获取包含更多有用信息的更深层次的用户偏好表示,以提高预测用户喜欢某个物品的准确性.

2 相关工作

2.1 知识图谱

知识图谱[12]是Google[13]于2012年5月17日正式提出的,用于增强其搜索引擎功能的知识库.其本质上是一种揭示实体之间关系的异构语义网络,可以对现实世界的事物及其相互关系进行形式化的描述.

知识图谱中,节点E={e1,e2,e3,…,e|E|}代表实体或者概念,实体指的是具有可区别性且独立存在的某种事物,概念指的是具有同种特性的实体构成的集合,每个实体或者概念用一个唯一的ID来标识;边R={r1,r2,r3,…,r|R|}代表实体/概念之间的各种语义关系,可以形式化为一个函数,把k个点映射到一个布尔值.一个三元组(h,r,t)表示一条知识,两个实体间存在着某种关系,其中h表示知识的头节点,t表示尾节点,r表示关系.若干三元组的集合S={(h,r,t)|h⊆E,r⊆R,t⊆E}构成一个知识图谱.如图1所示,知识图谱可以清晰地表示出电影、演员和导演之间的语义关系.

2.2 推荐方法

将知识图谱引入推荐系统的方法有两类:基于特征的推荐方法和基于路径的推荐方法.基于特征的推荐方法从知识图谱中抽取一些用户和物品的属性作为特征,将这些特征输入到传统的推荐模型中进行训练,如CKE[7]、DKN[8],这些特征可以引入物品间更丰富具体的语义关联,提高推荐系统的准确性.基于路径的推荐方法将知识图谱视为一个异构信息网络,通过构造物品之间的基于meta-path或meta-graph的特征挖掘物品之间的潜在关系,如PER[9]、Meta-Graph[10],这类方法可以充分且直观地利用知识图谱的网络结构.

2.3 知识图谱特征学习

知识图谱特征学习(KGE)是网络特征学习的一个子领域,它为知识图谱中的每个实体和关系学习得到一个低维向量,降低知识图谱的高维性和异构性,同时保持图中原有的结构或语义信息.一般而言,KGE的模型[12]分为两类:

1)基于语义的匹配模型.这类模型使用基于相似度的评分函数评估三元组的置信度,将实体和关系映射到语义空间中进行相似度度量.典型代表有ANALOGY[14]、ComplEx[15]、DisMult[16]等.

2)基于距离的翻译模型.这类模型的核心思想是将实体和关系投影到同一低维向量空间下,然后使用基于距离的评分函数评估三元组的置信度,将关系视为从头节点实体到尾节点实体的翻译得到的结果.典型代表有TransE[17]、TransH[18]、TransD[19]、TransR[20]等.

2.4 知识图谱特征学习与推荐系统

目前,我们通过依次学习、联合学习和交替学习三种方式将知识图谱特征学习应用到推荐系统.依次学习(one-by-one learning)首先利用知识图谱特征学习得到低维的关系向量和实体向量,然后将这些向量引入推荐系统,学习得到用户向量和物品向量,如DKN[8],该方式将知识图谱特征学习模块和推荐系统模块相互独立,通过一次训练得到实体和关系向量,以后每次推荐系统模块需要更新时都可以直接使用这些向量作为输入,无需重新训练,开销较小,但是知识图谱特征学习模块得到的向量会更适合于知识图谱内的任务,对推荐的帮助不大;联合学习(joint learning)将知识图谱特征学习模块和推荐系统模块相结合,使用端到端的训练方式进行学习,如CKE[7]和Ripple Network[12],该方式能够将推荐系统模块的监督信号反馈到知识图谱特征学习中,有利于提高系统的性能,但是训练开销比较大;交替学习(alternate learning)将知识图谱特征学习模块和推荐系统模块视为两个分离但又相关的任务,使用多任务学习的框架进行学习,如MKR,该方式可以防止过拟合和提高系统的泛化能力.

本文借鉴RippleNet模型中的“偏好扩散”思想,可以自发地挖掘用户的潜在偏好,不需要手动设置meta-path,并在推荐系统中引入了知识图谱的结构信息来提升推荐系统的质量.本文的推荐系统以点击率预测为目标进行训练.为了使实体特征对推荐任务的作用最大化,本文方法将知识图谱结构特征学习和推荐算法的目标函数融合进行联合学习,所以模型损失函数如公式(1)所示.

Loss=λLKGE+Lpredict

(1)

其中,LKGE为特征学习损失函数,Lpredict为预测损失函数,采用了随机梯度下降法来优化损失函数.

3 模型设计

本文设计了一个基于知识图谱与循环神经网络的推荐系统模型,模型框架如图2所示,其中左边部分为知识图谱结构特征学习,首先通过知识图谱的结构信息,使得所有尾节点作为头结点和关系的翻译结果,然后,利用“偏好扩散”思想获取用户的扩散偏好集,进行用户的偏好特征表示;右边部分是构建推荐模型,该模型是一个基于循环神经网络和注意力机制的推荐算法,将左边部分获取的扩散偏好集作为循环神经网络的输入,融合注意力机制,输出用户喜欢某物品的预测概率.

图2 基于知识图谱与循环神经网络的推荐系统模型框架

3.1 结构特征学习

知识图谱结构特征学习关注的是实体节点间的连接关系,使用TransE算法进行学习得到实体和关系向量,使实体特征包含图谱中的结构信息,如图2左边部分表示.本文在结构特征学习采用基于距离的翻译模型方法,即有连接关系的两个实体间的距离尽可能小,该方法可以学习到知识实体的向量表示.所以,所有真实三元组应满足h+r≈t,因此相关的损失函数定义为.

(2)

3.2 扩散偏好集

在RippleNet模型[12]中,提出了一种“偏好扩散”思想.如图3所示,一个用户的偏好集可以通过知识图谱的连接,逐层往外扩散,形成扩散偏好集.如图1中电影“霸王别姬”和主演“张国荣”之间有连接,而“张国荣”又与其主演的电影“风月”之间有连接,那么喜欢电影“霸王别姬”的用户的偏好就可以通过这个关系,扩散到电影“风月”上了.

图3 基于知识图谱的用户扩散偏好集

传统推荐算法仅仅考虑用户的历史偏好数据,而RippleNet模型将用户向量表示视为用户扩散偏好集中的实体向量表示的加权和,合理地丰富了用户的偏好数据.通过“偏好扩散”思想,获取每个用户的扩散偏好集,并作为后续RNN模型的输入,进行用户偏好特征表示的学习.

3.3 利用循环神经网络进行推荐

和其他只考虑用户历史偏好数据的基于循环神经网络的推荐方法不同,本文利用循环神经网络对用户扩散偏好集进行学习,获取包含更多有用信息的更深层次的用户偏好表示,用于后续预测用户喜欢某个物品的概率,整体架构如图2右边部分.最底的输入层是来自用户扩散偏好集的物品特征表示.中间的隐藏层采用门控循环单元(GRU)作为RNN单元.GRU是长短期记忆网络(LSTM)的一种变体,将遗忘门和输入门合成了一个单一的更新门,结构更加简单,因此收敛速度更快.

更新门用于确定前一个状态信息被传递到当前状态中的程度.

rt=σ(Wrxt+Urht-1)

(3)

重置门用于确定忽略前一个状态信息的程度.

zt=σ(Wzxt+Uzht-1)

(4)

(5)

当前状态是前一个状态和候选状态之间的线性插值.

(6)

本文方法中,RNN的输入序列不是单纯的时序关系,而是基于用户扩散偏好集的层次关系,内部层次的物品位于输入序列的前面,外部层次的物品位于输入序列的后面.

考虑到用户对扩散偏好集中不同物品有不同偏好程度,文本采用了基于物品的注意力机制,对输入的不同部分进行线性组合,从而构成用户的偏好特征表示.

(7)

其中αjn表示第j个隐藏状态和最后第n个状态的匹配程度,其中n是用户扩散偏好集Eu的大小,表示了第j个物品对用户u的相对重要性,从而确定了在推荐过程中哪些物品应该被重视,哪些物品应该相对被忽略.αjn的计算如下.

(8)

得到用户的偏好特征表示之后,就可以预测用户u喜欢某个候选物品ci的概率.

(9)

最后,通过最小化真实值和预测值间的交叉熵损失来训练模型.

(10)

其中q为预测概率分布,而p为真实概率分布.

4 实验设置及结果分析

4.1 数据集介绍

本文采用了电影数据集MovieLens-1M和图书数据集Book-Crossing.其中MovieLens-1M包括了6036个用户,2445部电影,以及百万条评分信息.Book-Crossing包括了17860个用户,14967本图书,以及百万条评分信息.本文把用户的高评分数据(评分大于等于4为高分)转化为用标记1代表已评分,从而将MovieLens-1M的显示反馈数据转化为隐式反馈数据.由于Book-Crossing数据集比较稀疏,所以把所有评分数据都用标记1表示.另外,为每个用户随机选取若干部未观看的电影以及图书,并加上标记0,数量与已评分项的数量相同.

采用Hongwei Wang等[11]构建的知识图谱进行实验.Hongwei Wang用Microsoft Satori公开知识库为数据集构建知识图谱.以MovieLens-1M为例,从整个知识库中抽取出包含与“movie”有关的关系三元组子集,然后将数据集中的电影与知识库子集中的电影实体相匹配,得到与数据集相关的实体集.为简单起见,无法得到匹配的电影会被丢弃.得到实体集后,通过与实体集相关的三元组迭代地扩散实体集,共扩散了4层,完成MovieLens-1M的知识图谱构建.Book-Crossing的知识图谱构建同理.

4.2 实验设置

4.2.1 度量标准

本文将数据集80%数据作为训练集,20%数据作为测试集.文中实验结果均为5次,重复实验得出的平均值.实验共在两种情景下进行:

1)点击率预测

度量标准为AUC(如公式(11)所示)和精确率Acc(如公式(12)所示).

(11)

其中,insi∈Positive表示正样例,rankinsi表示第i个样例的依据预测概率的排名,M表示正样例的个数,N表示负样例的个数.实质上,AUC表示正样例依据预测概率排在负样例之前的概率.

(12)

其中,TP表示真正例数,TN表示真负例数,P表示正例数,N表示负例数.实质上,准确率Acc则表示预测正确的样本个数与总样本数之比.

2)Top-K列表推荐

度量标准为回收率recall@K(如公式(13)所示)和准确率precision@K(如公式(14)所示).

(13)

其中,FN表示假负例数.实质上,回收率recall@K表示真正例数和总正例数之比.

(14)

其中,FP表示假正例数.实质上,准确率precision@K表示真正例数和所有预测为正的样例数之比.

4.2.2 参数设置

实验的具体参数设置如表1所示.其中,d表示物品特征表示的维度和用户特征表示的维度,h表示扩散偏好集的层数,m表示扩散偏好集的每层大小,λ表示KGE损失的权重,η表示模型学习率.

表1 实验参数设置

4.2.3 参数对比分析

为了测量物品表示维度d对推荐效果的影响,本文分别在d=8,16,32,64的设置下对MovieLens-1M数据集进行实验,以及在d=2,4,8,16的设置下对Book-Crossing数据集进行实验,实验结果如图4所示.我们可以从两个结果中发现,一开始AUC会随着d的增长而增长,因为d越大,实体表示能表征更多有用信息,对于两个数据集,d分别为16、4时推荐效果达到最佳;但是当d继续增大时,会带来过拟合现象,导致AUC降低.

图4 d对AUC的影响

为了测量扩散偏好集层数h对推荐效果的影响,本文分别在h=2,3,4,5的设置下对MovieLens-1M数据集以及Book-Crossing数据集进行实验,实验结果如图5所示.结果显示当h分别为3、4时效果最佳,因为当h太小时,难以发掘实体间更多的关联,而当h太大时,会带来比有用信息更多的噪音.

图5 h对AUC的影响

为了测量扩散偏好集每一层的大小对推荐效果的影响,本文分别在m=8,16,32,64的设置下对MovieLens-1M数据集以及Book-Crossing数据集进行实验,实验结果如图6所示.可以看出,一开始AUC会随着m的增长而增长,但当AUC太大时,AUC会下降.理由同扩散偏好集层数对推荐效果的影响相似,当m太大时会带来很多噪音,而且计算开销也会很大.总的来说,对于两个数据集,m=32时效果最佳.

图6 m对AUC的影响

4.3 算法比较

在本节,我们将本文设计模型与下面几种优秀的模型进行了对比:

BPR-MF[21]:基于贝叶斯个性化排序的矩阵分解,通过构建用户对不同物品的偏序关系进行协同过滤的推荐.

RNNRec[22]:根据用户的时序的异构行为,例如浏览、购买等,利用RNN模型去预测用户喜欢某个物品等概率.

CKE[8]:先进行物品的KGE学习、文本特征学习、图像特征学习,并将这些特征引用于协同过滤推荐.

RippleNet[11]:将知识图谱特征学习融入推荐系统,利用“偏好扩散”结合注意力机制得到用户的偏好特征表示.

算法对比在点击率预测结果如表2所示,在Top-K列表推荐情景下的实验结果如图7、图8所示.

表2 点击率预测

图7 不同k值的召回率和准确率(MovieLens-1M)

图8 不同k值的召回率和准确率(Book-Crossing)

由算法对比实验结果可知BPR-MF方法在两个数据集上的召回率和精确度都是最低,效果最不理想,因为它只考虑了不同物品对用户的影响力的差别,而完全忽略了对物品语义信息的利用.RNNRec方法仅把用户行为划分为有评分和无评分两种,没有利用多种异构交互行为,该方法点击率预测仅次于RippleNet和本文方法,并且在Top-K列表推荐情景下优于RippleNet.CKE方法只利用了KGE,而没有利用文本特征和图像特征,所以效果相对会差一些,仅优于BPR-MF.RippleNet取得很好的效果,但是相比本文提出的用RNN学习深层次用户偏好特征的方法,RippleNet只是对用户的扩散偏好集采用了注意力机制的方法来获取用户偏好特征,因此效果还是略逊色一点.在所有对比方法中,本文方法取得最好的效果,因为它利用了物品属性信息,考虑了物品之间的语义关系,而且考虑用户消费偏好物品的顺序的同时,还引入了用户扩散偏好集,丰富了用户的历史偏好数据.

5 结束语

本文提出了一个融合知识图谱与循环神经网络的推荐系统.此推荐系统利用知识图谱以及“偏好扩散”思想获取用户的扩散偏好集,丰富了用户的偏好信息,具有很好的可解释性.本文方法通过“偏好扩散”将知识图谱特征学习自动融合到了推荐系统,相比于其他将知识图谱特征学习模块与推荐模块独立开来的方法,物品特征表示更适用于推荐任务.与其他推荐方法仅利用用户历史交互序列作为循环神经网络的输入不同,本文首次将扩散偏好集作为循环神经网络的输入,以学习到更深层次的用户偏好特征表示.本文将实验建立在电影及图书推荐上,进行了点击率预测以及Top-K列表推荐.实验结果表明,本文方法的推荐效果比最新优秀方法获得了更好的效果.

猜你喜欢
图谱向量物品
基于图对比注意力网络的知识图谱补全
称物品
向量的分解
聚焦“向量与三角”创新题
图表
图画捉迷藏
主动对接你思维的知识图谱
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
找物品