【学习笔记】Transformer

目录

  • 前言
  • 一、传统RNN架构痛点问题
  • 二、Attention机制
    • 1.Self-Attention
    • 2.Multi-Attention
    • 3.位置信息表达
    • 4.残差连接和归一化
    • 5.Mask机制
    • 6.整体架构
  • 三、BERT
    • 1.含义
    • 2.训练方法
    • 3.BERT模型使用
  • 总结


前言

Transformer的提出,有效解决了传统RNN无法并行计算的痛点。改模型出自论文“Attention is all you need”,模型完全基于注意力机制,在CV和NLP上较CNN RNN效果更优。尽管当前最新模型timesnet可能更强,但仍值得研究,并做改进创新。


一、传统RNN架构痛点问题

  • 针对时序数据,RNN输入需上一时间步的中间结果,类似于串联,无法做并行计算。而自注意力机制提出,可以并行计算,输出结果同时求得。
  • word2vec通过词向量表达文本特征,但是训练好后,语义无法更改,无法兼顾全文语境。为此,BERT能解决语境不同含义不同的问题。

二、Attention机制

1.Self-Attention

  • encoer-decoder结构中,注意力不同,对语境理解不同,提取特征则不同。
  • self-attention
    • 计算机通过上下文,根据任务自行判断重点关注哪些特征,方法通过考虑该词与全文词汇的关系,将结合整个语境的关系(关联)融入到最后1个词向量中。
      上述过程也可以是多层(多套)的,理解为多套语境。
    • 计算方法
      • 通过3个辅助矩阵提取特征q/k/v,3个矩阵需训练,q代表去查询的权重,k被查询的,v是其最后特征表达。
      • 通过内积(点乘)表示向量相关性,相关性大、向量夹角小、内积大。
      • softmax:每个特征求出得分值,经exp映射放大,使得数据差异更大,再归一化。
        【学习笔记】Transformer_第1张图片
      • 词x1的q1去与每个词的k求内积,得到分值,即相关性,再基于得分(softmax后的相关性)分配特征量v,词x1与每个词对应的v值求和,即该词最终特征表达。
        【学习笔记】Transformer_第2张图片
      • q与k维度不断增大,相乘得分也越大,为避免维度增大对得分影响,除以根号下dk
        【学习笔记】Transformer_第3张图片
        【学习笔记】Transformer_第4张图片
        【学习笔记】Transformer_第5张图片

2.Multi-Attention

  • 类似于CNN中多个卷积核,提取出不同特征。一般8层多头即可。
    【学习笔记】Transformer_第6张图片
    【学习笔记】Transformer_第7张图片
  • 多头(层)得出多种表达z,拼接在一起,再全连接降维。

3.位置信息表达

  • 做整个序列的加权,对位置并不敏感,因此加入位置编码。不用传统独热编码,引入正余弦周期表达位置信息

4.残差连接和归一化

【学习笔记】Transformer_第8张图片

5.Mask机制

  • 训练模型,按一定概率遮住部分特征,预测

6.整体架构

【学习笔记】Transformer_第9张图片

三、BERT

1.含义

  • 实际是Transformer中的encoder部分

2.训练方法

  • 方法1:随机mask掉词汇,模型预测遮掉的词
    【学习笔记】Transformer_第10张图片
  • 方法2:预测句子连接
    【学习笔记】Transformer_第11张图片

3.BERT模型使用

  • 输入文章、问题,给出答案位置。
  • 单独训练辅助向量,即答案开始位置、结束位置。
    【学习笔记】Transformer_第12张图片

总结

transformer最大优势是考虑上下文,且并行计算。

你可能感兴趣的:(学习笔记,深度学习,transformer,人工智能)