【五】Transformer:Attention is all you need

        本课由s2s的encoder和decoder结构引出transformer
        其中transformer的encoder部分,讲解了block部分,由多头注意力、残差连接&标准化、FC的前馈神经网络 
        transformer的decoder部分
        首先讲了decoder的两个类别,其中AT的表现更好,NAT表现不如AT但可以并行。然后讲了decoder的内部结构
        其中解码器相比于编码器的差别就在于:
1、多了cross attention(就是结合了encoder的输出做attention)
2、mask是为了让decoder不考虑未来的输出
3、注意decoder需要停止标记
 
        训练过程中,decoder使用正确答案在训练,适当的加入随机性可以改善模型在测试中的表现(scheduled sampling)
        训练的建议:
1、从输入复制内容,可参看pointer network模型及其变形
2、通过guided attention得到强制完整的输出,使用语音任务
3、beam search对答案明确的任务有帮助
4、挑选模型的时候,选择BLEU score最高的模型,遇到无法优化的损失函数,直接reinforcement learning

目录

一、seq2seq是一个万能模型

1、seq2seq的应用:

 2、s2s的起源和代表模型

二、transformer's encoder 

三、transformer's decoder

1、decoder会把自己的输出作为接下来的输入,所以有可能一错皆错erro propagation 问题如何解决?

2、Decoder两个类别:autoregressive v.s non-autoregressive /缩写为:AT v.s NAT

3、encoder与decoder相差的就是 mask和cross attention

a、masked Multi-head attention 别看未来

b、cross attention 连接encoder和decoder的桥梁,decoder的每一层都使用了encoder的输出

c、如何确定输出序列的长度?需要一个停止符号

四、训练

1、怎么训练?

2、训练transformer(也可以是s2s模型)的tips

a、copy mechanism:

b、guided attention

c、monotonic attention

d、location-aware attention

五、优化   


        Transformer是一个seq2seq模型,输入是一个序列,输出是一个序列,输出序列的长度由机器决定 

一、seq2seq是一个万能模型

1、seq2seq的应用:

可以解决很多的Q&A问题,可以看做一个万能模型 

  1. 语音辨识(输入的是本语言的语音,输出的是本语言的文字)
  2. 机器翻译(输入的是本语言的文字,输出的是其他语言的文字)
  3. 语音翻译(如果其他语言无文字,可以直接把其他语音翻译成有文字的语言)
  4. 语音合成(文本转语音信号)
  5. 聊天机器人(输入输出都是文字,收集大量对话,学习对应的回应)
  6. 情感分析(判断正负面感情)
  7. 文本摘要

    各种nlp问题都可以用这个模型,但是问题在定制的模型上效果会更好,定制模型请参考2020年课程

  8. 文法剖析,输入一段文字,输出一个树状结构(分析文中的语法组成)论文参考:Grammer as a foreign language
  9. 多标签分类:硬做s2s,由机器决定输出多少个类别
  10. 物体检测: 

 2、s2s的起源和代表模型

起源:

代表: 

二、transformer's encoder 

        其中的很多block,每个都是输入一排向量输出一排向量,一个block所做的事情:sa+FC的前馈神经网络 

       add&norm残差连接residual connection + layer norm,输入和输出直接相加的结果用均值和方差做标准化。本文说明了为什么batch norm不如layer norm

        sa的结果作为FC的输入,再做一次残差连接+标准化,得到block的输出

 

三、transformer's decoder

         从常见的autoregressive 语音辨识讲起,encoder得到一排输出之后,读入decoder,首先设定一个开始符号(可以是独热编码),decoder输出一个向量。

1、decoder会把自己的输出作为接下来的输入,所以有可能一错皆错erro propagation 问题如何解决?

2、Decoder两个类别:autoregressive v.s non-autoregressive /缩写为:AT v.s NAT

AT:输入begin,输出w1,输入w1,输出w2,直到end

NAT:给多少个begin,就直接给出全部的输出。如何决定要给几个begin?另外学习一个分类器,先做分类、直接给一堆开始,看什么地方输出了end。

        优点:并行、可控的输出长度

        缺点:NAT往往不如AT的表现,为什么不好?因为multi-modality问题

 

3、encoder与decoder相差的就是 mask和cross attention

a、masked Multi-head attention 别看未来

        图1mask:原来的sa的每个输出都考虑所有的整个输入,加入mask就只能考虑之前的输出。为什么要mask?decoder的输出是一个一个输出的,不同于encoder直接输出一排,因为decoder不能考虑未来的输出 

 

b、cross attention 连接encoder和decoder的桥梁,decoder的每一层都使用了encoder的输出

        多的部分称作cross attention:是连接encoder和decoder的桥梁,这个模组的具体过程如下图

        q来自decoder,kv来自encoder,decoder通过q去encoder抽取信息作为接下来的FC的输入

        transformer中:decoder的每一层都使用了encoder的输出(也就是cross attention),也可以不这样 

c、如何确定输出序列的长度?需要一个停止符号

四、训练

1、怎么训练?

        decoder的每次输出其实就是在做分类,其输出是一个概率值,把答案给它,希望交叉熵总和越小越好

        decoder在训练的时候会给正确答案(ground truth),称作teacher forcing(把正确答案给decoder的输入)

        训练的时候看了答案,预测的时候没有怎么办?加点随机性,加点噪音

2、训练transformer(也可以是s2s模型)的tips

a、copy mechanism

        让decoder复制输入的内容。

        最早有从输入复制内容能力的模型pointer network 下文是pn模型的变形

        聊天机器人(重复输入的内容)

        文本摘要,需要百万篇文章才能让机器说合理的句子

b、guided attention

解决漏字的问题,强迫得到完整的输出,对应语音辨识和合成很重要

c、monotonic attention

d、location-aware attention

        beam search 每次找分数最高的来输出,称作greedy decoding 

        不是每次找到最好的,而是找整体最好的,怎么找这条路呢?算法beam search,可能不会看所有的路径

        如果答案非常明确时,beam search很有帮助。但是需要创造力的,没有帮助,decoder需要随机性(可能在训练时要加入噪音,让模型看过各种情况)TTS任务 

五、优化

        1、训练的时候,最小化交叉熵。实际上评估的时候,用BLEU score最高的模型,最大化BLEU score

        2、遇到无法优化的损失函数,直接用RL。decoder当做agent,当做RL(reinforcement learning)问题硬做 本文有点难实践 

        3、训练和测试不一致:

        测试时decoder看到的是自己的输出,可能会看到错误

        训练时看到的是正确的内容,这个现象称作 exposure bias

解决办法:训练的时候不要只给正确的内容,给点错的,这个做法称作scheduled sampling,可参考以下论文

 



 
  

        

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值