【论文笔记】Large-scale Semantic Parsing without Question-Answer Pairs

背景


  • 什么是Freebase(什么是知识库):
    • Curated KBs知识库是由结构化的三元组(entity, relation/property, entity)所表达的知识组成的知识库,如果把这个三元组用起点-边-终点来表示,这个知识库就可以被表示为指示图。代表:Freebase
    • Extracted KBs知识库则是直接从网页中抽取实体关系三元组所组成的知识库,这样的知识更多是自然语言的形式表达的,涉及到entity linking 和 relation extraction两大关键技术。
  • 什么是KB-QA:
    给定自然语言问题,通过对问题的语义理解,进而利用知识库进行查询、推理以得出答案。特别地,和对话机器人的交互式对话不同,KB-QA的答案是知识库中的实体或者实体关系或者是no answer。
  • 基于语义分析的KB-QA:
    思路:自然语言表示的问题 —-(语义分析)—->逻辑表达式——>数据库查询语句——>得到结果
  • 一点思考:
    1. 语义分析的基本思路就是将自然语言问题转化成Freebase上的查询语句,那么容易想到这种转化方式有很多种,直观的思路比如通过实体识别(entity recognition)来识别出句子中的实体,再在知识库中查找相应的实体以及它们所连接的其它实体,通过学习算法对这些连接的其它实体是问题答案的可能性进行评分,选择最高的几种作为答案;
    2. 而传统的一种办法是采用已有的PARSER来得到语义分析结果(逻辑形式Logic Form,可以表达为lambda演算式),比如CCG等,再考虑如何将这种语义分析结果转化为具体的查询语句;而带有逻辑形式标注的自然语言问句比较难,所以不满足数据集规模的要求,因此出现了通过Question-Answer pair来作为学习的数据,逻辑形式因此隐含于其中;
    3. 今天要做的这篇论文用到的办法是将图结构作为语义分析的结果,再和FREEBASE中的图结构进行匹配来得到相应的答案。

论文


在正式开始论文笔记之前,先思考:如果没有Question Answer pairs,而是直接从网络语料库中进行学习,二者间有什么区别?我认为区别主要在于网络语料库中包含的陈述句没有明确的一个所谓“答案”,而是需要从陈述句中提取出相应的信息,当某个问题和这个陈述句相关时,便能过从这个陈述句中得到答案!

这里写图片描述
(论文思路)

1.自然语言陈述句转化为“Ungrounded graph”

为了使转化的结果在拓扑结构上和Freebase类似,特地定义了五种节点类型:椭圆、长方形、圆形、圆角矩形、菱形,分别代表了陈述句中不同实体的表达形式。这样从CCG的输出转化的结果就和Freebase中的实体能够形成对应关系;值得一提的是CCG会将问句和相应的陈述句处理成类似的图结构!

2. Ungrounded graph映射到Freebase中的query graph

对于Ungrounded graph(后面称作U图)到Freebase的映射,U图中的每个实体都会将其与Freebase中的实体进行对应;对于边而言,假设U图中的每条边对应Freebase中K条可能存在的边,那么就会有(k+1)^n种可能的边,也就意味着总共有这么多种Grounded graph与之对应;接下来要做的工作就是如何从这些Grounded graph中选出最佳的图。这里采用的学习方法叫做Learning
from denotations.

3. Learning from denotations

由于一个陈述句相应的图结构对饮的知识库子图通常不止一个,但是由于我们没有QA pair或者是手工的标注,所以并不知道哪个才是正确的,所以这里提出了要求:从训练集中构建出一些所谓的黄金u,g配对作为训练数据提供给分析器进行学习。

构建所谓黄金配对的思路是依靠NL语句标注和Freebase query语句的比较,作为一种weak supervision,通过这种方法来学习the mapping between NL and KB graphs(怕翻译失去本意,感觉这里贴原文会好一些!)

构建候补黄金配对的方法:
第一步要将陈述句转化为问句,方法是将自然语言陈述句对应的图(Ungrounded graph)中的某个实体节点替换为x并且和Target菱形标志相连,这样就形成了一个自然语言问句对应的图结构,文章引言中将这个图称作query graph;之后在KB中找出所有的子图(子图叫subgraph和grounded graph是一个意思),将U图中的x实体在KB的subgraph中留作未实例化的节点,

第二步,自然语言问句带有标注(denotation),标注就是被替换的那个实体节点的名字,比如记作[[x]]NL ={Cameron};而可能得所有Freebase的子图/ Grounded graph 也有相应的标注(这里的标注指的是查询语句中的问号部分),而这个标注的具体内容是subgraph中x节点可能的值,比如记作[[x]]kb = {Cameron,Josef};之后通过比较自然语言问句的标注和Freebase中相应subgraph的标注,将标注一样的subgraph选出来作为和u+配对的图g+。
这里需要注意的是:得到g+的标注是容易的,而得到U+的标注比较困难,所以引入了一些限制条件来判断两个标注是否相同。

学习算法:平均感知器算法;
通过Structured Perceptron来对每个图配对u,g进行排名。
(ˆg; ˆu) = argmax F(g;u;s;KB)·θ,使这个函数值最高。

F是特征,对于U图、g图、句子都有定义
迭代过程:通过之前选出的替代“黄金图对”g+,u+来进行权重的更新迭代:θ = θ + F(g+;u+;s;KB) - F(ˆg;ˆu;s;KB)

训练过程中通过将数据集的陈述句转化为Ungrounded graph,然后对Ungrounded graph中的实体进行替换形成query graph + denotation的结构,然后再和替换后对应的KB中可能的subgraph + denotation进行比对,选出(u+,g+)作为训练集。
训练结束后的分析器就能够对每个输入的问句图找到唯一(或者仅有几个)对应的Freebase subgraph,而这个subgraph就能再转化为KB上的查询语句,得到查询结果,只有到查询这一步才真正调用知识库。

总结

个人感觉,这篇论文不太针对KBQA,重点在于提出了和传统语义分析不同的一种新思路,如何将问句映射到Freebase中的新思路:图匹配。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页