End-To-End Memory Networks

—-本文发表于2015年的NIPS会议。
人工智能研究面临的两大挑战是,建立能够在回答问题或完成任务时执行多个计算步骤的模型,以及能够描述顺序数据中的长期依赖关系的模型。
在这项工作中,我们提出了一种新的递归神经网络(RNN)结构,在输出一个符号之前,recurrence可以从一个可能很大的外部存储器中进行多次读取。我们将通过实验证明,长期记忆中的multiple hops对模型性能至关重要,并且训练记忆表示可以以可伸缩的方式集成到我们的端到端神经网络模型中。

Approach

该模型有一组要存储在内存中的离散输入集合x1,…,xn,一个查询q和一个输出a。模型将所有的x写到内存中直到达到一个固定的buffer size。然后为x和q找到一个连续表示,然后通过multiple hops对连续表示进行处理,输出a。

Single Layer

我们首先在单层案例中描述我们的模型,它实现了一个单内存跳操作(single memory hop)。然后,我们展示了它可以被堆叠以在内存中提供多个跳转(multiple hops)。

  • Input memory representation:对于输入xi,他的嵌入为mi,利用以下公式度量u和mi的匹配程度:$p_i=softmax(u^T m_i)$。这样定义的p是输入的一个概率。(u即查询向量)
  • Output memory representation:每个xi对应一个输出向量ci,memory的输出o为$o=\sum_{i}{p_ic_i}$。
  • Generating the final prediction:$a=softmax(W(o+u))$。

整个模型的框架如下图(a)部分所示:
framework
其中A是将xi嵌入成mi的矩阵,B是查询嵌入矩阵,C是将xi嵌入成ci的矩阵。

Multiple Layers

现在我们扩展模型来处理K跳操作。内存层按上图(b)部分的方式堆叠:

  • 第k+1层的输入uk+1,是第k层的输入uk和ok输出的和,即$u^{k+1}=u^{k}+o^{k}$。
  • 每层有自己的嵌入矩阵Ak和Ck

本文探索了两种方式的weight tying。

  • Adjacent:Ak+1=Ck。还限制了答案预测矩阵与最终的输出嵌入相同,即WT=CK,以及问题嵌入矩阵B=A1
  • Layer-wise (RNN-like):A1=A2=…=AK,C1=C2=…=CK。我们还发现使用$u^{k+1}=Hu^{k}+o^{k}$效果比之前的没有H的更好。

Synthetic Question and Answering Experiments

本文使用了一个synthetic QA数据集,总共有20种不同类型的任务来探测不同形式的推理和演绎。示例如下:
example
注意到有些句子与预测是无关的,我们需要训练模型让其自动判断。

Model Details

除另有说明外,所有实验均采用K = 3跳模型,并采用adjacent权值分配方案。

  • Sentence Representation:分为两种方式,1)bag-of-words (BoW) representation,嵌入每个单词并对得到的向量求和,例如对于$x_i$,有$m_i=\sum_{j}{Ax_{ij}},c_i=\sum_{j}Cx_{ij},u=\sum_{j}Bq_j$,该方法的缺点是无法捕捉词的顺序。2)加入位置信息,$m_i=\sum_{j}{l_j * Ax_{ij}}$,其中*是element-wise乘。$l_j$是一个列向量,满足$l_{kj}=(1-j/J)-(k/d)(1-2j/J)$,其中J是句子长度,d是嵌入维度。
  • Temporal Encoding:许多QA任务涉及到时间上下文概念,因此,我们修改为$m_i=\sum_{j}{Ax_{ij}}+T_A(i)$,其中$T_A{(i)}$为$T_A$的第i行,该矩阵编码时间信息。类似的对输出也做同样的处理。
  • Learning time invariance by injecting random noise:我们发现添加“虚拟”记忆来规范$T_A$是有帮助的。也就是说,在训练的时候,我们可以随机地将10%的空白memory添加到stories中。我们将这种方法称为随机噪声(RN)。

Language Modeling Experiments

语言建模的目标是给定文本中前面单词序列x,预测下一个单词。该模型可以很方便的应用到该问题上。
我们现在在词的层次上操作,而不是在句子的层次上。因此,序列中的前N个单词(包括当前单词)分别被嵌入到内存中。每个内存单元只包含一个单词,因此不需要在QA任务中使用BoW或线性映射表示。由于已经没有问题了,于是q被固定为常量(0.1),softmax预测词汇表中的哪个单词(大小为V)是序列中的下一个单词。

相关文章
评论
分享
Please check the comment setting in config.yml of hexo-theme-Annie!