【学习笔记】Transformer


前言

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映射放大,使得数据差异更大,再归一化。
        softmax
      • 词x1的q1去与每个词的k求内积,得到分值,即相关性,再基于得分(softmax后的相关性)分配特征量v,词x1与每个词对应的v值求和,即该词最终特征表达。
        当前词x1的q与每个词的k内积
      • q与k维度不断增大,相乘得分也越大,为避免维度增大对得分影响,除以根号下dk
        scaled dot-product操作
        z1为该词最终特征表达
        并行同时计算出所有词最终表达

2.Multi-Attention

  • 类似于CNN中多个卷积核,提取出不同特征。一般8层多头即可。
    在这里插入图片描述
    在这里插入图片描述
  • 多头(层)得出多种表达z,拼接在一起,再全连接降维。

3.位置信息表达

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

4.残差连接和归一化

在这里插入图片描述

5.Mask机制

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

6.整体架构

在这里插入图片描述

三、BERT

1.含义

  • 实际是Transformer中的encoder部分

2.训练方法

  • 方法1:随机mask掉词汇,模型预测遮掉的词
    在这里插入图片描述
  • 方法2:预测句子连接
    在这里插入图片描述

3.BERT模型使用

  • 输入文章、问题,给出答案位置。
  • 单独训练辅助向量,即答案开始位置、结束位置。
    在这里插入图片描述

总结

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值