1 问题和解决办法
(1)问题
- 当遇到有若干个句子并且句子之间有联系的时候,RNN和LSTM就不能很好地解决;
- 对于句子间的这种长期依赖,于是需要从记忆中提取信息;
(2)解决办法
- 本文提出了实现长期记忆的框架,实现了如何从长期记忆中读取和写入,此外还加入了推理功能;
- 在QA问题中,长期记忆是很重要的,充当知识库的作用,从其中获取长期记忆来回答问题。
2 模型框架
(1)模型由4个模块组成,分别是I、G、O、R
(2)各模块的作用分别是:
(3)模型结构
(4)基本模型的具体流程 - 对于原始文本,将其送入模块I,主要是将原始文本转化为词向量的形式,将其作为模块G的输入;
- 在模块G中,直接将输入的向量存储在memory数组的下一个位置,不做其他操作,也就是直接写入新的记忆,对老的记忆不做修改。(在复杂的模型中,还会考虑到记忆的遗忘、记忆单元的替换等因素)
- 对于输入的问题(输入的问题也需要通过模块I进行向量化),O模块会在所有的记忆中选择出与问题topk相关的记忆,选择出这topk个记忆后,将其作为R模块的输入;
a.在给定问题输入的情况下,选择最相关的记忆:
b.在给定问题输入和最相关记忆的条件下选择次相关的记忆:
c.对于上面这个等式,如果x和o1采用的都是线性的向量表示(BOW等),则可以拆分成下面加和的方式,否则不可以。
d.对于评分函数,需满足: - 在R模块中,使用与上面相同的评分函数计算所有候选词与R输入(前一个模块选择出的最相关的K个记忆)的相关性,得分最高的词语就作为正确答案输出。
3 小结
这篇论文的重点在于他提出了一种普适性的模型架构(Memory Network),但是很多部分并没有做得很完善,框架中的每一个模块都是可以变更的,这样可以适应不同的应用。后面有几篇基于这个架构的论文,我先看了来继续完善