神经网络注意力机制

  1. 概述
    当神经网络来处理大量的输入信息时,也可以借助人脑的注意力机制,只选择一些关键的信息输入进行处理,用来提高神经网络的效率。在目前的神经网络模型中,可以将max pooling和gating机制近似地看作是自下而上的基于显著性的注意力机制。此外,自上而下的聚焦式注意力也是一种有效的信息选择方法。例如:给定一篇很长的文章,然后就此文章的内容进行提问,提出的问题只和文章中某个段落中的一两个句子相关,其余都无关的。为了减小神经网络的计算代价,只需要把相关的片段挑选出来让后续的神经网络来处理,而不需要把所有文章内容都输入到神经网络中。

  2. 为什么要引入Attention机制?
    计算能力的限制:当要记住很多“信息“,模型就要变得更复杂,然而目前计算能力依然是限制神经网络发展的瓶颈。
    优化算法的限制:虽然局部连接、权重共享以及pooling等优化操作可以让神经网络变得简单一些,有效缓解模型复杂度和表达能力之间的矛盾;但是,如循环神经网络中的长距离以来问题,信息“记忆”能力并不高。可以借助人脑处理信息过载的方式,例如Attention机制可以提高神经网络处理信息的能力。

  3. Attention机制基础知识
    XXX = [ x1 , ⋯ , xN ] 表示 NNN 组输入信息,其中每个向量 xi , i ∈ [1, NNN ]都表示一组输入信息。为了节省计算资源,不需要将所有的信息都输入到神经网络中,只需要从X中选择一些和任务相关的信息。注意力机制的计算可以分为两步:
    (1)在所有输入信息上计算注意力分布;
    (2)根据注意力分布来计算输入信息的加权平均

  • 3.1 注意力分布
    • 为了从 NNN 个输入向量 [x1 , ⋯ , xN ] 中选择出与某个特定任务相关的信息,需要引入一个和任务相关的表示,称为查询向量 q,并通过一个打分函数来计算每个输入向量和查询向量之间的相关性。

    • 给定一个和任务相关的查询向量q,用注意力变量 zzz ∈ [1, NNN] 来表示被选择信息的索引位置,即z=iz=iz=i表示选择了第 iii 个输入向量。为了方便计算,下面首先介绍Soft Attention注意力机制。首先计算在给定 qqqXXX 下,选择第i个输入向量的概率 αi\alpha_{i}αi

      αi=p(z=i∣X,q)=softmax(s(xi,q))=exp(s(xi,q))∑j=1Nexp(s(xj,q))\alpha_{i}=p(z=i|X,q)=softmax(s(x_{i},q))=\frac{exp(s(x_{i},q))}{\sum_{j=1}^{N}exp(s(x_{j},q))}αi=p(z=iX,q)=softmax(s(xi,q))=j=1Nexp(s(xj,q))exp(s(xi,q))
      其中αi\alpha_{i}αi称为注意力分布,S(xi,q)S\left(\mathbf{x}_{i}, \mathbf{q}\right)S(xi,q)是注意力打分函数,可以使用下面的几种方法来计算:

    • 加性模型s(xi,q)=vTtanh⁡(Wxi+Uq)s\left(\mathbf{x}_{i}, \mathbf{q}\right)=\mathbf{v}^{\mathrm{T}} \tanh \left(W \mathbf{x}_{i}+U \mathbf{q}\right)s(xi,q)=vTtanh(Wxi+Uq)

    • 点积模型s(xi,q)=xiTqs\left(\mathbf{x}_{i}, \mathbf{q}\right)=\mathbf{x}_{i}^{\mathrm{T}} \mathbf{q}s(xi,q)=xiTq

    • 缩放点积模型s(xi,q)=xiTqds\left(\mathbf{x}_{i}, \mathbf{q}\right)=\frac{\mathbf{x}_{i}^{\mathrm{T}} \mathbf{q}}{\sqrt{d}}s(xi,q)=dxiTq

    • 双线性模型s(xi,q)=xiTWqs\left(\mathbf{x}_{i}, \mathbf{q}\right)=\mathbf{x}_{i}^{\mathrm{T}} W \mathbf{q}s(xi,q)=xiTWq

  • 上式中WWWUUUvvv是可学习的参数,ddd 是输入向量的维度。理论上,加性模型和点积模型的复杂度差不多,但是点积模型在实现上可以更好地利用矩阵乘积,从而计算效率更高。但当输入向量的维度d比较高,点积模型的值通常有较大的方差,从而导致softmax函数的梯度比较小。因此,缩放点积模型可以很好地解决这个问题。双线性模型可以看做是一种泛化的点积模型。
  • 加权平均
    注意力分布αi\alpha_{i}αi可以解释为在给定任务相关的查询q时,第i个输入向量受注意的程度。下面采用一种软性的信息选择机制对输入信息进行汇总。
    att(X,q)=∑i=1Nαixi=Ez∼p(z∣X,q)[xz]att(X, q)=\sum_{i=1}^{N}\alpha_{i}x_{i}=E_{z\sim p(z|X,q)}[x_{z}]att(X,q)=i=1Nαixi=Ezp(zX,q)[xz]
    上式称为软注意力机制(Soft Attention Mechanism)。下图给出了软注意力机制的示例图:
    在这里插入图片描述
    上图键值对模式就是普通模式的推广。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值