【论文笔记】Question Answering over Freebase with Multi-Column Convolutional Neural Networks

来源:互联网 发布:淘宝首页模板代码 编辑:程序博客网 时间:2024/05/01 16:39

一、概要
  该文章发于ACL 2015,作者提出了一个基于Freebase,使用multi-column convolutional neural networks(MCCNNs)的自动问答模型,分别从答案路径(answer path), 答案背景信息(answer context), 以及答案类型(answer type) 来理解问题,并学习它们的分布式表示(distributed representations),在不使用任何手动特征及词表等条件下在问答数据集WEBQUESTIONS 上取得了很好的结果。

二、模型方法
2.1 模型简介
  假设存在问题q=w1...wn,作者使用 Freebase Search API来找到问题中的命名实体,如果问题中不含有任何命名实体或者名词,那么就使用返回最相关的一个命名实体,然后使用其在知识库中悬着候选答案,所有的2-hops 节点的实体和关系都视为候选答案,表示为Cq
  然后基于每一个候选答案a,根据模型训练得到的答案路径(answer path), 答案背景信息(answer context), 以及答案类型(answer type) 的vector representations,以及分别对应的问题的vector representations,即:f1(q)f2(q)f3(q),最后根据S (q, a)才选出答案,计算方法为:

S(q,a)=f1(q)Tg1(a)+f2(q)Tg2(a)+f3(q)Tg3(a)

  其中fi(q)gi(a)的维度相同,它们的计算方式为內积,最后把三项相加而得。

这里写图片描述

2.2 MCCNNs for Question Understanding
  MCCNNs使用了三个管道来学习问题表示和word embeddings,分别对应答案路径,答案背景信息, 以及答案类型。假设存在问题q=w1...wn,把每个词使用lookup转为词向量,即:wj=Wvu(wj)WvRdv×|V|u(wj){0, 1}^|V|为词wj的one-hot representation,|V|为词表大小。
  那么对于MCCNNs的第i个通道,表示问题q的n个向量的第j个的计算方法为:

x(i)j=h(W(i)[wTjs...wTj...wTj+s]+b(i))

其中(2s + 1)为滑窗大小,W(i)Rdq×(2s+1)dv为卷积层的权重矩阵,b(i)Rdq×1为偏置向量,h (·) 为非线性函数,这里与text-cnn稍微有一点点不同,这里每个卷积计算后得到的是维度为dq的向量。最后再Max-pooling层得到MCCNNs第i个通道的向量表示,即:
fi(q)=maxj=1,...,n{x(i)}

2.3 Embedding Candidate Answers
  对于每个候选答案a,其三方面的Vector representations分别表示为:g1(a),g2(a),g3(a),其学习方式分别如下:
  ①Answer Path,答案路径表示为知识库中候选答案与问题中的实体节点之间路径上的所有关系(relation)集合,如上图的答案路径为:(film.film.release date s,film.film regional release date.release date),其ector representation g1(a)计算方式为:
g1(a)=1||up(a)||1Wpup(a)

  其中up(a)R|R|×1为维度大小为|R|的向量,即如果在这个某个实体关系出现了,那么该位置值为1,否则为0,|R|表示关系的个数,WpRdq×|R|为权值矩阵,·1为L1范数,所以这里最终的意思可以解释为所有出现的关系(relation)的embedding的平均。
  ②Answer Context,所有与答案路径直接相连的实体或关系都视为答案上下文背景,其representation的计算方式为:
g2(a)=1||uc(a)||1Wcuc(a)

  其中uc(a)R|C|×1为维度大小为|R|的向量,即如果在这里某个实体或关系出现了,那么该位置值为1,否则为0,|C|表示在所有上下文中出现的实体和关系的个数,WcRdq×|C|为权值矩阵,·1为L1范数。
  ③Answer Type ,候选答案的类型是作为问题答案的重要线索,其representation的计算方式为:
g3(a)=1||ut(a)||1Wtut(a)

  其中ut(a)R|T|×1为维度大小为|R|的向量,即如果在这个某个实体关系出现了,那么该位置值为1,否则为0,|T|表示在所有类型的种类个数,WtRdq×|T|为权值矩阵,·1为L1范数。
2.4 Model Training
  在训练集中,对于问题q的每一个正确答案aAq(一个问题的正确答案可能不止一个),随机在候选答案Cq中选择k个错误的答案a,其loss函数可以构造为:
l(q,a,a=(mS(q,a)+S(q,a)+

  其中m为margin parameter,(z)+= max{0, z},那么最终的loss函数可以表示为:
minq1|Aq|aAqaRql(q,a,a

  其中|Aq|表示每个问题正确答案的个数。
  因为对于每一个问题,其对应的正确答案可能不止一个,所以设定了阈值m,即loss函数中的margin parameter,当通过下列公式来判别是否选为正确答案:
{Aq={ a|aCq and max{ S(q,a)−S(q,a) <m }

三、实验结果


这里写图片描述

  如上图,可以看出作者提出的深度学习MCCNNs模型,其获得的结果超过了当时众多学者的结果。同时作者对不同的通道做了对比,如下左图是分别去掉相应条件下取得的结果,可以发现answer path的信息是最重要的,因为其充分获取了问题和候选答案之间的信息,而answer context处理的信息太多,所以引入的噪声相对也多,

这里写图片描述

  上图左是作者基于学到的问题表示f(q),计算问题中每个词的重要性,例如存在问题q=wn1,其中第j个词wj的重要性计算方法为:

ei(wj)=||fi(wn1)fi(w1wjwj)||2

  其中wj为替换掉wj的词,常用is, to, a等停用词表示,从结果可以看出以wh-开头的词比较重要,另外依靠于wh-词汇的动词和名词也比较重要。下图是作者使用不同通道的问题表示f(q),根据每个问题的余弦值计算相近问题得到的结果。

这里写图片描述

四、结论与思考
  作者提出的multi-column convo- lutional neural networks (MCCNNs)模型,通过三个通道来分别针对答案路径(answer path), 答案背景信息(answer context), 以及答案类型(answer type) 来学习理解问题,在数据集WEBQUESTIONS 上取得了很好地结果,作者基于结果对模型出现错误的地方进行了一下分析:
  ①Candidate Generation,由于使用Freebase Search API返回的候选答案中可能根本就不存在正确答案的情况,比如有些问题单词使用了缩写形式,所以很难捉住重点信息。
  ②Time-Aware Questions ,时间序列的问题,比如问题:who is johnny cash’s first wife?答案可能会返回第二任妻子的姓名,因为first/second这样的词很难学习到相应的信息。
  ③Ambiguous Questions,问题有时很模糊,甚至有歧义,比如“what has anna kendrick been in”是在询问她演过什么电影,这句话中并没有含有表达其意思的关键词。

五、个人思考
  ①该模型可以说非常充分的考虑到了候选答案的各种信息,并基于深度学习取得了很好地效果,针对于作者后面所做的错误分析是可以突破的一些地方,同时在模型里作者使用的是词向量,可以尝试基于字符向量做一定的改进。

参考文献
  ①Li Dong,Furu Wei,Ming Zhou.Question Answering over Freebase with Multi-Column Convolutional Neural Networks

阅读全文
0 0