李宏毅《机器学习》2021版第13-14讲——Transformer

Transformer

Seq2Seq

输出label数由机器自己决定。


seq2seq

台语翻译

台语语音+中文字幕作为data


台语翻译1

台语翻译2

台语翻译3

台语语音合成

台语合成

Seq2Seq for chatbot

output是response


Chatbot

More NLP applications…

-Q&A
QA can be done by seq2seq.
输入question,context,seq2seq处理后输出是answer。


Q&A

不同NLP任务需要定制化模型


定制NLP

Seq2Seq for syntactic parsing

句法解析,输出是一个树状结构,但这个结构也可以对应到sequence的形式


Syntactic parsing

Seq2Seq for multi-label classification

multi-label意思是同一个东西可以属于不只一个class。
Seq2seq可以自己决定输出几个class。


Multi-label

Seq2Seq for object detection

Object detection

Seq2Seq怎么做?

Encoder—> Decoder


Seq2Seq怎么做

Encoder

Encoder就是输出相同长度的向量,transformer的encoder用的就是self-attention.


Encoder.png

Encoder的架构
Encoder的一个block里面做的是好几个layer做的事情。

Encoder架构

Transformer的block做的更复杂,在self-attention输出后还要叠加输入作为新的输出,这个结构就叫residual connection。
再做layer normalization,对同一个feature的不同dimension计算均值和标准差。这个输出才是FC的输入,FC那边也有residual的架构,也再做一次layer normalization。


Residual connection

transformer的input先加position,然后transformer的encoder里的Add & Norm就是Residual + Layer norm的意思。


Transformer encoder

上面讲的是最原始的transformer的架构,但不一定是最optimization的。


More transformer

Decoder

有2种,最常见是Autoregressive。

Autoregressive

先读入encoder的输出作为decoder的输入。
先给一个特殊的符号,代表开始begin。接下来会吐出一个向量,这个向量的长度跟输出的vocab的长度相同。每个word都会对应一个分数。这个分数是softmax得到的distribution的值,加起来总和为1。分数最高的值就是这个向量的输出。
现在输出的“机”这个字加入到下一步的输入。


Autoregressive1

Autoregressive2

Decoder的架构
Decoder的结构比encoder还复杂一点,

Decoder架构1

Encoder结构和decoder结构放一起,可以发现结构就差中间这一块。


Decoder架构2
Decoder架构3

还可以看到decoder再第一步的multi-head基础上还加了一个mask,mask什么意思呢?


Decoder架构4

Mask是这样的,原来的self-attention需要先看所有输入再计算,加入mask可以,输出b1的时候只考虑a1的资讯,不考虑a234的资讯。产生b2的时候只考虑a1、a2的资讯,不考虑a3、a4。产生b3的时候只考虑a1、a2、a3,不考虑a4。


Mask1

矩阵运算时也一样,b2的计算只考虑a1、a2.


Mask2

Why mask?
因为Decoder的时候,a1、a2、a3、a4是顺次产生的,所以输出b2的时候还没有a3、a4,所以没办法像encoder一样计算全局。

Why mask

Decoder怎么决定输出长度?
可以设置一个END的符号来表示断。

END

Non-autoregressive (NAT)

NAT

NAT不是一次产生一个字,是一次产生整个句子。
怎么决定NAT decoder的输出的长度?
-解决1: 扔一个classifier去决定输出长度。
-解决2: 不管三七二之一先给N个begin,看哪里输出了END,END右边的输出就扔掉。
NAT的好处: 平行化;输出长度可控。


NAT decoder

Encoder和Decoder中间怎么传递?
传递靠刚刚Decoder遮住的部分叫cross-attention,它有2个输入来自encoder,有1个输入来自decoder。

Cross-attention

Encoder 输出a1、a2、a3,先有begin,再经过带mask的self-attention得到一个向量,乘上一个linear transform后得到query。a1、a2、a3得到三个k,q和三个k相乘得到attention score,接下来a1、a2、a3乘上v1、v2、v3,再把它vk sum(加权)加起来得到v,这个v再丢给fully-connect。


Cross-attention计算

Cross attention ref

seq2seq语音辨识
不同的cross方式

Training

比如翻译“机”这个字,正确答案是一个one-hot的vector,decoder的输出是一组probability,要做的就是使“机”的probability越接近1越好,也就是minimize cross entropy。
这个机制像分类问题。


Minimize cross entropy

现在就是希望所有output的cross entropy越小越好。
Decoder的输入就是正确答案,这个技术就是Teacher Forcing。
但是做测试的时候没有正确答案,那这中间的mismatch要怎么办?


Teacher forcing

训练的Tips

Tips1: Copy Mechanism
从输入里复制一些东西出来。
比如chat-bot复制user name。

Copy mechanismg

比如summarization提炼摘要


Summarization

Tips2: Guided Attention
有时候机器会犯一些低级错误。比如会漏掉部分输入,这时候可以强制机器看完全部的输入,这个技术就叫Guided Attention。
就是让机器以固定的attention模式学习。

Guided attention

Tips3: Beam Search
假设现在decoder只能输出2种输出A、B,每次就决定AB选哪一个,单次选分数比较高的那个。这个路径就叫Greedy Decoding。但是存在别的路径得到的结果比这个路径好的可能性,但是又没办法穷举所有路径,这时候就引入Beam Search技术。

Beam search

但是这个技术有时候有用,有时候没有用。
如果答案只有一种可能性,beam search比较有用,如果答案比较随机性,那就不太好用。比如语音合成、TTS。


Sampling

Optimizing Evaluation Metrics

validation的时候是考虑BLEU score,是算完一整句话再跟正确答案比较,但是训练的时候是minimize cross entropy,minimize cross entropy可以最大化BLEU score吗?
不一定。
那能不能训练的时候考虑BLEU score?没有那么容易,BLEU score很复杂,没法做微分和gradient descending。
有一个答案是:遇到optimize问题无法解决的时候,总是用reinforcement learning (RL)。


BLEU

Exposure Bias

前面提到的训练能看正确答案,测试的时候看不到正确答案导致的mismatch的问题就叫Exposure Bias。


Exposure bias

测试的时候因为没有正确答案,只要有一个错,就会一步错步步错。
解决:训练的时候加入一些错误的东西,这个技术叫Scheduled Sampling。


Scheduled sampling

我自己的Transformer总结:
Transformer解决Seq2Seq的任务,label输出数由机器自己决定,应用如台语语音翻译、语音合成、Chatbot、Q&A、句法解析、multi-label分类、object-detect等。Seq2Seq由encoder和decoder组成,Encoder输出跟输入相同长度的向量,transformer的encoder用的就是self-attention。Encoder的一个block是multi-head attention,Transformer的encoder的block的结构在self-attention和Fully-connection后面加(Residual connection [原输入+输出作为新输出]+ Layer norm)结构。Decoder最常见是Autoregressive结构,有begin和end符号决定开始结束,每一个单位的输出是softmax得到的distribution的最大值。Decoder在第一步的multi-head基础上还加了一个mask,意思是输出output的时候只看之前的输出结果不用看全局输出。Decoder还有一种Non-autoregressive (NAT)结构,不是一次一个字,可以平行化输出整个句子且长度可控。Transformer的Encoder和Decoder的传递靠Decoder中间的cross-attention (2个输入k、v来自encoder,1个输入q来自decoder)。Decoder的优化机制训练时是minimize cross entropy,测试时是BLEU score。训练的tips有Copy Mechanism、Guided Attention、Beam Search。训练的时候Decoder有正确答案,测试的时候没有,引起Exposure Bias,所以训练的时候加一些错误答案,这个技术叫Scheduled Sampling。

b站链接:https://www.bilibili.com/video/BV1JA411c7VT?p=13

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容