正文
图 2.1 bAbI 20 Tasks
记忆网络的结构如图 2.2 所示,其中包含四个核心模块,分别为 I、G、O、R。
I 为输入模块。包括对输入的预处理(如句法解析、共指消解等使输入更佳规范的处理)和特征表示(一种在连续空间上的映射)。
G 为更新模块。用于更新记忆模块(Memory Slots),其功能包括 slot 的选择、记忆分组、记忆更新和遗忘。
O 为输出模块。用于对已存在记忆 slots 选择性调用,并根据当前的请求推理得到响应特征表示的模块。
R 为响应模块。用于“组织语言”把 O 得到的响应特征表示表达出来。
图 2.2 记忆网络结构
运行时,G 会根据输入即使更新 Memory 中存储的内容,随后经过 O 的多层推理,精准的为问题找到答案。
Jason Weston 等人的记忆网络结构只是提出了一种基于长期的结构化记忆和推理的机制,其中的 I/G/O/R 可以为任何的模型,并没有给出构造这些模型效果最优方法。基于记忆网络的思想,很多的“外挂”存储结构的神经网络结构和机制被提出,其思想可以分为两种,一种以 Multiple-hops 为核心的 End-to-End 的机制;另一种则是利用了现有的 RNN 的记忆功能,来实现对“记忆”模块的更新和查询。
2015 年,Sainbayar Sukhbaatar 等人提出了一种 Multiple-hops 记忆网络 2,其结构如图 2.3 所示,它将记忆网络的 I/G/O/R 融合在了一起组成了一个端到端(End-to-End)的网络。该结构中的每一层采用了两个不同的 Embedding 矩阵来表示 Memory 中的 slots,如图 3(a)所示,其中蓝色的 Embedding 起到了 Attention 的作用,生成了每个 slots 上面的概率分布,黄色的 Embedding 用于输入对 Memory slots 的选择,最后通过 Softmax 实现通过所选中的“记忆”对给定问题的答案预测功能。参考 RNN 的机制,将多个这样的结构串联起来,并保持每层的 Embedding 是不同的,就构成了 Multiple-hops 的端到端记忆网络。这种结构的优势在于能够充分的实现 Memory 的特征表示,使得记忆网络更佳容易通过 BP(反向传播)训练。该方案(Hop3)通过了 bAbI 20 项任务中的 14 项(accuracy>95% 记为通过测试)。