本文是对文章 Semantic Parsing via Staged Query Graph Generation: Question Answering with Knowledge Base (2015年ACL会议Outstanding Paper)阅读过程的思路整合与学习笔记。
0. 概述
本文提出了一个基于知识图谱的语义分析问答系统框架。作者定义了一个查询图(query graph),一个类似于知识图谱的子图结构,该查询图可以直接映射成一种逻辑形式的语义表达。借由此,语义分析被简化成了查询图的生成过程,并将其形式化为一个分阶段的搜索问题。与传统方法不同的是,作者提出的方法在前期利用知识图谱来确定搜索范围,从而简化了语义匹配问题。通过实施一个实体链接系统(Entity linking system)和一个匹配问题与谓词序列的CNN模型,使得作者提出的系统大大优于以前的方法,并在WEBQUESTIONS数据集上达到了52.5%的F1值。
1. 背景介绍
知识图谱(knowledge base,KB)已经成为支持开放领域问答系统的重要资源。绝大多数的知识图谱问答系统(KB-QA,Knowledge Based-Question Answering)中的SOTA(state-of-the-art)方法是基于语义分析(semantic parsing)来进行的,即将一个问题映射成它形式化的意义表示(比如逻辑形式)然后再转化成一个KB query。接下来,只需要在KB中简单的执行这个query就能够得到问题的答案。语义分析过程也对问题进行了更深入的理解,可以用来向用户证明答案的正确性,并向开发人员提供易于解释的信息以进行错误分析。
然而,大多数传统的语义分析方法与知识图谱本身是不挂钩的,因此这些方法在应用到实际场景(例如QA)时会面临一些挑战。例如,当逻辑形式使用的谓词与知识图谱中定义的谓词不相同时,通用的意义表征可能就会存在匹配问题。即使意义表征的语言与KB的模式密切相关,从KB的大词汇表中找到正确的谓词与问题中描述的关系相匹配仍然是一个难题。
作者在本文中提出了一个新的语义分析框架,该方法在形成输入问题的语义解析时更紧密的利用了KB。作者首先定义了一个查询图(query graph),该图能够直接映射到
这种分阶段设计的一个关键优势是:通过将问题拆成KB中的实体与谓词的方法,使得在完整语义确定之前搜索过程将会专注于KB中最有可能产生正确query图的区域,这样的搜索过程会高效很多。举例来说,我们将“Who first voiced Meg on Family Guy?”问题中的"Family Guy"实体与KB中的"FamilyGuy-KB(电视节目)"实体连接起来,然后接下来的过程只需要检查"FamilyGuy-KB"能够使用的谓词即可,而不是检查KB中所有的谓词。如此一来,根据主实体的上下文来判断其他实体内容也变得很容易,比如说"Meg"指的是"MegGriffin-KB",即FamilyGuy电视节目中的角色。由此,作者的这种分阶段设计把该语义解析问题分解成了几个子问题,比如实体连接、关系匹配等。有了这种集成框架,就可以把子问题的最优解很容易的结合起来,从而生成正确的语义解析。比如说,使用一个先进的实体连接系统能够为每个问题输出具有高精确率、高召回率的候选实体。另外,利用一个卷积网络语义匹配框架,作者提出了一个基于连续空间表示(而非纯词法匹配)的更好的关系匹配模型。在两模型组合的情况下,最终作者的语义分析方法将WEBQUESTIONS数据集的SOTA提高至52.5%的
2. 本文使用的知识图谱与查询图
2.1 知识图谱
本文中的知识图谱K可以看成是主语-谓语-宾语三元组
为了与其他的模型进行比较,作者使用的是Freebase图谱。在Freebase的设计中,存在一类特殊的实体,叫做复合值类(compound value type,CVT)实体,这并不是现实世界的实体类型,它用于收集表示一个事件或某个特殊关系的多个领域。比如在图1中cvt1和cvt2表示FamilyGuy的不同剧集和系列等。图谱中两个实体的关系就用边来表示,关系被标注为谓词。
2.2 查询图(query graph)
给定知识图谱之后,执行一个逻辑形式的query相当于在图谱中找到一个能够映射到query的子图,然后在解析子图中的变量关系。为了捕捉这种想法,作者把这种用查询图(query graph)的形式来描述这种
查询图由四种类型的节点组成:固定实体(即主题实体,图中用圆角矩形表示),已存在变量(用圆表示),
图2展示了问题"Who first voiced Meg on Family Guy?"的一个可能的query图的结构。这里实体MegGriffin和FamilyGuy用圆角矩形表示为两个节点,圆形节点y表示图中应该存在一个中间实体来建立固定实体与其他实体的连接关系。阴影圆节点x也称为答案节点,用于映射请求检索到的实体。菱形节点argmin限制了答案必须是此角色最早的扮演者。由此得到的请求(不包括聚合函数)的
在知识图谱K上运行这个query图(不包括聚合函数),将会匹配到"LaceyChabert"和"MilaKunis",其中"LaceyChabert"是正确答案,因为查看固有CVT节点的"from"属性发现"LaceyChabert"开始给该角色配音的时间更早。
3. 分阶段查询图生成过程
作者所生成的查询图需要具有以下属性:首先,在此树状的图中应该有一个实体节点作为根节点,成为主题实体。第二,只有一个
假设现给定一个问题,作者把该问题的生成过程形式化为一个搜索问题,分为不同阶段的状态(States)和动作(Actions)。令S为状态集合
作者用对数线性模型针定义了一个状态空间上的奖励函数(reward function),该奖励函数估计的是一个query图正确解析该问题的似然。搜索是使用带有优先级队列的最佳优先策略来完成的。接下来,以找到问题
3.1 链接主题实体
首先,初始状态
3.2 识别核心推理链
当给定状态s对应的是含有主题实体
在实体链接问题中,目标是找到问题中mentions到知识图谱中对应的实体的映射关系。同样的,识别核心推理链的过程是将问题的自然话语映射到正确的谓词序列。举例来说,对于问题“Who first voiced Meg on [Family Guy]?”,我们需要判断在集合{cast-actor,writer-start,genre}中的每一个谓词序列是否正确的捕捉了Family Guy和Who之间的关系,即计算他们的似然。作者将此问题简化为使用神经网络测量语义相似度。
3.2.1 深度CNN
对于待训练的question存在以下两个problems:首先,对于同一问题,可能存在着许多语义相同但形式不同的等价表达方式;第二,自然语言语句中的关系词语与知识图谱中的谓词可能不匹配。为了处理这两个问题,作者使用了Siamese提出的神经网络(Signature verification using a “Siamese” time delay neural network)来执行识别核心推理链的任务。举例来说,一种结构将问题映射成一种pattern(模式),即用通用符号<e>来代替实体mention,然后将其与候选推理链进行比较,比如说将“Who first voiced Meg on <e>”与谓词序列cast-actor比较。模型由两个神经网络组成,一个用来计算pattern,另一个计算推理链,两个模型的输出都是k维向量。然后用余弦相似度来代表它们之间的语义相似度。在语义解析和问答系统中使用这种连续空间的representation方法效果比词汇匹配的方法好很多。本文使用CNN网络来解决该匹配问题,如图6所示。
该CNN模型中首先施加了一个单词打散(word hashing technique)的技术,即将单词变为由字母三元组组成的向量。举例来说,比如单词“who”,字母三元组包括#-w-h,w-h-o,h-o-#,这里#代表开始结束符。将每个单词都映射为一个字母三元组的向量(这里事先有一个所有词汇表的字母三元组矩阵
要训练该模型需要正样本对,比如pattern为“Who first voiced Meg on <e>”对应的推理链为cast-actor。这些正样本对可以从训练数据中完整的语义解析中提取出来。但是如果正确的语义解析是隐藏的,即训练数据只提供了问题-答案样本对(比如说WEBQUESTIONS数据集),仍然可以通过遍历所有知识图谱中连接了主题实体和答案的路径来假设可能的推理链。4.1节会展示这一数据生成过程的细节。
该模型与传统的使用词的embedding的方法相比有两个优势。第一点,单词打散层有助于控制输入空间的维度,并且可以轻松的扩展到较大的词汇表中。同时字母三元组能够捕捉到一些单词以下级别(字符级别)的语义信息(举例来说,有些单词有轻微的拼写错误,但是它与元单词有几乎相同的字母三元组向量),因此该模型就尤其适合于真实世界用户所提出的问题(例如搜索引擎中的问题时长会有轻微的拼写错误)。第二点,模型使用了更深层的卷积神经网络结构,因此学习到的representation能学到更多深层信息。
3.3 添加约束条件和聚合函数
以上过程形成了一个只含有核心推理链的query图,这是一个最简单的合法图,已经可以在知识图谱中进行搜索获得答案。但是这时所有与主题实体满足推理关系链接的实体都会被检索。举例来说,图7中
为了进一步限制备选答案实体的集合,作者对只含有核心推理链的图进行了两种动作的扩展:
另外,有时有些限制是通过聚合函数的对整体答案集施加的,比如说在
具体操作时,首先将核心推理链作为查询图在知识图谱中查找变量x和y之间的连接关系,然后枚举这些实体的所有邻近节点,进而在派生出完整的约束集合。但是这种操作步骤常常导致生成了不必要的大约束集。在本文中,作者使用一些简单的规则来仅仅保留那些合法的可能约束条件。举例来说,合法的约束节点可以是出现在问题中的实体(这是由实体链接组件检测到的),同时聚合函数限制只有当问题中出现特定关键词(比如“first”,“latest”等)的时候才会添加。
3.4 学习奖励函数
给定一个状态s,奖励函数
3.4.1 特征
作者设计的奖励函数的特征基本上与查询图的特定部分相匹配,并且通常与各阶段操作相匹配,特征包括:
主题实体特征(EntityLinkingScore)。即主题实体系统得到的分数作为一个特征。
核心推理链。作者用3.2节中的核心推理链相似度分数来衡量核心推理链的质量。其中包括:PatChain(Pattern链):Pattern链比较了pattern和谓词序列之间的相似度。QuesEP:先将主题实体的规范名称和谓词序列连接起来成为链,然后与原问题比较计算相似度,这个特征相当于尝试从概念上验证实体链接是否正确。对于三个与推理链相关的特征,本文中的CNN模型是使用训练数据中问题和推理链组成的样本对来学习参数的。ClueWeb:除了域内的相似性参数外,作者还用ClueWeb语料库中的Freebase注释训练了一个ClueWeb模型。
约束条件特征(ConstraintEntityWord,ConstraintEntityinQ)和聚合函数特征(AggregationKeyword)。当query图中出现约束节点时,作者用一些简单的特征来检查问题中是否有可以与约束实体或属性关联的单词。例如,问题中的一个mention是否能链接到实体,以及约束实体名称中单词在问题中出现的百分比。对于聚合函数,则是检查在预编译列表中是否存在某些关键字,比如说"first","current","latest"等代表argmin聚合节点特性的单词。
还包括两个全局特征,包括向知识图谱中发出查询时检索到的答案实体的数量(NumAns),以及query图中包含的节点数量(NumNodes)。图8中展示了一个query图用于训练奖励函数的特征。
3.4.2 学习过程
原则上来说,一旦特征提取出来之后,该奖励函数可以通过任何现有的学习算法来学习。这里作者把该问题视为一个排序问题,而不是简单的二元分类问题(即只有正确的查询图被标记为正)。设想每个问题有几个候选查询图,不妨设
4. 实验结果
4.1 数据与评价度量说明
作者使用的是WEBQUESTIONS数据集,由5810个问答对组成。因为这个数据集只包含问答对,所以作者用搜索过程来模拟语义分析过程,以训练CNN模型和奖励函数。对于训练数据中的每个问题,首先用实体链接系统生成候选主题实体。然后将候选实体链接到答案实体上形成一个核心推理链。如果某个核心推理链返回了比正确答案数量更多的答案实体,那么就增加限制条件和聚合函数,直到查询图检索到的实体与标签答案一致或者F1值不在升高为止。另外,负样本是从搜索过程中产生的不正确的候选query中采样得到的。最后,作者从训练集的问题中提取出了17277个非零F1分值的查询图,以及约170万个完全错误的负样本查询图。
为了训练识别核心推理链的CNN模型,作者使用只包含推理链的4058个F1值达到0.5以上的query图来生成问题-谓词序列样本对。通过交叉验证来确定CNN中的学习率、卷积层和全连接层的神经元个数等超参数。作者从整个样本中保留了684个pattern-推理链样本对作为测试集,其余的作为初始训练集。通过对原始训练集上训练的模型在测试集上的新能来确定最优超参数。接下来固定超参数,并用整体数据集再重新训练得到最终的CNN模型。
在训练奖励函数时,作者为每个问题创建了多达4000个样本,这些样本中包含了所有该问题的正样本和随机选择取样的负样本。最终该模型被训练为一个排名器,query图根据各自的F1值进行排名。
4.2 结果展示
表1中展示了该query图检索系统的与其他方法在WEBQUESTIONS数据集上的结果比较(标记为STAGG),效果提升显著。
进一步,由于作者提出的方法是分阶段设计的,所以作者又检查了每一个阶段对最终结果的贡献。首先,主题实体链接是第一阶段,所以问题中实体的质量对最终结果的准确率和召回率都有很大的影响。为了深入了解主题实体链接系统的表现,作者用Freebase 的搜索 API进行对照实验,对给定问题中的mention来推荐相应的实体。如表2中所示,本文中的实体链接系统相对于Freebase API来说,只需要其一半的备选实体数量就能覆盖绝大多数的训练问题样本。同时,相比于Freebase API,实体链接系统所建立的备选实体集中能够覆盖更多主题实体。再者,如果将整个系统中的主体链接系统组件更换为Freebase API,观察到F1值从52.5%下降到48.4%。
接下来作者测试了其他组件的表现,如表3所示。如果只包含PatChain CNN模型组件,模型效果已经比较不错了,远好于现有的其他模型。如果再加上其他的CNN模型(QuesEP,ClueWeb)则能够进一步提升模型表现,但是提升的效果并不明显。原因可能有二:第一,来自搜索引擎用户的问题通常很简短,且这些问题中很大一部分只是简单的询问某个实体的属性。作者检查了训练问题集生成的query图,其中有50%的样本只用核心推理链就能准确的找到答案,F1值为1。第二,即使正确的解析query图需要更多的约束,相对约束较少的图也会得到一个占比很高的分数,因为由它找到的结果已经覆盖了正确答案。
4.3 错误原因分析
虽然作者提出的方法显著地提升了现存方法的模型效果,但是该方法的提升空间仍然很大(毕竟F1值仅仅是刚刚超过50%),因此作者对模型回答错误的样本进行了错误原因分析。作者随机抽取了100个系统没有生成完全正确的query图的问题,并对错误进行了分析。有大概三分之一的错误行为是由标签问题引起的,而非真正的错误,其中包括了标签错误(2%),不完整标签(17%,即指对于多个答案的问题只有一个标签),可接受的回答标签(15%,即所给的答案不是问题的回答但是有正确答案相关并接近)。有8%的错误是由于实体链接错误导致的,但是有时候有的mention本身就是模棱两可的(比如说AFL可以指“American Football League”或者“American Federation of Labor”)。另有35%的错误是错误的核心推理链引起的,还有23%的错误是由于不正确的约束或缺失约束造成的。
5. 总结
本文提出了一种基于知识库的问答语义分析框架。作者将查询图定义为可以直接映射到逻辑表单形式(
这一KB-QA领域的里程碑paper提出了一个分阶段query图生成框架,作者主要的贡献在于将现有的各个组件整合为一个强大的模型,并为后续的KB-QA发展奠定了基础。
参考资料:
论文原文:Semantic Parsing via Staged Query Graph Generation: Question Answering with Knowledge Base
文中所用模型文章:
- 实体链接系统 Novel tree-based structured learning algorithms applied to tweet entity linking
- 语义匹配所用的CNN网络模型 Signature verification using a “Siamese” time delay neural network
- 训练奖励函数:基于lambda排序的单层神经网络 From RankNet to LambdaRank to LambdaMart: An overview