Transformer与RNN、CNN对比

1、上下文特征

nlp任务需要编码器去抽取很多的特征,比如每个词的上下文语意都跟上下文有着强相关的关联性,希望可以抽取上下文的特征,上下文特征又分为方向距离

RNN只能对句子进行单向编码

CNN只能对短句进行编码

transformer 既可以同时编码双向的语义+抽取长距离特征

2、序列特征(顺序)

nlp任务的顺序不同也会导致不一样的情况,比如 海南->上海 跟 上海->海南 ,单词的顺序互换就导致了不一样的意思,由于RNN有严格的顺序特征,所以在该nlp任务下

RNN优于CNN、Transformer

3、速度

CNN和transformer都可以进行并行计算,但是由于transformer构造比较复杂,比CNN稍微慢一点,所以在此情境下

CNN执行速度优于transformer和RNN

4、transformer三大模块

  • 多头注意力机制

       首先对输入进行投影得到QKV三个矩阵,为什么要进行投影?之后在计算注意力分数时,如果不进行投影就会让相同的q v去做点积,这样子的话每个词跟自己的注意力分数就会很高,而初衷是想要每个词去融合上下文的语义,所以需要把qkv投影到不同的空间中。

       其次,是进行QKV的矩阵运算得到attention矩阵,之后除以根号d,主要因为是做矩阵乘法时,需要先让两个矩阵的元素相乘再相加,如果两个矩阵想乘之后均值为0,方差为d的正态分布了,可能会产生很大的数值,造成个别词的注意力很高,其余很低。这样经过softmax层后导致求导之后梯度很小,不利于优化,所以需要除以根号d进行平滑。

       最后是softmax层和注意力加权求和

  • 残差连接+normalization

      先对attention的输出进行投影和dropout,之后再加上原始输入,再过一层layernorm,求导的时候加一个恒等项减少梯度消失的问题

       normalization是提升神经网络的泛化性,如果我们输入跟之前分布不一值的样本,模型可能得到错误的结果,但如果我们把中间的隐藏层都调到均值为0的,方差为1的分布中去,就可以更好利用模型学到的知识

  • FFN

     主要作用是给transformer进行了非线性变换,提升拟合能力

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值