一种基于知识图谱表示学习和神经网络的协同推荐方法技术

技术编号:25399104 阅读:32 留言:0更新日期:2020-08-25 23:04
本发明专利技术公开了一种基于知识图谱表示学习和神经网络的协同推荐方法,将数据集中的项目映射到公开知识图谱三元组,作为训练集输入到OpenKE框架中进行模型训练,其中同过设置参数的方式来选择采用知识图谱表示学习方法进行学习,按照顺序将实体集的对应向量矩阵E′反映射回项目个体,得到每一个项目构建好其对应的低维度稠密特征向量I

【技术实现步骤摘要】
一种基于知识图谱表示学习和神经网络的协同推荐方法
本专利技术提出一种基于知识图谱表示学习和神经网络的协同推荐方法,属于深度学习和推荐系统的

技术介绍
在传统的推荐系统中,因其依赖于矩阵分解协同过滤算法进行推荐,不可避免地会出现冷启动和数据稀疏性问题。数据稀疏性问题往往是指在比如大规模电商等平台,用户和项目数量非常大,但是在获得的用户-项目矩阵中,用户平均有交互的项目数量较小,这样就会造成用户-项目矩阵稀疏。而冷启动问题是指如何在没有大量用户数据的情况下为新用户做个性化推荐。数据的稀疏性问题最终会导致无法捕捉到不同用户和不同项目之间的关系,从而降低了推荐系统的准确度。神经网络可以从更高的维度去剖析事物和事物之间的关系,也让数据稀疏性问题得到了改善。冷启动问题归根结底还是数据的信息维度不够。知识图谱中包含了一个事物在现实世界中的事实关系,相当于对于模型中需要训练的数据提供了额外的信息维度,从而一定程度上的解决了冷启动问题。
技术实现思路
专利技术目的:为了克服现有技术中存在的不足,本专利技术提供一种基于知识图谱表示学习和神经网络的协同推荐方法,本专利技术能够解决评分矩阵稀疏和冷启动的问题,并增强了协同过滤推荐的性能和准确性。技术方案:为实现上述目的,本专利技术采用的技术方案为:一种基于知识图谱表示学习和神经网络的协同推荐方法,包括以下步骤:步骤1,获取数据集,将数据集中的项目映射到公开知识图谱三元组K,并为项目分别构建其对应的实体集E、关系集R、以及训练集S;步骤2,构建好的实体集E、关系集R、以及训练集S作为训练集输入到OpenKE框架中进行模型训练,其中同过设置参数的方式来选择采用知识图谱表示学习方法进行学习;步骤3,第二步训练过程中会输出实体集的对应向量矩阵E′,根据第二步输入的实体集E的项目顺序,按照顺序将实体集的对应向量矩阵E′反映射回项目个体,最终为每一个项目构建好其对应的低维度稠密特征向量Ikem;步骤4,将步骤3得到的低维度稠密特征向量Ikem做正例、负例选择处理,生成正例低维度稠密特征向量Ikem-pos和负例低维度稠密特征向量Ikem-neg,之后中加入一个读入模块,将正例低维度稠密特征向量Ikem-pos和负例低维度稠密特征向量Ikem-neg读入模型中,并替换掉传统向量层操作,即为知识嵌入向量层最终输出,然后神经网络训练层开始训练。优选的:步骤3中的反映射指将训练结束之后输出的每一个低维度稠密特征向量Ikem按顺序对应到每一个输入的实体集E的项目编号。优选的:知识表示学习方法包括TransE方法、TransR方法、TransH方法、TransD方法。优选的:知识嵌入向量层是一个离线处理数据的组件。本专利技术相比现有技术,具有以下有益效果:本专利技术通过使用知识图谱结构化表示学习方法,将从公共知识库中提取的现有语义数据以丰富现有数据集的信息维度,提出将知识谱图表示学习过的低维稠密向量代替传统方法的向量化结果,并将该过程作为中间层嵌入神经网络的协同过滤模型,不仅仅挖掘用户和项目之间的线性和非线性关系,更进一步的融入项目的知识关系,从而使得神经网络模型能够充分利用知识图谱中大量存在的先验知识来挖掘项目之间的关系,再进一步深度挖掘用户与项目之间的交互信息。在使用神经网络的过程中,本专利技术允许矩阵分解模块和深度神经网络模块独立的嵌入,然后各自进入自己的隐层进行计算。其中,本专利技术选择在深度神经网络的底层中加入知识图谱嵌入层,理论上说这是一个离线运算的部分,对项目利用现有的知识图谱进行表示学习生成具备知识的稠密低维向量,并作为支流拼接到协同深度模型中,在最后加入神经网络预测层融合两者隐层的输出,最后得到相对精准的推荐列表。附图说明图1为基于知识图谱表示学习和神经网络的协同推荐方法的系统架构图。图2为基于知识图谱表示学习和神经网络的协同推荐方法的流程示意图。图3为用于知识图谱表示学习的实体集、关系集、打分集。图4为采用TransH表示学习方法生成的128维的稠密向量。图5为使用TransE与原始模型在Movielens-1M上的训练结果图。图6为不同的知识表示学习方法的性能对比实验结果截图1。图7为不同的知识表示学习方法的性能对比实验结果截图2。具体实施方式下面结合附图和具体实施例,进一步阐明本专利技术,应理解这些实例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。一种基于知识图谱表示学习和神经网络的协同推荐方法,如图1、2所示,目标是估计用户和项目之间的匹配得分,然后根据得分为用户生成个性化的项目推荐列表。框架由输入层、知识向量嵌入层、向量层、神经网络训练层和输出层构成。本专利技术提出的核心部分是知识嵌入向量层。知识嵌入向量层我们可以把它想象为一个平行的部分。与上述层的组合是并行的,并且也属于模型的第一部分。换句话说,它同时具有这两者的功能。他的输入是隐式反馈数据集中的项目向量i,其输出是使用知识表示学习方法(TransE、TransR、TransH、TransD)得到的知识低维度稠密特征向量i′。相对于其他部分,知识嵌入向量层实际上是一个离线处理数据的组件。具体地说,原始的项目编号i与已构建好的外界知识图谱相关联,这种关联最终反映在输出的具备知识的低维度稠密特征向量中。涉及的相关符号定义如下:知识图谱三元组表示为k=(E,R,S),其中E是知识图谱中所有实体的集合,R是所有关系的集合,表示知识图谱中的三元组集合。对于一个特定的三元组,用(h,r,t)来表示,其中h和t分别代表三元组中的头实体和尾实体,r表示h和t之间的关系。根据先前的介绍得知,知识图谱表示学习的目的是通过学习度量知识图谱中三元组结构的语义信息,得到三元组所有实体和关系的在低维连续空间中的向量表示。本专利技术技术方案一共分为两个部分,第一部分是知识表示学习模块,第二部分是知识嵌入向量层模块。第一部分——知识表示学习模块:我们首先将数据集中的项目与公开知识图谱三元组S作为知识表示学习模块的输入,知识表示学习模块的处理过程一共有三个步骤。1、首先获取公开数据集,根据输入将数据集中的项目,映射到公开知识图谱三元组K,并为项目分别构建其对应的实体集E、关系集R、以及训练集S,也就是我们为数据集中每一个项目实体构建与该项目有关的三元组。2、上一步构建好的实体集E、关系集R、以及训练集S作为训练集输入到OpenKE框架中(OpenKE框架是基于TensorFlow的主项目,为知识图谱嵌入模型提供优化和稳定的框架。)进行模型训练,其中可以同过设置参数的方式来选择采用不同的知识图谱表示学习方法(TransE、TransR、TransH、TransD)进行学习。该框架主要是为了构建知识图谱三元组,而本专利技术巧妙地使用了该框架的一步中间过程,即利用不同的知识图谱表示学习方法生成低维稠密向量本文档来自技高网...

【技术保护点】
1.一种基于知识图谱表示学习和神经网络的协同推荐方法,其特征在于,包括以下步骤:/n步骤1,获取数据集,将数据集中的项目映射到公开知识图谱三元组K,并为项目分别构建其对应的实体集E、关系集R、以及训练集S;/n步骤2,构建好的实体集E、关系集R、以及训练集S作为训练集输入到OpenKE框架中进行模型训练,其中同过设置参数的方式来选择采用知识图谱表示学习方法进行学习;/n步骤3,第二步训练过程中会输出实体集的对应向量矩阵E′,根据第二步输入的实体集E的项目顺序,按照顺序将实体集的对应向量矩阵E′反映射回项目个体,最终为每一个项目构建好其对应的低维度稠密特征向量I

【技术特征摘要】
1.一种基于知识图谱表示学习和神经网络的协同推荐方法,其特征在于,包括以下步骤:
步骤1,获取数据集,将数据集中的项目映射到公开知识图谱三元组K,并为项目分别构建其对应的实体集E、关系集R、以及训练集S;
步骤2,构建好的实体集E、关系集R、以及训练集S作为训练集输入到OpenKE框架中进行模型训练,其中同过设置参数的方式来选择采用知识图谱表示学习方法进行学习;
步骤3,第二步训练过程中会输出实体集的对应向量矩阵E′,根据第二步输入的实体集E的项目顺序,按照顺序将实体集的对应向量矩阵E′反映射回项目个体,最终为每一个项目构建好其对应的低维度稠密特征向量Ikem;
步骤4,将步骤3得到的低维度稠密特征向量Ikem做正例、负例选择处理,生成正例低维度稠密特征向量Ikem-pos和负例低维度稠密特征向量Ikem-neg,之...

【专利技术属性】
技术研发人员:王攀黄琛
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1