持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
导语
- 会议:EMNLP 2013
- 链接:aclanthology.org/D13-1160.pd…
摘要
本文提出了一种在FreeBase上无需使用logical form,直接使用Question-answer进行训练的KBQA模型,该模型在FreeBase917和自己构建的WebQuestion上实现了SOTA的效果。
1 简介
在KBQA的研究中,传统的Semantic parser需要使用额外的logical form作为监督信息,而且只能在一个小的逻辑谓词子集上进行操作。本文的目标则是为了解决这两点:学习一个没有标注logical form的语义解析器,他可以扩展到FreeBase上的大量谓词集合上。
在词汇层面(lexical level)上,一个主要的问题是如何将自然语言短语映射到逻辑谓词上。比如自然语言短语“attend”映射到“Education”。过去的解决方式如设计手工规则、远程监督或者使用schema matching。本文使用了一种和之前类似的方式:即使用大量的网络文本和KB之间构建一个粗略的映射。这种粗略的映射将会产生一个候选谓词集合的子集。为了保证收敛性和解决一词多义的现象,作者又提出了一种称为“Bridge”的操作来获取二元关系。
在组合层面(compositional level)上,语义解析器必须将谓词组合成连贯的逻辑形式。之前基于CCG的工作需要手动指定组合规则或从注释的逻辑形式中归纳规则。而本文定义了一些简单的组合规则,这些规则过度生成,然后使用模型特征来模拟软规则和类别。特别地,作者使用词性标签(POS)特征和预测逻辑形式的表示特征。
2 预备
问题陈述
任务描述如下:给定一个知识库和Question-answer格式的训练集。我们的目的是输出一个语义解析器,其能够将一个用户问句通过潜在逻辑形式在中得到最终的结果。
2.1 Knowledge Base
设是所有实体的集合,是所有谓词的集合,一个知识库就是一系列断言 的集合。
2.2 逻辑形式
本文使用的一个子集simple 作为逻辑形式。其相关的语法规则如下图所示:
2.3 框架
给定一个用户问句,语义解析器将会构建一系列的可能的逻辑表达式,每一个表达式都对应一个特定的树。如图2所示:
这些逻辑表达式自底向上递归的进行构建,主要基于 (i) 一个将自然语言短语映射到知识库谓词的词典,以及 (ii)一个小的组合规则集。
比如图中所有绿色的词就是用户问句里的词语,该解析器首先将其进行lexicon映射到知识库对应的实体、谓词中,接着根据规则逐步进行合并(与成分句法分析有点像)。
再得到这些表示形式后,由另一个模型在这些候选表达式中选择出最终的表达式作为模型最终输出。由于没有逻辑形式的标注,所以这里的损失函数是按执行结果来定义。即每一个可能的d进行执行后的结果和原始数据集中的标注结果进行loss损失。
3 方法
3.1 Alignment
首先需要进行的是对齐(映射)。对齐部分的整理思想如下:直观地说,如果短语和谓词同时出现在许多相同的实体上,它们就会对齐。
具体步骤如下:
- 首先基于文本创建一些带有类型的短语集合,比如“born in”[Person,Location];
- 构建知识库中的谓词集合为,如PlaceOfBirth;
- 对每一个,构建一个拓展,其为一个实体对的共现集合,如;
- 最后,得到词汇映射即,其中.
3.2 Bridging
虽然对齐可以覆盖许多谓词,但对于谓词表达弱或隐式的情况,它是不可靠的。例如,在“What government does Chile have?”,谓语用轻动词have表示,“What actors are in Top Gun?”用一个高度模糊的介词来表达,在“What is Italy money?”(原文如此),它被完全省略了。
于是,在这一小节,我们讨论如何通过bridge来连接这些隐式的关系。这里对该问题进行正式定义:给定两个类型分别为的一元逻辑形式,我们需要找到一个二元逻辑形式,在对应的实体对类型满足的条件下生成逻辑形式 。
如图所示,上表给出了几个类型的示例。
3.3 组合
组合阶段使用了三种主要的特征:
- 规则特征,如应用intersection, join, bridging操作的次数;
- POS特征,即词性标注;
- 指示特征,即最终执行结果的size,共分了四类:0.1.2和>=3。
4 实验
主要实验结果如下表: