当前位置:   article > 正文

【深度学习系列(六)】:RNN系列(4):带注意力机制的seq2seq模型及其实战(1)_hybrid attention

hybrid attention

这几天主要在看seq2seq相关的知识,比较深入的了解了各种Attention机制下的seq2seq,本篇主要是对seq2seq的一些简单介绍,之后会讲到如何使用基于Attention的seq2seq在图像上的描述的实战,让我们一起来看看吧。。。


目录

一、Attentiaon注意力机制

1.1、Attention注意力机制基本原理

1.2、BahdanauAttention与LuongAttention

1.3、单调注意力机制(MonotonicAttention)

1.4、混合注意力机制(HybridAttention)

二、引入注意力机制的Seq2seq模型


 

一、Attentiaon注意力机制

注意力机制(Attention Mechanism)源于对人类视觉的研究。在认知科学中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息。上述机制通常被称为注意力机制。通过扫描全局图像,获取需要重点关注的目标区域,而后对这一区域投入更多的注意力资源,获取更多与目标有关的细节信息,而忽视其他无关信息。通过这种机制可以利用有限的注意力资源从大量信息中快速筛选出高价值的信息。

在神经网络模型处理大量输入信息的过程中,利用注意力机制,可以做到只选择一些关键的的输入信息进行处理,来提高神经网络的效率,比如在机器阅读理解任务中,给定一篇很长的文章,然后就文章的内容进行提问。提出的问题只和段落中一两个句子有关,其余部分都是无关的,那么只需要把相关的片段挑出来让神经网络进行处理,而不需要把所有文章内容都输入到神经网络中。

神经网络中的注意力机制(Attention Mechanism)是在计算能力有限的情况下,将计算资源分配给更重要的任务,同时解决信息超载问题的一种资源分配方案。在神经网络学习中,一般而言模型的参数越多则模型的表达能力越强,模型所存储的信息量也越大,但这会带来信息过载的问题。那么通过引入注意力机制,在众多的输入信息中聚焦于对当前任务更为关键的信息,降低对其他信息的关注度,甚至过滤掉无关信息,就可以解决信息过载问题,并提高任务处理的效率和准确性。

注意力机制一般分为两种:

  • 软性注意力(soft Attention)机制:在选择信息的时候,不是从N个信息中只选择1个,而是计算N个输入信息的加权平均,再输入到神经网络中计算。
  • 硬性注意力(hard Attention)机制:择输入序列某一个位置上的信息,比如随机选择一个信息或者选择概率最高的信息。

一般我们在使用注意力机制时通常采用软性注意力(soft Attention)机制。

1.1、Attention注意力机制基本原理

在Seq2Seq结构中,encoder把所有的输入序列都编码成一个统一的语义向量Context,然后再由Decoder解码。由于context包含原始序列中的所有信息,它的长度就成了限制模型性能的瓶颈。如机器翻译问题,当要翻译的句子较长时,一个Context可能存不下那么多信息,就会造成精度的下降。除此之外,只用编码器的最后一个隐藏层状态,信息利用率低下。所以如果要改进Seq2Seq结构,最好的切入角度就是:利用Encoder所有隐藏层状态 ht解决Context长度限制问题。

Attention 输入由两部分构成:询问(query)和键值对(key-value pairs)。其中query为解码器最终输出的隐藏层ht,其维度为

[n_{h},1],健key为编码器中各时间步长中的隐藏状态hst¯  t{1,2,...,T},其大小为[n_{h},1]。可以用键值对(key-value pair)来表示输入信息,那么N个输入信息就可以表示为(K, V)= [(k_1,v_1),(k_2,v_2),...,(k_N,v_N)](K, V)= [(k_1,v_1),(k_2,v_2),...,(k_N,v_N)],其中“键”用来计算注意分布\alpha _i,“值”用来计算聚合信息。

可以将注意力机制看做是一种软寻址操作:把输入信息X看做是存储器中存储的内容,元素由地址Key(键)和值Value组成,当前有个Key=Query的查询,目标是取出存储器中对应的Value值,即Attention值。而在软寻址中,并非需要硬性满足Key=Query的条件来取出存储信息,而是通过计算Query与存储器内元素的地址Key的相似度来决定,从对应的元素Value中取出多少内容。每个地址Key对应的Value值都会被抽取内容出来,然后求和,这就相当于由Query与Key的相似性来计算每个Value值的权重,然后对Value值进行加权求和。加权求和得到最终的Value值,也就是Attention值。

参考连接:https://blog.csdn.net/weixin_42398658/article/details/90804173

注意力值的计算可以分为两步:

  • 计算注意力分布

  • 根据注意力分布来计算输入信息的加权平均

1.1.1、计算注意力分布

  • 根据Query和Key计算二者的相似度:Si=F(Q,ki)

F(Q,k_{i})为注意力打分函数,有以下几种形式:

一般形式:F(Q,ki)=kiTWQ

点积形式:F(Q,k_{i})=k_{i}^{T}Q

连接形式:F(Q,ki)=W[ki,Q]

神经网络形式:F(Q,ki)=VTtanh(Wki+UQ)

注意,通常通过点积形式计算query和key转置的乘积来计算attention score时还会除去√d 减少计算出来的score对维度

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/802399
推荐阅读
相关标签