本筆記基于斯坦福大學(xué)2019年冬季CS224N最新課程:基于深度學(xué)習(xí)的自然語言處理,希望可以接觸到最前沿的進(jìn)展。
主要內(nèi)容
今天的主題是 Transformer。Transformer 不是變形金剛,但是比變形金剛更強(qiáng)大。這里暫時譯作變換器。
序列表征循環(huán)神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)注意力文本生成變換器編碼器自注意力解碼器自注意力殘差的重要性圖像生成概率圖像生成結(jié)合注意力和局部性音樂變換器音樂的原始表征音樂的語言模型音樂生成示例音樂中的自相似性平移不變性相對注意和圖消息傳遞神經(jīng)網(wǎng)絡(luò)總結(jié)和展望自注意力研究熱點遷移學(xué)習(xí)優(yōu)化和加大模型其他自注意力研究正在進(jìn)行未來展望下節(jié)預(yù)告閱讀更多
序列表征
機(jī)器學(xué)習(xí)之前的首要任務(wù)是了解數(shù)據(jù)集是什么結(jié)構(gòu),數(shù)據(jù)集是否對稱,模型是否具有歸納偏見來擬合數(shù)據(jù)集的這些屬性等等。
通過這一節(jié),我們會看到自注意力確實能夠模擬歸納偏見,而歸納偏見對解決問題是有用的。
循環(huán)神經(jīng)網(wǎng)絡(luò)
大多數(shù)據(jù)都是不等長數(shù)據(jù)。處理不等長數(shù)據(jù)的主力模型是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。RNN天生適合處理句子和像素序列。LSTM、GRU等變體是主要的RNN模型。
RNN
RNN通常按照順序接收一個字符串、一個句子甚至一個圖像,然后在每一步產(chǎn)生一個連續(xù)表征,這個連續(xù)表征匯總了這一步之前處理的所有信息。但是:
RNN必須等待上一步完成,才能繼續(xù)下一步。這不利于并行計算。(當(dāng)然并行計算越強(qiáng),也會吸納更多數(shù)據(jù),最后拖慢并行計算)
RNN很難把指代信息等各種長程、短程依賴信息擠壓到固定大小的向量中。
RNN無法對語言中的結(jié)構(gòu)層次進(jìn)行建模。
卷積神經(jīng)網(wǎng)絡(luò)
在自注意力(self-attention)之前,卷積序列模型(CNN)在某種程度上克服了以上部分困難。
CNN
CNN可以在每個位置同時運(yùn)用卷積,易于并行化。
CNN可以充分利用局部依賴關(guān)系
兩個位置之間的“交互距離”是線性或?qū)?shù)的
長程依賴通過增加網(wǎng)絡(luò)深度實現(xiàn)
注意力
編碼器和解碼器之間的注意力機(jī)制是神經(jīng)機(jī)器翻譯取得突破的關(guān)鍵部件。
注意力是基于內(nèi)容的記憶提取機(jī)制。
既然如此,為什么不將注意力用于表征學(xué)習(xí)?
下圖是注意力的大體框架:
自注意力
如果想重新表征某個單詞,可先將這個單詞與周圍所有單詞作比較,然后得到周圍所有單詞的加權(quán)組合,即所有信息的匯總。這就是注意力機(jī)制的原理。當(dāng)然還可以添加前饋層,計算新的特征。
文本生成
自注意力在文本生成中起到了很大作用。
注意力允許一個單詞直接與任何位置的單詞交互,任何兩個位置之間的路徑距離是固定的。
注意力通過softmax實現(xiàn)門控/乘法交互
注意力易于并行化
我們知道卷積序列到序列的文本生成已經(jīng)非常成功,那么注意力表征學(xué)習(xí)能否成為主力呢?
注意力在大型機(jī)器翻譯系統(tǒng)或大型文本生成系統(tǒng)中管用嗎?
變換器
變換器(Transformer)是自注意力的集大成者。
變換器
假如現(xiàn)在是英德翻譯。使用的是標(biāo)準(zhǔn)的編碼器-解碼器架構(gòu)。
編碼器側(cè):
首先是自注意力層,用于同步計算每個位置的表征。然后是前饋層。中間各層有殘差連接。這些結(jié)構(gòu)會重復(fù)若干次。
注意:改變單詞順序不會影響注意力的實際輸出。為了保持順序,需要增加位置表征。
解碼器側(cè):
首先是用自注意力模仿的語言模型。但是要掩蓋掉之后看見的位置。比如,第一個位置不能看見后續(xù)的位置。
然后是編碼器-解碼器注意力層(實際關(guān)注的是編碼器最后的注意力層和前饋層),重復(fù)若干層。最后是標(biāo)準(zhǔn)的交叉熵?fù)p失。
編碼器自注意力
那么如何計算注意力呢?
編碼器自注意力
假設(shè)現(xiàn)在要計算位置的表征。
首先對查詢()作線性變換。
然后對輸入的所有位置(鍵)作線性變換。
做點乘和softmax,最后計算所有這些位置的向量的凸組合。在凸組合之前,要對值作線性變換。
接著再作一次線性變換,整合這些信息,送入前饋層。
所有這些運(yùn)算可用兩個矩陣相乘表示,平方根系數(shù)是縮放因子,防止點乘爆炸。
解碼器自注意力
解碼器側(cè)大致相同。
解碼器自注意力
不同點是將掩蓋位置的logit設(shè)為非常大的負(fù)數(shù),讓這些位置的概率變成0。
注意力成本低廉!尤其當(dāng)維度遠(yuǎn)遠(yuǎn)大于長度時。
length=1000 dim=1000 kernel_width=3
注意力雖好,但仍有一個問題。在語言中,我們通常想知道主語、謂語和賓語。
假設(shè)現(xiàn)在運(yùn)用了一個卷積濾波器。實際上,根據(jù)相對位置,會有不同的線性變換。
比如綠色線性變換能從I的詞嵌入拾取主語信息;紅色線性變換能從kicked拾取謂語信息;藍(lán)色線性變換能從ball拾取賓語信息。如下圖所示:
卷積
但是單個注意力層不一樣,無法做到這一點。
自注意力:平均
注意力是凸組合,線性變換處處相同。注意力提供的是混合比例,無法從不同位置拾取不同信息。
假如現(xiàn)在有一個主語注意力層:
注意力頭:關(guān)注主語信息
注意力層相當(dāng)于特征檢測器。注意力承載著一個線性變換,會投射到關(guān)注句法的空間,比如關(guān)注主語或賓語的空間。
我們可以增加其他注意力層,也叫注意力頭,用于關(guān)注謂語信息:
注意力頭:關(guān)注謂語信息
還可以再增加注意力頭,用于關(guān)注賓語信息:
注意力頭:關(guān)注賓語信息
所有這些都可以并行完成。
平行注意力頭
為了提高效率,我們會降低注意力頭的維度。
如果注意力頭是位置的函數(shù),注意力幾乎可以模擬卷積。雖然增加了softmax,但計算量并未增加。因為中間有降維處理。
在機(jī)器翻譯中,變換器效果遠(yuǎn)超之前的方法。
變換器效果
但是這里的意思并不是說注意力架構(gòu)比LSTM具有更好的表現(xiàn)力。
理論證明,LSTM可以模擬任何函數(shù)。也許注意力架構(gòu)只是便于隨機(jī)梯度下降(SGD)。
有一點需要指出:注意力確實可以直接對任何兩個詞語之間的關(guān)系進(jìn)行建模。
殘差的重要性
在 變換器 架構(gòu)中,層與層之間都有殘差連接,并且只在模型輸入中加入位置信息,不會在每一層都注入位置信息。
如左圖所示,殘差可以帶來非常強(qiáng)的對角聚焦。
殘差的重要性
當(dāng)把殘差連接切斷時,得到的注意力分布如中間圖所示。顯然,沒有殘差就無法拾取到對角線。
殘差可以將位置信息攜帶至更高層,使后續(xù)層也有位置概念。
但如果切斷殘差,在每一層都添加位置信息,雖然不能準(zhǔn)確恢復(fù),但至少能在一定程度找回對角聚焦。如右圖所示。
所以殘差效果更好,殘差能更好地傳遞位置信息。
綜上,注意力可以模擬長短程關(guān)系,有利于文本生成。
圖像生成
在圖像和音樂中,我們經(jīng)常看到某些相似結(jié)構(gòu)或歸納偏見會不斷重復(fù)。
圖像中的自相似
這些主題會在不同尺度上重度。
在下面梵高的油畫中,這些球狀結(jié)構(gòu)就是自相似性。
梵高:繁星之夜
它們會不斷重復(fù),但又具有不同尺度。
音樂也是一樣,主題有時會立即重復(fù),有時會在后面重復(fù)。
音樂中的自相似
概率圖像生成
那么,注意力機(jī)制能否有助于生成圖像和音樂?
方法是沿用標(biāo)準(zhǔn)的圖像模型或概率圖像模型,并轉(zhuǎn)換成序列模型,相當(dāng)于圖像中的語言模型。
RNN(PixelCNN)和CNN(PixelRNN)都達(dá)到一流水平。融合門控機(jī)制的CNN與RNN不相上下。CNN由于并行化速度要快得多。
但是,對于圖像而言,長程依賴(如對稱性)也很重要,尤其隨著圖像尺寸不斷變大,其重要性也與日俱增。
用CNN模擬長程依賴需要:
增加層數(shù),這會增加訓(xùn)練難度
增大內(nèi)核,這會增加參數(shù)和計算代價
但是注意力能減少層數(shù),降低計算代價,同時獲得遙遠(yuǎn)像素之間的依賴關(guān)系。
1999 年 Efros 和 Leung 在訓(xùn)練集中找到自相似的像斑,然后用于補(bǔ)充信息。
紋理合成
這相當(dāng)于在做圖像生成。
實際上,歷史上真有一種圖像降噪的方法,叫非局部均值。如果要給下圖像斑p降噪,那么需要計算該像斑與圖像中其他像斑的相似度,然后據(jù)此拉取信息。如下圖所示:
非局部均值法
這里的底層邏輯是:圖像具有非常高的自相似性。
現(xiàn)在,我們可以直接套用編碼器自注意力機(jī)制,只需將詞向量換成像斑。如下圖所示:
圖像自注意力
這是一種可微的非局部均值法。
圖像變換器(Image Transformer)與之前的變換器結(jié)構(gòu)如出一轍。
圖像變換器
這里使用二維位置表征。
結(jié)合注意力和局部性
圖像拉平后,長度一般很長。即使32x32的圖像,拉平后也有1024像素,這限制了注意力機(jī)制。
簡單的辦法是像卷積一樣,使用局部窗口。由于圖像具有空間局部性,將注意力窗口限制在局部鄰域,仍然可以獲得較好的效果。
第二種方法是光柵化。
光柵化分成一維和二維。
在一維光柵化中,單個查詢塊沿著橫向?qū)τ洃泬K做注意力。
局部一維注意力
在二維光柵化中,仍然沿用標(biāo)準(zhǔn)的二維局部性,這實際上是在按塊生成圖像。
局部二維注意力
這些圖像變換器都非常類似:
圖像變形器層
下圖是非條件圖像生成模型效果對比:
非條件圖像生成
圖像變換器可以獲得更低的困惑度。但PixelSNAIL融合了卷積和注意力,所以效果超過了圖像變換器。之所以使用困惑度度量,是因為這些是概率模型,相當(dāng)于圖像中的語言模型。語言模型如何分解僅僅取決于如何光柵化。在一維光柵化中,先行后列。在二維光柵化中,先塊,然后在每塊內(nèi)光柵化。
如下圖所示,注意力可以很好地捕獲結(jié)構(gòu)化對象。雖然還沒有達(dá)到GAN的水平。
Cifar10樣本
在超清圖像生成中,需要大量條件信息,這時會鎖定不少模式,所以輸出端的選項會非常有限。
如下圖所示,變換器的圖像生成效果也好得多。可以得到更好的面部定位和結(jié)構(gòu)。下圖是不同溫度下的樣本。
CelebA超清圖像
圖像生成使用人工評測。變換器生成的假照片欺騙率差不多是之前成果的4倍。如下表所示:
CelebA超清圖像
當(dāng)然,這些成果與英偉達(dá)最新的GAN成果相比,簡直是小巫見大巫。沒辦法,起步晚,希望能趕上來。
這里的重點是兩個問題:
模型能否捕獲某些結(jié)構(gòu)?
模型能否提供多樣性?極大似然本質(zhì)上能提供多樣性。
于是設(shè)計了填圖任務(wù)。為什么是填圖任務(wù)?因為一旦確定一半圖像,實際上去掉了很多可能的模式。這樣更容易采樣。
在下圖中,第一列是模型輸入,最右側(cè)是真實圖片。
條件圖像生成
看第三行最左側(cè)這匹馬,乍一看,像是有人在拉。而模型輸出的某些圖像也確實有人影。模型,或者數(shù)據(jù)告訴模型要捕捉世界的某種結(jié)構(gòu)。
再看第四行的小狗。模型拒絕想像整個椅子。
可見,圖像生成仍然充滿困難。
音樂變換器(Music Transformer)
圖像有很多自相似,音樂也有很多自相似。
可以想見,變換器應(yīng)該也適用于音樂生成。接下來會對自注意力做個擴(kuò)展,即增加相對信息,以便用于音樂生成。
音樂的原始表征
先來看一看音樂的原始表征。
我們用語言作類比。
一段文本,經(jīng)朗讀后,會形成聲音。
音樂也是類似。
作曲家產(chǎn)生創(chuàng)意,寫下樂譜,演奏者演奏(顯示為MIDI鋼琴卷簾),再經(jīng)過合成器后,形成音樂。如下圖所示:
音樂生成分解
本節(jié)的主要關(guān)注點是樂譜,但其實是演奏。演奏是數(shù)字鋼琴的符號化表征。所以演奏的相關(guān)信息可以記錄下來。
音樂的語言模型
演奏RNN
具體而言,音樂序列模型的每一步輸出是打開音符、推進(jìn)時鐘、關(guān)閉音符諸如此類的動態(tài)信息。
傳統(tǒng)上都把音樂當(dāng)作語言進(jìn)行建模,因此大都使用循環(huán)神經(jīng)網(wǎng)絡(luò)。
但這涉及到大量的壓縮,需要將較長序列擠壓成固定長度的向量。如果音樂重復(fù)距離很長,這種擠壓就變得非常困難。
音樂生成示例
接下來分別給出RNN、變換器、音樂變換器生成的示例。先聽一聽有什么區(qū)別,然后介紹對變換器做的改進(jìn)。
給定的主題是肖邦練習(xí)曲片段:
起始主題
使用RNN做的生成:
RNN音樂生成
可以看到,在剛剛開始的時候,模型能夠能夠很好得重復(fù)主題,但很快就跑偏了。所以在經(jīng)過較長距離后,RNN對于過去的記憶越來越模糊。
接下來是變換器做的生成:
注意模型訓(xùn)練時的長度是所聽長度的一半,希望模型能對更長長度進(jìn)行泛化。
普通變換器音樂生成
可以看到,在開始的時候,模型能夠能夠很好得重復(fù)主題,但當(dāng)超出訓(xùn)練長度后,模型效果開始變差,不知道如何應(yīng)對更長的音樂背景。
最后是音樂變換器做的生成:
音樂變換器音樂生成
可以直觀地看到,模型能夠非常好得保持主題一致。
音樂中的自相似性
我們之前談到音樂的自相似性。從下面這張圖可以看到很多重復(fù)。
音樂中的自相似性
再看看自注意力結(jié)構(gòu),模型的確注意到了相關(guān)部分。
音樂變換器的片斷
灰色部分是主題出現(xiàn)的地方。不同顏色代表不同的注意力頭,這些注意力頭注意到了灰色部分。
下面是示例動畫,邊播放邊顯示預(yù)測時正在關(guān)注的音符。這種自注意力是音符級或事件級的。所以觀察時,會看到多個注意力頭在移動。
那么音樂變換器是怎么做到的?
普通的注意力機(jī)制相當(dāng)于過去歷史的加權(quán)平均。如下圖所示:
注意力:加權(quán)平均
注意力的優(yōu)點是,無論距離多遠(yuǎn),都能直接訪問。如果前面出現(xiàn)某個主題,那么后面可以根據(jù)相似度檢索到這些主題。但是這就像詞袋模型一樣,無法捕捉前后結(jié)構(gòu)。
因此人們提出位置正弦曲線,如下圖所示:
注意力:加權(quán)平均
這基本上是把索引放入不同移動速度的正弦曲線。距離近的位置具有相似的橫截面積。
相比之下,卷積則通過固定濾波器的滑動來捕捉相對距離。如下圖所示:
卷積:相對位置的不同線性變換
從某種程度而言,卷積就像一種剛性結(jié)構(gòu),可以明確地引入距離信息。
下面的多頭相對注意力則是以上的融合:
相對注意力:多頭注意力+卷積
一方面,可以直接訪問歷史。另一方面,又能把握這個歷史的相對關(guān)系,抓住平移不變性。音樂變換器之所以能根據(jù)起始樣本,生成連貫的音樂,是因為在某種程度上依賴了這種平移不變性,將相對信息向前傳遞。
通常,變換器對比的是查詢和鍵,得到的是自相似方陣。如下圖所示:
注意力
相對注意力則增加了一項,便于每次做對比時,考慮相距多遠(yuǎn)。
相對注意力
從英德翻譯來看,變換器有相對位置表征比無相對位置表征效果要好。
但在翻譯中,序列通常較短,可能只有50到100個單詞。但在剛才的音樂中,時間步達(dá)到了2000。由于要構(gòu)建下圖所示的三維張量,這非常耗內(nèi)存。
首先要計算相對距離,然后查找與之對應(yīng)的嵌入。這就有LxL的矩陣。另外還要在每個位置收集嵌入,即深度。這就是三維張量。
實際上,查詢和嵌入距離可以直接相乘,這時得到按相對距離排序的查詢,但是需要按鍵排序的查詢。我們只需做一系列的歪斜,使之變成右邊的配置。如下圖所示:
下圖是兩者內(nèi)存需求的差異:
其實很多情況下,真正的挑戰(zhàn)是提高內(nèi)存效率,以便建模更長的序列。
下面欣賞一段音樂變換器生成爵士樂:
總而言之,相對注意力是做音樂生成的強(qiáng)大機(jī)制,當(dāng)然它也有助于機(jī)器翻譯。
平移不變性
相對注意力在圖像中的作用類似于卷積,那就是實現(xiàn)了平移不變性。
例如,計算紅點的特征不依賴于狗在圖像中的位置,也就是不依賴于絕對位置。
卷積在平移不變性這方面做得非常好。
現(xiàn)在,相對注意力達(dá)到了完全相同、甚至更好的效果。
實現(xiàn)平移不變性對于圖像處理而言是非常重要的。
所以在圖像半監(jiān)督學(xué)習(xí)中運(yùn)用自注意力會是一個很好的方向。
相對注意和圖
相對注意力的另外一個用武之地是圖結(jié)構(gòu)。
設(shè)想下面的相似圖。紅邊代表公司的概念;藍(lán)邊代表水果的概念。
關(guān)系歸納偏見
蘋果占了兩種形式。
相對注意力
可以想象,相對注意力可以用來建模不同元素概念的相似度。
所以圖問題可以使用相對注意力。
消息傳遞神經(jīng)網(wǎng)絡(luò)
在圖方面,之前也有相關(guān)工作,被稱為消息傳遞神經(jīng)網(wǎng)絡(luò)。
量子化學(xué)中的神經(jīng)消息傳遞
如果看一看消息傳遞函數(shù),其實只是在兩個節(jié)點之間傳遞消息。
實際上,可以把自注意力看成全連接雙偶圖,并在節(jié)點之間傳遞消息。
自注意力和消息傳遞網(wǎng)絡(luò)的唯一不同之處在于:
消息傳遞網(wǎng)絡(luò)是在兩個節(jié)點之間傳遞消息,自注意力是在所有節(jié)點之間都有互動。
另外,消息傳遞論文還提出了多塔的概率,這和多頭注意力如出一轍。
多塔結(jié)構(gòu)
總結(jié)和展望
自注意力
總結(jié)一下,自注意力機(jī)制具有以下優(yōu)點:
任何兩個位置之間的路徑長度是固定的
具有無限記憶,無需將信息壓縮到有限固定空間
易于并行化
可以模擬自相似性
相對注意力有平移不變性,能夠建模時間、音樂和圖
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100761 -
cnn
+關(guān)注
關(guān)注
3文章
352瀏覽量
22213
原文標(biāo)題:變換器(Transformer)和自注意力(CS224N-2019-14)
文章出處:【微信號:gh_b11486d178ef,微信公眾號:語言和智能】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論