一、概要
该文章发于ACL 2017,在Knowledge base-based question answering (KB-QA)上,作者针对于前人工作中存在没有充分考虑候选答案的相关信息来训练question representation的问题,提出了一个使用Cross-Attention机制的神经网络模型来针对于候选答案的不同方面信息来训练模型;并且训练知识库的全局信息学习,在一定程度上减轻的the out of vocabulary (OOV)问题,最终在数据集 WEBQUES- TIONS上取得不错的效果。
二、模型方法
2.1 模型简介
KB-QA的目标是给出一个用自然语言表达的问题,返回在实体集合A作为问题的答案。本文的模型如下图所示,首先使用Freebase API识别出问题中的实体,在知识库中找到候选答案,然后使用Attention机制的神经网络针对候选答案的answer entity、answer relation、answer type、以及answer context四个方面分别训练对应的question representation和及其representation,最后使用相似度得分来选出最终的答案。本文的方法与Li Dong等人提出的方法非常类似,具体可看:【论文笔记】Question Answering over Freebase with Multi-Column Convolutional Neural Networks,但其实大有不同,比如/business/board member 和/location/country 都是表示答案类型,但是因为它们的Attention不同,最后得到的question representation也会不同。
2.2 Question Representation
首先,我们需要获取到问题中每个词的representation,假设存在问题
2.3 Answer aspect representation
在答案方面,直接通过KB embedding 矩阵
2.4 Cross-Attention model
①Answer-towards-question(A-Q) attention
这是本文最关键的一部分,根据答案的
其中
最后问题和候选答案的相似度计算方法如下:
②Question-towards-answer(Q-A) attention
直觉上的,不同的问题在应该也有相关方面的重点,即对于四个不同的答案方面应该也有不同的Attention,那么最终的loss函数计算公式为:
其中
2.5 Training
首先对于训练集中的question-answer pairs (q, a),对于候选答案集
其中
最终使用stochastic gradient descent (SGD)进行训练模型。
在测试阶段,直接在候选答案中计算每个候选答案的得分:
值得注意的是因为存在问题可能不止有一个正确答案,所以设置一个标准来作为选择最终答案的标准,即为:
同时为了处理the out of vocabulary (OOV),即在候选答案可能从未在训练集中出现过,本文使用TransE对整个知识库进行训练,通过轮流训练KB-QA模型和TranE的方式训练并共用Embedding矩阵
三、实验结果
上面第一个图中可以看出本文的方法取得了不错的成绩,虽然存在另外一个很高的成绩,但是那里使用到了大量的手动特征,并且这些特征是基于训练集中观察得到的,而本文的方法完全基于数据训练而来,所以更具有普遍性,所以与那个结果不具有对比性。在第二个图中,颜色越深代表权重越大,可以看出在答案的各个方面,每个词代表的权重很符合我们人类的思维。
四、结论与思考
本文针对于KB-QA任务,提出了一个新的使用Attention机制的神经网络,根据不同的答案的类型基于问题中不同单词的权重,这种思维很符合人类的思维,并且使用TransE对整个知识库进行训练,一定程度解决了OOV问题,与其它基于NN的方法相比,本文提出的方法可以实现更好的性能。
五、个人思考
①首先感叹一下Attention机制的强大,在本文中其思想更是体现得非常的妙,但是结果没有取得很大的突破,如果加上CNN在前期进行特征的提取,以及在候选答案的representation也使用神经网络训练,效果会不会更好?但是模型可能会很大吧。。。