本文在上文Memory Network的基础上进行端到端的模型构建,减少生成答案时需要事实依据的监督项,在实际应用中应用意义更大。
模型讲解及构建
模型的结构如下图所示。图(a)是单层的模型,图(b)是多层模型(三层)。
以图(a)为例,输入有两个部分,
使用输入集合表示上下文知识,使用输入向量q表示问题,使用输出向量表示预测答案。记忆网络模型通过对上下文集合S和问题向量q的数学变换,得到对应于问题的答案。
首先,上下文集合S通过隐含层矩阵Embedding 得到记忆向量的编码向量m 。同样的,问题向量q通过隐含层矩阵Embedding得到问题向量的编码向量u,然后计算两者的内积:
其中,那么 pi就为输入向量的概率。
然后,每个输入都有一个输入向量, 和得到的方式是类似的,是通过隐含层矩阵Embedding 得到的。将与相乘求和,得到答案向量的编码向量o。
答案向量的编码向量o以后,需要解码生成预测的答案,通过一个待训练矩阵,得到预测答案。
多层记忆网络
如图(b)所示,多层记忆网络和单层的基本结构是类似的,有一些小的细节需要改变,以将几个单层网络连接起来。
1、将和相加作为下一层的问题编码,即:
2、每一层都有嵌入矩阵 ,来将x映射到记忆单元和编码单元。但是这样参数数量就会随模型层数的增加呈倍数增长,为了减少参数数量,使训练能够方便进行,论文中提出了两种减少参数的方法:
端到端的记忆网络的提出,使记忆网络变得更加实用,不再需要对支持事实这一监督项,因此可用的数据集就变得更多。