CN112632296B - 基于知识图谱具有可解释性的论文推荐方法及系统、终端 - Google Patents
基于知识图谱具有可解释性的论文推荐方法及系统、终端 Download PDFInfo
- Publication number
- CN112632296B CN112632296B CN202011639739.9A CN202011639739A CN112632296B CN 112632296 B CN112632296 B CN 112632296B CN 202011639739 A CN202011639739 A CN 202011639739A CN 112632296 B CN112632296 B CN 112632296B
- Authority
- CN
- China
- Prior art keywords
- model
- user
- module
- paper
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
Abstract
本发明提供了一种基于知识图谱具有可解释性的论文推荐方法,包括如下步骤:从数据库中获取论文和用户的数据,利用获取的数据构建异构图;通过在构建的异构图中使用随机游走算法生成多条路径,利用图嵌入算法输出异构图中每个节点的向量表示;在异构图中查找到多条路径,将多条路径用矩阵表示,作为训练数据集的输入,将每条路径对应的某位用户对某论文的评分值,作为训练数据集的输出,构建训练集;搭建循环神经网络和全联接层模型,从训练集中学习循环神经网络和全联接层模型的参数;根据循环神经网络和全联接层模型为每位用户推荐预测评分最高的多篇论文,并向用户解释做出此推荐的依据。本发明通过引入知识图谱,使得推荐的结果更具可解释性。
Description
技术领域
本发明涉及推荐系统技术领域,具体地,涉及一种基于知识图谱具有可解释性的论文推荐方法及系统、终端。
背景技术
随着大数据时代的来临,各个领域的数据量出现了井喷式的增长,内容的消费者面临的问题在于,从以前的“无内容可消费”,转变成“内容太多,不知道选择什么消费”,推荐系统就在这个场景下应运而生,从浩如烟海的物品中,为用户推荐其最可能喜欢的物品。
推荐系统通过建立模型,并且学习大量已有的用户对物品的交互数据,如用户对物品的点击、浏览、收藏、分享、评分等行为,从而了解每个用户的偏好画像,进而可以给用户推荐其没有见过的但可能感兴趣的物品,从而解决用户选择困难症的问题。
推荐系统按推荐原则划分,可以分为基于相似度的推荐,基于模型的推荐以及基于知识的推荐,前两者在过去的十年间产生了大量算法,最经典的当属基于协同过滤的推荐方法,这一方法通过分解用户对物品的评分矩阵,形成若干隐形特征,从而将具有相似隐形特征的物品推荐给同样具有该特征的用户。这一算法也在诸多各个领域产生了很好的效果,如电子商务、内容社区、社交网络等。
然而,这一算法的局限性在于,其推荐内容的依据的可解释性较弱,无法向用户清楚地解释为何要给用户推荐某一物品。近年来,围绕着可解释性的推荐目标,知识图谱逐渐被引入推荐系统中。
但是,传统的基于知识图谱的推荐,往往要事先通过人为定义路径特征,然后再去筛选符合这些特征的连接了用户和物品的路径,这就需要有领域知识,同时,人为定义的特征也只局限在有限的知识里,无法发掘深层次的隐式特征。
经过检索,专利文献CN110955834A公开了一种知识图谱驱动的个性化精准推荐方法,根据用户历史行为,从知识库中获取物品的相关知识,构建知识图,初始化每个节点和连接的向量表示并确定节点的感受域;根据用户历史行为,生成训练样本,初始化所有的用户和物品的向量表示;获取训练样本中物品在知识图谱中对应实体的感受域,将其感受域以及样本作为图神经网络模型输入,得到用户和物品发生交互的可能性预测值;通过最小化损失函数,优化模型参数;模型优化过程结束后,将某一用户和所有物品发生交互的可能性预测值进行排序,获得该用户的推荐列表。该现有技术虽然从多维角度刻画了用户和物品,但是不足之处在于仍然需要人工方式定义路径特征,并且还是无法向用户清楚地解释为何要给用户推荐某一物品。
因此,有必要研发一种能够弥补经典推荐算法“协同过滤”的可解释性不足的问题的系统及方法。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于知识图谱具有可解释性的论文推荐方法及系统、终端,本发明的目的是提供带有解释性的,且无需提前定义路径特征的基于知识图谱具有可解释性的论文推荐系统的构建方法。
根据本发明提供的一种基于知识图谱具有可解释性的论文推荐方法,包括如下步骤:
步骤S1:从数据库中获取论文和用户的数据,利用获取的数据构建异构图;
步骤S2:通过在构建的异构图中使用随机游走算法生成多条路径,利用图嵌入算法输出异构图中每个节点的向量表示;
步骤S3:根据用户对论文的评分数据,为每一组“用户-论文”,在异构图中查找到多条路径,将多条路径用矩阵表示,作为训练数据集的输入,将每条路径对应的某位用户对某篇论文的评分值,作为训练数据集的输出,构建训练集;
步骤S4:搭建包含长短期记忆的循环神经网络和全联接层的模型,从训练集中学习包含长短期记忆的循环神经网络和全联接层的模型的参数;
步骤S5:根据包含长短期记忆的循环神经网络和全联接层的模型为每位用户推荐预测评分最高的多篇论文,并向用户解释做出此推荐的依据。
优选地,步骤S1包括:
步骤S11:从数据库中获取出论文、用户的相关数据,论文数据包括论文ID数据、论文作者、论文发表的出处及论文所属的研究领域,用户数据包括用户ID、用户对论文的评分数据;
步骤S12:根据获取的论文和用户的数据,在论文和其作者、论文和其发表出处、论文和其研究领域、用户和其打分过的论文与论文之间进行连边,每条边无方向,权重为1,每个节点的类型属于“论文”、“作者”、“发表出处”或“研究领域”,以此构建异构图。
优选地,步骤S2包括:
步骤S21:对异构图中的所有节点依次使用随机游走算法,得到多条路径集合,其中每个节点运行5次随机游走算法,得到5条路径,每条包含100个节点;
步骤S22:将生成的多条路径集合作为Word2Vec模型的输入,Word2Vec模型通过Python编程语言中已有的Gensim库直接获取;
步骤S23:训练Word2Vec模型,得到每个节点的向量表示,并将训练完成的Word2Vec模型存储在本地。
优选地,步骤S3包括:
步骤S31:浏览所有用户对论文的评分数据,针对每一条包含用户ui与论文pj的评分数据,查找异构图中连接ui与pj的所有长度为4的路径,并随机选择其中20条路径进行保留,舍弃其余路径;
步骤S32:利用步骤S2中的步骤S23中的训练完成的Word2Vec模型,为每一条路径生成一个矩阵作为表示;
步骤S33:将步骤S31生成并保留下来的所有路径集合,根据步骤S32所示的方法,采用矩阵表示,矩阵的集合作为下一步模型数据集的输入Train_X;
步骤S34:对于步骤S31中生成的Train_X,其每一项元素都是一条路径的矩阵表示,而这条路径连接了用户ui与论文pj;
步骤S35:对于Train_X中的每个训练样本,去查找对应的分值,将所有对应分值的集合构建成整个训练集的输出Train_Y。
优选地,步骤S4包括:
S41:导入Python编程语言中的Keras库,从Keras库中的model模块中导入Sequential模型,从Keras库中的layers模块中导入LSTM、Bidirectional以及Dense层;
S42:初始化Sequential模型;
S43:在Sequential模型中添加Bidirectional和LSTM层,返回最终状态向量;
S44:在Sequential模型中添加Dense层,激活函数选择linear;
S45:选择模型的训练损失函数为mae,优化器为adam;
S46:将步骤S3中生成的训练集数据输入模型,迭代12次,完成模型的训练工作,将模型存储在本地,能够后续调用。
优选地,步骤43中的Bidirectional和LSTM层的参数为:输出的向量维度units=100,return_sequences是否返回一组序列向量=False,表示只让这一层返回一个最终状态向量.
优选地,步骤S45中Sequential模型的参数设置为:每批次训练的样本数量batchsize=512,迭代次数epochs=12;
优选地,步骤S5包括:
S51:在生成的异构图中,寻找用户ui对其未评分过的论文pj的20条长度为4的路径;
S52:预测用户ui对其未评分过的论文pj的评分;
S53:预测用户ui对所有的其未评分过的论文的评分;
S54:为每一篇推荐给用户ui的论文做出解释。
根据本发明提供的一种基于知识图谱具有可解释性的论文推荐系统,包括:
模块M1:获取论文和用户的相关数据,利用相关数据构建异构图;
模块M2:通过在模块M1构建的异构图中使用随机游走算法生成多条路径,利用图嵌入算法输出图中每个节点的向量表示;
模块M3:将模块M2中生成的多条路径用矩阵表示,作为训练数据集的输入,将每条路径对应的某位用户对某篇论文的评分值,作为训练数据集的输出,构建训练集;
模块M4:从模块M3构建的训练集中学习循环神经网络和全联接层模型的参数,根据循环神经网络和全联接层模型,为每位用户推荐预测评分最高的n篇论文,并向用户解释做出此推荐的依据。
根据本发明提供的一种终端,包括处理器、输入设备、输出设备和存储器,处理器、输入设备、输出设备和存储器相互连接,其中,存储器用于存储计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行上述的基于知识图谱具有可解释性的论文推荐方法。
与现有技术相比,本发明具有如下的有益效果:
1、本发明克服了经典推荐算法“协同过滤”的可解释性不足的问题,通过循环神经网络和全联接层模型的搭建,解决了向用户清楚地解释为何要给用户推荐某一论文的技术问题。
2、通过生成异构图匹配对应的路径和节点,无需提前通过人工方式定义路径特征,从而弥补了以往推荐算法需领域知识、人工定义路径可能面临的路径特征挖掘不充分的问题。
3、本发明通过构建训练数据集,不仅实现了推荐的匹配度,还保留了数据推荐的多样性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的基于知识图谱具有可解释性的论文推荐方法的流程图;
图2为本发明适用的包含论文、作者、发表出处、研究领域、用户的异构图模式;
图3为本发明提出的在异构图中进行随机游走的过程;
图4为本发明提出的对异构图中的路径做矩阵表示的生成过程。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
如图1-图4所示,本发明提供了一种基于知识图谱具有可解释性的论文推荐方法,包括如下步骤:
步骤S1:从数据库中获取论文和用户的数据,利用获取的数据构建异构图。
步骤S11:从数据库中获取出论文、用户的相关数据,论文数据包括论文ID数据、论文作者、论文发表的出处及论文所属的研究领域,用户数据包括用户ID、用户对论文的评分数据;
步骤S12:根据获取的论文和用户的数据,在论文和其作者、论文和其发表出处、论文和其研究领域、用户和其打分过的论文与论文之间进行连边,每条边无方向,权重为1,每个节点的类型属于“论文”、“作者”、“发表出处”或“研究领域”,以此构建异构图。
步骤S2:通过在构建的异构图中使用随机游走算法生成多条路径,利用图嵌入算法输出异构图中每个节点的向量表示。
步骤S21:对异构图中的所有节点依次使用随机游走算法,得到多条路径集合,其中每个节点运行5次随机游走算法,得到5条路径,每条包含100个节点。
具体地,随机游走算法的实现如下:记当前停留的节点为vt,其邻居节点的集合为Neighbor(vt),某一节点ni的类型为NodeType(ni),其邻居节点类型的集合为NeighborType(vt)={NodeType(ni)|ni∈Neighbor(vt)},那么,下一个访问的节点vt+1将以如下方式抽取得到:
第一步:等概率随机从NeighborType(vt)中抽取一个节点类型,记为typet;
第二步:筛选集合Neighbor(vt)中节点类型为typet的所有节点,记为TargetNodes={ni∈Neighbor(vt)|NodeType(ni)=typet};然后等概率随机从TargetNodes中抽取一个节点,记为vt+1,即为下一个将要访问的节点。
之所以选用此方法,而非直接在Neighbor(vt)里做一次等概率随机抽取,是因为在集合Neighbor(vt)中,不同类型节点的数量差距较大,实践中,类型为“用户”的节点数量最多,类型为“发表出处”的节点数量最少,如果只采取直接在Neighbor(vt)里做一次等概率随机抽取的方法,那么大多数路径都不会包含类型为“发表出处”的节点,从而丧失了数据集的多样性。
步骤S22:将生成的多条路径集合作为Word2Vec模型的输入,Word2Vec模型通过Python编程语言中已有的Gensim库直接获取;本发明中Word2Vec模型的参数为:size(生成的向量维度)=32,iter(模型循环迭代的次数)=5。
步骤S23:训练Word2Vec模型,得到每个节点的向量表示,并将训练完成的Word2Vec模型存储在本地,方便后续直接调用。
步骤S3:根据用户对论文的评分数据,为每一组“用户-论文”,在异构图中查找到多条路径,将多条路径用矩阵表示,作为训练数据集的输入,将每条路径对应的某位用户对某篇论文的评分值,作为训练数据集的输出,构建训练集;
步骤S31:浏览所有用户对论文的评分数据,针对每一条包含用户ui与论文pj的评分数据,查找异构图中连接ui与pj的所有长度为4的路径,并随机选择其中20条路径进行保留,舍弃其余路径;
步骤S32:利用步骤S2中的步骤S23中的训练完成的Word2Vec模型,为每一条路径生成一个矩阵作为表示;
具体地,对路径上的每一个节点ni,调用S23生成的Word2Vec模型,获得该节点在模型中的向量表示,记为vectori;记其节点类型为NodeType(ni),类型可能是“论文”、“作者”、“发表出处”、“研究领域”或“用户”这5种之一,将这些类型分别用如下向量表示:[1,0,0,0,0]、[0,1,0,0,0]、[0,0,1,0,0]、[0,0,0,1,0]、[0,0,0,0,1],记表示节点ni类型的向量为vectypei。然后,将vectori在前,vectypei在后,做首尾连接,记为embeddingi;由于vectori是一个1行32列的向量,vectypei是一个1行5列的向量,因此,二者相连产生的embeddingi是一个1行37列的向量
由于在S31已限定每条路径长度为4,因此,记一条路径为P=(n1,n2,n3,n4),每个节点n1,n2,n3,n4及它们的类型,用向量表示为embedding1,embedding2,embedding3,embedding4,那么,路径P的矩阵表示为[embedding1,embedding2,embedding3,embedding4]T,其中T表示矩阵的转置。可见,路径P的矩阵表示是一个4×37维度的矩阵。
步骤S33:将步骤S31生成并保留下来的所有路径集合,根据步骤S32所示的方法,采用矩阵表示,矩阵的集合作为下一步模型数据集的输入Train_X;
步骤S34:对于步骤S31中生成的Train_X,其每一项元素都是一条路径的矩阵表示,而这条路径连接了用户ui与论文pj;
步骤S35:从用户对论文的评分数据集中查询用户ui对论文pj的评分值,每个评分值是1至5之间的整数,将这个值作为该训练样本的输出。对于Train_X中的每个训练样本,去查找对应的分值,将所有对应分值的集合构建成整个训练集的输出Train_Y。
步骤S4:搭建包含长短期记忆的循环神经网络和全联接层的模型,从训练集中学习包含长短期记忆的循环神经网络和全联接层的模型的参数。
S41:导入Python编程语言中的Keras库,从Keras库中的model模块中导入Sequential模型,从Keras库中的layers模块中导入LSTM、Bidirectional以及Dense层;
S42:初始化Sequential模型;
S43:在Sequential模型中添加Bidirectional和LSTM层,返回最终状态向量,Bidirectional和LSTM层的参数为:输出的向量维度units=100,return_sequences是否返回一组序列向量=False,表示只让这一层返回一个最终状态向量;
S44:在Sequential模型中添加Dense层,激活函数选择linear;
S45:选择模型的训练损失函数为mae,优化器为adam,Sequential模型的参数设置为:每批次训练的样本数量batch size=512,迭代次数epochs=12;
S46:将步骤S3中生成的训练集数据输入模型,迭代12次,完成模型的训练工作,将模型存储在本地,能够后续调用。
步骤S5:根据包含长短期记忆的循环神经网络和全联接层的模型为每位用户推荐预测评分最高的多篇论文,并向用户解释做出此推荐的依据。
S51:在生成的异构图中,寻找用户ui对其未评分过的论文pj的20条长度为4的路径,具体地,对于某位用户ui,以及该用户未评分过的某篇论文pj,查找异构图中连接ui与pj的所有长度为4的路径,并随机选择其中20条路径进行保留,舍弃其余路径,将这些路径存储至本地,为后续做出推荐解释所用。
S52:预测用户ui对其未评分过的论文pj的评分,具体地,利用步骤S3.2的算法,将连接ui与pj的20条路径中的每一条路径生成矩阵表示,将这20个矩阵依次输入步骤S4.6中已训练好的模型,得到输出,输出为一个评分1至5之间的有理数,求这20个输出值的平均值,作为预测用户ui对论文pj的评分。
S53:预测用户ui对所有的其未评分过的论文的评分;具体地,记用户ui未评分过的所有论文集合为Pi,遍历Pi中的每篇论文pj,依次执行步骤S5.1和S5.2,得到用户ui对集合Pi中每篇论文的预测评分,将这些论文按照其预测评分值从高到低进行排序,选择前10的论文推荐给用户ui。
S54:为每一篇推荐给用户ui的论文做出解释。具体地来说,记,通过步骤S53给用户推荐的10篇论文集合为Reci,对于Reci中的每篇论文pj,提取在步骤S51保存的连接用户ui和论文pj的20条路径,然后执行步骤S32,将这20条路径用20个矩阵表示,依次输入步骤S46中已训练好的模型,得到输出,选择输出值最高的那个矩阵所代表的路径,由于这条路径的第一个节点为用户ui,最后一个节点为论文pj,而根据步骤S12构建异构图的方法,可知在异构图中,对于用户类型节点,其邻居节点的类型只能是“论文”,因此,记该路径为BestPath(ui)=(ui,pk,nx,pj),其中pk表示用户ui评价过的论文pk,nx作为连接论文pk和论文pj的节点,其类型可以是“用户”、“作者”、“发表出处”或“研究领域”。
若节点nx的类型为“用户”,则表示论文pk和论文pj都被某位用户评过分,那么,对于给用户ui推荐论文pj的依据,可解释为:“由于你曾经给论文pk评过分,而给论文pk评分过的其他用户也评分过论文pj,因此向你推荐论文pj”;
若节点nx的类型为“作者”,则表示论文pk和论文pj都是被某位作者发表的,那么,对于给用户ui推荐论文pj的依据,可解释为:“由于你曾经给论文pk评过分,而论文pk的作者也发表过论文pj,因此向你推荐论文pj”;
若节点nx的类型为“发表出处”,则表示论文pk和论文pj都在某个地方被发表过,那么,对于给用户ui推荐论文pj的依据,可解释为:“由于你曾经给论文pk评过分,而论文pk和论文pj都在同一个地方被发表过,因此向你推荐论文pj”;
若节点nx的类型为“研究领域”,则表示论文pk和论文pj都属于同一研究领域,那么,对于给用户ui推荐论文pj的依据,可解释为:“由于你曾经给论文pk评过分,而论文pk和论文pj都属于同一研究领域,因此向你推荐论文pj”
根据本发明提供的一种基于知识图谱具有可解释性的论文推荐系统,包括:
模块M1:获取论文和用户的相关数据,利用相关数据构建异构图;
模块M2:通过在模块M1构建的异构图中使用随机游走算法生成多条路径,利用图嵌入算法输出图中每个节点的向量表示;
模块M3:将模块M2中生成的多条路径用矩阵表示,作为训练数据集的输入,将每条路径对应的某位用户对某篇论文的评分值,作为训练数据集的输出,构建训练集;
模块M4:从模块M3构建的训练集中学习循环神经网络和全联接层模型的参数,根据循环神经网络和全联接层模型,为每位用户推荐预测评分最高的n篇论文,并向用户解释做出此推荐的依据。
根据本发明提供的一种终端,包括处理器、输入设备、输出设备和存储器,处理器、输入设备、输出设备和存储器相互连接,其中,存储器用于存储计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行上述的基于知识图谱具有可解释性的论文推荐方法。
本发明通过将知识图谱引入推荐系统的构建中,从而弥补了经典推荐算法“协同过滤”的可解释性不足的问题。在引入物品知识信息构建异构图后,本发明又提出了基于各类型节点等概率选择的随机游走算法,确保了异构图中所有类型的节点,无论其数量多少,均可平等地贡献异构图所蕴含的语义。本发明提出了基于长短期记忆网络的路径评分模型,从而避免了常规的基于知识图谱推荐的算法需事前通过人工预定义路径特征的问题。最后,本发明提出了一种规则,以此向用户解释相关推荐的依据。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (6)
1.一种基于知识图谱具有可解释性的论文推荐方法,其特征在于,包括如下步骤:
步骤S1:从数据库中获取论文和用户的数据,利用获取的数据构建异构图;
步骤S2:通过在构建的异构图中使用随机游走算法生成多条路径,利用图嵌入算法输出异构图中每个节点的向量表示;
步骤S3:根据用户对论文的评分数据,为每一组“用户-论文”,在异构图中查找到多条路径,将多条路径用矩阵表示,作为训练数据集的输入,将每条路径对应的某位用户对某篇论文的评分值,作为训练数据集的输出,构建训练集;
步骤S4:搭建包含长短期记忆的循环神经网络和全联接层的模型,从训练集中学习包含长短期记忆的循环神经网络和全联接层的模型的参数;
步骤S5:根据包含长短期记忆的循环神经网络和全联接层的模型为每位用户推荐预测评分最高的多篇论文,并向用户解释做出此推荐的依据;所述步骤S1包括:
步骤S11:从数据库中获取出论文、用户的相关数据,论文数据包括论文ID数据、论文作者、论文发表的出处及论文所属的研究领域,用户数据包括用户ID、用户对论文的评分数据;
步骤S12:根据获取的论文和用户的数据,在论文和其作者、论文和其发表出处、论文和其研究领域、用户和其打分过的论文与论文之间进行连边,每条边无方向,权重为1,每个节点的类型属于“论文”、“作者”、“发表出处”或“研究领域”,以此构建异构图;
所述步骤S2包括:
步骤S21:对异构图中的所有节点依次使用随机游走算法,得到多条路径集合,其中每个节点运行5次随机游走算法,得到5条路径,每条包含100个节点;
随机游走算法的实现如下:记当前停留的节点为vt,其邻居节点的集合为Neighbor(vt),某一节点ni的类型为NodeType(ni),其邻居节点类型的集合为NeighborType(vt)={NodeType(ni)|ni∈Neighbor(vt)},那么,下一个访问的节点vt+1将以如下方式抽取得到:
第一步:等概率随机从NeighborType(vt)中抽取一个节点类型,记为typet;
第二步:筛选集合Neighbor(vt)中节点类型为typet的所有节点,记为TargetNodes={ni∈Neighbor(vt)|NodeType(ni)=typet};然后等概率随机从TargetNodes中抽取一个节点,记为vt+1,即为下一个将要访问的节点;
步骤S22:将生成的多条路径集合作为Word2Vec模型的输入,Word2Vec模型通过Python编程语言中已有的Gensim库直接获取;
步骤S23:训练Word2Vec模型,得到每个节点的向量表示,并将训练完成的Word2Vec模型存储在本地;
所述步骤S3包括:
步骤S31:浏览所有用户对论文的评分数据,针对每一条包含用户ui与论文pj的评分数据,查找异构图中连接ui与pj的所有长度为4的路径,并随机选择其中20条路径进行保留,舍弃其余路径;
步骤S32:利用步骤S2中的步骤S23中的训练完成的Word2Vec模型,为每一条路径生成一个矩阵作为表示;
步骤S33:将步骤S31生成并保留下来的所有路径集合,根据步骤S32所示的方法,采用矩阵表示,矩阵的集合作为下一步模型数据集的输入Train_X;
步骤S34:对于步骤S31中生成的Train_X,其每一项元素都是一条路径的矩阵表示,而这条路径连接了用户ui与论文pj;
步骤S35:对于Train_X中的每个训练样本,去查找对应的分值,将所有对应分值的集合构建成整个训练集的输出Train_Y;
所述步骤S4包括:
S41:导入Python编程语言中的Keras库,从Keras库中的model模块中导入Sequential模型,从Keras库中的layers模块中导入LSTM、Bidirectional以及Dense层;
S42:初始化Sequential模型;
S43:在Sequential模型中添加Bidirectional和LSTM层,返回最终状态向量;
S44:在Sequential模型中添加Dense层,激活函数选择linear;
S45:选择模型的训练损失函数为mae,优化器为adam;
S46:将步骤S3中生成的训练集数据输入模型,迭代12次,完成模型的训练工作,将模型存储在本地,能够后续调用。
2.根据权利要求1所述的基于知识图谱具有可解释性的论文推荐方法,其特征在于,所述步骤43中的Bidirectional和LSTM层的参数为:输出的向量维度units=100,return_sequences是否返回一组序列向量=False,表示只让这一层返回一个最终状态向量。
3.根据权利要求1所述的基于知识图谱具有可解释性的论文推荐方法,其特征在于,所述步骤S45中Sequential模型的参数设置为:每批次训练的样本数量batch size=512,迭代次数epochs=12。
4.根据权利要求1所述的基于知识图谱具有可解释性的论文推荐方法,其特征在于,所述步骤S5包括:
S51:在生成的异构图中,寻找用户ui对其未评分过的论文pj的20条长度为4的路径;
S52:预测用户ui对其未评分过的论文pj的评分;
S53:预测用户ui对所有的其未评分过的论文的评分;
S54:为每一篇推荐给用户ui的论文做出解释。
5.一种基于知识图谱具有可解释性的论文推荐系统,其特征在于,包括:
模块M1:获取论文和用户的相关数据,利用相关数据构建异构图;
模块M2:通过在模块M1构建的异构图中使用随机游走算法生成多条路径,利用图嵌入算法输出图中每个节点的向量表示;
模块M3:将模块M2中生成的多条路径用矩阵表示,作为训练数据集的输入,将每条路径对应的某位用户对某篇论文的评分值,作为训练数据集的输出,构建训练集;
模块M4:从模块M3构建的训练集中学习循环神经网络和全联接层模型的参数,根据循环神经网络和全联接层模型,为每位用户推荐预测评分最高的n篇论文,并向用户解释做出此推荐的依据;
所述模块M1包括:
模块M11:从数据库中获取出论文、用户的相关数据,论文数据包括论文ID数据、论文作者、论文发表的出处及论文所属的研究领域,用户数据包括用户ID、用户对论文的评分数据;
模块M12:根据获取的论文和用户的数据,在论文和其作者、论文和其发表出处、论文和其研究领域、用户和其打分过的论文与论文之间进行连边,每条边无方向,权重为1,每个节点的类型属于“论文”、“作者”、“发表出处”或“研究领域”,以此构建异构图;
所述模块M2包括:
模块M21:对异构图中的所有节点依次使用随机游走算法,得到多条路径集合,其中每个节点运行5次随机游走算法,得到5条路径,每条包含100个节点;
随机游走算法的实现如下:记当前停留的节点为vt,其邻居节点的集合为Neighbor(vt),某一节点ni的类型为NodeType(ni),其邻居节点类型的集合为NeighborType(vt)={NodeType(ni)|ni∈Neighbor(vt)},那么,下一个访问的节点vt+1将以如下方式抽取得到:
第一步:等概率随机从NeighborType(vt)中抽取一个节点类型,记为typet;
第二步:筛选集合Neighbor(vt)中节点类型为typet的所有节点,记为TargetNodes={ni∈Neighbor(vt)|NodeType(ni)=typet};然后等概率随机从TargetNodes中抽取一个节点,记为vt+1,即为下一个将要访问的节点;
模块M22:将生成的多条路径集合作为Word2Vec模型的输入,Word2Vec模型通过Python编程语言中已有的Gensim库直接获取;
模块M23:训练Word2Vec模型,得到每个节点的向量表示,并将训练完成的Word2Vec模型存储在本地;
所述模块M3包括:
模块M31:浏览所有用户对论文的评分数据,针对每一条包含用户ui与论文pj的评分数据,查找异构图中连接ui与pj的所有长度为4的路径,并随机选择其中20条路径进行保留,舍弃其余路径;
模块M32:利用模块M2中的模块M23中的训练完成的Word2Vec模型,为每一条路径生成一个矩阵作为表示;
模块M33:将模块M31生成并保留下来的所有路径集合,根据模块M32所示的方法,采用矩阵表示,矩阵的集合作为下一步模型数据集的输入Train_X;
模块M34:对于模块M31中生成的Train_X,其每一项元素都是一条路径的矩阵表示,而这条路径连接了用户ui与论文pj;
模块M35:对于Train_X中的每个训练样本,去查找对应的分值,将所有对应分值的集合构建成整个训练集的输出Train_Y;
所述模块M4包括:
M41:导入Python编程语言中的Keras库,从Keras库中的model模块中导入Sequential模型,从Keras库中的layers模块中导入LSTM、Bidirectional以及Dense层;
M42:初始化Sequential模型;
M43:在Sequential模型中添加Bidirectional和LSTM层,返回最终状态向量;
M44:在Sequential模型中添加Dense层,激活函数选择linear;
M45:选择模型的训练损失函数为mae,优化器为adam;
M46:将模块M3中生成的训练集数据输入模型,迭代12次,完成模型的训练工作,将模型存储在本地,能够后续调用。
6.一种终端,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-4中任一项所述的基于知识图谱具有可解释性的论文推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011639739.9A CN112632296B (zh) | 2020-12-31 | 2020-12-31 | 基于知识图谱具有可解释性的论文推荐方法及系统、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011639739.9A CN112632296B (zh) | 2020-12-31 | 2020-12-31 | 基于知识图谱具有可解释性的论文推荐方法及系统、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112632296A CN112632296A (zh) | 2021-04-09 |
CN112632296B true CN112632296B (zh) | 2022-09-23 |
Family
ID=75290094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011639739.9A Active CN112632296B (zh) | 2020-12-31 | 2020-12-31 | 基于知识图谱具有可解释性的论文推荐方法及系统、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632296B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210365818A1 (en) * | 2020-05-20 | 2021-11-25 | Samsung Electronics Co., Ltd. | System and method for explainable embedding-based recommendation system |
CN114741519A (zh) * | 2022-02-18 | 2022-07-12 | 北京邮电大学 | 一种基于图卷积神经网络和知识库的论文相关性分析方法 |
CN115186086B (zh) * | 2022-06-27 | 2023-08-08 | 长安大学 | 一种异构环境下嵌入预期价值的文献推荐方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737778A (zh) * | 2019-09-04 | 2020-01-31 | 北京邮电大学 | 基于知识图谱和Transformer的专利推荐方法 |
CN110837892A (zh) * | 2019-11-12 | 2020-02-25 | 广东外语外贸大学 | 基于带类型关系路径嵌入的事实溯因推理方法 |
CN110955834A (zh) * | 2019-11-27 | 2020-04-03 | 西北工业大学 | 一种知识图谱驱动的个性化精准推荐方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275964B (zh) * | 2019-06-26 | 2023-07-14 | 程淑玉 | 基于知识图谱与循环神经网络的推荐模型 |
CN110334221B (zh) * | 2019-07-18 | 2022-12-09 | 桂林电子科技大学 | 一种基于知识图谱路径的可解释性推荐方法 |
CN112085559A (zh) * | 2020-08-18 | 2020-12-15 | 山东大学 | 基于时序性知识图谱的可解释商品推荐方法及系统 |
-
2020
- 2020-12-31 CN CN202011639739.9A patent/CN112632296B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737778A (zh) * | 2019-09-04 | 2020-01-31 | 北京邮电大学 | 基于知识图谱和Transformer的专利推荐方法 |
CN110837892A (zh) * | 2019-11-12 | 2020-02-25 | 广东外语外贸大学 | 基于带类型关系路径嵌入的事实溯因推理方法 |
CN110955834A (zh) * | 2019-11-27 | 2020-04-03 | 西北工业大学 | 一种知识图谱驱动的个性化精准推荐方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112632296A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111241311B (zh) | 媒体信息推荐方法、装置、电子设备及存储介质 | |
CN112214685B (zh) | 一种基于知识图谱的个性化推荐方法 | |
CN110263265B (zh) | 用户标签生成方法、装置、存储介质和计算机设备 | |
CN111581510B (zh) | 分享内容处理方法、装置、计算机设备和存储介质 | |
CN112632296B (zh) | 基于知识图谱具有可解释性的论文推荐方法及系统、终端 | |
CN111523047B (zh) | 基于图神经网络的多关系协同过滤算法 | |
CN110275964B (zh) | 基于知识图谱与循环神经网络的推荐模型 | |
CN110717098B (zh) | 基于元路径的上下文感知用户建模方法、序列推荐方法 | |
Ma et al. | Combining tag correlation and user social relation for microblog recommendation | |
CN111191092B (zh) | 标签确定方法和标签确定模型训练方法 | |
Yang et al. | Finding progression stages in time-evolving event sequences | |
US20170024645A1 (en) | Dynamic Memory Network | |
US20160350653A1 (en) | Dynamic Memory Network | |
CN110516160A (zh) | 基于知识图谱的用户建模方法、序列推荐方法 | |
CN108920641A (zh) | 一种信息融合个性化推荐方法 | |
CN114265986B (zh) | 一种融合知识图谱结构与路径语义的信息推送方法和系统 | |
CN109684548B (zh) | 一种基于用户图谱的数据推荐方法 | |
CN113806630A (zh) | 基于注意力的多视角特征融合跨域推荐方法及装置 | |
Kim et al. | Dynamic faceted navigation in decision making using semantic web technology | |
CN115168744A (zh) | 基于用户画像和知识图谱的广电技术知识推荐方法 | |
CN115687760A (zh) | 一种基于图神经网络的用户学习兴趣标签预测方法 | |
CN113011172A (zh) | 文本处理方法、装置、计算机设备和存储介质 | |
CN117216281A (zh) | 一种基于知识图谱的用户兴趣扩散推荐方法及系统 | |
CN113051468B (zh) | 一种基于知识图谱和强化学习的电影推荐方法及系统 | |
CN116010681A (zh) | 一种召回模型的训练及检索方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |