论文阅读:Memory Network

论文阅读:Memory Networks(Facebook. 2014)

一、Abstract

开篇点题——现有问题:传统的深度学习模型(RNN、LSTM、GRU等)使用hidden states或者Attention机制作为他们的记忆功能,但是这种方法产生的记忆太小了,无法精确记录一段话中所表达的全部内容,也就是在将输入编码成dense vectors的时候丢失了很多信息。

所以本文就提出了一种可读写的外部记忆模块,并将其和inference组件联合训练,最终得到一个可以被灵活操作的记忆模块。

二、Introduction

看一下其框架(QA)

首先来说,模型主要包含一系列的记忆单元(可以看成是一个数组,每个元素保存一句话的记忆)和I,G,O,R四个模块。结构图如下所示:

preview

简单来说,就是输入的文本经过Input模块编码成向量,然后将其作为Generalization模块的输入,该模块根据输入的向量对memory进行读写操作,即对记忆进行更新。然后Output模块会根据Question(也会进过Input模块进行编码)对memory的内容进行权重处理,将记忆按照与Question的相关程度进行组合得到输出向量,最终Response模块根据输出向量编码生成一个自然语言的答案出来。

四个模块的功能

  • I:将输入转换为特征表示,不同的应用有不同的方法。例如NLP中的词向量化等。
  • G : 负责根据输入更新memory单元
  • O: 负责根据输入获取memory单元的输出
  • R: 将memory的输出转换为目标输出

所以,I、R算是memory的配套设施,G、O则是直接与memory交互。

重点来看一下G:

H(.)用来选择更新memory中的哪一个slot(插槽),这个过程类似于计算机中的寻址
在这里插入图片描述
也就是说G只更新H(.)寻址到的slot,其他位置不变。这篇论文只实现了G将记忆插入slot中。

这篇论文中还提出了关于H(.)的一些其他设想,例如其可以进行记忆的重组和删除等,在该系列的后续论文中得到了实现。

OR部分的描述比较简洁,可以直观的理解为:

O读取记忆中的对应答案,R组织措辞进行最终回答。

三、具体例子

流程

I:I输入的是一句话,简单地将I转换为一个频率的向量空间模型。
G:也是如上,简单地把读到的对话组里的每一句话的向量空间模型,插到记忆的list里,这里默认记忆插槽比对话组句子还多。
O:O干的事,就是输入一个问题x,将最合适的k个支撑记忆(the supporting memories,在下文的数据集里会举出例子),也就是top-k。做法就是把记忆数组遍历,挑出最大的值。最后,O返回一个长度为k的数组。
对于top1有
o 1 = O 1 ( x , m ) = a r g m a x i = 1 , . . . , N S o ( x , m i ) o1=O1(x,m)=argmax_{i=1,...,N}So(x,mi) o1=O1(x,m)=argmaxi=1,...,NSo(x,mi)

对于top2有
o 2 = O 2 ( x , m ) = a r g ⁡ m a x i = 1 , . . . , N S o ( [ x , m o 1 ] , m i ) o2=O2(x,m)=arg⁡max_{i=1,...,N}So([x,mo1],mi) o2=O2(x,m)=argmaxi=1,...,NSo([x,mo1],mi)
这里有几点说明:

1、在这里,返回的oi简单就是记忆数组的序号索引。
2、在这里(向量空间模型向量表示),有
S o ( [ x , m o 1 ] , m i ) = S o ( x , m i ) + S o ( m o 1 , m i ) So([x,mo1],mi)=So(x,mi)+So(mo1,mi) So([x,mo1],mi)=So(x,mi)+So(mo1,mi)
也就是对于多事实的情况,可以分开同时计算其与记忆的“关联度”,然后加总。对于其他向量表示方式,则不一定有这样的线性关系。
也就是对于多事实的情况,可以分开同时计算其与记忆的“关联度”,然后加总。对于其他向量表示方式,则不一定有这样的线性关系。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值