【论文笔记06】Memory Network

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),但是很多部分并没有做得很完善,框架中的每一个模块都是可以变更的,这样可以适应不同的应用。后面有几篇基于这个架构的论文,我先看了来继续完善

资料来源

【1】 论文地址
【2】 论文笔记参考1(这要参考这篇笔记)
【3】论文笔记参考2