1.本发明属于知识图谱的技术领域,尤其涉及一种融合注意力机制和双端知识图谱的电影推荐方法。
背景技术:2.常用的推荐算法主要有基于内容的推荐算法、基于协同过滤的推荐算法以及基于知识推荐算法。第一种算法的主要思想是基于物品本身的属性,向用户推荐与其曾经喜好相似的物品,第二种算法的主要思想是基于大量的用户-物品交互信息进行的推荐算法,但是由于数据的稀疏性会导致冷启动问题的产生且结果的可解释性较差;为了解决上述问题,则提出了基于知识推荐算法,知识图谱是一种富含实体之间语义关联信息的异构网络,为每个实体和关系学习低维向量,作为推荐系统的辅助信息,可以有效地提高推荐结果的准确性、多样性以及可解释性。
3.随着人们对算法研究的逐渐深入,许多研究人员尝试将神经网络加入到推荐系统中,由于神经网络可以通过调节内部节点之间的相互关系以处理相关信息的特点,可以有效地提取特征,对于知识图谱中构建用户特征与项目特征有很好的帮助作用。
4.由于知识图谱内庞大的数据,常使用的方法有固定数量采样法和随机采样法等,但其会引入噪声进而影响推荐结果。因此可以选用注意力机制为每一个三元组分配权值,根据权值进行采样可以减少计算量并提高推荐结果的准确率、可解释性。
技术实现要素:5.针对现有技术中的不足,本发明提出了一种融合注意力机制和双端知识图谱的电影推荐方法,实现利用用户对关系的偏好以挖掘更多符合用户兴趣的实体,更加准确地计算用户特征;利用电影知识图谱中丰富的实体关系三元组中的信息,根据首部实体与尾部实体之间的相似度分配权值,根据权值进行邻域采样以获得更加准确的项目特征,从而提高推荐结果的个性化和准确性。
6.为了解决上述技术问题,本发明通过以下技术方案来实现:
7.本发明提供一种融合注意力机制和双端知识图谱的电影推荐方法,包括以下步骤:
8.步骤1:首先从数据集文档中读取用户-属性信息,将其映射至低维空间中,构建用户-属性二分图gu,然后在第一个全连接层中用非线性激活函数构造相应的层,获得用户-属性之间的注意力权重,计算用户u的邻域表示,最终使用聚合器得到用户特征u;
9.步骤2:将电影信息输入至知识图谱中,获取试题三元组(h,r,t),使用基于翻译的嵌入模型transe学习三元组的嵌入(eh,er,e
t
),并将三元组中的首部实体与尾部实体映射至关系空间中转变为与
10.步骤3:在第二个全连接层中使用非线性激活函数tanh构建相应的层,使得注意力
得分依赖于与计算在不同关系下知识图谱内实体之间的注意力权重,计算电影v的邻域表示,使用聚合器得到电影特征v;
11.步骤4:将用户特征u与电影特征v作为预测函数的输入值,计算用户对电影的预测点击率y
uv
,实现针对于用户的个性化电影推荐。
12.优选的,所述步骤1中的用非线性激活函数构建相应的层,采用下式:
[0013][0014]
其中,表示用户-属性的注意力得分,relu为非线性激活函数,u与ui分别表示用户及其属性,w1与b1分别表示权重与偏置参数,体现不同的属性对于用户本身的重要程度。
[0015]
优选的,所述步骤2中,将电影信息输入至知识图谱中获得电影实体三元组(h,r,t),使用基于翻译的嵌入模型trane学习实体与关系的嵌入,使用d(h,r,t)函数计算h+r与t之间的距离,则获得嵌入eh、和将三元组中的头部实体与尾部实体采用映射至关系空间中,其中与为eh与e
t
在关系空间r中的投影表示,并使用损失函数来扩大存在的三元组(h,r,t)与不存在的三元组(h
′
,r,t;)的差别:
[0016][0017]
进一步的,所述步骤3中,设计的注意力权重公式为:
[0018][0019]
其中tanh为非线性激活函数,wr为关系权重,使用softmax函数实现归一化:
[0020][0021]
由上,本发明的融合注意力机制和双端知识图谱的电影推荐方法至少具有如下有益效果:
[0022]
本发明根据用户的偏好更好地提取了用户的特征,实现了推荐结果个性的提高;根据实体之间的相似度更好地提取了项目的特征,实现了推荐结果准确率的提高;将注意力机制与双端知识图谱相融合,进一步提高了推荐结果的可解释性与准确率;并且本发明提出的模型可以应用于诸多领域,比如音乐、图书领域。
[0023]
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下结合优选实施例,并配合附图,详细说明如下。
附图说明
[0024]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍。
[0025]
图1是本发明的融合注意力机制和双端知识图谱的电影推荐方法的流程图;
[0026]
图2是知识图谱数据传播图。
具体实施方式
[0027]
下面结合附图详细说明本发明的具体实施方式,其作为本说明书的一部分,通过实施例来说明本发明的原理,本发明的其他方面、特征及其优点通过该详细说明将会变得一目了然。在所参照的附图中,不同的图中相同或相似的部件使用相同的附图标号来表示。
[0028]
如图1至图2所示,本发明的融合注意力机制和双端知识图谱的电影推荐方法,包括以下步骤:
[0029]
步骤1:首先从数据集文档中读取用户-属性信息,将其映射至低维空间中,构建用户-属性二分图gu,然后在第一个全连接层中用非线性激活函数构建相应的层:
[0030][0031]
其中,表示用户-属性的注意力得分,relu为非线性激活函数,u与ui分别表示用户及其属性,w1与b1分别表示权重与偏置参数,体现不同的属性对于用户本身的重要程度。使用softmax函数将评分归一化:
[0032][0033]
然后计算用户u的邻域表示:
[0034][0035]
其中u
n(u)
表示为u的邻域表示,n(u)为与用户u直接相连的属性集合。
[0036]
最终使用聚合器得到用户特征u。
[0037]
步骤2:将电影信息输入至知识图谱中,获取试题三元组(h,r,t),使用基于翻译的嵌入模型transe学习三元组的嵌入(eh,er,e
t
),并将三元组中的首部实体与尾部实体映射至关系空间中转变为与
[0038]
在得到三元组的嵌入后,使用损失函数来扩大两种三元组之间的差别。将电影信息输入至知识图谱中获得电影实体三元组(h,r,t),使用基于翻译的嵌入模型trane学习实体与关系的嵌入,使用d(h,r,t)函数计算h+r与t之间的距离,则获得嵌入eh、和将三元组中的头部实体与尾部实体采用映射至关系空间中,其中与为eh与e
t
在关系空间r中的投影表示。并使用损失函数来扩大存在的三元组(h,r,t)与不存在的三元组(h
′
,r,t;)的差别:
[0039][0040]
其中s为存放三元组的集合,(h,r,t)为存在的三元组,将三元组内的h与t随机替换产生不存在的三元组(h
′
,r,t
′
)。
[0041]
步骤3:在第二个全连接层中使用非线性激活函数tanh构建相应的层,使得注意力得分依赖于与计算在不同关系下知识图谱内实体之间的注意力权重,计算电影v的
邻域表示,使用聚合器得到电影特征v。
[0042]
本发明针对实体之间的距离所设计的注意力权重公式为:
[0043][0044]
其中tanh为非线性激活函数,wr为关系权重。使用softmax函数实现归一化:
[0045][0046]
然后计算电影v的邻域表示:
[0047][0048]
其中v
s(h)
为h的领域表示,s(h)为直接与h相连的实体集合。
[0049]
最终使用聚合器得到电影矩阵v。
[0050]
步骤4:将用户特征u与电影特征v作为预测函数的输入值,计算用户对电影的预测点击率y
uv
,从而实现针对于用户的个性化电影推荐。
[0051]
值得注意的是,与传统的知识图谱中权值的计算方法不同,本发明使用了注意力机制分别基于用户和电影设计了两种注意力权重公式。通过用户-属性信息计算注意力权重,充分获取用户的偏好特征,提高推荐的个性化;通过首部实体与尾部实体的相似度计算注意力权重,充分获取电影的特征,提高推荐的准确率,将用户端与电影端相结合进行推荐,有效地提高了模型的推荐效果。在之后的实验中与其他知识图谱模型进行对比,证明本模型的有效性。
[0052]
实施例:本发明所采用的数据集是movielens-1m。movielens-1m数据集含有来自6040名用户对3629部电影的83万条评分数据,其包含:用户的评分、用户信息以及电影的信息。经过数据预处理后的数据如下表1所示:
[0053]
表1相关数据集的数据
[0054][0055]
本发明将在ctr(点击率预测)场景下验证有效性:用本发明模型对测试集中的数
据进行预测,使用acc和auc来评估模型预测的准确性。
[0056]
实验的基线模型有:cke(collaborative knowledge embedding):协同知识嵌入,将知识图谱与协同过滤算法相结合,对用户进行推荐。kgcn(knowledge graph convolutional networks for recommender systems):kgcn是以物品为中心实体进行传播,加入注意力机制,实现个性化推荐。ripplenet:将用户的历史兴趣设置为兴趣传播的种子,根据三元组(h,r,t)沿着kg不断地迭代传播用户的兴趣。libfm(factorization machine library):是用于点击率预测中的一个基于特征的因子分解模型。per(personalized entity recommendation):根据知识图谱的异构性,将用户的隐形反馈基于原路径进行扩展实现推荐结果的个性化。上述的五种基线模型和本发明的模型一起在两个数据集上进行实验,实验结果如下表2所示:
[0057][0058][0059]
从表2中可以看出,与人们比较熟知的推荐算法libfm、per以及与知识图谱相关的算法ripplenet、kgcn、cke算法相比较,本发明所设计的算法在movielens-1m数据集上的各项数据均有提升,在movielens-1m数据集上,相较于最优的数据,auc和acc数据值各提高了1.1%和1.3%,相比较于以上模型,本发明将知识图谱中的各个实体进行预测,并选择排名前n个继续扩展,保证了数据的有效性,并且将k-hop中的k值提高,可以增加采样以获得更好的用户和商品特征。
[0060]
采样邻居数量以及聚合跳数对于算法的影响体现在表3和表4中,从表3可以看出采样邻居数量对于算法的影响,取值过高或者过低都会影响算法本身的性能,过低会导致聚合实体数量较少,无法获得更多有效的信息;过高会导致融入更多的噪音,也会提高相应的计算量。
[0061]
表3在不同采样数量下的auc值
[0062][0063]
从表4中可以看出,跳数对于算法的影响更强,当跳数增加时,算法在前3跳时表现
是最好的,到4时数值有明显的下降,在知识图谱中引入的1跳邻居信息是用户兴趣的直接邻域,而过大的l则会降低引入信息的有效性。
[0064]
表4在不同跳数下的auc值
[0065][0066][0067]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0068]
以上所述是本发明的优选实施方式而已,当然不能以此来限定本发明之权利范围,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和变动,这些改进和变动也视为本发明的保护范围。