APP下载

一种融合知识图谱与长短期偏好的下一项推荐算法

2020-04-10沈冬东汪海涛

小型微型计算机系统 2020年4期
关键词:相似性图谱向量

沈冬东,汪海涛,姜 瑛,陈 星

(昆明理工大学 信息工程与自动化学院,昆明 650500)

1 引 言

推荐系统研究工作主要可以归纳为两个主要的研究内容.一种为一般推荐方法,这些工作侧重于挖掘用户和项目之间的静态相关性,这些工作通常由传统协同过滤以及变体[1]来表示,其大多数从静态视图中挖掘用户—项目的特定关系,而忽略了随时间形成的用户交互序列隐含着用户兴趣的衰减以及偏好的动态变化.另一种内容是基于序列模式挖掘[2]为用户推荐下一个感兴趣项目,这些基于序列的模型在短期内提供了对用户决策过程的理解,但用户偏好的动态变化以及如何将历史稳定偏好和当前偏好完美地结合起来仍然在很大程度上未被探索.

在上述两种研究内容中,项目相似性的计算往往占有重要的地位,现有的序列推荐算法往往只关注用户的历史交互序列,而忽略了项目属性、内容之间的联系,例如在电影推荐中,同一导演,同一主演等信息可能成为用户选择影片的重要决定因素.仅采用用户的交互序列产生项目的嵌入往往忽略了项目内容属性之间的内在联系,知识图谱[3]的引入能将项目之间隐含的联系很好地嵌入到项目向量中.知识图谱是一种结构化的知识图,图中的节点表示现实世界中的实物,其中蕴含着丰富的结构化知识.对于推荐系统来说,结构化的知识在提高推荐系统的准确性和可解释性上提供有效的支持.

另一方面现有的序列推荐算法仅考虑用户的短期偏好,没有建模用户长期稳定的历史偏好与短期内偏好的结合,更准确的推荐系统不仅应该考虑用户的短期偏好,还应该考虑区别地利用用户行为信息来考虑历史稳定偏好.

基于上述原因,本文提出一种新的解决方案,称为融合知识图谱与长短期偏好的下一项推荐,该算法主要包含两个主要组件:项目嵌入和判别性偏好学习.特别地,本文提出一种新颖的项目嵌入方法,将项目之间更深层次关系嵌入到项目向量中,其可以捕获项目之间的顺序相似性和内容属性相似性.与传统的item2vec[4]的方法不同,本文将item2vec与node2vec[5]相结合,将用户的交互序列与知识图谱获取的随机游走序列一起训练,训练得出的嵌入向量能更好地揭示项目之间的相似性.然后,在获得嵌入项目的情况下,本文设计两种不同的行为序列模型,通过区别地利用用户的交互序列对用户当前偏好和历史稳定偏好进行建模.具体到模型的构建,本文分别设计两个深度循环神经网络架构,共同学习用户的当前偏好和长期稳定偏好.最后通过本文获得的偏好向量与所有的项目进行相似度计算,选出相似度Top-N的项目生成推荐列表.

2 相关工作

随着知识图谱KG(Knowledge Graph)的研究引入推荐,推荐系统的准确性和可解释性得到了很好的提升.基于知识图谱的推荐方法大致分为基于本体的推荐[6]、基于开放链接数据的推荐生成[7]和基于图嵌入的推荐生成.其中基于图嵌入的技术在推荐系统研究中扮演着重要的角色,DeepWalk[8]较早将图嵌入技术应用到推荐系统,其将用户与项目嵌入到同一向量空间,计算用户与项目的相似度生成推荐.其中DeepWalk中的随机游走存在许多的变体,例如node2vec通过改变随机游走的方式来更深层次学习项目之间的相似性.

具体到序列推荐算法,序列推荐的早期工作几乎基于序列模式挖掘[9]和过渡建模[10],随着深度神经网络引入序列推荐,序列推荐算法得到了快速发展.Hidasi等人,首先应用递归神经网络建立基于会话的推荐,显著优于基于项目的方法[11].Quadrana等人,重点关注一些基于会话的推荐场景,并开发了具有跨会话信息传输的分层循环神经网络[12].Donkers等人,通过表示各个用户来扩展RNN,以便生成个性化的下一个项目推荐[2].

图1 算法整体流程图Fig.1 Algorithm overall flow chart

尽管这些模型已经考虑了用户的顺序信息,但是用户的顺序行为和历史偏好的动态一致性仍然很大程度上未被开发.相比之下,在本文中,通过整合用户的历史偏好和当前偏好来进行项目推荐,这些都是从用户对项目的丰富交互行为中学习的.

3 融合知识图谱与长短期偏好的下一项推荐

在本节中,介绍本文提出的算法,本节首先正式定义下一项推荐任务,并概述所提出的算法,然后详细描述该算法的两个主要组成部分,即项目嵌入和判别性偏好学习,算法的整体流程图如图1所示.

3.1 预备知识

下一项推荐是根据历史交互预测用户下一步要访问的内容的任务,在本节给出下一项推荐的表述.

用户的交互随时间自然地形成序列,交互序列表述为H={S1,S2,…Sn},其中H=n表示用户数.每个用户u具有相应的交互序列Su∈H,其可以表示为Su={(x1,b1),(x2,b2),…,(xn,bn)},其中xj表示用户u操作的第j项,bj表示评分信息或行为信息,个性化的下一项推荐任务可以定义如下:给定目标用户u的历史交互序列Su={(x1,b1),(x2,b2),…,(xT,bT)},及所有用户的顺序交互序列H,个性化下一项推荐任务是预测目标用户u在下次访问中最有可能访问的项目xT+1.

3.2 项目嵌入

在模型第一阶段,项目嵌入旨在通过从项目上的大量顺序行为中学习项目的相似性来为每一个项目生成统一表示.顺序推荐的先前工作是使用one-hot编码或在深度学习框架中添加额外的嵌入层表示项目[12].然而,对于大型推荐系统中的一系列物品,一方面,one-hot编码可能花费无法承受的时间,并且由于高度稀疏性导致无法很好地优化[13].另一方面,添加额外的嵌入层可能会使网络在某种程度上失去性能[4].更重要的是,这两种方法不能揭示用户交互序列中隐含的项目顺序相似性.在这种情况下,有必要找到一种有效的表示方法,以直接从用户的交互序列中学习高质量的项目向量,结果揭示相似的项目往往彼此接近.

近年来,神经嵌入技术在许多领域取得了巨大的进步,如自然语言处理,社交网络和推荐.在这些工作中,item2vec是Skip-gram与负抽样的重要扩展之一,用于为基于项目的协同过滤推荐产生项目嵌入.

图2 电影知识图谱Fig.2 Movie knowledge graph

Item2vec项目嵌入方法仅考虑到用户的交互序列来学习项目之间的顺序相似性,计算项目相似性不仅应考虑项目的顺序相似性,也需要考虑到项目之间的内容属性信息.在本文中,提出一种结合知识图谱结构信息的改进item2vec来捕获项目的相似性.同时将项目的交互信息与项目本身的信息结合起来嵌入到低维空间中,所得向量能很好的揭示项目之间的相似性.

3.2.1 知识图谱抽取序列

本文首先构建知识图谱,然后使用node2vec算法思想构建随机游走序列,以电影特征为例,其中的实体包括影片、导演、演员类型等,基于电影信息构建如下的知识图谱,如图2所示.

本文使用node2vec中的随机游走方式获取随机游走路径,然后从其中提取出电影实体序列.Node2vec的广度遍历和深度遍历能很好的抽取实体间的同质性和同构性,其中随机游走的概率为:

(1)

公式中πvx是未归一化概率,z表示其中的归一化常数.对于常见的随机游走,πvx和实体边权重之间的关系为:πvx=αpq(t,x)·wvx,公式中的系数αpq(t,x)公式如下:

(2)

其中t表示上一个节点,x表示随机游走中下一个可能的节点目标,通过p和q的值来控制深度和广度游走,dtx表示两个节点t和x之间的最短距离.改进的随机游走能够同时考虑到网络中局部和宏观信息,能够有效的提取网络中节点的信息.本文使用node2vec的深度游走策略获取得项目序列作为下一步item2vec的输入,更好的捕获项目之间的相似性.通过知识图谱的序列抽取得到序列集合Hk={I1,I2,…,In},其中Ii={x1,x2,…,xn}表示生成的一条随机游走序列.

3.2.2 项目嵌入

将从知识图谱抽取的序列与现有的用户交互序列相结合,作为item2vec的输入,最终得到项目的嵌入向量.知识图谱序列能够弥补采用项目序列嵌入较少考虑项目内容信息等缺点.

神经项目嵌入模型类比于词向量模型,用户交互的项目随着时间自然地形成顺序序列,知识图谱得到项目序列,将两者结合类比于自然语句.拥有相同的交互上下文的项目、同一主演、同一导演等项目在嵌入空间上也往往非常接近.具体来说,给定用户交互序列集合H={S1,S2,…,Sn}以及知识图谱得到的序列集合Hk={I1,I2,…,In},item2vec技术的Skip-gram模型旨在最大化以下目标:

(3)

其中K是序列Si和Ii的长度,xi表示序列中的项目,p(xj|xi)定义为softmax函数:

(4)

其中wi和vi对应于xi的目标和上下文表示的潜在向量,为了减少梯度下降(xj|xi)的计算复杂度,采用负抽样来取代,公式(4)变为如下所示:

(5)

其中σ(x)为sigmoid函数,E表示为每个正样本绘制的负样本数量,方便优化模型.经过上面的一系列变形,目标函数由公式(3)变为如下所示:

(6)

最后,通过传统的梯度下降训练item2vec,并获得所有项目的高质量分布式矢量表示.

使用item2vec,可以在历史交互序列以及知识图谱抽取序列的帮助下捕获项目的相似性,并生成统一的项目表示空间,其中嵌入产生的向量可以解释项目的相似性和顺序关系.并且,对于每个用户u,可以生成具有嵌入项的交互序列,如下所示:

Pu={v1,v2,…,vT}

(7)

其中vj表示项目xj的d维潜在向量.

3.3 判别性学习

在获得项目嵌入后,通过两个独立的循环神经网络学习用户偏好,将该神经网络命名为偏好判别性神经网络PDNN(Preference Discriminant Neural Network),以推荐目标用户在下次访问中最有可能访问的项目.

用户的决策过程主要受两个因素影响:短期偏好和长期偏好.更具体地,用户的短期偏好在短期内是动态的,并且最近的波动对于反映短期特征也是重要的.考虑到最近的所交互项目可能意味着用户短期内的用户偏好,本文使用近期交互的项目序列学习用户的当前动机.另一方面,至于利用用户的历史偏好,并非所有的用户行为都能描绘出用户偏好.例如,用户为所交互的项目打出了一个比较低的分数,则不喜欢该项目.因此,为了对用户的历史进行建模,本文仅保留能从交互历史中清楚地描绘用户的潜在偏好的行为.实际上,用户的交互过程是一系列随时间的反馈.因此,与从静态方式探索用户—项目交互的传统推荐系统不同,本文通过顺序建模来处理下一项推荐.具体来说,本文设计了两个独立的行为学习模型:短期偏好学习和长期稳定偏好学习以区别地学习用户的短期偏好和历史稳定偏好.此外,在此基础上,本文开发了两个基于LSTM的独立深度神经架构,共同学习这两种行为对齐的动机和偏好,PDNN网络结构图如图3所示.

图3 PDNN网络结构图Fig.3 PDNN network structure

如图3所示,上半部分为短期偏好,采用长短期记忆网络LSTM(Long Short-Term Memory)来实现.下半部分为长期偏好学习,采用深度双向LSTM来实现,最后两个网络通过一个全连接层生成下一个项目向量.

3.3.1 短期偏好学习

短期内的交互行为可以揭示用户的当前的消费动机,短期偏好学习对目标用户u的短期会话行为进行建模.为了确定某个项目xi是否是会话行为的可能元素,短期会话的判别函数Dshort为:

Dshort(xi,xt)=Φ((t-i)≤h)

(8)

其中函数Φ(a)是判别信号,如果a为真则等于1否则等于0.xt-1是预测的前一项,h是控制短期会话长度的控制指示符.具体而言,对于基于会话的场景,h是会话的长度.对于非会话场景,h是人为指定的,在本文中,将h设置为10作为默认值.

本文开发一个LSTM模型来学习用户的短期偏好.LSTM的神经网络结构如下所示,在初始化之后,第j个交互步骤如下所示,每个交互的隐藏状态hj由先前隐藏状态hj-1和当前项目嵌入vj更新.

(9)

3.3.2 长期偏好学习

更智能的推荐系统不仅应该考虑用户当前的偏好,还应考虑历史稳定偏好.因此,除了利用短期内的偏好外,还需要从长期的偏好行为中学习用户稳定的历史偏好.实际上,只有部分行为意味着用户的偏好,因此,为了确定某个交互(xi,bi)∈Su是否是偏好行为的可能,将长期偏好判别函数定义为:

Dlong(vi,bi)=Φ(bi∈P)

(10)

其中P是偏好的行为集,其中包含偏好行为的类型,本文的实验数据集为带评分的数据,因此,偏好行为类型为评分大于4.0的行为信息,即偏好行为集P为{4.0,4.5,5.0}.

(11)

之后,通过平均合并层为用户u生成偏好行为Plong的统一表示:

(12)

到目前为止,本文已经学习了两种偏好,即短期偏好Pshort和长期偏好Plong,然后,在完全连接的层之后,生成下一个项目的d维表示vt.

3.4 模型的训练与优化

将连续项目嵌入作为网络的输入,判别行为学习能够通过控制两个网络架构的循环状态更新来学习用户短期偏好和历史偏好.可以生成下一个项目表示vt的预测,这是一个d维向量.在全局学习阶段,本文使用均方误差(MSE)损失函数从整个连续交互集合中学习两个行为对齐,可以定义为:

(13)

其中是ζ是MSE函数,vt是目标用户u在下次访问时访问的项目表示,h是控制指标,控制短期偏好会话的长度,Su表示相互作用序列Su∈H,其中H表示序列的数量.本文使用Adagrad优化损失函数[15],设置的更多细节将在实验中指定.

3.5 算法描述

算法.一种融合知识图谱和长短期偏好的下一项推荐算法

输入:数据集S、本体库

输出:Top-N推荐列表

1.将数据集S和本体库一起构建知识图谱

2.通过node2vec改进的随机游走获得随机游走序列

3.将获得的随机游走序列集合和用户交互序列集合一起使用item2vec训练获得项目向量

4.通过PDNN判别性学习用户的长短期偏好,生成用户的下一项预测向量

5.将候选项目与下一项预测向量计算相似性,生成Top-N推荐列表

4 实 验

在本节中,首先描述实验设置.然后,从以下几个方面证明所提出模型的有效性:

1)总体推荐性能的比较;

2)融合知识图谱的项目嵌入和传统item2vec的性能比较;

3)融合时间特征和序列特征算法与传统方法的比较;

4)模型冷启动性能的分析.

4.1 数据集及环境介绍

本文采用真实世界中的数据集进行实验,即MovieLens10M,MovieLens数据集是来自真实世界中的用户评分电影数据集,包含71567个用户对10681部电影的10000054个评分信息.其中最短的用户交互序列为20,平均交互序列长度为115,其中评分信息为1~5之间.

为了实验结果的可靠性,本文对数据集做如下处理.首先过滤掉与用户交互次数小于5的项目.采用数据集随机划分,90%作为训练集,10%作为测试集.数据集中,本文根据评分信息来判断性的学习用户的偏好,将历史评分信息中评分大于4的学习长期稳定偏好,最近交互的序列长度为10的作为短期偏好的学习.

本文的实验硬件环境为window10系统,Intel core i7CPU,16G内存,软件环境为Python3.6,使用Keras构建神经网络训练模型.

4.2 基线方法

本文将提出模型与传统的方法以及基于RNN模型的方法作对比,基线方法描述如下.

Item-based k-NN,为用户推荐与交互历史项目相似的前个项目.

Exp.Dec.Item-based k-NN[16],在item-KNN基础上加入了指数衰减分量,用来惩罚很久前交互的项目.

Matrix Factorization(MF):是一种广泛使用的矩阵分解方法,它通过随机梯度下降优化成对排序目标函数.

Seq.Matrix Factorization[17]:是一种在MF的基础上加入用户交互序列信息,扩展为序列MF方法.

GRU[2],使用了标准的GRU将用户交互的项目和其对应的动作一起嵌入学习用户的交互模式,最后输出用户下一个可能的交互项目.

PDNN,本文提出的长短期偏好推荐算法,不加入知识图谱嵌入的算法,仅采用用户交互序列生成项目嵌入.

4.3 评估指标

由于推荐系统每次都只能推荐较少的项目,相关项目应该在推荐列表中排名第一.因此,本文使用以下两个评估指标评估个性化的下一项推荐质量.

·Recall@ 20,主要评估指标召回率,是所有测试案例中前20个推荐项目中具有所需项目的比例.其中,Recall @ 20不区分具有不同排名的项目,只要它们属于推荐列表即可.

·MRR@ 20,另一个使用的度量是平均倒数排名(MRR),它是期望项目的倒数排名的平均值.与Recall度量相同,本文将20设置为贡献值,这意味着如果排名高于20,则将倒数等级设置为零.考虑到推荐的顺序,MRR会考虑每个推荐项目的排名.

其中,两个评估指标越高,结果的表现越好.

4.4 实验结果及分析

本节首先对推荐算法的整体推荐性能做分析,然后逐步分析本文中所提出的模型的有效性,所提出模型与基线方法的性能比较如表1所示.

表1 提出算法与基线方法的性能比较Table 1 Compares the performance of proposed algorithm with baseline method

结果分析:

·本文提出的模型在真实数据集上体现出良好的推荐性能,相比较传统的推荐算法和基于RNN的序列推荐有了显著的改进,归功于知识图谱与判别神经网络的有效设计;

·本文将增加知识图谱的项目嵌入方法和未添加的方法做比较,两种方法皆优于未建模长期偏好的方法,证明建模长期稳定偏好的有效性.其中加入知识图谱嵌入的方法展现出更优秀的推荐性能,证明知识图谱的加入能更好的提取项目之间的相关性;

·从表1实验结果分析,加入了时间因素和序列因素的推荐算法相比传统算法有提升,从Seq.Matrix Factorization与MF以及Exp.Dec.Item-based k-NN与Item-KNN实现结果中可以得出,证明考虑兴趣的衰减和动态变化的有效性;

本文将测试数据集中的用户从第二次交互开始到50次交互的实验结果考虑新用户的冷启动问题,实验结果如图4所示.

图4 新用户冷启动推荐性能Fig.4 New user cold start recommended performance

本文提出的算法在新用户冷启动上有先天的优势,相比较传统的矩阵分解、协同过滤需要丰富的用户交互记录,该算法依然可以使用训练有素的神经网络来适应新用户.如图4所示,本文提出的算法在新用户冷启动上也有较好的性能,在新用户交互记录不多时,PDNN模型退化为LSTM模型.随着用户记录的增加,模型的性能逐渐增强,且实验结果优于标准的GRU,证明建模用户长期稳定偏好的重要性.

5 结论和未来的工作

在本文中,提出了一种新颖的下一项推荐模型.该模型能根据用户随时间形成的交互序列建模长期偏好和短期偏好,很好地考虑到了用户兴趣的动态变化.其中,本文提出了一种更深层次的项目嵌入方法,将知识图谱学习到的信息嵌入到项目向量中,能更好地挖掘项目之间的相关性.在判别性学习中,本文设计两个循环神经网络学习偏好,特别在长期偏好学习中,设计了一种深度双向LSTM更深层次的建模长期偏好,最后在实验结果中证明了所提出模型的有效性.在未来,将考虑使用不同的用户行为信息考虑推荐,更一步挖掘用户的交互信息.

猜你喜欢

相似性图谱向量
基于图对比注意力网络的知识图谱补全
向量的分解
隐喻相似性问题的探讨
聚焦“向量与三角”创新题
图表
12个毫无违和感的奇妙动物组合
基于隐喻相似性研究[血]的惯用句
主动对接你思维的知识图谱
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线