来源: IJCAI 2016
原文
Motivation
问答可以看做单轮的对话系统。
最近的深度学习的发展增加了generation-based QA方法的可能性。
That is, the answer is generated by a neural network (e.g., recurrent neural network, or RNN) based on the question, which is able to handle the flexibility and diversity of language. More importantly, the model is trained in an end-to-end fashion, and thus there is no need in building the system using linguistic knowledge, e.g., creating a semantic parser.
但是这种方法的问题在于神经网络存储的知识有限,所有可以很自然的想到使用记忆网络。
Task Description
The learning task
把问题定义为一个sequence2sequence任务。输入一系列单词(问题),输出一系列单词(答案)。为了更好的回答,系统和knowledge-base(KB)相连。
本文只考虑simple factoid question,只和KB中的一条元组相关,答案需要来自object,问题要包含subject和predicate。
Data
自己做的数据集,包括KB和question pairs。并且划分为测试集和训练集,并且保证测试集里都是训练集没见过的facts。
Challenges
这个问题的难点在于,如何在一个统一的框架中同时进行理解问题、生成回答、从KB获取相关知识(采用端到端的方式解决这个问题)。
The GEN QA Model
和分别表示问题和回答。.
整个模型由三个部分组成:Interpreter, Enquirer, Answerer和一个外部的知识库。
Basically, Interpreter transforms the natural language question into a representation and saves it in the short-term memory. Enquirer takes as input to interact with the knowledge-base in the long-term memory, retrieves relevant facts (triples) from the knowledge-base, and summarizes the result in a vector . The Answerer feeds on the question representation (through the Attention Model) as well as the vector and generates an answer with Generator. We elaborate each component hereafter.
Interpreter
把RNN输出的隐状态,embedding,one-hot representation拼接起来作为一个单词的表示。
其中,.
Enquirer
首先找到一系列候选元组(元祖的subject出现在问题中了),, 是候选三元组的个数,可能最多有几百个。然后在embedded space衡量候选元组同问题之间的相关程度(类似Facebook2014年论文的点积计算方法)。
Answerer
用条件概率来表达RNN:
本文采用混合模型来生成单词。
是以为输入的逻辑回归模型的输出。表示个词来自common vocabulary,表示个词来自KB。KB vocabulary包含所有来自特定问题候选三元组的object。如果一个单词只属于KB,那common vocabulary部分贡献的概率就为0。如果一个单词在两个词典中都存在,两部分都会贡献概率。
其中,的计算方法同普通的decoder一样,而,也就是说,如果不考虑生成模型的部分的话,同embedding-based的计算方法一样。
Training
要学习的参数包括两个RNN的参数,Enquirer的参数和由Interpreter RNN和KB共享的word-embedding。最大化对数似然(??):
Experiments
问题和答案使用的字典不一样,问题使用的是问题中出现的高频词加上KB中所有的predicates。答案使用的字典由答案中的高频词组成。
流利度很好:来自生成模型的贡献
精度的提高:
- We conjecture that the task of generating the appropriate answers may help the learning of word-embeddings of questions. (猜想生成任务可以更好的帮助wordembedding的学习)
- An explanation for that is that the convolution layer helps to capture salient features in matching(CNN可以更好的学习问题和答案之间的匹配度)
结论与思考
第一篇使用生成模型的paper。
the model is built on the encoder-decoder frame-work for sequence-to-sequence learning, while equipped with the ability to enquire a knowledge-base.
可以把这个模型依然理解为embedding/query-based的方法。
重点可以看到case7、case8,问题没有对应到正确的三元组上去。