Transformer

Sequence-to-sequence (Seq2seq)

注意输入输出长度是不一样的,输出长度是模型自己判断出来的。就是把输入的和输出的准备好然后直接给机器让他训练。似乎有点像端到端的概念。
Pasted image 20241019143523.png

各种应用

大多数应用都可以变成seq2seq的问题。
https://arxiv.org/abs/1806.08730
https://arxiv.org/abs/1909.03329
Pasted image 20241019150029.png
关于NLP更多内容去这里学习,本课程不仔细讲解。
Source webpage: https://speech.ee.ntu.edu.tw/~hylee/dlhlp/2020-spring.html

Seq2seq for Syntactic Parsing

https://arxiv.org/abs/1412.7449
把语法解析当作另外一种语言,直接来做机器翻译
Pasted image 20241019150439.png

Seq2seq for Multi-label Classification

https://arxiv.org/abs/1909.03434
https://arxiv.org/abs/1707.05495
Pasted image 20241019150922.png

Seq2seq for Object Detection

https://arxiv.org/abs/2005.12872
Pasted image 20241019151014.png

Seq2Seq的结构

https://arxiv.org/abs/1409.3215
这篇论文最早提出了这个s2s
Pasted image 20241019151144.png
但是我们更熟悉 https://arxiv.org/abs/1706.03762
Pasted image 20241019151220.png

Encoder

Pasted image 20241019151256.png

Pasted image 20241019151406.png
我们先来看一个简要介绍(注意他不是transformer里的真实结构)
其中输入进入Block,然后得到输出,注意一个Block里面有很复杂的结构
Pasted image 20241019151457.png
真正的transformer是下面这样的结构,注意红线连接的两个部分是同一个。右边的红色框部分才是最后的输出。
Pasted image 20241019152752.png
这个结构是原论文设计的,不一定非要这样才好
Pasted image 20241019152946.png
On Layer Normalization in the Transformer Architecture
https://arxiv.org/abs/2002.04745
PowerNorm: Rethinking Batch Normalization in Transformers
https://arxiv.org/abs/2003.07845
Pasted image 20241019153202.png

Decoder

Pasted image 20241019153453.png

大体过程 Autoregressive (AT)

Pasted image 20241019155508.png

Pasted image 20241019155625.png

具体结构

Pasted image 20241019155710.png
对比,可以看到除了盖住的部分整体结构差不多。其中Masked的描述我们接下来讲解下。
Pasted image 20241019155723.png

Masked self-attention

只考虑左边的输出,不考虑右边的
Pasted image 20241019155958.png
如果考虑具体的结构,那么如下,其实很好理解,token的产生是按照顺序从左到右产生的,也就是说就算像把a3,a4考虑进来,没不行,因为有了b2的时候还没有他们!
Pasted image 20241019160057.png
但是这样永远不会停歇呀!!
Pasted image 20241019161237.png
加一个end作为断,输出就stop
Pasted image 20241019161835.png

Pasted image 20241019161939.png

Non-autoregressive (NAT)

Pasted image 20241019162321.png
https://youtu.be/jvyKmU4OM3c for NAT
AT 解码器(自回归 Transformer)

多模态问题(Multi-modality):由于 NAT 同时生成多个词,缺少上下文依赖,可能会导致生成结果不一致或出现歧义,特别是在面对复杂的多模态输出时。

How to transfer the information between encoder and encoder

蓝色圈的是decoder给的,绿色的是encoder给的。
Pasted image 20241019164044.png

Cross attention介绍

用encoder来的信息和decoder的信息交叉操作得到输出。
Pasted image 20241019194241.png
下一个token输入
Pasted image 20241019194259.png
不同的cross attention的设计方式(但是就不是原来transformer里面的结构了)
https://arxiv.org/abs/2005.08081
Pasted image 20241019194748.png

Train

onehot编码当作label,其余可以按照分类问题来解决。
Pasted image 20241019195715.png
训练的时候,decoder输入是真正的输出。
Pasted image 20241019195731.png

Tips

Copy Mechanism

一些内容只需要copy到输出就好
Pasted image 20241019200008.png
对摘要task而言这个copy能力很重要
https://arxiv.org/abs/1704.04368
Pasted image 20241019200027.png
https://youtu.be/VdOyqNQ9aww Pointer Network

Incorporating Copying Mechanism in Sequence-to-Sequence Learning https://arxiv.org/abs/1603.06393

Guided Attention

强迫attention要有限制,不能乱关注
Monotonic Attention
Location-aware attention
是两个这方面的关键词
Pasted image 20241019200345.png

虽然第一次绿色的不好,但是他会让后面的选择很好,因此全部走红的不一定是最好的。
Pasted image 20241019201402.png
但是又又又又又又反转了。任务答案明确的时候beam search就好一些,但是需要机器的创造力的时候(编故事)那么就要加入随机性,因此一定要根据task选择方法。
Pasted image 20241019201610.png
https://arxiv.org/abs/1904.09751

Optimizing Evaluation Metrics?

Pasted image 20241019202603.png
这张图片讲解了在序列生成任务(例如机器翻译)中优化评估指标的概念,具体提到了常用的评估指标 BLEU 分数。BLEU 分数用于评估模型生成的文本与参考翻译的相似程度。

使用强化学习!

Scheduled Sampling

Original Scheduled Sampling
Scheduled Sampling for Transformer
Parallel Scheduled Sampling
https://arxiv.org/abs/1506.03099
https://arxiv.org/abs/1906.07651
https://arxiv.org/abs/1906.04331
我们训练的时候也要给一些错的,增强系统的鲁棒性。

Scheduled Sampling 是一种用于训练序列生成模型(例如 RNN、LSTM 等)的技术,目的是解决训练时模型“暴露偏差”(exposure bias)的问题。暴露偏差是指在训练过程中,模型总是依赖真实数据(ground truth)的序列来进行下一个时间步的预测,而在测试阶段,模型只能依赖自己过去生成的输出,从而可能造成误差的累积,导致生成的序列质量下降。
Pasted image 20241019202315.png