End-To-End Memory Networks 论文翻译

摘要

我们介绍一种 在大的外置内存的 带循环注意力模型 的神经网络。架构是Memory Network的一种,而需要较少的监督学习,
它也能被看做是一种RNNsearch的扩展。
它可以用作问答系统和语言模型。

1 引言

两个标志性的人工智能研究的挑战是制作这两种模型:在回答问题的任务里 制作多个计算步骤
以及 在顺序数据里 描述长的元素依赖。

在这篇论文里我们提出一种新颖的RNN,它在输出一个符号之前 可以从一个大的显式外部内存反复读多次。
可以被看做一种连续形式的Memory Network。Memory Network那个模型用反向传播算法不是很好训练,需要每层的监督训练。
我们这个模型也可被看做是一种 每个输出符号 有多个计算步骤的RNNsearch

2 做法

我们的模型有 离散的输入x1, …, xn放到内存,一个请求q,一个输出答案a
每个xi和q和a包含的符号都是来自于一个有V个词的词典
模型把所有的x都以固定长度的缓存 写到内存,然后找到x和q的连续表示
被连续表示的x和q 通过多个步骤 输出a
这样在训练中允许 通过多个内存 反向传播 那些错误信号 到输入

2.1 单层

我们一开始 以单层 的例子 来描述我们的模型,单层 也就是实现一个内存步骤。然后我们再在内存堆成多个步骤

输入内存的表示

设想我们给一个输入数据集 x1,…,xi 来存到内存,
首先 使用一个embedding矩阵A (d × V ) ,embedding每个xi到一个d维连续空间,d维向量mi就是内存向量。
这样,整个 V维{xi} 被转成 d维内存向量{mi}
用和A一样大小的矩阵B把 请求q也embedding,得到内部状态u
在embedding空间,我们计算u和每个内存mi的内积,之后加上softmax
-
在上面的式子里-
这样的话,p是一个所有输入上的概率向量

输出内存的表示

每个xi有一个对应的 输出向量ci, ci是用矩阵C embedding xi成的,
o 是一个ci的求和,每个ci加权重是 pi
-
因为从输入到输出是平滑的,所以可以反向传播。

生成最终的预测

在这个单层的例子,o和u的和 传到一个最终的(V × d)的矩阵W和softmax来产生预测的label
-
整个单层的例子如下图
End-To-End Memory Networks 论文翻译_第1张图片

2.2 多层

我们现在拓展我们的模型到K步骤,内存层 被这样堆起来:
End-To-End Memory Networks 论文翻译_第2张图片
每层有它自己的embedding矩阵Ak和Ck

我们还测试了两种类似的模型:
1,有embedding矩阵是同一个,即
-
-
-
2,类似RNN的,即
-
-

如果从RNN的角度来看……(这块没看懂)

相关的工作

不少已经的努力 是用LSTM捕捉长元素依赖结构,在这些模型里的内存是网络的状态,这些状态是潜在的内在的 长期看不稳定。

和我们模型很接近的模型是Neural Turing Machine,神经图灵机也使用了一个连续的内存表示

你可能感兴趣的:(自然语言处理NLP)