http://blog.csdn.net/u011274209/article/details/53384232
原理:
文章来源:Memory Networks 、 Answering Reading Comprehension Using Memory Networks
对于很多神经网络模型,缺乏了一个长时记忆的组件方便读取和写入。作为RNN,lstm和其变种gru使用了一定的记忆机制。在Memory Networks的作者看来,这些记忆都太小了,因为把状态(state,也就是cell的输出)及其权重全部都嵌入到一个低维空间,把这些知识压缩成一个稠密的向量,丢失了不少信息。这也是文章(或者memory系列)的出发点,它的做法简单粗暴,增加一个m模块。m是一个对象的数组(an array of objects,for example an array of vectors or an array of strings),在文章里,更多叫成slot(插槽)。记忆一个事实(一般是对话组里的一句话),就把它“插”到记忆(数组)里。
一个记忆网络(memory networks,简称为MemNN),包括了上述的记忆m,还包括以下4个组件I、G、O、R(是不是超级像lstm的三个门啊,然后m像cell的list):
| 组件 | 名称 | 描述 |
|---|---|---|
| I | input | converts the incoming input to the internal feature representation. |
| G | generalization | updates old memories given the new input. “We call this generalization as there is an opportunity for the network to compress and generalize its memories at this stage for some intended future use.” |
| O | output | produces a new output in the feature representation space given the new input and the current memory state. |
| R | response | converts the output into the response format desired – for example, a textual response or an action. |
I:用于将输入转化为网络里内在的向量。作者使用了简单的向量空间模型,维度为3*lenW+3(熟悉VSM会问为什么不是lenW,下面会说具体)。
G:更新记忆。在作者的具体实现里,只是简单地插入记忆数组里。作者考虑了几种新的情况,虽然没有实现,包括了记忆的忘记,记忆的重新组织。
O:从记忆里结合输入,把合适的记忆抽取出来,返回一个向量。
R:将该向量转化回所需的格式,比如文字或者answer。对于R来说,最简单的是,直接返回o的第一个支撑记忆,也就是一句话。当然作者,打算弄复杂点,返回一个词汇w。
以下是统一的公式(可以看出作者把这玩意做成了一个架构,而不是一个具体的算法):
所有组件都是神经网络的话,叫做记忆神经网络(MemNNs,多了个s)。
Basic Model:
这是作者自己做的一个基本模型,或者算作是这个架构的一个简单例子。以下从一个记忆四个组件的角度,对这个方法进行说明:
I:I输入的是一句话,简单地将I转换为一个频率的向量空间模型。
G:也是如上,简单地把读到的对话组里的每一句话的向量空间模型,插到记忆的list里,这里默认记忆插槽比对话组句子还多。 mN=x , N=N+1 。是的,m、I和G都很简单,也就是重任就压到了O和R上了。
O:O干的事,就是输入一个问题x,将最合适的k个支撑记忆(the supporting memories,在下文的数据集里会举出例子),也就是top-k。做法就是把记忆数组遍历,挑出最大的值。最后,O返回一个长度为k的数组。
对于top1有 o1=O1(x,m)=argmaxi=1,...,NsO(x,mi)
对于top2有 o2=O2(x,m)=argmaxi=1,...,NsO([x,m

Memory Networks是一种用于处理自然语言理解任务的模型,旨在通过引入记忆组件来增强神经网络的长期记忆能力。本文详细介绍了Memory Networks的基本架构,包括记忆组件及输入、泛化、输出和响应等四个关键操作,并探讨了其训练和预测过程。此外,文中还讨论了模型的几种改进方案,例如考虑输入词汇顺序和处理未登录词汇等。

6926

被折叠的 条评论
为什么被折叠?



