赞
踩
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层和注意力加权求和
先对attention的输出进行投影和dropout,之后再加上原始输入,再过一层layernorm,求导的时候加一个恒等项减少梯度消失的问题
normalization是提升神经网络的泛化性,如果我们输入跟之前分布不一值的样本,模型可能得到错误的结果,但如果我们把中间的隐藏层都调到均值为0的,方差为1的分布中去,就可以更好利用模型学到的知识
主要作用是给transformer进行了非线性变换,提升拟合能力
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。