需要三个指定的输入Q(query), K(key), V(value), 然后通过计算公式得到注意力的结果, 这个结果代表query在key和value作用下的注意力表示. 当输入的Q=K=V时, 称作自注意力计算规则
Q, K, V的比喻解释:
你在一个巨大的图书馆里,想要找到一本特定的书。这个过程可以类比为注意力机制中的Q、K、V。
注意力机制是注意力计算规则能够应用的深度学习网络的载体, 同时包括一些必要的全连接层以及相关张量处理, 使其与应用网络融为一体. 使用自注意力计算规则的注意力机制称为自注意力机制
Attention机制的工作原理
有无注意力的seq2seq 架构对比
无Attention的Seq2Seq模型由Encoder和Decoder两部分组成。Encoder将输入序列编码为一个固定长度的上下文向量(Context Vector),Decoder则基于该向量生成输出序列。这种模型的核心问题是:当输入序列较长时,Encoder生成的上下文向量可能无法完全捕捉输入序列的所有信息,导致Decoder在解码时丢失重要信息。
无Attention的Seq2Seq模型的计算复杂度较低,因为Encoder只需生成一个固定长度的上下文向量,Decoder在解码时也只需依赖该向量。这种模型的计算效率较高,适合处理较短的序列
有attention机制的模型
有Attention的Seq2Seq模型在Decoder解码时,不仅依赖于Encoder生成的上下文向量,还会动态计算输入序列中每个词与当前解码步骤的相关性,并根据这些相关性对输入序列的隐藏状态进行加权求和,生成动态的上下文向量。这种机制使得Decoder能够关注输入序列中与当前解码步骤最相关的部分,从而显著提升模型的表现
生成目标句子单词的过程:
有Attention的Seq2Seq模型在解码时需要为每个时间步计算输入序列中每个词的注意力权重,并根据这些权重生成动态的上下文向量。这种机制虽然提升了模型的表现,但也显著增加了计算复杂度,尤其是在处理长序列时,计算量会大幅增加。
Attention (AT) 经常被应用在从编码器(encoder)转换到解码器(decoder)。比如说,解码器的神经元会接受一些AT从编码层生成的输入信息。在这种情况下,AT连接的是**两个不同的组件**(component),编码器和解码器。
SA比较擅长在一个序列当中,寻找不同部分之间的关系。比如说,在词法分析的过程中,能够帮助去理解不同词之间的关系。AT却更擅长寻找两个序列之间的关系,比如说在翻译任务当中,原始的文本和翻译后的文本。
AT可以连接两种不同的模态,比如说图片和文字。SA更多的是被应用在同一种模态上,但是如果一定要使用SA来做的话,也可以将不同的模态组合成一个序列,再使用SA。
无Attention的Seq2Seq模型 无Attention的Seq2Seq模型适合处理较短的序列,例如短文本翻译、简单的文本生成任务。由于其计算效率较高,适合在资源受限的场景下使用。
有Attention的Seq2Seq模型 有Attention的Seq2Seq模型适合处理较长的序列,例如长文本翻译、文本摘要、语音识别等任务。由于其能够动态捕捉输入序列中的重要信息,适合在需要高精度的场景下使用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。