论文笔记整理:谭亦鸣,东南大学博士。
来源:CoRR abs/2003.13956 (2020)
链接:https://arxiv.org/pdf/2003.13956.pdf
KBQA任务中的语义解析目标是将自然语言问题转化为标准查询,而后用于构建知识库查询。现有的方法主要依赖于句法解析(例如依存句法),但是在长句的复杂问题上,这类表达形式存在准确性不足的问题。因此,在这篇文章里,作者提出一种新的框架(skeleton,或者说骨架?)语法解析模型SPARQA,用于表达复杂问题的高层结构。
动机及概述
为了理解和回答复杂问题,作者定义了两个挑战:
1. 语义解析,目前的语义解析主要依赖于依存句法,但是与简单问题的解析不同,单纯依靠依存句法在复杂问题的解析上会出现许多错误。随着错误传递则会影响到整个语义解析以及问答的性能。图2是作者列举的一个例子,表明了长距离依赖下,依存解析的准确性将出现明显偏差:“movie”和“had”原本是一组依存关系,但由于长句的影响,这组依存没有被识别出来,却生成了“in”和“had”这样的错误依存。
2. 一般而言,一个问题通常被转化为独立于知识库的图结构 ungrounded query,但是这个query的结构相比以知识库为基础的formal grounded query可能有所不同,这种情况在复杂问题(包含更多谓词)的情况下同样存在。如图1所示,问句“what movie that Miley Cyrus acted in had a director named Tom Vaughan?”的ungrounded query包含了两个谓词“acted in”以及“director”(见1c),但是在Freebase中,对应grounded query则包含三个谓词(见1d),这是由Freebase的构建机制所决定的。
为了处理上述两个挑战,作者提出了一种基于框架(骨架)的语义解析方法,如图3所示,对于输入的问题,首先定义其高层框架(骨架)结构,用于辅助生成更精确的ungrounded query,以KB为基础ungrounded query及其结构变体用于生成grounded query,而后利用一个多策略打分器对query做排序从而检索得到问题的答案。
方法
Skeletion Parsing
首先需要对Skeletion语法的部分定义进行说明:
Skeleton 句子的框架(骨架)是一棵有向树,其中节点表示句子中的text span,边表示节点之间的附加关系
Text span表示句子中的短语级别语义单元,一般包含四种类型:从句Clause (S), 名词短语Noun Phrase (NP), 动词短语Verb Phrase (VP), and 介词短语Prepositional Phrase (PP)。
附加关系 即text span之间的依存关系,这里考虑依存语法中常见的七种:adjectival clause (acl), its sub-type relative clause modifier (acl:relcl), nominal modifier (nmod), its sub-type possessive alternation (nmod:poss), coordination (conj), open clausal complement (xcomp), and adverbial clause modifier (advcl).
Skeleton解析算法
下图描述了本文提出的语义解析算法:
即对于输入的自然语言问句Q, 通过一个循环过程逐步切分Q中的text span,并补充span之间的边,从而得到Q对应的Skeleton。(示例见图1b)
作者使用BERT实现了图1中的四个过程,用于得到grounded query,如图4所示:
四个步骤分别为:
Split(本质上是单句分类任务),预测句子是否能进一步被切分
Textspan(视为QA任务),预测下一个从Q中被切分的text span,并标记于Q中
Headwordidentification(视为QA任务),将剩余Q视作文本段落,s视作问题,输出Q中的一个span
AttachmentRelationClassifiction 输入s以及剩余的Q,预测两者之间的relation
Multi-Strategy Scoring
为了全面地对query进行打分,作者提出并融合了两种打分策略:
1. 句子级别的打分
对于给定的测试问句,首先找到训练集中与之最为相似的问题(在它们的pattern中具有相同数量的虚拟字符(占位符?)) ,将测试问题中的实体对应的替换掉其中的占位符,从而得到一个grounded query,如果这个query能够获取到非空答案,那么它的得分为1.0,否则为0.0.
2. 词汇级别的打分
这个打分基于词袋,如图5所示,首先问题和formal query被表示为词袋形式,移除了其中的具体实体以及停用词,剩下的部分主要描述了其中的谓词,利用GloVe进行embedding 之后,计算两者的余弦相似,从而给出词级别得分。
实验与结果
数据集:Graph Questions (Su et al. 2016) 包含5166个问题,其中2258用于训练
ComplexWebQuestion,包含34689个问题,按照80-10-10的方式切分训练验证和测试集
实验结果
OpenKG
开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
点击阅读原文,进入 OpenKG 博客。
转载:https://blog.csdn.net/TgqDT3gGaMdkHasLZv/article/details/106066028