Transformer-Attention is all you need

注意力机制(attention)

图片展示的Encoder-Decoder框架没有体现“注意力模型”,可以把它看做是注意力不集中分心模型。因为在生成目标句子的单词时,不论生成哪个单词,它们使用的输入句子的语义编码C都是一样的,没有任何区别。而语义编码C是由原句子中的每个单词经过Encoder编码产生的,这意味着原句子中任意单词对生成某个目标单词来说影响力都是相同的,这就是模型没有体现出注意力的缘由。

计算重要程度e常用的有以下三种方式:

  • 计算Encoder的序列h与Decoder的序列h的余弦相似度.
  • 在1的基础上,乘上一个Wa,Wa是需要学习的参数,从学习到Encoder和Decoder的隐藏的打分e。
  • 设计一个前馈神经网络,前馈神经网络的输入是Encoder和Decoder的两个隐藏状态,Va、Wa都是需要学习的参数。

再将e使用softmax进行归一化就得到权重分数α

将得分分别除以一个特定数值8(K向量的维度的平方根,通常K向量的维度是64)这能让梯度更加稳定

自注意力机制(self-attention)

如果注意力模型中注意力是完全基于特征向量计算的,那么称这种注意力为自注意力

多头注意力机制(multi-head attention)

多头注意力通过利用同一查询的多个不同版本并行实现多个注意力模块来工作。其思想是使用不同的权重矩阵对查询 q 进行线性变换得到多个查询。每个新形成的查询本质上都需要不同类型的相关信息,从而允许注意模型在上下文向量计算中引入更多信息。

作用:

  • 第一个方面,他扩展了模型关注不同位置的能力,这对翻译一下句子特别有用,因为我们想知道“it”是指代的哪个单词。

  • 第二个方面,他给了自注意力层多个“表示子空间”。对于多头自注意力机制,我们不止有一组Q/K/V权重矩阵,而是有多组(论文中使用8组),所以每个编码器/解码器使用8个“头”(可以理解为8个互不干扰自的注意力机制运算),每一组的Q/K/V都不相同。然后,得到8个不同的权重矩阵Z,每个权重矩阵被用来将输入向量投射到不同的表示子空间。

参考资料:
十分钟理解Transformer
NLP中的RNN、Seq2Seq与attention注意力机制
注意力、自注意力和多头注意力
一般注意力模型
自注意力(self-attention)和多头注意力(multi-head attention)
通俗易懂详解注意力机制(Attention)

posted @ 2022-05-27 14:58  YTT77  阅读(67)  评论(0编辑  收藏  举报