本篇博客主要基于微软亚洲研究院段楠老师的《智能问答》第四章 知识图谱问答 进行整理。
知识图谱问答,又称 Knowledge-based QA 或 KBQA,是一种基于结构化知识库(即知识图谱)的智能问答方法。给定自然语言问题,该类方法基于知识图对问题进行理解,并根据问题理解的结果从知识图谱中查找或推理出问题对应的答案。
知识图谱问答分为**基于语义分析的方法(Semantic Parser)和基于答案排序的方法(Information Retrieval)**两类。基于语义分析的方法是首先将输入问题转化为知识图谱能够理解和执行的结构化查询(即语义表示),然后在知识图谱上直接执行该结构化查询得到问题对应的答案。基于答案排序的方法是首先基于输入问题从知识图谱中快速找到少量答案候选,然后采用排序模型对不同答案候选进行打分,并选择得分最高的答案候选集合作为问题对应的答案。
基于答案排序的方法(Information Retrieval)
绝大多数基于语义分析的知识图谱问答需要带有语义(表示)标注的问题集合作为训练数据。这类数据需要花费的时间和成本很高,而且要求标注人员对语义表示有一定程度的理解。使用答案作为弱监督训练语义分析模型[10,13],能够在一定程度上缓解数据标注难度高、开销大和标注量有限问题,但按照答案选择出夹的正例语义分析(语义表示)候选存在一定的噪音,这在一定程度上也会对语义分析模型的质量造成影响。
基于答案排序(answer ranking)的知识图谱问答将该任务看成一个信息检索任务,即给定输入问题Q和知识图谱KB,通过对KB中实体进行打分和排序,选择得分最高的实体或实体集合作为答案输出。
具体来说,该类知识图谱问答方法主要包含下述四个模块:
- 问题实体识别。问题实体是指问题Q中提到的知识库实体,例如在Who founded Microsoft 这个问题中,Microsoft在知识图谱中对应的实体是该问题的问题实体。每个问题可能对应多个问题实体,该类实体的识别通常采用实体链接技术(把问题中的实体提及 链接到知识图谱中对应的实体上)完成。
- 答案候选检索。根据识别出来的一个问题实体,从知识图谱中查找与之满足特定约束条件的知识库实体集合,作为该问题的答案候选。最常用的约束条件是:在知识图谱中,与问题实体最多通过两个谓词相连(两条边)的知识库实体。该做法假设问题对应的答案实体和问题实体在知识图谱中的距离通常不会很远。
- 答案候选表示。由于每个答案候选无法直接与输入问题进行比较,该模块基于答案候选所在的知识图谱上下文,生成答案候选对应的向量表示。这样,输人问题和答案候选之间的相关度计算就转化为输入问题和答案候选对应的向量表示之间的相关度计算。具体方法的不同主要体现就在如何生成答案的向量表示上。
- 答案候选排序。 使用排序模型对不同答案候选进行打分和排序,并返回得分最高的答案候选集合作为输出结果。
下图给出基于答案排序的知识图谱问答方法的工作流程示意图,按照对答案候选的不同表示方法,本博客将介绍五种具体的方法,包括特征工程方法、问题生成方法、子图匹配方法、向量表示方法和记忆网络方法。
1. 基于特征的答案排序
基于特征工程的方法首先从问题中识别出问题实体(将问题中的实体提及链接到知识图谱中对应的实体),并根据问题实体在知识图谱中的位置,抽取与之通过不超过两个谓词(两条边)连接的实体作为答案候选集合。然后,使用一个特征向量表示每一个答案候选。最后,基于特征向量对答案候选集合进行打分排序,并输出得分最高的答案候选集合(答案可能是一个实体,也可能是多个实体(实体集合))。
每个答案候选对应的特征向量由N个特征组成,每个特征反映了输入问题与该答案候选在某个维度上的匹配程度,并通过组合问题特征和答案特征得到。
常用的问题特征包括:
- 疑问词特征(用 Q w o r d Q_{word} Qword表示)。该特征对应的特征值是问题中包含的疑问词。英文问句中常见的疑问词包括 Who、When、Where、What、Which、Why、Whom、Whose 和 How.疑问词特征通常指明了问题对应答案的类型,例如,以Who开头的问题对应的答案(类型)往往是人,以Where开头的问题对应的答案往往是地点。
- 问题实体特征(用 Q e n t i t y Q_{entity} Qentity表示)。该特征对应的特征值是问题中提到的问题实体,问题实体能够帮助问答系统在知识图谱中定位并抽取答案候选。一个问题中可能包含多个实体提及,因此对应的问题实体特征也可能是多个。
- 问题类型特征(用 Q t y p e Q_{type} Qtype表示)。该特征对应的特征值是问题中的一个名词单词或短语,用来指明问题答案的类型。该类特征通常采用基于规则的方式从问题对应的句法分析树中抽取得到。
- 问题动词特征(用 Q t y p e Q_{type} Qtype表示)。该特征对应的特征值来自问题的核心动词,用来指明问题提到的语义关系,该语义关系通与知识图谱中的谓词联系紧密。
- 问题上下文特征(用 Q c o n t e x t Q_{context} Qcontext表示)。该特征对应的特征值是问题中出现的除了上述特征之外的单词或n元组(即 n-gram).
下表给出从问题 What is the name of Justin Bieber brother中抽取出来的一组问题特征及对应特征值。
常用的答案特征包括:
- 谓词特征(用 A p r e d A_{pred} Apred表示)。该特征对应的特征值是知识图谱中连接答案候选实体和问题实体的谓词路径。该谓词路径是判别答案候选是否是问题对应答案的最关键因素。该特征通常与问题特征中的 Q v e r b Q_{verb} Qverb和 Q c o n t e x t Q_{context} Qcontext对应。
- 类型特征(用 A t y p e A_{type} Atype表示)。该特征对应的特征值是答案候选实体在知识图谱中对应的类型。该特征通常与问题特征中的 Q w o r d Q_{word} Qword和 Q t y p e Q_{type} Qtype对应。
- 上下文特征(用 A c o n t e x t A_{context} Acontext表示)。该特征对应的特征值是和答案候选实体在知识图谱中直接相连的谓词以及实体集合。该特征通常与问题上下文特征 Q c o n t e x t Q_{context} Qcontext对应。
下表给出基于问题实体 Justin Bieber在知识图谱中出现的位置(如下图所示),抽取出来的答案实体候选Jaxon Bieber对应的答案特征及答案特征值。
对问题特征和答案特征分别抽取完成之后,可以将二者中的特征进行两两组合,这样就生成一个特征向量。Yao 和 Durme 基于该特征向量训练二分类器[14], 用于判断该答案候选是否可以当做答案。Yao从问题中抽取1-gram和2-gram作为问题特征[15],从答案中选择 A p r e d A_{pred} Apred作为答案特征,并组合生成特征向量训练打分器,并取得了很好的效果。
2. 基于问题生成的答案排序
基于问题生成的方法在完成问题实体识别和答案候选检索后,采用文本生成技术为每个答案候选(实体)生成一个自然语言问题,作为该答案候选对应的表示,通过计算输入问题和每个答案候选对应的生成问题之间的相似度,可以对答案候选集合进行打分和排序。由于问题生成本身是一个非常重要的研究课题,之后有机会会对该任务做详细的介绍。本小节以 Berant和 Liang提出的方法为例,介绍基于模板的问题生成方法在知识图谱问答中的应用[16],任何问题生成方法都可以替换基于模板的方法套用在该问答框架下。
给定输入问题Q和从Q中识别出来的问题实体e,将答案候选 e a n s w e r e_{answer} eanswer分为如下五类:
- 与问题实体e通过一条边(即谓词p)直接相连的答案候选。用p.e表示该答案候选对应的语义表示,例如,who directed Top Gun (谁执导的《Top Gun》)这个问题的某个答案候选对应的 λ − D C S \lambda-DCS λ−DCS语义表示为 Directed.TopGun。
- 与问题实体e通过两条边(即谓词 p 1 p_1 p1和 p 2 p_2 p2)相连的答案候选。用 p 1 . p 2 . e p_1.p_2.e p1.p2.e表示该答案候选对应的语义表示,例如,where does Steve Balmer work 个问题的某个答案候选对应的 λ − D C S \lambda-DCS λ−DCS语义表示为 Employment.EmployerOf.SteveBalmero
- 与问题实体 e 1 e_1 e1通过两条边(即谓词 p 1 p_1 p1和 p 2 p_2 p