ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

End-To-End Memory Networks【论文笔记】

2019-07-22 15:03:28  阅读:346  来源: 互联网

标签:... End 输出 模型 矩阵 Softmax Memory Networks 向量


一、摘要

  作者介绍了引入可能很大的外部存储器的递归注意力模型。这种架构是记忆网络的一种形式,但与之前的不同,它是可以端到端训练的。模型的灵活性使得我们能够将其应用于各种任务,如问答、语言建模。在实验中,作者介绍的多条机制提升了模型效果。

二、介绍

  AI研究的两个巨大挑战就是:1.搭建一个模型,可以在回答问题或完成任务的时候进行多条计算;2.在序列数据中捕捉长距离依赖关系。
  最近使用显式存储和注意力机制的计算模型开始活跃起来了,操作这样的存储器提供了解决这两个挑战的方法。存储器具有联系的表示,可以进行读写操作,以及其他模型定义的操作。
  在本篇论文中,作者提出了一种新颖的RNN架构,在输出最终的符号之前,从外部存储器读取多次。作者提出的模型可以视为是之前记忆网络的连续形式。之前的记忆网络无法端到端训练。

三、方法

  我们的模型将一组离散的输入x1,...,xnx_1,...,x_nx1​,...,xn​存储到记忆中,给定查询q,输出答案a。每一个xi,q,ax_i,q,axi​,q,a都包含来自V个词的词典的符号,模型将所有x写入到记忆中知道固定的缓冲区大小,然后找到x和q的连续表示。这个连续表示通过多跳(multiple hops) 处理输出答案a。这允许在训练期间通过多次存储器访问将误差信号反向传播回输入。

3.1 Single Layer

  首先介绍模型只有一层的情况,只实现了一个hop的操作,之后我们可以堆叠实现多跳。

  • Input memory representation: 给定存储在记忆的输入集x1,...,xix_1,...,x_ix1​,...,xi​,整个集合{xi}\{x_i\}{xi​}会转换为d维的记忆向量{mi}\{m_i\}{mi​},通过将xix_ixi​编码在一个连续的向量中间中,最简单的方式就是使用一个矩阵A(d×V)(d\times V)(d×V)。查询q也通过类似的方式(矩阵B)转换为内部状态u。在向量空间中,我们通过内积计算u和mim_imi​的匹配程度:
    pi=Softmax(uTmi)p_i=Softmax(u^Tm_i)pi​=Softmax(uTmi​)
  • Output memory representation: 每个xix_ixi​会有一个相对应的输出向量cic_ici​(矩阵C),回复向量o就可以通过加权得到:
    o=ipicio=\sum_ip_ic_io=i∑​pi​ci​因为这个函数从输入到输出是端到端的,我们可以很容易地计算梯度和反向传播。
  • Generating the final prediction: 在单层的情况中,输出向量o和输入向量u相加之后乘以矩阵W(V×d)(V\times d)(V×d)经过softmax生成最终的标签:
    a^=Softmax(W(o+u))\hat a=Softmax(W(o+u))a^=Softmax(W(o+u))
    在这里插入图片描述

3.2 Multiple Layer

  接下来介绍下多跳的实现过程。

  • 第k+1层的输入是第k层的输出oko^kok和输入uku^kuk的和(当然还有其它组合方式):uk+1=uk+oku^{k+1}=u^k+o^kuk+1=uk+ok
  • 每一层都有自己的参数矩阵Ak,CkA^k,C^kAk,Ck来编码输入{xi}\{x_i\}{xi​}。 然而,为了减少参数的数量和便于训练,我们会限制参数矩阵。
  • 在网络的顶层,参数矩阵W也会和最顶层的记忆层的输入uKu^KuK和输出oKo^KoK相结合。
    a^=Softmax(Wuk+1)=Softmax(W(oK+uK))\hat a=Softmax(Wu^{k+1})=Softmax(W(o^K+u^K))a^=Softmax(Wuk+1)=Softmax(W(oK+uK))
    我们在模型中探索了两种权重方案:
  • 1.Adjacent下层的输出向量是上层的输入向量,Ak+1=CkA^{k+1}=C^kAk+1=Ck。同时约束答案预测矩阵与最终的输出矩阵相同,即WT=CKW^T=C^KWT=CK,第一层的问题矩阵与输入矩阵相同,即B=A1B=A^1B=A1。
  • 2.Layer-wise (RNN-like) 不同层的输入输出矩阵都是相等的,A1=A2=...=AK,C1=C2=...=CKA^1=A^2=...=A^K,C^1=C^2=...=C^KA1=A2=...=AK,C1=C2=...=CK。我们发现在不同跳之间对u的更新添加一个线性映射是有效果的,uK+1=HuK+oku^{K+1}=Hu^K+o^kuK+1=HuK+ok。
    如果我们使用第二种权重方案,我们的模型就可以视为传统的RNN,将RNN的输出分为内部的输出和外部的输出。内部输出相对应于存储器,外部输出相对应于预测标签。从RNN的角度来说,u是隐藏层状态,模型使用矩阵A生成内部输出p,然后与矩阵C加权求和,更新隐藏层状态。不像标准的RNN,我们明确地对K跳期间存储在存储器中的输出进行调节,并且我们keep outputs soft,而不是对它们进行采样。

四、相关工作

  最近有研究者探索了使用RNN或基于LSTM的模型捕获序列内长期结构的方法。这些模型中的记忆是网络的状态,它在很长的时间尺度上是潜在的并且不稳定。基于LSTM的模型通过本地存储器单元来解决这个问题,该存储器单元锁定了过去的网络状态。通过实验,这相对于RNN是由提升的。我们的模型与这些模型的不同之处在于它使用全局内存,具有共享读写功能。然而,对于分层权重方案,我们的模型可以被视为RNN的一种形式,其仅在固定数量的时间步长(对应于跳数)之后产生输出,其中间步骤涉及存储器更新内部状态的输入/输出操作。

五、问答实验

  在问答任务上进行实验,一个给定的问答任务包含一系列事实,紧跟着一个问题,问题的答案是一个单词。共有20种不同类型的任务可以探索不同形式的推理和演绎。
在这里插入图片描述
  对每个问题,只有一部分的事实才包含答案需要的信息,而另一部分事实是无关的。在之前的记忆网络中,这种信息是明确指示给模型的,而本文的工作不再提供该信息,因此本文的网络是可以端到端训练的。因此,模型必须在训练和测试时间推断出哪些句子是相关的,哪些不是。
  对于20个QA任务之一,我们给定了一些问题,每个问题包含I个句子{xi},I320\{x_i\},I\leq320{xi​},I≤320,问句q,答案a。句子i的第j个词xijx_{ij}xij​,用长为V的0-1编码表示(词汇大小V=177),同样用0-1编码来表示问题q和答案a。使用两种版本的数据集,每个任务1000个问题和每个任务10000个问题。

5.1模型细节

  除非另有说明,所有实验都使用K=3跳,Adjacent权重方案。

  • Sentence Representation: 在实验中,我们探索了两种不同的句子表示方法。第一种是BoW,将句子xi={xi1,xi2,...,xin}x_i=\{x_{i1},x_{i2},...,x_{in}\}xi​={xi1​,xi2​,...,xin​}的每个单词进行编码然后求和:mi=jAxij,ci=jCxijm_i=\sum_jAx_{ij},c_i=\sum_jCx_{ij}mi​=∑j​Axij​,ci​=∑j​Cxij​,问题也通过BoW编码为输入向量u:u=jBqju=\sum_jBq_ju=∑j​Bqj​,这种表示有个缺点就是它无法捕捉词序的信息,这种信息在一些任务上是很重要的。
    因此在第二种表示方法中考虑了词的位置信息。mi=jljAxijljm_i=\sum_jl_j*Ax_{ij},l_jmi​=∑j​lj​∗Axij​,lj​是一个列向量:lkj=(1j/J)(k/d)(12j/J)l_{kj}=(1-j/J)-(k/d)(1-2j/J)lkj​=(1−j/J)−(k/d)(1−2j/J),J是句子的单词数,d是词向量维度。这种表示称之为Position encoding(PE),意味着词的顺序会影响mim_imi​。将这种表示用于问题、记忆输入输出。
  • Temporal Encoding: 很多QA任务需要关注时间上下文的信息,比如第一个例子,模型需要知道Sam在厨房后去了卧室。为了让模型关注到这些信息,我们修改了记忆向量mi=jAxij+TA(i)m_i=\sum_jAx_{ij}+T_A(i)mi​=∑j​Axij​+TA​(i),其中TA(i)T_A(i)TA​(i)是TAT_ATA​矩阵的第i行,编码了时序信息。输出向量也作了同样方式的修改:ci=jCxij+TC(i)c_i=\sum_jCx_{ij}+T_C(i)ci​=∑j​Cxij​+TC​(i)。TATCT_A和T_CTA​和TC​都是参数矩阵,随模型一起训练。
  • Learning time invariance by injecting random noise: 我们发现添加虚拟记忆有助于规范化TAT_ATA​,因此在训练期间随机添加10%的空记忆。这种方法称为随机噪声。

5.2 实验结果

  从实验结果看,作者的最好的MemN2N模型与强监督MemNN模型仍有一定差距,但是又比弱监督模型要好得多。PE表示比BoW表示要好,表明词序信息是很重要的。LS(linear start training)在一定程度上避免了局部最优。RN提升了结果,在小数据集上更加明显。联合训练所有任务也有一定的提升。更重要的是,多跳也提升了性能。
在这里插入图片描述

六、总结

  在这项工作中,我们展示了一个具有显性记忆和注意力机制的神经网络,可以通过反向传播成功地训练从问答到语言建模的各种任务。与之前的记忆网络相比,这个网络可以端到端进行训练。

标签:...,End,输出,模型,矩阵,Softmax,Memory,Networks,向量
来源: https://blog.csdn.net/qq_32782771/article/details/85109866

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有