注意力机制(Attention)

2017年,Google研究人员提出了划时代的模型Transformer,它完全基于注意力机制,抛弃了之前深度学习领域CNN和RNN结构,成为CNN和RNN之外的第三类基本结构,沿着不同的技术路线研究出其演化模型BERT和GPT. 其中,BERT使用了Transformer的编码器,GPT使用了Transformer解码器.


image.png

注意力机制可以概括为三个主要步骤:

第一步:计算相似性. 通过一个打分函数,度量输入序列隐藏状态与当前解码时间步的隐藏状态的相似性;

第二步:归一化. 也称对齐函数,得到当前解码时间不的输出对应输入序列隐藏状态的权重,所有权重之和为1;

第三步:计算的到Attention值. 输入隐藏状态与当前时刻权重加权求和,得到当前解码步的语义向量.


image.png

自注意力(Self-Attention)采用计算方式就是Scaled dot-product Attention,只是输入、输出是同一个序列,改机制能度量同一个语句内部词语之间的关联程度.

全局注意力关注所有输入数据的状态空间,局部注意力关注部分输入的状态空间.

软性注意力(Soft Attention)是指在选择信息时候,不是从N个信息中只选1个,而是计算N个输入信息的加权平均值;硬性注意力(Hard Attention)指选择输入序列某一个位置上的信息,例如选择概率最高的信息. 通常采用的是软性注意力.

image.png

左边为Encoder部分,右边为Decoder部分,主要部分介绍如下:

  • 输入:模型的训练基于单向、多对多,不要求输入和输出信息长度相等,当两者长度不等时,将空缺部分填充为0向量;
  • 输出:在一般任务中,模型训练的目的为预测下一个词的概率,从而保持输入和输出信息长度相等,输出的结果相对于输入序列右移了一个位置,即右滑;
  • N层:代表连续N个计算单元(block),文章中N=6;
  • 多头注意力:上图中Multi-Head Attention即多头注意力,采用了多组注意力权重;
  • 词嵌入:Input Embedding和Output Embedding表示词嵌入层,使用预训练词向量表示文本内容,维度为512维;
  • Positional Encoding:位置编码信息,因为缺少RNN结构,所以Transformer输入位置编码来作为词语位置信息,词语位置信息能在一定程度上反映出词语的相似度或关联性;
  • 全连接前馈神经网络:即图中的Feed Forward部分,对每个位置的词嵌入单独进行变换,使其上下文的维度统一;
  • Add & Norm:残差结构,将输入和输出相加,再做归一化处理;
  • Linear:全连接输出层,输出一组概率,其维度为预测目标的词汇表大小.
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容