• Transformer模型


    Transformer模型

    1.Transformer整体架构

            Transformer抛弃了传统的RNN和CNN,首先它使用了Attention机制,将序列中的任意两个位置之间的距离是缩小为一个常量;其次它不是类似RNN的顺序结构,因此具有更好的并行性,符合现有的GPU框架,有效的解决了NLP中棘手的长期依赖问题 。

            Transformer是一个encoder-decoder的结构,由若干个编码器和解码器堆叠形成。如上图的左侧部分为编码器,由Multi-Head Attention和一个全连接组成,用于将输入语料转化成特征向量。右侧部分是解码器,其输入为编码器的输出以及已经预测的结果,由Masked Multi-Head Attention, Multi-Head Attention以及一个全连接组成,用于输出最后结果的条件概率 。

            由框图可以看出,有三个输入Q、K、V,假设我们输入了n个word,首先对每个word做embedding,然后对这n个embedding进行self-attention,所以Q这个矩阵装的是所有的word的embedding,而K和V装的是用来描述这些word的embedding的矩阵,其中K与Q的维度要保持一致,且V的维度要与K、Q经过attention后输出的维度保持一致,K、V的长度必须一致。

            在Q、K、V中,Q代表着query,是个M个维度为d的向量(可以理解为M长度的sequence的向量),代表需要被表达的序列,K代表着key,是个N个维度为d的向量(可以理解为N长度的sequence向量),与V一起用来表达Q的序列,公式如下:

            这里与传统RNN的区别在encoder中就可以明显体现出来了,RNN需要对每一个时刻都产生输入与输出,而transformer只需要将所有序列全部输入,就可以进行attention计算了。

            其中一些词汇的解释:

    • 长期依赖: 长期依赖是指当前系统的状态,可能受很长时间之前系统状态的影响,是RNN中无法解决的一个问题。

    • Embedding这是一种从文本语料库构建低维向量表示的方法,该方法可以保留单词的上下文相似性。

    • token令牌,即标记的意思。

    • context背景

    • target目标

    • multi-head attention多头注意

    • mask保证训练与推理的一致性

    2.对Transformer框架中模块的理解

    2.1 Input(输入)

    • 在该模型中,每时每刻的输入都是input embedding + positional encoding,即所带有的信息加上其位置编码,其中embedding就是用来取代传统RNN(如seq2seq)中的hidden states。

    • 由于transformer模型属于自回归模型,因此它的下一个输出需要基于上一个输出进行推断,即主框架中的outputs(shifted right)

    • position encoding是位置编码,是不可以缺失的一部分,它可以将attention计算方式无法捕捉的位置信息变成embedding形式,直接叠加到变换为embedding形式后的input中。

    • encoder(编码器)会接收到一个list(每个元素都是512维的词向量)

    • 这里介绍Transformer的一个关键特性,每个位置的词仅仅流过它自己的编码器路径。在self-attention层中,这些路径两两之间是相互依赖的。前向网络层(FFN)则没有这些依赖性,但这些路径在流经前向网络时可以并行执行。

    • 因为在解码的时候,仅知道当前词左边的部分。由此,利用masking(当前词右侧的内容被设置为−∞,这样softmax的值为0)屏蔽了当前词右边部分的影响,保持了自回归的特性。

    2.2 Multi-head Attention(多头注意)

            multi-head attention由多个scaled dot-product attention这样的基础单元经过堆叠而成,multi-head attention把query和key映射到高维空间的不同子空间中去计算相似度,且多头注意的输入都是query Q、key K 、value V 三个元素,只是 Q、K、V 的取值不同。

            为了更好的理解multi-head attention,我们分成两步走:

    1. scaled dot-product attention(缩放的点乘注意力)介绍:

            首先,attention也叫self-attention,顾名思义,就是自己和自己做attention操作,即得到所有时刻的数据后,可以用其中每一时刻数据与所有数据中任意一时刻数据进行计算attention(相似程度)。

            其次,如框图所示,可以分成6步来看:

    1)将编码器与文本输入生成输入向量,然后将其生成三个向量,生成方法是将输入向量分别乘以三个权重矩阵,这些矩阵是可以在训练过程学习的,而且所有的输入向量都共享这三个权重矩阵。

    2)计算attention,即计算一个分值,将对应的Q、K依次进行点积获得每个位置的分值。

    3)保持训练与推理的数据一致性。

    4)对计算出来的分值进行softmax操作,归一化分值使得全为正数且它们的和为1。

    5)将softmax分值与V的向量按位相乘,保留关注词的value值,削弱非相关词的value值。

    6)将所有加权向量加起来,产生该位置的self-attention的输出结果。

    1. multi-head attention(多头注意)介绍:

            如上图所示,这就是scaled dot-product attention的堆叠(stacking),先把我们上面讲过的Q、K、V进行线性变换变成Q'、K'、V',然后进行attention计算,重复这样的操作h次,然后将这h次的结果进行concat(合并),最后总的做一次线性变换,输出的就是多头注意这个模块的输出了。

            而在主框架中右半部分的多头注意中,与其他两个多头注意有些差异,它是一个cross_attention,它的Q是由目标端序列而来,K、V是由源端序列来的。

    2.3 ADD&Normalization(残差连接与添加规范化)

            在主框架中每一个模块后面,都有一个残差连接和规范化层,它是一个通用的技术,它的本质是可以有效的改善深层模型中梯度消失的问题,且能打破网络对称性,改善网络退化问题,加速收敛,规范化优化空间。

    2.4 Feed Forward Network(FFN,前馈神经网络)

            每一层经过attention之后,还会有一个FFN,这个FFN的作用就是空间变换。FFN包含了2层linear transformation(线性变换)层,中间的激活函数是ReLu 。

    3.Transformer的缺点

    1. 缺少recurrent inductive bias: 学习算法中Inductive Bias可以用来预测从未遇到的输入的输出 , 对于很多序列建模任务(如需要对输入的层次结构进行建模时,或者在训练和推理期间输入长度的分布不同时),Recurrent Inductive Bias至关重要。

    2. 不能很好的处理超长输入: 理论上来说,attention可以关联两个任意远距离的词,但实际中,由于计算资源有限,仍然会限制输入序列的长度,超过这个长度的序列会被截断。

    3. transformer是非图灵完备的:就是说不能解决所有问题, 它的输入是一个需要对每个输入元素进行顺序处理的函数,在这种情况下,对于任意给定的深度T的transformer,都可以构造一个长度为N>T的embedding。

    4. transformer缺少conditional computation(条件计算): transformer在encoder的过程中,所有输入元素都有相同的计算量,比如对于“I arrived at the bank after crossing the river", 和"river"相比,需要更多的背景知识来推断单词"bank"的含义,然而transformer在编码这个句子的时候,无条件对于每个单词应用相同的计算量,这样的过程显然是低效的。

  • 相关阅读:
    hdu 4358 Boring counting 树状数组
    hdu 4501 小明系列故事——买年货 多重背包
    hdu 4503 湫湫系列故事——植树节 水题
    hdu 4031 Attack 树状数组
    技巧心得:如何解除运行office软件的时候弹出 正在安装 缺少pro11.msi对话框
    读书札记:VC++学习之Windows程序运行原理
    读书札记:7天搞定C语言(二)
    视频教程:计算器制作MFC
    读书札记:knowledge and Virtue
    技巧心得:各大搜索免费登记入口个人门户推广
  • 原文地址:https://www.cnblogs.com/minyuan/p/13299192.html
Copyright © 2020-2023  润新知