本文为读书笔记,整理自高等教育出版社出版,赵军主编的人工智能丛书《知识图谱》及部分公开网络资料。如有侵权,请立马告之。
目前主流的知识图谱采用 资源描述框架 (RDF) 进行知识表示,以 RDF 三元组的形式存储现实世界中的实体以及实体之间的关系,表示为 G = ( E , R , S ) \mathcal{G}=(\mathcal{E},\mathcal{R},\mathcal{S}) G=(E,R,S),承载了实体集、关系集和三元组集 (头实体、尾实体和关系)。例如,Freebase 中,三元组 “/people/person/nationality (Jorge Amado, Brazil)”,表示 “Jorge Amado” 的国籍为 “Brazil”;其中,“Jorge Amado” 为头实体,“Brazil” 为尾实体,“/people/person/nationality” 为关系。实际应用中,尾实体除独立的实体外,也可以为头实体的属性,例如数字、日期、字符串等。
知识图谱由谷歌于 2012 年在论文中首次提出,初衷是优化搜索结果和广告推荐。如今,除 推荐系统 和 智能问答 外,也广泛应用于 挖掘实体的潜在联系。例如在自然语言推理任务中,我们希望知识图谱能帮助完成诸如 “A 的出生地在某地,同时他来自于中国;那么仅仅通过 B 的出生地也在某地,我们可以推断出 B 来自中国” 等一系列任务。
目前已知且公开的大规模知识图谱包括 Freebase、Wikidata、DBpedia、YAGO、NELL 以及 Knowledge Vault 等,加之传统的知识库,有以下所示:
除了以上通用领域知识图谱以外,存在众多特定领域的垂直领域知识图谱,包括影视领域的 IMDB、音乐领域的 MusicBrainZ、医疗卫生领域的 SIDER 等。
针对知识图谱构建过程中的不同困难,学术界著有一定量的论文提供解决方案,近年来在发表数量上也呈现加速上升的趋势。由知乎用户育心总结的,2005 年至 2019 年 80 篇知识图谱领域经典论文集,呈现如下分布:
知识图谱的生命周期,第一个阶段为 知识获取;从非结构化文本中获取知识主要包含以下基本任务:
第二个阶段,知识融合 (knowledge fusion) 则是对不同来源、不同语言或不同结构的知识进行融合,从而对现有知识图谱进行补充、更新和去重。
第三个阶段,知识存储 (knowledge storage) 方面, 涉及到数据库索引的效率,六重索引取代三元组称为更受欢迎的 RDF 格式存储方式;此外,另一种流行的存储基于图数据库的形式,例如开源图数据库 Neo4j,优点是具有完善的图查询语言,支持大多数的图挖掘算法,缺点是数据更新慢,大节点的处理开销大;目前来看,图数据库的方法比 RDF 数据库更为广泛;关于子图筛选、子图同构判定等技术是目前图数据库的研究热点。
第四个阶段,知识推理 (knowledge reasoning) 指导我们如何在数据稀疏的情况下,完成隐含知识的挖掘;目前主流的方法分为两种:1) 基于传统逻辑规则进行推理,其研究热点在于如何自动学习推理规则,以及如何解决推理过程中的规则冲突问题,2) 基于表示学习的推理,即采用学习的方式,将传统推理过程转化为基于分布式表示的语义向量相似度计算任务,这类方法优点是容错率高、可学习,缺点也显而易见,即不可解释,缺乏语义约束。 除了对已有的知识图谱进行补全外,知识推理也可直接应用于相关任务,例如自动问答系统。
第五个阶段,知识应用 (knowledge application) 在四个方向上使得知识图谱得以发挥重要价值,分别为 智能搜索、自动问答、推荐、决策支持;智能搜索和自动问答应用图信息检索及知识推理,将适配的结果返回给用户,如谷歌搜索的即时结果;推荐方面,利用知识图谱中实体 (商品) 的关系向用户推荐相关产品,如百度搜索右侧的相关推荐;决策支持上,通过将知识图谱可视化提供给决策者,便于其进行知识管理与决策思考,如天眼查的股权结构图。
知识应用的难点在于知识推理,而知识推理的难点在于 知识表示 (knowledge representation)。
经典的知识表示方法包括逻辑 (Logic)、语义网络 (Semantic Network)、框架 (Framework)、脚本 (Script) 以及 语义网 (Semantic Web):
简介 | 示例 | 优点 | 缺点 | |
---|---|---|---|---|
逻辑 | 包含命题逻辑、一阶逻辑以及高阶逻辑;命题逻辑通过与( ∧ \land ∧)、或( ∨ \lor ∨)、非( ¬ \lnot ¬)、蕴含( ⇒ \Rightarrow ⇒)、当且仅当( ⇔ \Leftrightarrow ⇔)等逻辑符将多个子命题组合成复合命题实现知识推理;一阶逻辑引入全称量词( ∀ ) \forall) ∀)以及存在量词( ∃ \exists ∃),得以量化实体和概念;更高阶的,二阶逻辑可以量化集合,三阶逻辑可以量化集合的集合,以此类推 | Z = Z = Z= 如果鲸目中的一类北部有背鳍,那么它是海豚科; X 1 = X_1 = X1= 鲸鱼有背鳍; X 2 = X_2 = X2= 这种鲸鱼属于海豚科; Z = ( X 1 ⇒ X 2 Z = (X_1 \Rightarrow X_2 Z=(X1⇒X2) | 利用简单统一的方式描述知识,让知识表示和知识推理分离,使得推理方法可以不依赖于具体领域 | 难以表示过程性知识和不确定性知识;当知识中的属性、谓词和命题数量增大时,推理过程因为符号的组合爆炸问题,计算复杂度呈指数级增长趋势 |
语义网络 | 构建通过语义关系连接的有向图知识网络,将知识表示为相互连接的点和边的模式,节点表示实体、事件、值等,边表示对象之间的语义关系;语义网络中最基本的语义单元称为语义基元,用三元组形式表示,如<节点1,关系,节点2>;关系包括实例关系、分类关系、成员关系、包含关系、位置关系等 | 珊瑚是一种动物,记为 < E 1 , R , E 2 > |
方便计算机的存储和检索 | 推理过程不如一阶逻辑简单明了,需要针对不同的关系做不同处理 |
框架 | 继承人类认识世界的方式,以框架的结构存储知识;每一个框架包含多个槽;例如<教师实例>{<姓名>{张三}, <年龄>{30}} | 框架1:<教师>;槽1:<姓名>;槽2:<年龄>;槽3:<学校>;槽4:<院系> | - | 无法适应真实世界的多样性和复杂性;不同系统之间的框架难以对齐 |
脚本 | 按时间顺序描述事物的发生,表示的知识有确定的时间或因果顺序 | 顾客去餐厅吃饭;第一场,进入餐厅;第二场,点餐;第三场,上菜进餐 | 能处理有一定时序关系的槽信息 | 对元素基本属性的表述能力有限,也难以描述多变的事件可能的发展方向 |
资源描述框架 (Resource Description Framework) 是近年来绝大多数知识图谱和知识库遵从的知识表示方法,因其表达清晰、便于计算机检索和存储,1999 年由 W3C 发布后逐渐成为主流。RDF 归属于 语义网 体系中的第二个层次,在 XML 的基础上进行扩展而成。其吸收了语义网络基于三元组表示知识的特性,对关系进行一定约束,以保证框架下不同的知识库能够有效融合。RDF 下,对于二元知识 “马克思·普朗克出生于丹麦基尔”表示为:
~~~~~~~~~~~~ <马克思·普朗克,出生于,丹麦基尔>
在应对二元以上的多元知识,例如 “马克思·普朗克于 1858 年出生于丹麦基尔” 表示为:
~~~~~~~~~~~~ <出生信息 135,人物,马克思·普朗克>
~~~~~~~~~~~~ <出生信息 135,时间,1858 年>
~~~~~~~~~~~~ <出生信息 135,地点,丹麦基尔>
单单如此,RDF 很难对同一领域中的不同知识进行交互和融合,因此 RDF Schema (RDFs) 被提出用来定义领域相关的知识,关注类别和属性的层次结构以及继承关系,例如:
~~~~~~~~~~~~ <人物,rdf:type,rdf:Class>
~~~~~~~~~~~~ <国籍,rdf:type,rdf:Property>
~~~~~~~~~~~~ <国籍,rdfs:domain,人物>
~~~~~~~~~~~~ <国籍,rdfs:range,xsd:string>
除以上示例之外,还存在 rdfs:subClassOf 等其他表示层次结构的 schema 关系,详细介绍可参见 RDFs 官网。为更好地表示知识,许多研究人员将三元组扩充为包含时间和空间信息的五元组、六元组或更高元的组合表示。
深度学习成为潮流后,各类表示学习模型层出不穷,针对知识图谱中的三元组同样衍生出众多优秀的表示学习模型,该领域称为 知识图谱嵌入 (Knowledge Graph Embedding) 或 知识表示学习 (Knowledge Representation Learning)。其目的在于通过特定的语义结构,将实体和关系嵌入到等维度的向量空间中 (关系有时候表示为矩阵)。以 Trans 系列的 TransE 为例,模型的学习目标是使得任意一个三元组 < E 1 , R , E 2 >
知识体系主要包括三个方面的核心内容:对概念的分类、概念属性的描述以及概念之间相互关系的定义。知识体系的基本形态包括 词汇 (Terms)、概念 (Concepts)、分类关系 (Taxonomic Relations)、非分类关系 (Non-Taxonomic Relations) 和 公理 (Axioms) 这五个不同层次。
完全自动地构建知识体系,虽然是人们的终极目标,但是实践证明目前还难以达到,特别是最后两个层次的知识体系。人工构建知识体系主要分为以下六个主要阶段:
上文中提到,目前无法做到完全自动地构建知识体系,因此目前主流的方式是通过自动和人工相结合的方法。
(1) ~ 领域概念抽取
抽取候选术语:利用自然语言处理工具对文本进行 词法、句法分析,然后利用语言学规则或模板在文本中抽取特定的字符串,并将字符串当作领域属于的候选。该步骤的目的是尽可能多地将真正的术语包括进来,因此对抽取术语的质量没有严格要求。
术语过滤:对上一步抽取的候选术语进行过滤。领域术语与普通词汇在语料中往往具有不同的统计特征,例如普通词汇无论在领域内还是领域外一般具有相似的分布,而领域术语在领域内外的分布会有明显的区别。在实际操作中,可以利用 互信息 (Mutual Information)、TF-IDF、RTF 等方法刻量候选术语的统计特征,并给予这些值过滤低质量的候选术语。
术语合并:术语中常常出现同义词,例如电脑和计算机其实是同一种概念。代表性的术语合并策略分为两种,一种基于现有的词典资源,例如 WordNet、HowNet、同义词词林 等;另一种基于机器学习,认为同义词应当具有相似的上下文语境,将大量语料投入 Word2Vec、ELMo、BERT 等预训练模型进行训练,获取词汇的向量表示并进行聚类,聚类结果即为同义词的识别结果。
(2) ~ 分类体系的构建
与人工相同,分类体系的构建在于确认不同概念之间的继承关系,语言学上称为 上下位关系。与术语合并类似,上下位关系的识别分为基于词典的方法和基于机器学习的方法,方式与前者基本一致。
(3) ~ 概念属性及关系抽取
以上步骤获取了知识体系涉及的概念及概念间的分类关系,还需要为概念定义属性及关系。在实践中,一般将关系也视作概念的属性,采用统一的过程对它们进行抽取。方法与抽取概念的过程类似,首先利用词法、句法分析等工具对文本进行预处理,并通过规则或模板的方法为给定的概念获取候选的属性集合。
命名实体识别 (Named Entity Recognition, NER) 旨在从非结构化的文本中抽取命名实体。命名实体大致可分为三大类 (实体类、时间类、数字类) 及七小类 (人名、结构名、地名、时间、日期、货币和百分比)。不同领域的任务对命名实体类别粒度的需求不同,例如有些任务中只需要识别出一个实体是人,有的任务中需要识别出一个实体是教师、学生或者医生。
有关命名实体识别已经大量研究,大致有两种方法:基于规则 和 基于机器学习,两者可同时结合使用。前者准确率较高,接近人类的思考方式,但成本昂贵,规则的制定依赖领域专家,可移植性差。后者依赖大量人工标注数据,且对算力和存储空间提出一定要求。在这里我们主要介绍后者。
研究历史上出现过许多用于命名实体识别的机器学习模型,最终经受历史考验,至今仍然广泛使用的代表是 条件随机场 (Conditional Random Field, CRF)。CRF 是知名的图概率模型之一,可以接受任何 1/0 取值形式的特征,同时考虑节点的自身特征以及节点与节点间的转移特征,对节点的标签进行预测。应用在命名实体识别任务上的 CRF 通常指的是线性 CRF,应用于一阶马尔可夫链。条件随机场下的概率分布:
P ( Y ∣ X ; λ , μ ) = exp ( ∑ i = 1 n ∑ j λ j t j ( y i − 1 , y i , x , i ) + ∑ i = 1 n ∑ k μ k s k ( y i , x , i ) ) P(Y|X;\lambda,\mu)=\exp \Big( \sum_{i=1}^n\sum_j \lambda_j t_j(y_{i-1},y_i,x,i) +\sum_{i=1}^n\sum_k \mu_ks_k(y_i,x,i) \Big) P(Y∣X;λ,μ)=exp(i=1∑nj∑λjtj(yi−1,yi,x,i)+i=1∑nk∑μksk(yi,x,i))
括号内前半部分对应节点的转移特征,后半部分对应状态特征, λ \lambda λ 和 μ \mu μ 为各个特征函数对应的参数,转移特征函数 t t t 及状态特征函数 s s s 取值皆为 { 1 , 0 } \{1,0\} {1,0}。训练时采用 SGD 或 L-BFGS 等优化算法最大化 P P P,通过全局归一化避免标记偏置问题;推理时采用 维特比算法 (Viterbi) 或 束优化 (Beam Search) 寻求最优转移路径。
出于条件随机场优秀的特征描述能力,使用者可以自由地定义各类二元特征加入到模型的训练中。因此命名实体任务多采用各类自然语言处理工具预先提取丰富的语法和句法信息作为状态特征,例如 词性标注、句法分析、语义角色标注 等,通过节点之间的特征共现对既有的状态特征进行补充。
深度学习进入该领域后,提出另一种解决思路,使用编码器编码过后的语义向量代替原有的特征函数和特征参数,形成端到端的网络进行训练。这样做的好处在于避免了大量人工设计特征的环节,同时可以使用迁移学习将应用迅速落地。常见的一种架构在于使用 Word2Vec+biLSTM+CRF 的搭配。ELMo、BERT 等大型预训练模型问世后,预训练语言模型逐渐代替 Word2Vec,成为优质的语义向量提取器。BERT 甚至可以直接摒弃 CRF,通过预训练加微调的方式包揽上下游任务,直接输出序列标签。
在特定领域的命名实体任务中,传统的三大类和七小类已无法满足信息抽取的需要,因此有了 细粒度实体识别。例如人可以细分为艺人、运动员、教师、工程师等。NELL 中包含了数百个人工预先定义的实体类别,Freebase 中更是高达上千种,两个系统中的实体类别都在动态增加。
细粒度实体识别的难点在于标注数据的构建,基于人工的方式显然很难满足大规模语料的需求,一种常见的方式在于自动识别细粒度实体类别,利用 回标 的方法进行自动标注。常见的方法包括利用上下文 聚类 对提取的同类别实体进行无监督分类。这种方法标注速度快,但容易带来噪音。
英文名为 Distant Supervision,自 2006 年首次提出后便广泛应用于知识图谱项目中,主要在于实体识别和关系抽取任务中。其目的在于充分利用既有知识库的先验知识,来为本项目的各类任务提供信息支持。具体的应用体现在使用既有知识库的模板对数据进行快速标注,如同 Open IE;另一方面,也可以通过在该知识库下进行知识检索,验证抽取实体的可信度,常见的做法在于使用搜索引擎反馈的信息确认实体。
旨在于解决一词多义的问题,实体消歧的方法分为 实体链接 (Entity Linking) 和 实体聚类 (Entity Clustering) 两种。
以聚类方式实现消歧的系统首先对每一个实体指称项,抽取其特征 (如上下文中的词、实体、概念),并将其表示为特征向量,而后采用某种聚类算法对特征向量进行聚类,使得聚类结果中每一个类别都对应到一个目标实体上。特征向量的构建包括以下三种方式:
后两种方式需要在关系抽取完成后进行。
实体链接在于将实体指称项链接到知识库中的特定实体 (如果知识库中不包含待消歧项,则将实体指称项链接到空实体 NIL)。这里也常常使用 距离监督 构建待链接实体列表,列表中同时包含了实体的描述、结构化信息、辅助性信息。由于待链接实体列表的长度可能高达上百万,将实体指称项与每一个实体一对一地匹配是不可能的,因此在链接前需要根据规则或知识先过滤掉大部分候选项。最行之有效的方法是使用现有的词典,此外可以使用基于构词法的模糊匹配算法,例如 Metaphone Algorithm 和 Soft TF-IDF。候选过后,通过为每一位候选实体进行打分,将得分最高的实体作为链接目标。打分的方法目前分为四种:
向量空间模型:主要基于实体指称项上下文与目标实体上下文中特征的共现信息来确定相似度,共现信息指的是基于 Term (通常为词,还可能包括概念、类别等) 组成的向量。
主题一致性模型:使用上下文抽取的其他实体指称项,组成实体指称项集合,与目标实体进行一致性评断。一致性的计算目前大部分采用目标实体与上下文中其他实体的加权语义关联平均:
C o h e r e n c e ( e , o ) = ∑ e i ∈ O w ( e , o ) s r ( e , e i ) ∑ e i ∈ O w ( e , o ) Coherence(e,o)=\frac{\sum_{e_i\in O}w(e,o)sr(e,e_i)}{\sum_{e_i\in O}w(e,o)} Coherence(e,o)=∑ei∈Ow(e,o)∑ei∈Ow(e,o)sr(e,ei) w ( e , o ) = ∑ e i ∈ O s r ( e , e i ) ∣ O ∣ w(e,o)=\frac{\sum_{e_i\in O}sr(e,e_i)}{|O|} w(e,o)=∣O∣∑ei∈Osr(e,ei)其中, o o o 是实体指称项, O O O 是实体指称项上下文实体集合, s r ( e , e i ) sr(e,e_i) sr(e,ei) 是实体 e e e 和实体 e i e_i ei 之间的语义关联值。
协同实体链接模型:考虑全文中所有实体指称项的关联性。Kulkarni 等人提出的协同实体链接办法将单篇文档的协同实体链接看成是优化任务,目标函数如下:
max 1 ( ∣ S o ∣ 2 ) ∑ s ≠ s ′ ∈ S o r ( y s , y s ′ ) + 1 ∣ S o ∣ w T f s ( y s ) \max\frac{1}{\dbinom{|S_o|}{2}}\sum_{s\ne s' \in S_o}r(y_s,y_{s'})+\frac{1}{|S_o|}w^Tf_s(y_s) max(2∣So∣)1s=s′∈So∑r(ys,ys′)+∣So∣1wTfs(ys)其中, y s y_s ys 指的是实体指称项 s s s 的目标实体, S o S_o So 是单篇文档内所有实体指称项的集合, r ( y s , y s ′ ) r(y_s,y_{s'}) r(ys,ys′) 是目标实体之间的语义关联, f s ( y s ) f_s(y_s) fs(ys) 是实体指称项 s s s 与其目标实体 y s y_s ys 的一致性打分。从公式可以看出,第一部分对单篇文档内所有实体指称项的目标实体之间的关系进行建模,第二部分对单篇文档内实体指称项与目标实体之间的一致性进行建模。突出的建模方法包括图算法、动态规划。
基于神经网络的模型:传统方法的核心,在于实体与实体、实体与文本、文本与文本相似度的计算,特征的抽取往往可扩展性较差,表示能力不足,从而造成误差传递。基于深度学习的方法缓解了上述问题,做法在于通过预训练获得文档和实体的语义表达,在该表达的基础上计算点积或余弦相似度完成匹配。多层自编码器、卷积神经网络 和 多粒度的卷积神经网络 是常用的几个模型。由于基于神经网络的方法不需要人工设计复杂的特征,易于捕获深层语义,取得了比较好的性能,占据了实体消歧的主导地位。
对于非结构化的文本,关系抽取可分为 开放域 (open domain) 和 限定域 (domain-specific)。限定域关系抽取预先定义提取的关系类别,通常需要大量的训练语料或语法规则;开放域则不限关系种类。本质上,关系抽取和实体抽取的过程相对类似,皆为从非结构化文本中抽取词组,因此本节将以相对简略的方式进行概述。
限定域关系抽取分为以下几种方法:
为应对以上方法对语料的大量需求,一些 弱监督学习方法 被应用于关系抽取,上文中提到的 距离监督 是其中的典型代表。
开放域关系抽取同样需要应用自然语言处理工具,从文本中提取词汇、句法和语义特征,通过序列标注模型实现关系抽取。但在此基础上,需要引入 可信度 (confidence) 对抽取的三元组进行事实判定。可信度的计算可基于 距离监督,也可基于初始的 种子模板。由于开放域关系抽取抽取到的关系难以自动形成知识体系,映射至知识图谱中,因而基于限定域的关系抽取是目前的主流方向。
融合异构的知识图谱,使其提供更全面的知识信息,重要性是毋庸置疑的。
依据使用技术的不同,框架匹配可以分为 元素级匹配 和 结构级匹配。元素级匹配独立判断两个知识图谱中的元素是否应该匹配,不考虑其他元素的匹配情况。结构级匹配利用知识图谱的结构,在元素匹配过程中考虑其他相关元素匹配情况。
(1) ~ 元素级匹配
最基本的方法基于字符串匹配,将字符串看作字母的精确序列、字母的集合、单词集等。字符串越相似,则它们越有可能表示相同的概念。实际应用中,广泛采用的匹配方法包括 前缀距离、后缀距离、编辑距离 以及 n元语法距离 等。为解决以上方法匹配过程中的一词多义和一义多词问题,引入基于语言学的技术可以更好地计算元素之间的关联性,例如 同义词、反义词、形态变体、语法变体、同一词根上词汇形式和功能的变化、语法结构的变化 等。同时,还能使用元素的取值范围、关系的对称性加强匹配程度,称为 基于约束 的匹配。上文中反复提到的 词典,也可以用于元素之间的匹配。
(2) ~ 结构级匹配
结构级匹配的假设是,相似的概念具有相似的概念结构。基于结构的匹配技术主要有三种:基于图的技术、基于分类体系的技术 和 基于统计分析的技术。基于图的技术通过寻求最大公共子图实现匹配,通常计算量很大,一般采用 EM、Label Propagation 等迭代算法近似求解。基于分类体系的技术是基于图的技术的扩展,只关注诸如类型和子父类的特殊关系。基于统计分析的技术在已有样本的基础上对概念、属性、实例、关系等对象进行分组,从而计算它们之间的距离,典型的技术包括 形式概念分析、基于距离的分类、相关性分析 以及 频度分布。
传统的实体对齐方式分为 成对实体对齐 和 协同实体对齐 两种。成对实体对齐独立地判断两实体是否对应同一物理现象,通过匹配实体属性等特征判断它们的对齐程度。协同实体对齐认为不同实体间的对齐是相互影响的,通过协调不同对象间的匹配情况得以达到一个全局最优的对齐结果。
知识表示学习 同样可应用于实体对齐,通过知识库联合表示学习,将知识映射至同一个向量空间里,通过计算向量相似度实现实体对齐。这种方法不依赖于人工设定的规则和特征,可以非常容易地迁移到不同语言、不同领域地知识库对齐任务中。例如,给定两个知识库,通过简单的字符串匹配方法产生种子对,使用 TransE 对实体和关系进行表征训练,训练目的是使得种子对中的两个实体的向量尽量相似。
不同知识库对同一知识的表达可能会冲突,例如明星的身高,对冲突的检测和消解是知识融合的重要步骤。冲突消解技术上可分为两类:基于投票 和 基于质量估计。基于投票的方法如其名,基于质量估计的方法考虑不同知识来源的可信度,最终选择较高质量的结果,例如根据 HITS 或 PageRank 算法计算不同数据来源的可信度。
知识图谱的存储形式通常为以下三种:
基于图结构的存储存在诸多优势,因而成为目前的主流,下面对各类图数据库进行详细介绍:
作为知识图谱生态链中的重要环节,知识推理既可用于 知识补全,也可服务于 知识问答。例如我们希望在知道 “廊坊在河北省”、“河北省在中国华北” 的同时,能够推理出 “廊坊位于中国华北”。当前主流的知识推理方法主要分为以下三种:
基于概率或逻辑:尽管人为构造的推理规则能获得极高的准确度,但这样的方法可移植性较差,且在应对大型知识图谱时无能为力,因而如何从既有的知识体系中自动地挖掘出可信度较高的关系路径是当下的主要难题。传统的推理策略采用 计数、最大化后验概率 等统计学习的方法生成规则路径。按照推理中特征的模式和来源,可分为 概率图模型、概率逻辑推理 和 关联规则挖掘。概率图模型的代表有基于有向图的 贝叶斯网络 (Bayesian Network) 和基于无向图的 马尔可夫网络 (Markov Network),以及在此基础上衍生出的一派优秀的推理模型,例如 基于马尔可夫性的蒙特卡洛采样 (MCMC) 和 Metropolis Hasting 算法,可参考《概率图模型:原理与技术》。概率逻辑推理将概率图模型与一阶逻辑相结合,如 马尔可夫逻辑网 (Markov Logic Network),为每一条逻辑规则附加权重,通过训练调整权重大小。关联规则挖掘则不同于前两者,没有严格的逻辑定义,将逻辑规则作为具有结构的特征,利用数理统计的方式评估特征的支持度、置信度或其他预定义的统计量,通过将统计数据作为特征值加入到最终的统计模型中进行推理。
基于知识表示学习:在将知识图谱中的实体和关系表示为等维度的向量后,可通过相加相减和矩阵相乘等数值运算的方式获得推理后的隐性语义表示,将其与目标实体或目标关系向量进行距离运算后判断推理关系。基于知识表示学习的推理方法解决了维度灾难和数据稀疏的问题,神经网络弹性的超参数设定使得该方法能同时应用于大型和小型知识图谱,是目前表现最为稳定的方法。ConvE 和 DistMul 是其中的优秀代表。
近年来一种基于强化学习的新思路被应用于知识推理,但由于强化学习本身表现不稳定,状态和奖励函数难以设定,未能大规模胜过当下的主流方法。
广义而言,问答可依据底层支持的数据库分为四种:知识图谱问答、文本问答、表格问答 以及 社区问答。其中文本问答通常又称为 阅读理解 (Reading Comprehension),旨在从非结构化文本中直接获取答案。而我们在此讨论的即为知识图谱问答,常作为搜索引擎和对话机器人的后台程序作为技术支撑。知识图谱问答在流程上通常分为以下几步: