2.3 知识融合技术
知识融合(knowledge fusion)指的是将多个数据源抽取的知识进行融合。与传统数据融合(data fusion)[29] 任务的主要不同是,知识融合可能使用多个知识抽取工具为每个数据项从每个数据源中抽取相应的值,而数据融合未考虑多个抽取工具 [30]。由此,知识融合除了应对抽取出来的事实本身可能存在的噪音外,还比数据融合多引入了一个噪音,就是不同抽取工具通过实体链接和本体匹配可能产生不同的结果。另外,知识融合还需要考虑本体的融合和实例的融合。
文献[30]首先从已有的数据融合方法中挑选出易于产生有意义概率的、便于使用基于 MapReduce 框架的、有前途的最新方法,然后对这些挑选出的方法做出以下改进以用于知识融合:将每个抽取工具同每个信息源配对,每对作为数据融合任务中的一个数据源,这样就变成了传统的数据融合任务;改进已有数据融合方法使其输出概率,代替原来的真假二值;根据知识融合中的数据特征修改基于 MapReduce 的框架。
文献 [31] 提出一个将通过不同搜索引擎得到的知识卡片(即结构化的总结)融合起来的方法。针对一个实体查询,不同搜索引擎可能返回不同的知识卡片,即便同一个搜索引擎也可能返回多个知识卡片。将这些知识卡片融合起来时,同文献 [30] 中提出的方法类似,将知识融合中的三维问题将为二维问题,再应用传统的数据融合技术。不过,文献 [31] 提出了一个新的概率打分算法,用于挑选一个知识卡片最有可能指向的实体,并设计了一个基于学习的方法来做属性匹配。
在知识融合技术中,本体匹配扮演着非常重要的角色,提供了概念或者实体之间的对应关系。截止目前,人们已经提出了各种各样的本体匹配算法,一般可以分为模式匹配(schema matching)和实例匹配(instance matching),也有少量的同时考虑模式和实例的匹配 [32-34]。从技术层面来讲,本体匹配可分为启发式方法、概率方法、基于图的方法、基于学习的方法和基于推理的方法。下面围绕模式匹配和实例匹配,具体介绍各自分类中几个具有代表性的匹配方法。
模式匹配主要寻找本体中属性和概念之间的对应关系,文献 [35] 和 [36] 给出比较详尽的综述。文献 [37] 提出一个自动的语义匹配方法,该方法首先利用像 WordNet 之类的词典以及本体的结构等信息进行模式匹配,然后将结果根据加权平均的方法整合起来,再利用一些模式(patterns)进行一致性检查,去除那些导致不一致的对应关系。该过程可循环的,直到不再找到新的对应关系为止。
文献 [38] 也是考虑多种匹配算法的结合,利用基于术语的一些相似度计算算法,例如n-gram 和编辑距离,这里算法计算的结果根据加权求和进行合并,还考虑了概念的层次关系和一些背景知识,最后通过用户定义的权重进行合并。为了应对大规模的本体,文献 [39] 提出一个使用锚(anchor)的系统,该系统以一对来自两个本体的相似概念为起点,根据这些概念的父概念和子概念等邻居信息逐渐地构建小片段,从中找出匹配的概念。新找出的匹配的概念对又可作为新的锚,然后再根据邻居信息构建新的片段。该过程不断地重复,直到未找到新的匹配概念对时停止。
文献 [40] 则以分而治之的思想处理大规模本体,该方法先根据本体的结构对其进行划分获得组块,然后从不同本体获得的组块进行基于锚的匹配,这里的锚是指事先匹配好的实体对,最后再从匹配的组块中找出对应的概念和属性。现有的匹配方法通常是将多个匹配算法相结合,采用加权平均或加权求和的方式进行合并。但是,由于本体结构的不对称性等特征,这种固定的加权方法显出不足。
文献 [41] 基于贝叶斯决策的风险最小化提出一个动态的合并方法,该方法可以根据本体的特征,在计算每个实体对的相似度时动态地选择使用哪几个匹配算法,如何合并这些算法,其灵活性带来了很好的匹配结果。
实例匹配是评估异构知识源之间实例对的相似度,用来判断这些实例是否指向给定领域的相同实体。最近几年,随着 Web 2.0 和语义 Web 技术的不断发展,越来越多的语义数据往往具有丰富实例和薄弱模式的特点,促使本体匹配的研究工作慢慢的从模式层转移到实例层 [42]。
文献 [43] 提出一个自训练的方法进行实例匹配,该方法首先根据 owl:sameAs、函数型属性(functional properties)和基数(cardinalities)构建一个核(kernel),再根据区别比较明显的属性值对递归的对该核进行扩展。文献 [44] 利用现有的局部敏感哈希(locality-sensitive hashing)技术来大幅提高实例匹配的可扩展性,该方法首先需要定义用于实例相似性分析的粒度,然后使用分割好的字符串技术实例相似度。
文献 [45] 首先使用向量空间模型表示实例的描述性信息,再基于规则采用倒排索引(inverted indexes)获取最初的匹配候选,在使用用户定义的属性值对候选进行过滤,最后计算出的匹配候选相似度用来作为整合的向量距离,由此抽取出匹配结果。虽然已有方法中已有不少用于处理大规模本体的实例匹配问题,但是同时保证高效和高精度仍然是个很大的挑战。文献 [46] 提出了一个迭代的框架,充分利用特征明显的已有匹配方法来提高效率,同时基于相似度传播的方法利用一个加权指数函数来确保实例匹配的高精度。
2.4 实体链接技术
歧义性和多样性是自然语言的固有属性,也是实体链接的根本难点。如何挖掘更多、更加有效的消歧证据,设计更高性能的消歧算法依然是实体链接系统的核心研究问题,值得进一步研究。下面按照不同的实体消歧方法进行分类。
基于概率生成模型方法:韩先培和孙乐 [47] 提出了一种生成概率模型,将候选实体 e 出现在某页面中的概率、特定实体 e 被表示为实体指称项的概率以及实体 e 出现在特定上下文中的概率三者相乘,得到候选实体同实体指称项之间的相似度评分值。Blanco 和 Ottaviano 等人 [48] 提出了用于搜索查询实体链接的概率模型,该方法采用了散列技术与上下文知识,有效地提高了实体链接的效率。
基于主题模型的方法:Zhang 等人 [49] 通过模型自动对文本中的实体指称进行标注,生成训练数据集用于训练 LDA 主题模型,然后计算实体指称和候选实体的上下文语义相似度从而消歧得到目标实体。王建勇等人 [50] 提出了对用户的兴趣主题建模的方法,首先构建关系图,图中包含了不同命名实体间的相互依赖关系,然后利用局部信息对关系图中每个命名实体赋予初始兴趣值,最后利用传播算法对不同命名实体的兴趣值进行传播得到最终兴趣值,选择具有最高兴趣值的候选实体。
基于图的方法:Han 等人 [51] 构造了一种基于图的模型,其中图节点为所有实体指称和所有候选实体;图的边分为两类,一类是实体指称和其对应的候选实体之间的边,权重为实体指称和候选实体之间的局部文本相似度,采用词袋模型和余弦距离计算得出。另一类是候选实体之间的边,权重为候选实体之间的语义相关度,采用谷歌距离计算。算法首先采集不同实体的初始置信度,然后通过图中的边对置信度进行传播和增强。
Gentile 和 Zhang[52] 等人提出了基于图和语义关系的命名实体消歧方法,该方法在维基百科上建立基于图的模型,然后在该模型上计算各个命名实体的得分从而确定了目标实体,该方法在新闻数据上取得了较高的准确率。Alhelbawy 等人 [53] 也采用基于图的方法,图中的节点为所有的候选实体,边采用两种方式构建,一种是实体之间的维基百科链接,另一种是使用实体在维基百科文章中句子的共现。图中的候选实体节点通过和实体指称的相似度值被赋予初始值,采用 PageRank 选择目标实体。Hoffart 等人 [54] 使用实体的先验概率,实体指称和候选实体的上下文相似度,以及候选实体之间的内聚性构成一个加权图,从中选择出一个候选实体的密集子图作为最可能的目标实体分配给实体指称。
基于深度神经网络的方法:周明和王厚峰等人[55] 提出了一种用于实体消歧的实体表示训练方法。该方法对文章内容进行自编码,利用深度神经网络模型以有监督的方式训练实体表示,依据语义表示相似度对候选实体进行排序,但该方法是一种局部性方法,没有考虑同一文本中共同出现的实体间相关性。黄洪钊和季姮等人[56] 基于深度神经网络和语义知识图谱,提出了一种基于图的半监督实体消歧义方法,将深度神经网络模型得到的实体间语义关联度作为图中的边权值。从实验结果得出:基于语义知识图谱的NGD 和 VSM[57] 方法比起 Wikipedia anchor links 无论在关联性测试上还是在消歧性能上都具有更好的测试结果。
相比 NGD 和 VSM ,基于DNN[58] 的深度语义关联方法在关联性测试上还是在消歧性能上都具有更好的关联性和更高的准确性。但该方法存在两点不足,一方面在构建深度语义关联模型时采用词袋子方法,没有考虑上下文词之间位置关系,另外一方面在消歧的过程中,构建的图模型没有充分利用已消歧实体,边权值和顶点得分随着未消歧实体增加保持不变,并没有为后续的歧义实体增加信息量。
2.5 知识推理技术
知识库推理可以粗略地分为基于符号的推理和基于统计的推理。在人工智能的研究中,基于符号的推理一般是基于经典逻辑(一阶谓词逻辑或者命题逻辑)或者经典逻辑的变异(比如说缺省逻辑)。基于符号的推理可以从一个已有的知识图谱,利用规则,推理出新的实体间关系,还可以对知识图谱进行逻辑的冲突检测。基于统计的方法一般指关系机器学习方法,通过统计规律从知识图谱中学习到新的实体间关系。
2.5.1 基于符号逻辑的推理方法
为了使得语义网络同时具备形式化语义和高效推理,一些研究人员提出了易处理(tractable)概念语言,并且开发了一些商用化的语义网络系统。这些系统的提出,使得针对概念描述的一系列逻辑语言,统称描述逻辑(description logic),得到了学术界和业界广泛关注。但是这些系统的推理效率难以满足日益增长的数据的需求,最终没能得到广泛应用。这一困局被利物浦大学的Ian Horrocks 教授打破,他开发的 FaCT 系统可以处理一个比较大的医疗术语本体 GALEN,而且性能比其他类似的推理机要好得多。描述逻辑最终成为了 W3C 推荐的 Web 本体语言 OWL 的逻辑基础。
虽然描述逻辑推理机的优化取得了很大的进展,但是还是跟不上数据增长的速度,特别是当数据规模大到目前的基于内存的服务器无法处理的情况下。为了应对这一挑战,最近几年,研究人员开始考虑将描述逻辑和RDFS 的推理并行来提升推理的效率和可扩展性,并且取得了很多成果。并行推理工作所借助的并行技术分为以下两类:1)单机环境下的多核、多处理器技术,比如多线程,GPU 技术等;2)多机环境下基于网络通信的分布式技术,比如 MapReduce 计算框架、Peer-To-Peer 网络框架等。很多工作尝试利用这些技术实现高效的并行推理。
单机环境下的并行技术以共享内存模型为特点,侧重于提升本体推理的时间效率。对于实时性要求较高的应用场景,这种方法成为首选。对于表达能力较低的语言,比如 RDFS、 OWL EL,单机环境下的并行技术将显著地提升本体推理效率。Goodman 等人在文献 [59] 中利用高性能计算平台 Cray XMT 实现了大规模的 RDFS 本体推理,利用平台计算资源的优势限制所有推理任务在内存完成。然而对于计算资源有限的平台,内存使用率的优化成为了不可避免的问题。
Motik 等人在文献 [60] 工作中将 RDFS,以及表达能力更高的 OWL RL 等价地转换为 Datalog 程序,然后利用 Datalog 中的并行优化技术来解决内存的使用率问题。在文献 [61] 中,作者尝试利用并行与串行的混合方法来提升 OWL RL 的推理效率。Kazakov 等人在文献 [62] 中提出了利用多线程技术实现 OWL EL 分类(classification)的方法,并实现推理机ELK。
尽管单机环境的推理技术可以满足高推理性能的需求,但是由于计算资源有限(比如内存,存储容量),推理方法的可伸缩性(scalability)受到不同程度的限制。因此,很多工作利用分布式技术突破大规模数据的处理界限。这种方法利用多机搭建集群来实现本体推理。
Mavin[63] 是首个尝试利用 Peer-To-Peer 的分布式框架实现 RDF 数据推理的工作。实验结果表明,利用分布式技术可以完成很多在单机环境下无法完成的大数据量推理任务。很多工作基于 MapReduce 的开源实现(如 Hadoop, Spark 等)设计提出了大规模本体的推理方法。其中较为成功的一个尝试是 Urbani 等人在 2010 年公布的推理系统 WebPIE[64]。实验结果证实其在大集群上可以完成上百亿的 RDF 三元组的推理。
他们又在这个基础上研究提出了基于 MapReduce 的 OWL RL 查询算法 [65]。利用 MapReduce 来实现 OWL EL 本体的推理算法在文献 [66] 中提出,实验证明 MapReduce 技术同样可以解决大规模的 OWL EL 本体推理。在文献 [67] 的工作中,进一步扩展 OWL EL 的推理技术,使得推理可以在多个并行计算平台完成。
2.5.2 基于统计的推理方法
知识图谱中基于统计的推理方法一般指关系机器学习方法。下面介绍一些典型的方法。
1)实体关系学习方法
实体关系学习的目的是学习知识图谱中实例和实例之间的关系。这方面工作非常多,也是最近几年知识图谱的一个比较热的研究方向。按照文献 [68] 的分类,可以分为潜在特征模型和图特征模型两种。潜在特征模型通过实例的潜在特征来解释三元组。比如说,莫言获得诺贝尔文学奖的一个可能解释是他是一个有名的作家。Nickel 等人在文献 [69] 中给出了一个关系潜在特征模型,称为双线性(bilinear)模型,该模型考虑了潜在特征的两两交互来学习潜在的实体关系。Drumond 等人在文献 [70] 中应用两两交互的张量分解模型来学习知识图谱中的潜在关系。
翻译(translation)模型 [71] 将实体与关系统一映射至低维向量空间中,且认为关系向量中承载了头实体翻译至尾实体的潜在特征。因此,通过发掘、对比向量空间中存在类似潜在特征的实体向量对,我们可以得到知识图谱中潜在的三元组关系。全息嵌入(Holographic Embedding,HolE)模型 [72] 分别利用圆周相关计算三元组的组合表示及利用圆周卷积从组合表示中恢复出实体及关系的表示。与张量分解模型类似,HolE 可以获得大量的实体交互来学习潜在关系,而且有效减少了训练参数,提高了训练效率。
基于图特征模型的方法从知识图谱中观察到的三元组的边的特征来预测一条可能的边的存在。典型的方法有基于基于归纳逻辑程序(ILP)的方法 [73],基于关联规则挖掘(ARM)的方法 [74] 和路径排序(path ranking)的方法 [75]。基于 ILP 的方法和基于 ARM 的方法的共同之处在于通过挖掘的方法从知识图谱中抽取一些规则,然后把这些规则应用到知识图谱上,推出新的关系。而路径排序方法则是根据两个实体间连通路径作为特征来判断两个实体是否属于某个关系。
2)类型推理(type inference)方法
知识图谱上的类型推理目的是学习知识图谱中的实例和概念之间的属于关系。SDType[76] 利用三元组主语或谓语所连接属性的统计分布以预测实例的类型。该方法可以用在任意单数据源的知识图谱,但是无法做到跨数据集的类型推理。Tipalo[77] 与 LHD[78] 均使用 DBpedia 中特有的 abstract 数据,利用特定模式进行实例类型的抽取。此类方法依赖于特定结构的文本数据,无法扩展到其他知识库。
3)模式归纳(schema induction)方法
模式归纳方法学习概念之间的关系,主要有基于 ILP 的方法和基于 ARM 的方法。ILP 结合了机器学习和逻辑编程技术,使得人们可以从实例和背景知识中获得逻辑结论。Lehmann 等在文献 [79] 中提出用向下精化算子学习描述逻辑的概念定义公理的方法,即从最一般的概念(即顶概念)开始,采用启发式搜索方法使该概念不断特殊化,最终得到概念的定义。
为了处理像 DBpedia 这样大规模的语义数据,该方法在文献 [80] 中得到进一步扩展。这些方法都在 DL-Learner[81] 中得以实现。Völker 等人在文献 [82] 中介绍了从知识图谱中生成概念关系的统计方法,该方法通过 SPARQL 查询来获取信息,用以构建事务表。然后使用 ARM 技术从事务表中挖掘出一些相关联的概念关系。在他们后续工作中,使用负关联规则挖掘技术学习不交概念关系 [83],并在文献 [84] 中给出了丰富的试验结果。