Memory Networks

Weston J, Chopra S, Bordes A. Memory networks[J]. arXiv preprint arXiv:1410.3916, 2014.

传统的机器学习模型都没有记忆模块,像RNN这样的模型虽然有一定的记忆能力,但是长期记忆能力仍然很弱

Memory networks首次提出了具有记忆模块的模型

该模型的记忆模块$m$类似于计算机内存,是一个由$m_i$索引的数组

模型由$I,G,O,R$四个部分组成:

  • I:input feature map,将输入转换为内部特征表示,记为$I(x)$
  • G:generalization,根据新的输入更新$m$,即$m_i=G(m_i,I(x),m)$
  • O:output feature map,根据$m$和当前输入产生输出的特征表示$o=O(I(x),m)$
  • R:response,将output feature转换为期望的输出形式$r=R(o)$

显然这样的模型难以端到端训练

End-to-End Memory networks

Sukhbaatar S, Weston J, Fergus R. End-to-end memory networks[J]. Advances in neural information processing systems, 2015, 28.

这篇论文对Memory Network进行了End-to-End拓展

以QA为例,设记忆模块中存储了知识集合${x_i}$,$q,a$分别是提问和回答,每个$x_i,q,a$都由大小为$V$的字典中的词组成

模型首先通过模块$A$将原始记忆${x_i}$转换为记忆表示${m_i}$,通过模块$B$将提问$q$转换为嵌入向量$u$,于是知识抽取的权重为

之后模型通过模块$C$将${x_i}$转换为另一记忆表示${c_i}$,并通过加权和得到记忆抽取结果

最终输出通过同时处理$q$和提取的记忆$o$得到

整个模型其实可以看做具有显式记忆存储的attention

memory_network