相关标签

基于知识图谱的文献推荐算法研究

发布时间:2019-12-04 19:17

  摘要

  科研工作者在进行论文写作的过程中有一个环节无法避免,即参考文献的查找与引用。而随着计算机与网络技术的发展,当前的主流方法已经从纸质文献的低效查询转变为通过网络向文献索引机构通过关键词的方式进行在线查询。

  因此,本文提出了一种基于知识图谱的混合型文献推荐算法,减少用户查询相关文献时需要的操作次数,向用户返回更加有效优质的文献查询结果。本文提出的算法的优势在于:(1)利用了知识图谱来挖掘更多文献之间隐含的信息,如文献的相对重要性,文献作者对文献的影响等;(2)利用词向量来衡量论文之间的内容相关性,作为论文推荐的考虑因素之一;(3)考虑了论文与引文的发表时间之间的关系,避免大量推荐过时但被大量引用的论文;(4)利用神经网络训练了一个混合式的推荐模型,来综合各类参考因素。本文在DBLP文献数据集上进行了实验,最终在2000大小的测试集上得到的准确率为8.6%,召回率为80%,F1值为15.5%,而相对比的随机采样推荐命中率为0.9%,本算法提升效果显著。

  关键词:知识图谱;推荐算法;引用网络;文献推荐

  前言

  近些年来,随着开放链接数据的全面展开,互联网正从仅包含网页和网页之间超链接的文档万维网(Web of Document)转变成包含大量描述各种实体和实体之间丰富关系的数据万维网(Web of Data)。

  而论文之间存在的引用关系与万维网中文档的超链接关系有明显的相似性,所以,如引用网络分析等原本被应用于万维网文档的技术,近年来也被大量应用在论文数据集中。

  当前主流知识图谱技术主要应用在搜索引擎改良、问答系统等,以弥补检索式系统的不足。而本文结合了知识图谱在万维网文档中的应用技术如PageRank,提出了将知识图谱应用于科技文献垂直领域的较新颖的推荐方法。本文中提出的基于知识图谱的混合型推荐算法相比于随机采样推荐在准确率与召回率上有了明显的提高。

  第一章 绪论

  1.1 研究背景

  用户在使用关键词进行查询的时候,最有可能遇到的问题就是信息过载的问题,即数个关键词可能会查询到无数个相关的文献。此时,一个良好的推荐算法可以有效地为用户将大量的索引结果进行排序,显著减少用户查询到感兴趣内容所需要的操作次数。

  知识图谱于2012年5月17日被Google正式提出,其初衷是为了提高搜索引擎的能力,增强用户的搜索质量以及搜索体验[2]。目前,随着智能信息服务应用的不断发展,知识图谱已被广泛应用于智能搜索、智能问答、个性化推荐等领域[2]。本质上,知识图谱是一种揭示实体之间关系的语义网络,可以对现实世界的事物及其相互关系进行形式化地描述,而现在知识图谱以被用来泛指各种大规模的知识库[2]。

  本文将知识图谱应用于文献推荐算法的研究中,正是因为知识图谱将现实中的事物映射为知识图谱中实体的特点,能够将来自网络的松散的数据记录整合聚集为一个个知识实体,并在知识实体间建立各类关系,使得对于真实实体的计算更加简单。

  一个典型的知识图谱实体集样例如图1-1所示,可以看到在大量不同类型的实体之间存在着复杂的相互关系,这是知识图谱的一个重要特征。

  图1-1 知识图谱实体集样例

  1.2 论文的内容及意义

  在文献推荐领域,当前已有的研究主要集中在以下几个方面:

  1. 基于内容的推荐算法

  2. 基于协同过滤的推荐算法

  3. 基于文献引用网络的推荐算法

  4. 基于作者合作网络的推荐算法

  5. 混合型的推荐算法

  其中基于内容的推荐算法只考虑了相关文献在内容上的相似性,而忽略了文献所具有的其他有价值的信息。同时,用户通过关键词进行召回时,由于可能有太多的文献共享同一个主题及内容,导致推荐的准确率过低[1]。

  基于协同过滤的推荐算法要求有同类用户对目标进行打分,这在实际使用场景中的限制较高,不是所有的项目都能使用此方法。

  基于引用网络或者合作网络能够充分挖掘论文之间的关系,将其作为推荐的参考因素,因此,通常效果较好。但是,基于这类网络的推荐算法经常容易将给予那些拥有大量关系连接的个体更高的排名,而忽视了那些出现时间较短但是十分重要的个体。

  本文主要基于知识图谱的概念,构建科技文献垂直领域的知识图谱,并在此基础上提出了一种结合了PageRank与神经网络的混合型文献推荐算法。

  本文为论文文献及相关据所设计的知识图谱模型如图1-2所示,其中:

  l Author表示作者结点

  l Article表示文献结点

  l Venue表示发表场所(期刊或会议等)

  l Author1与Author2间存在co-author即共同作者的关系

  l Author与Artice间存在publish即发表关系

  l Artice1和Artice2之间存在cite即引用关系,Artice1和Venue1间存在publish_in

  即发表于的关系。

  图1-2 知识图谱模型

  使用知识图谱来改善文献推荐算法的原因如下:

  从数据存储的角度来说,普通的关系型数据库在面对实体间关系确定、简单的场景下非常方便。但是,如果实体间的关系复杂多变,关系型的存储方式便很难进行有效的应对,比如当同一类型的实体拥有复杂多变的属性,关系型数据库经常需要修改,以适应所有的实体。关系型数据库的Scheme的后续修改成本极高,所以很难良好的应对复杂多变的异构实体。而知识图谱通常使用基于图的非关系型数据库,局部的实体模型的修改,完全不会影响到整个系统的运行。

  从数据查询的角度来说,传统的关系型数据库在1度的关系查询非常轻松,但是一旦想要对实体间的关系进行1度以上甚至不定深度的关系链进行查询时,基于知识图谱的查询效率会是传统关系型数据查询的几千甚至上百万倍。

  从事物描述的逻辑角度来说,把现实中的实体映射为知识图谱中的一个个实体更加符合实际的逻辑,也更容易让人理解,从而更加有可能从中挖掘出实体间隐含的关系。

  1.3 本文的组织结构

  第一章:绪论,介绍文献推荐研究的研究背景、论文的主要内容和研究意义。

  第二章:技术综述,展示算法设计与实现过程中所涉及的技术要点与知识要点。

  第三章:基于知识图谱的文献推荐算法,即本篇论文的算法核心设计。

  第四章:实验与统计,本文使用于判断算法效果的实验设计与实验结果的分析。

  第五章:总结与展望,本文最后得出的结论与对自身待改进之处的分析。

  第二章 技术综述

  2.1 PageRank

  PageRank是Google为了解决网页排名而提出的算法,最初的PageRank算法只依靠网页文档之间的超链接关系来构造引用网络矩阵,并通过不断更新每个页面的权重达到收敛,最后即可得到网页在整个引用网络之内的排名。

  PageRank有两个核心思想:

  (1)若一个网页被越多的网页引用,则这个网页的重要性也就越高。

  (2)若一个网页的重要性很高,那被这个网页引用的网页重要性也应提高。

  2.2 MapReduce

  MapReduce是Google提出的一个软件架构,用于大规模数据集的并行运算。概念Map(映射)和Reduce(归纳),及他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性[6]。

  其中,Map是将针对大量数据的复杂问题分解为可以并行运算的子问题,而Reduce是将所有子问题运行的结果归并为最终的结果。由于进行了问题的分解,这就让原本单台机器难以负荷的运算工作可以由多台机器合力解决。虽然在拆解问题与合并运算结果时,会有一些性能上的损耗,但这些损耗相比较于多台机器的并行工作带来的收益而言,完全可以忽略不计。

  本文中提出的算法有一部分是对召回的文献集运行PageRank算法,需要同时对大量的文献结点及其关系进行运算,就是在存储这些文献集的mongodb数据库上使用MapReduce的架构完成PageRank算法的实现。本文的实验是使用单台PC完成的,但是PageRank在运算时产生的大型矩阵会使PC内存溢出。所以,在使用了MapReduce架构后,不仅解决了单机运行时的内存问题,也使得此部分代码在面对更大的数据量时,也可以比较轻松的迁移至多台结点的计算机集群上完成运算。

  2.3 Word embedding

  词嵌入(Word embedding)也成为词向量技术,是为了解决自然语言问题中如何让计算机可以识别、计算自然语句而提出的方法。

  2.3.1 单一编码词向量

  最早期也最简单的词向量是单一编码(one-hot representation)词向量,即使用一个极长的、长度为所有关键词的个数的向量来表示一个词,在此向量中只有一个1,即此关键词对应的位置,而其他位置均为0,用以代表每个关键词。这种单一编码的词向量有两个严重的缺点:

  (1)“维度灾难”,即当关键词词典的长度极长时,每个单词所对应的词向量都占据了很大且无用的空间,尤其是将此类词向量应用于神经网络之类的模型进行运算时,对系统的负荷通常令人难以接受。

  (2)“语义鸿沟”,每个词向量与其他的任何词向量都没有关系,携带的信息量极少,使程序不可能从词向量上能分析得到词与词之间的关系,无法刻画词句之间的关系,对于语义方面没有任何帮助。

  2.3.2 分布式词向量

  经过自然语言处理技术的发展,如今主流的词向量技术主要使用分布式表示(Distributed Representation)词向量。这是一种使用深度学习或者共现矩阵构造的稠密向量,长度在同一使用场景下一般为一个固定值,本质都是同过大量语料来学习单词的共现特征。

  这类词向量相比于单一编码词向量具有几个特点:

  (1)词向量占用空间可控,使得依靠这类向量对大规模文本进行机器学习训练具有可行性。

  (2)在向量空间内,具有相近语义的单词也具有相似的词向量,如在通用领域语料上最常见的检验方法是 V(“英国”)-( V(“中国”)-V(“北京”)) = V("伦敦"),即词向量之间具有可以运算的良好性质。

  2.3.3 本文对词向量技术的使用

  由于一篇论文与其引文在内容显然具有一定程度的相关性[10],在进行文献推荐时,文献之间内容的相关性也应该成为必须考虑的一点。所以,本文在对DBLP上300万篇以上的论文中的单词进行了分布式词向量的训练,并将词向量累加形成的句向量作为神经网络训练的参数,以达到在推荐时考虑论文与引文间相关性的目的。

  2.4 数据集及存储

  DBLP(DataBase systems and Logic Programming)是计算机领域内对研究的成果以作者为核心的一个计算机类英文文献的集成数据库系统,按年代列出了作者的科研成果,包括国际期刊和会议等公开发表的论文[6]。此项目是由德国特里尔大学的Michael Ley负责开发及维护。此项目为计算机领域的科学文献提供搜索服务,但是只对文献的元数据进行存储,如引用列表、标题、作者、发表日期等[6]。

  本文使用的数据集来自对DBLP中所有文献间引用关系的整理和抽取,最后得到的数据结构样例如下所示本文使用了DBLP数据集作为研究数据集,使用neo4j这种图数据库型数据库完成数据的解析及存储,最终存储数据量为3,000,000篇以上的论文及25,000,000条以上的论文间引用关系。

  2.5 倒排索引

  倒排索引是一种为了解决海量文本检索问题而被提出的一种快速查找技术。传统的使用关键词的文本检索方案是遍历所有的文档,并遍历每个文档中的所有内容来检查关键词是否出现。这样的算法时间复杂度为O(m*n),其中n为文档数量,m为平均文档长度。这样的时间复杂度在面对海量的文本检索场景时,显然令人是无法接受的。

  倒排索引的做法是为文档中出现的每一个关键词建立索引,即使用一张倒排索引表记录下每一个关键词分别在哪些文档中出现。在用户以关键词的方式查询时,可以以O(1)的时间复杂度快速查找到包含这些关键词的文档,这是如今搜索引擎能在常数时间内返回查询结果的技术基础。

  本文使用了倒排索引来进行文档的召回,避免了对大量的文献进行遍历查询的操作,使得召回部分的时间复杂度为O(1)。

  第三章 基于知识图谱的文献推荐算法

  3.1 主流相关算法介绍

  在当前数据量庞大且复杂的网络环境中,为了解决文档文献查阅者遇到的信息超载问题,大量的推荐或排名算法被应用于各类查询系统。如谷歌、百度等搜索引擎,或者是淘宝、京东等电商平台,甚至是知乎、豆瓣等知识问答平台,都大量使用了各类推荐算法以提高用户的使用体验。

  而对科技文献这个垂直领域上的推荐算法,已经有很多论文进行了讨论。比如一些主流的方法使用关键字来进行召回,寻找最相关的论文(使用论文的标题、关键词、摘要、全文等),然后使用一些如LDA主题模型或者是TF-IDF的方法进行改进。但是,由于总是有大量的论文共享相同的内容及主题,只是基于内容的推荐结果通常都达不到很高的精度。

  作为补充,一些其他的方法使用了文献之间的引用关系来作为推荐的依据,这类方法就更倾向于推荐被大量论文引用的文献。比如有种方法是引用关系将论文聚集为一个个兴趣小组[3],或者开发多层神经网络概率模型来学习引文的语义特征[4]。但是,基于引用的推荐方法很容易向我们推荐一些历史上被引用数很高但很可能已经过时的文献。

  另外,还有一些基于学术社交网络(Academic Social Network)的推荐方法,即共同作者网络,可以通过分析作者之间的共同合作或者是共同引用关系来更新作者在学术网络中的权重,最终达到推荐的目的,但是这种方法比较容易忽略一些有独立作者撰写的重要论文。

  3.2 算法概要

  本文提出了一种基于知识图谱的混合型文献推荐算法,减少用户查询相关文献时需要的操作次数,向用户返回更加有效优质的文献查询结果。本文提出的算法的优势在于:(1)利用了知识图谱来挖掘更多文献之间隐含的信息,如文献的相对重要性,文献作者对文献的影响等;(2)利用词向量来衡量论文之间的内容相关性,作为论文推荐的考虑因素之一;(3)考虑了论文与引文的发表时间之间的关系,避免大量推荐过时但被大量引用的论文(4)利用神经网络训练了一个混合式的推荐模型,来综合各类参考因素。

  算法流程图如图3-1所示,其具体细节如下:

  l 算法目标:

  在给定一些基于知识图谱信息(KnowledgeGraph, KG)与用户关键词查询(QueryWord, QW)条件的情况下,算法推荐出“核心”的相关文献(CorePaper, CP)。

  l “核心”定义:

  针对用户的查询QW,推荐的结果CP应为用户最可能引用的文献。

  l 算法模型如图3-2所示,其解释如下:

  (1) pagerank部分:

  此部分的思想基于一个公认的事实:从宏观分布来看,越是重要的论文被引用的次数越多,而越是重要的论文,相比于其他不重要的论文被引用的可能性更高。

  使用期刊排名数据作为引用网络的pagerank初始值,在引用网络上执行pagerank算法,执行完一轮后,使用引用网络的pg值作为参数,联合更新作者合作网络的pg值,在作者合作网络执行完一轮pagerank算法后,再使用作者合作网络的pg联合更新文献引用网络的pg值,如此重复,直到收敛。收敛的定义为,上一轮的执行结果与本轮的执行结果的偏差总和小于一个阈值,最后得到的权重即作为论文与其作者在知识图谱上的权重,用以挖掘在知识图谱上的论文之间的关系。

  简单(但是计算量非常大)的矩阵计算,可以得到B1,B2,...。可以证明Bi最终会收敛,即Bi无限趋近于B,此时:B=B*A。因此,当两次迭代的结果Bi和Bi-1之间的差异非常小,接近于零时,停止迭代计算,算法结束。一般来讲,只要10次左右的迭代基本上就收敛了[4]。

  由于实体间的引用关系数量相比于整个实体集的规模十分稀疏,因此计算排名时也需要对零概率或者小概率事件进行平滑处理。实体的排名是个一维向量,对它的平滑处理只能利用一个小的常数α。这时,公式2.1变成

  其中N是所有目标实体的的数量,α是一个(较小的)常数,是单位矩阵。

  实体的排名的计算主要是矩阵相乘,这种计算很容易分解成许多小任务,在多台计算机上并行处理[5]。

  (2)神经网络部分:

  神经网络模型图如图3-3所示,输入的参数包括:目标论文的内容向量,候选论文的内容向量,两篇论文的时间差,候选论文的PageRank值。

  图3-3 神经网络模型

  解释:特征参数x经过4个全连接层Dense与3个relu的激活层Activation,得到一个1维的向量,再通过一个sigmoid的激活层得到最终预测二分类的概率p,神经网络的优化目标为p与y之间的二元交叉熵(binary cross entropy),其定义为:

  在sigmoid函数接近饱和区即x远离0时,函数值变化非常缓慢,导数趋于0,这种情况会造成信息丢失,即梯度消失,此时神经网络的反向传播会非常无力,学习速率大大降低。而使用如果交叉熵作为损失函数,在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。

  预测目标:给定用户输入的关键词列表构成的词向量与任一篇数据库论文的参数,预测此论文被用户引用的概率p 。

  特征设计:

  特征物理含义

  PaperRank Score(PS) 论文KG权重Topic Important Factor 可以反映这篇论文在某个主题内的重要程度

  AuthorRank Score(AS) 作者KG权重Topic Important Factor 可以反映这篇论文在某个主题内的重要程度

  Year Distance(YS) 距离目标查询的时间长度(/年)Fresh Factor 可以反映这篇论文的相对新鲜程度

  Sentence Vector(SV) d与d'论文title/abstract的句向量拼接Relevance Factor 可以反映这篇论文与目标论文的相关性

  本算法使用的神经网络使用了604维的向量作为特征参数,其中600维为两篇目标论文的内容向量,这是考虑了论文与其引文间在内容上的关系。另外3维分别是论文的知识图谱权重,用于衡量此论文在某个领域内的相对重要程度;论文作者的知识图谱权重。

  训练集构建:

  l 检索DataBase相关领域的一些论文集D

  l 对D中某一篇论文d:

  l 使用d.title来召回一批论文集D’,对D’中每一篇论文d’,即可构造一个特征向量

  l 而其lable为boolean(是否被d引用)

  输出:

  输入一个,输出一个d’被d引用的概率p。

  (3)词向量部分

  本算法在大量样本下具有较高的召回率,相比于随机采样推荐,本推荐算法的准确率也相对很高,拥有一个较高水准的F1值,实验结果数据表如表4-2所示。

  其中较低的准确率与训练神经网络时负样本采样较少有关,理论上为一个正样本可以采集无数个负样本,而本实验为了使神经网络较快收敛,选取了正样本数的两倍数量的负样本,故导致本算法具有一个较高的召回率与相对较低的准确率。

  综合来说,本算法在文献推荐领域,针对简单的关键词召回方法在推荐结果的质量上有明显的提升。

  4.3 开发环境及使用工具

  本文使用Python作为算法开发、数据处理的语言。相比于其他语言而言,Python在算法开发方面具有极大的优势,如完备的科学计算库(Numpy, Scipy, Pandas等),可以高效便捷地完成如矩阵运算等的操作;在机器学习方面,Python具有业界最先进的框架如TensorFlow, PyTorch等,无论是进行算法的研究或者是进行工业级的机器学习模型开发,都游刃有余;在数据处理方面,Python的Pandas库能非常便捷高效地完成数据的读取、处理、清洗等工作;在数据可视化方面,matplotlib是Python下一个非常强大的绘图库,配合pandas与numpy可以轻易完成大量数据的统计与可视化工作。

  本文使用了Keras来编写神经网络部分的模型。Keras是一个使用纯Python编写的深度学习库,本质是对底层等机器学习框架如TensorFlow, Theano或者CNTK的API进行封装的库,目的是为了使用者能快速搭建完备的实验模型,具有用户友好,模块性,易扩展性等特点。

  Keras核心的数据结构为“模型”,即对Keras内部组织网络层结构的描述。本文使用了Keras提供的最基本的“序贯”模型(Sequential)来搭建网络模型。Sequential是一系列网络层按顺序构成的栈,其中的网络层以函数式的方式按照用户的需求被添加进去。

  本文使用JavaScript来编写Mongodb数据库的控制脚本。JavaScript语言最大的特点是函数式。而本文算法的一个组成部分是PageRank算法,在计算大规模的数据集时,PageRank中的巨型矩阵会严重消耗内存,此时使用MapReduce框架可以很好的解决这个工程上问题,而JavaScript的函数式编程特点使得其在完成MapReduce结构时尤其方便。

  开发环境如下:

  操作系统:Microsoft Windows 10 版本

  处理器:Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz

  内存:12.0GB

  磁盘:1T

  第五章 总结与展望

  5.1 总结

  本文的核心是提出了一个基于知识图谱的文献推荐算法。相比于同类问题的文献提出的推荐算法而言,本文提出的算法利用了知识图谱,挖掘了更多论文之间的潜在关系,在召回率与准确率方面有了明显的提高。

  在完成本文的过程中,使用了Python作为数据处理、算法核心编写语言,使用Neo4j完成了数据的存储,使用JavaScript在mongodb完成了PageRank算法的实现。本文使用了Keras来完成神经网络模型的编写与训练,使用从知识图谱得到的数据作为神经网络的训练数据来完成对推荐算法模型的训练。

  本次毕业设计历时三个多月,在完成毕业设计的过程中,我对知识图谱有了更加深刻的体会,明白了知识图谱对于查询、推荐领域的作用;完成了大量数据的存储、运算工作,实际应用了MapReduce框架,对大数据运算有了更加直观的体会和经验;使用Keras完成了神经网络的编写与训练,学习了更多有关机器学习与神经网络有关的知识,对神经网络的参数调整有了更加深刻的理解。

  5.2 未来的展望

  我对自己的工作也进行了反思,认为仍有许多不足之处与可以改进的地方。

  从数据角度,本文使用的数据集为DBLP论文库的数据集,数据形式相对简单,使得本文构建的知识图谱达不到行业内实际知识图谱的规模与复杂结构,无法真正体现知识图谱对推荐系统带来的优势。

  从算法角度,我使用了较为简单的神经网络模型,可能无法很有效的训练得到输入数据中的大量隐含信息。而且如何更好的设计与构造训练特征也是有很多地方需要继续学习。

  最后的实验评估阶段也有许多不足之处,比如缺少与当前主流算法的数据对比,使用的测试数据集不够大,无法很准确地评估算法的效果。

  未来本算法的待改进之处如下:

  l 为训练集增加更多的负样本,比例应该与真实情况中正负样本比例接近,以在准确率与召回率间寻求平衡,以提高F1值。

  l 神经网络可以使用更加复杂的网络结构,比如可以对输入的两个文献embedding向量做卷积处理,或增加神经网络的结点数,以提高训练的效果。

  l 搜索更多的文献数据来丰富、异构本论文使用文献领域知识图谱,这样可以更多的挖掘论文与引文之间的隐藏关系,如作者所在机构之间的关系(社会交集更多的机构之间,作者互相引用的可能也相对更高),作者之间的社交网络关系(许多作者更加倾向引用于自己所在同一机构的作者的文献)等,知识图谱包含的信息越多,越能够反映真实世界实体间的关系。

  l 本文所使用的知识图谱较为简单,所以遇到的问题如实体消歧等也更少;同样,以后可以对知识图谱中的结点进行embedding,再通过随机游走等路径算法可以挖掘知识图谱上结点间隐含的关系。

毕业论文:http://www.3lunwen.com/jsj/dzjs/5426.html

上一篇:基于知识图谱的热点文章发现算法研究

下一篇:没有了

     移动版:基于知识图谱的文献推荐算法研究

本文标签:
最新论文