一、摘要
我们描述了一类称为内存网络(Memory Networks)的新型学习模型。内存网络解释了与长期内存组件相结合的推理组件。他们学习如何共同使用这些。可以读取和写入长期记忆,目的是将其用于预测。我们在问答(QA)的背景下研究这些模型,其中长期记忆充当(动态)知识库,并且输出是文本回复。在大规模QA任务上进行评估,然后,通过链接多个支撑句子来回答需要理解动词内涵的问题,以此展示这些模型的推理能力。
二、介绍
大多数机器学习模型缺乏一种简单的方法来读取和写入部分(可能是非常大的)长期内存组件,并将其与推理无缝地结合在一起。举个例子,在知道一组事实或故事的前提下,然后回答有关该主题的问题。原则上来说可以用RNN来解决,但是RNN的记忆比较差,无法准确地记住过去的事实。
因此,作者提出一个新模型——记忆网络,来解决这个问题。中心思想是将用于推理的机器学习文献中开发的成功学习策略与可以读取和写入的存储器组件相结合。然后训练该模型以学习如何有效地操作存储器组件。
三、记忆网络
一个记忆网络由一个内存 m m m 和4个组件 I , G , O 和 R I,G,O和R I,G,O和R组成:
- I:(Input feature map)——将输入转成内部的特征表示。
- G:(generalization)——给定新输入更新旧内存。我们将这种称为概括,因为网络有机会在此阶段压缩和概括其存储器以用于某些预期的未来用途。
- O:(output feature map)——给定新输入和当前的内存状态,产生新输出。
- R:(response)——将输出转换为需要的回复格式。
给定一个输入 x x x,比如输入字符、单词或句子,模型的流程如下:
- 将 x x x 转换成内部的特征表示 I ( x ) I(x) I(x);
- 给定新输入更新内存 m i m_i mi: m i = G ( m i , I ( x ) , m ) , ∀ i m_i=G(m_i,I(x),m),\forall i mi=G(mi,I(x),m),∀i
- 给定新输入和内存计算输出特征 o o o: o = O ( I ( x ) , m ) o=O(I(x),m) o=O(I(x),m)
- 解码输出特征 o o o得到最终回复: r = R ( o ) r=R(o) r=R(o)
四、MemNN
这里简单的介绍一下文本输入输出的MenNN。
- 4.1 基本模型
在基本架构中, I I I 模块接受输入文本,假定是一个句子。这个文本以原来的形式储存在下一个有用的内存槽中, S ( x ) S(x) S(x) 返回下一个空的内存槽 N N N: m N = x , N = N + 1 m_N=x,N=N+1 mN=x,N=N+1。G模块只用于存储新记忆,所以旧记忆不会被更新。
推理的核心在于O和R模块。O模块通过给定 x x x 找到 k k k 个支撑的记忆,以此产生输出特征, k ≤ 2 k\leq 2 k≤2,当然可以推广到更大的 k k k。对 k = 1 k=1 k=1 最高分数的支撑记忆如下得出:
o 1 = O 1 ( x , m ) = a r g m a x s O ( x , m i ) o_1=O_1(x,m)=arg\ max\ s_O(x,m_i) o1=O1(x,m)=arg max sO(x,mi)
其中 s O s_O sO是一个函数,计算 x 和 m i x 和m_i x和mi的匹配分数。对于 k = 2 k=2 k=2,我们找到第二个支撑记忆:
o 2 = O 2 ( x , m ) = a r g m a x s O ( [ x , m o 1 ] , m i ) o_2=O_2(x,m)=arg\ max\ s_O([x, m_{o_1}],m_i) o2=O2(x,m)=arg max sO([x,mo1],mi)
最终 o o o 模块的输出是 [ x , m o 1 , m o 2 ] [x, m_{o_1},m_{o_2}] [x,mo1,mo2],最后输入到R模块中。R模块需要生成一个回复 R R R,最简单的回复是返回一个 m o k m_{o_k} mok,输出我们先前检索到的句子。为了生成句子,可以使用RNN模型。在我们的实验中,我们还考虑了一种易于评估的折衷方法,我们将文本响应限制为一个单词(在模型中看到的所有单词中),方法是对它们进行排序:
r = a r g m a x w ∈ W s R ( [ x , m o 1 , m o 2 ] , w ) r=argmax_{w\in W}s_R([x, m_{o_1},m_{o_2}],w) r=argmaxw∈WsR([x,mo1,mo2],w)
其中W是词典中的所有词, s R s_R sR 是一个评分匹配函数。还有很多MemNN的应用,这里不再介绍。
五、总结
本篇论文主要是提出了一个新的模型——内存网络,可以解决RNN记忆小的问题,但由于训练集缺乏支撑事实,无法端到端训练。