【论文笔记】Information Extraction over Structured Data: Question Answering with Freebase

来源:互联网 发布:php防止cc攻击 编辑:程序博客网 时间:2024/05/01 14:20

一、概要
  该文章发于ACL 2014,作者提出了一个基于Freebase knowledge base,结合web-scale语料,通过信息抽取的方法进行KBQA,并在当时取得了比前人方法都要好的效果。

二、模型方法

2.1 任务简介
  假设给一个问题中含有一个或几个主题(topics),那么我们就会基于这些主题在知识库中寻找答案,主题在知识库中的主题节点(topic node),以及与其相连或者间隔不远的节点构成的部分我们称之为主题图(topic graph),主题图中的节点含有我们想要的答案,我们的任务就是结合主题图对问题进行信息提取,在主题图中抽取出的答案;其中对于主题图中的每一个节点都是候选答案,那么问题就可以转化为一个对候选答案的二分类问题,即判断每个候选答案是不是正确的答案,本文的做法是根据后面的内容进行特征提取,然后对候选答案进行判别。

2.2 Graph Features
  直觉上,如果在日常生活中有人问我们:“what is the name of justin bieber brother?”,并且给知识库Freebase,我们的第一反应是确定Justin Bieber (或者是他的兄弟),然后我们就会进入Freebase包含Justin Bieber信息的那一块,最后寻找到他兄弟的明细,但是Freebase中没有brother这个关系,其表示为sibling,所以我们需要进行推理(inference)。本文的方法正是基于这种思想。

这里写图片描述

  首先我们把“what is the name of Justin Bieber brother?” 这个问句转为语法依存树(Dependency tree),如上图,在我们询问那个问题是我们主要是通过以下推理知道我们问的是一个人的名字(尽管我们可能是没有意识的):
  ①通过依存关系nsubj(what, name) 知道这是在寻问一个名字;
  ②通过依存关系prep_of(name, brother) 知道了这个名字和brother有关,此时我们并不知道这是否是一个人名;
  ③通过依存关系nn(brother, bieber)知道了Bieber是一个人,理所当然他的兄弟也是一个人。
  通过上述推理最终我们就可以锁定正确答案,这个过程就是信息抽取,下面再给出相关的linguistic information介绍:
  ①question word (qword),如:what/who/how many等词;
  ②question focus (qfocus),这是我们期待答案类型的线索,如:name/money/time等词,为了保持简单地分词,这里并没有问题分类器,而是简单地将qword的名词部分作为qfocus。
  ③question verb (qverb),如is/play/take等词,这个来自问题的主动词,其可以能够给我们提供很多跟答案相关的信息,如play我们可以指导可能与之相关的乐器、电影或者运动。
  ④question topic (qtopic),主题词可以帮助我们在知识库中找到相关的信息,可以通过命名实体识别(Named Entity Recognition,NER)来确定主题词,需要注意的是,一个问题中可能含有多个主题词。
  接着我们就可以把依存树转为问题特征图(question feature graph),具体过程如下:
  ①如果某个节点被标为以上四种问题特征之一,那么将该特征写入节点中,例如:what → qword=what;
  ②如果某个主题节点是命名实体,那么将该节点改为命名实体的形式,例如:bieber → qtopic=person;
  ③去掉介词、限定词和标点符号的节点。
  通过以上步骤我们即可以从上图的左图得到右图,即问题特征图(question feature graph),因为每个节点的信息都是与该问题的潜在特征。

2.3 特征提取
  我们接着可以从上面得到的问题特征图中进行特征提取。对于任意相连的两节点s,t,以及边e,表示为e(s,t),我们可以提取的特征包括:s,t,s|t,以及s|e|t这四种特征。例如对于边prep of(qfocus=name, brother),我们可以提取的特征为:qfocus=name, brother, qfocus=name|brother, 以及qfocus=name|prep of|brother。
  上面为在问题特征图中提取的问题特征,接下来进行在任务简介的提到的主题图中提取候选答案特征。如下为justin bieber的主题图,主题图中主要包含两种节点,一种是节点的属性(property),比如人的身高性别等,另外一种就是节点的关系(relation),下图中虚线框为属性,实线框为主题点,如果一个主题点含有多个关系,那么会使用一个dummy node来连接其他实体节点。

这里写图片描述

  所有的实体关系和属性都是识别出正确答案的重要信息,比如上图中Jaxon Bieber的属性信息type:person 和gender:male,我们从中就能知道他是一个性别为男的人。我们可以提取这些类似的主题图特征。
  最终使用的特征是基于上面提取的问题特征和主题图特征进行组合(combine)后的,例如我们期待来自问题特征:qfocus=money和主题图特征:node type=currency组合而成的最终特征:qfocus=money|node type=currency 拥有较高的权重,明显货币(currency)和金钱(money)拥有更高的相关性,而人(person)和金钱(money)相对于货币(currency)相关性可能稍微低一些,所以特征:qfocus=money|node type=person的权重小一些。
  通过以上分析可知,假设所有主题图特征集合的元素个数为k,问题答案集合的元素个数为h,因为使用两个类型的特征两两组合,那么最终使用的特征维度为k*h,本文实验最终的k*h=7 milion。那么这7百万个特征是怎么表示的呢?再假设某一个问题我们抽出的问题特征有x个,在主题图中某一个候选答案我们抽出的特征有y个,因为这两类型的特征两两互相组合,所以我们的输入向量为x*y-hot的7百万维向量,即在7百万个维度上的有这个组合特征那么这个位置的值为1,否则为0。
  作者使用WebQuestion作为实验数据,使用Stanford CoreNLP对问题进行信息抽取。其中训练集中约有3000个问题,每个问题对应的主题图约含1000个节点,共计有3 百万个节点 ,针对于以上提取到的特征,作者用带L1正则化的逻辑回归(logistic regression)作为分类器,训练每种特征的权值,训练完毕后,得到了3万个非零的特征,注意L1正则化的逻辑回归的原理中舍弃的特征并不是代表其不重要,而是它的作用与留下来特征的作用是一样的,所以可以舍弃,下表列出了一些特征和它相应的权值:

这里写图片描述

  在上面提取的特征基础上,作者还提出了另外一种特征,即问题Q和关系R之间的关联程度,即给定一个问题Q和他的单词组成的向量W,我们想找到一个最大的概率P(R|Q),并且作者认为问题中的每一个词对于寻找正确的关系(relations)都非常的重要,作者假设每个词之间都是条件独立的,并且应用朴素贝叶斯(Naive Bayes)定理,那么可以得到:

P(R|Q)P(Q|R)P(R)P(W|R)P(R)wP(w|R)P(R)

  其中P(R)为关系(relation)的先验概率,P(w|R)为在条件R下单词w的条件概率。
  对于R=r1r2r3...这种复合关系,例如:people.person.parents,作者使用了backoff的做法,并且假设每个子关系(sub-relation)都是条件独立的,应用朴素贝叶斯(Naive Bayes)定理可得:

Pbackoff(R|Q)P(r|Q)rP(r|R)P(R)rP(Q|r)P(R)rwP(w|r)P(r)

  那么上面的这些概率是怎么计算得来的呢?作者是通过基于知识库,对ClueWeb09数据集进行抽取三元组得到ReverbMapping数据集,以及使用知识库和ClueWeb09进行relation mapping得到的CluewebMapping数据集,具体技术可以看:论文笔记】Semantic Parsing on Freebase from Question-Answer Pairs统计而得,同时数据中并不直接包含知识库中的关系(relation),作者设置的是如果数据集中的三元组包含的两个实体和知识库中的关系(relation)包含的两个实体一样,就认为这个三元组中存在该关系(relation)的计算方法。
  统计完成之后,作者在WebQuestion数据集上进行了测试,分别每一个问题Q,以及答案对应的正确关系(relation),这个关系的概率和其他relation相比的大小排名情况,通过观察可知道假设我们每次直接选择概率最高的关系(relation)时,我们可以获得19%的正确率,所以这是一个非常重要的特征,其他情况具体见下表:

这里写图片描述

三、实验结果

  作者先通过命名实体识别提取问题中的命名实体,如果没有提取到命名实体,那么使用名词短语代替,将所有命名实体输入Freebase Search API中,选取返回排名最高的作为最终的主题词,最后使用Freebase Topic API得到相应的主题图,下图为使用Freebase Search API的结果情况:
这里写图片描述

这里写图片描述

  作者还对比了手动输入正确主题词的实验(Gold Retrieval),另外作者考虑到本文的最后一个特征使用了大量的文本统计技术,是否是超越前人结果的关键所在,作者去除最后的概率统计特征后,得到最后的正确率为36.9%,从而说明了本文提出的基于信息提取的KBQA的方法是有效的!

四、结论与思考
  本文提出了使用问题特征与Freebase主题图中的特征相结合的信息抽取方法,在QA语料库上获得了当时最好的结果,并且为了弥补域不匹配或过度拟合的问题,利用ClueWeb语料,KB关系和自然语言文本之间的挖掘映射,得到了每一个关系R和整个问题Q的关联度关系,并且结果表明它有助于关系预测和提取。本文方法可能可以帮助在语义解析、深入的语言理解和进行QA方面起到帮助的作用。

五、个人思考
  ①本文在信息抽取和特征构建的过程是基于人类思维的一个过程,所以该思想非常的巧妙,但是在特征方面过于稀疏,这是一个主要的问题,可能可以进一步构建更加有力而又不太稀疏的特征。

参考文献
①Xuchen Yao,Benjamin Van Durme.Information Extraction over Structured Data: Question Answering with Freebase

阅读全文
0 0
原创粉丝点击