代碼地址:
還沒來得及寫硬梁,到時寫好會放在這里妈经。代碼會匹配上中文解釋跃脊。
摘要
目前占主導的序列轉換模型主要是復雜的循環(huán)神經(jīng)網(wǎng)絡或卷積神經(jīng)網(wǎng)絡踏揣,它包括了一個編碼器(encoder)和一個解碼器(decoder)。最好的執(zhí)行模型是通過注意力機制連接編碼器(encoder)和解碼器(decoder)匾乓。我們提出了一個新的并且簡單的網(wǎng)絡結構Transformer,它主要基于注意力機制捞稿,完全消除了循環(huán)和卷積神經(jīng)網(wǎng)絡。在兩個機器翻譯任務的實驗表明拼缝,這些模型在質量上更加優(yōu)越娱局,同時更具并行性和需要訓練的時間明顯減少。我們的模型在WMT 2014英譯德任務中達到28.4 BLEU咧七,改進了現(xiàn)有的最好結果衰齐,包括超過ensembles算法2BLEU。在WMT 2014英法翻譯任務中,在8個gpu訓練了3.5天后继阻,我們的模型建立了一個新的單模型最先進的BELU的分數(shù)為41.8分耻涛,這是文獻中最佳模型培訓成本的一小部分。通過將Transformer成功地應用于訓練數(shù)據(jù)量大且有限的英語選區(qū)分析瘟檩,我們證明了Transformer可以很好地推廣到其他任務中。
1 介紹
尤其是RNN,LSTM,GRU,在序列模型和轉換問題(如語言模型和機器翻譯)上已經(jīng)堅決確定了是最先進的技能方法卓研。從那以后奏赘,人們不斷地在努力突破循環(huán)語言模型和編碼器-解碼器架構的邊界太惠。
遞歸模型通常沿著輸入和輸出序列的符號位置進行因子計算。將位置與計算時間的步長對齊梁只,它們會生成一系列隱藏層,作為前一個隱藏狀態(tài)的函數(shù)
敛纲,以及位置的輸入t。這種固有的順序性排除了訓練示例中的并行化剂癌,這在較長的序列長度下變得至關重要淤翔,因為內存約束限制了跨示例的批處理。最近的工作通過因子分解技巧和條件計算在計算效率上取得了顯著的改進佩谷,同時也提高了后者的模型性能旁壮。然而,序列計算過程的基本限制仍然存在。
注意力機制已經(jīng)成為各種個樣的任務中必須引入序列模型和轉換模型的一部分谐檀,允許對依賴進行建模而不用考慮它們在輸入或輸出序列中的距離抡谐。然而,在少數(shù)情況下外的所有情況,這種注意力機制結合循環(huán)神經(jīng)網(wǎng)絡一起使用。
在本次工作中,我們提出了Transformer,一個完全避免重復出現(xiàn)的模型架構并且完全依賴于注意力機制來繪制輸入和輸出之間的全局依賴關系桐猬。用8個P00的GPU訓練了小12個小時后,Transformer可以實現(xiàn)更大的并行化和讓翻譯質量能夠達到最先進的水平麦撵。
2 背景
減少序列計算的目的而且為擴展神經(jīng)網(wǎng)絡的GPU和ByteNet還有ConvS2S奠定了基礎,所有都是用卷積神經(jīng)網(wǎng)絡來作為基本的構造塊(block)溃肪,并行計算所有輸入和輸出的位置隱含的表示免胃。在這些模型中,將來自兩個任意輸入或輸出的位置的信號關聯(lián)起來并且所需的操作數(shù)量隨著位置之間的距離而增加惫撰,CONVS2為線性羔沙,ByteNet為對數(shù)的。這樣會造成學習位置距離較遠的依賴關系更加困難厨钻。在Transformer中扼雏,將減少到一個固定的操作數(shù),即使這是以平均注意力的權重位置去減少有效的分辨率為代價的诗充,我們用多頭注意力來抵消這部分的影響。
自注意力,有時候叫內部注意力,是一種注意力機制励翼,為了計算序列的表示,將單個序列的不同位置聯(lián)系起來造烁。自注意力已經(jīng)成功地應用在多個任務中苗桂,包含閱讀理解,抽象摘要(將seq2seq模型應用在abstractive summarization任務上比較早期的論文)便锨,文本蘊涵(指兩個文本片段有指向關系)和學習任務無關的句子表征。
端到端的記憶網(wǎng)絡基于循環(huán)注意力機制吱殉,而不是順序一致的循環(huán),并且在簡單的語言問答和語言模型任務中表現(xiàn)良好沥阱。
然而,據(jù)我們所知崇棠,Transformer是第一個完全依賴自注意力去計算表示輸入和輸出的轉換模型而不使用序列對齊的循環(huán)神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡。
以下章節(jié)萎坷,我們會描述Transformer,和以下論文一樣說明自注意力的原因和討論我們模型的優(yōu)勢
? 論文:
? ? 1:?ukasz Kaiser and Ilya Sutskever. Neural GPUs learn algorithms. In International Conference on Learning Representations (ICLR), 2016.,Nal Kalchbrenner, Lasse Espeholt
? ? 2:Aaron van den Oord, Alex Graves, and Koray Kavukcuoglu. Neural machine translation in linear time. arXiv preprint arXiv:1610.10099v2,2017.
? ? 3:Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin. Convolutional sequence to sequence learning. arXiv preprint arXiv:1705.03122v2, 2017.
3 模型架構
大多數(shù)很好的神經(jīng)序列轉換模型都有一個編碼器-解碼器(encoder-decoder)的結構澳淑。這里,編碼器將符號表示的輸入序()列映射到連續(xù)表示序列Z=(
)氢拥。給定Z厘线,解碼器然后在一個時間生成一個元素符號輸出序列(
)渡讼。模型在每一步都是自回歸(auto-regressive),當生成下一步時,就會消費以前生成的符號作為額外的輸入蹬昌。
Transformer遵循這些整體架構,為編碼器和解碼器使用堆疊的自注意力(self-attention)逐點到全連接層明刷,分別如圖1的左右兩部分中。
3.1編碼器和解碼器堆棧(Encoder and Decoder Stacks)
編碼器(Encoder):
編碼器是由N=6個完全相同的堆棧組成挤聘。每個層有兩個子層。第一種是多頭自注意力結構添怔,第二種是簡單的位置全連接前饋網(wǎng)絡砾脑。我們在每兩個子層使用了殘差連接,然后進行層歸一化畅铭。也就是說,每個子層的輸出是層歸一化(LayerNorm(x + Sublayer(x))),其中Sublayer(x)是子層自己實現(xiàn)的函數(shù)炉擅。為了方便這些殘差網(wǎng)絡,模型中所有的子層和嵌入層一樣都產(chǎn)生維度輸出快鱼。
解碼器(Decoder):
解碼器仍然是由N=6個完全相同的堆棧組成。每個層有兩個子層柒莉。除了每個編碼層的兩個子層外,解碼器插入了第3個子層跨蟹,該子層對編碼器堆棧的輸出執(zhí)行多頭注意力。像編碼器一樣痢艺,我們對每個子層使用殘差連接色建,然后進行層歸一化。我們也修改了解碼器堆棧中的自注意力的子層陵吸,以防止位置對后續(xù)位置的影響。這是掩蔽(masking)旨指,結合輸出嵌入偏移一個位置的事實,確保位置i的預測只能依賴于位置小于i的已知輸出框都。
3.2 注意力(Attention)
一個注意力函數(shù)可以描述 查詢(query)和一組鍵值對(key-value)的映射輸出,其中谓罗,查詢(query)、鍵(key)、值(values)和輸出都是向量炊汹。輸出是作為值的加權總和計算的充甚,分配給每個值(values)的權重是查詢(query)相應的鍵(key)的兼容函數(shù)計算的津坑。
圖2:左邊的結構是按比例縮放的點積注意力(Scaled Dot-Product Attention)。右邊是多頭注意力(Multi-Head Attention)由多個并行運行注意力層組成穆役。
3.2.1 按比例縮放的點積注意力(Scaled Dot-Product Attention)
我們給我們特別的注意力機制叫"按比例縮放的點積注意力(Scaled Dot-Product Attention)"(圖2)耿币。輸入是由維度的查詢(queries)鍵(keys)和維度
的值(values)構成。我們計算了查詢(query)和所有的鍵(keys)的點積,每一個除以
塑悼,并且運用softmax函數(shù)去獲取值(values)的權重。
在實際操作中斑鸦,我們同時計算一組查詢(queries)注意力函數(shù)并且打包到矩陣中巷屿。鍵(keys)和值(values)也同時一起打包到矩陣
和
中。我們計算輸出的矩陣為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
兩個常用的注意力函數(shù)是加法注意力(additive attention)和點積注意力(dot-product (multi-plicative))浓冒。點積注意力(Dot-product attention)是和我們的算法完全相同的,除了的縮放因子场梆。加法注意力(Additive attention)使用了帶有一個隱藏層的前饋網(wǎng)絡計算兼容性函數(shù)(compatibility function)寞忿。雖然兩者在理論上的復雜度相似,但是點積注意力(dot-product attention)在實踐中是非撑祝快和省空間的,因為它可以使用高度優(yōu)化矩陣乘法的代碼來實現(xiàn)端逼。
對于較小的情況下,兩種機制的表現(xiàn)類似诲祸,在
比較大時,不需要縮放的加法注意力(additive attention)優(yōu)于點積注意力(dot product attention)歌憨。我們猜想
的值比較大時,點積增長的級別是巨大的心铃,從而將softmax函數(shù)推入到具有極小梯度的區(qū)域。為了抵消這種影響愉棱,我們點積乘
艾岂。
3.2.2 多頭注意力(Multi-Head Attention)
我們發(fā)現(xiàn)分別用次不同的查詢(queries)、鍵(keys)和值(values)學習了
和
維度上的線性預測是有利的叼耙,而不是用
-維度的鍵(keys)來執(zhí)行單一注意力函數(shù)。對于每一個查詢(queries)爽撒,鍵(keys)枫甲,值(values)的預測版本粱栖,我們并行地執(zhí)行attention函數(shù),產(chǎn)生
輸出值渣淤。這些被連接起來并再次預測,最終得到在圖2所示的值用踩。
多頭注意力允許模型能夠同時注意到在不同的位置不同的子空間的信息智什。如果只有一個注意力的頭晨川,就會求平均值來抑制這點愧怜。
預測是參數(shù)矩陣和
在這項工作中尘分,我們采用了h = 8個平行注意層或頭猜惋。對于每一項我們使用由于每個頭的維度減小了,與計算相關的總成本和滿維度的單頭注意力相似培愁。
3.2.3 注意力在我們模型中的應用(Applications of Attention in our Model)
Transformer以三種不同的方式使用多頭注意力:
? ? ? ? 第一種方式:在“編碼器-解碼器的注意力”層中著摔,查詢(queries)來自于之前的解碼器層,記憶的鍵(keys)和值(values)來自于編碼器的輸出定续。這會使解碼器中的所有位置都可以獲取到輸入序列的所有位置谍咆。這個模仿了序列到序列模型中典型的編碼器-解碼器注意力機制摹察,例如以下論文:
Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural machine translation by jointly learning to align and translate. CoRR, abs/1409.0473, 2014.
Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin. Convolu-tional sequence to sequence learning. arXiv preprint arXiv:1705.03122v2, 2017.
Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, et al. Google’s neural machine translation system: Bridging the gap between human and machine translation. arXiv preprint arXiv:1609.08144, 2016.
????????第二種方式:編碼器包含自注意力層。在自注意力層中,所有的鍵(keys)幽钢、值(values)尼变、查詢(queries)來自同一個地方,在本案例中束凑,是編碼器上一層的輸出拟烫。在每一個編碼器的位置中可以注意到編碼器的上一層的所有的位置公条。
? ? ? ? 第三種方式:類似的谒拴,解碼器中的自注意力層允許解碼器中的每個位置去注意到解碼層中的所有位置和該位置相恃。我們需要防止信息在解碼器中向左流動固翰,以保持自回歸特性。我們通過隱藏(mask)softmax的輸入的所有值和不同連接的值在內部使用縮放點積注意力呀非。參見圖2。
3.3? 位置全連接前饋網(wǎng)絡(Position-wise Feed-Forward Networks)
除了子層的注意力黑界,我們的編碼器和解碼器的每一層都包含一個完全連接前饋網(wǎng)絡项栏,該網(wǎng)絡分別和相同地應用于每個位置。這包括兩個線性轉換伏穆,中間有一個ReLU激活函數(shù)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
雖然在不同的位置上線性轉換是相同的筋粗,但它們在不同的層中使用不同的參數(shù)藕夫。另外一種描述是這是帶有兩個核大小為1卷積。輸入和輸出的維度是和內層的維度是
。
3.4 嵌入和Softmax(Embeddings and Softmax)
和其他的序列轉換模型類似姐叁,我們用學習過的的嵌入(embeddings)去將輸入的標記(tokens)和輸出的標記(tokens)轉換為向量維度。我們通常使用學習過的線性轉換和softmax函數(shù)去將解碼器的輸出轉換為預測下一個標記(token)的概率驹溃。在我們的模型中,我們在兩個嵌入層(embedding layers)和pre-softmax線性轉換之間分享相同的權重矩陣,類似于下面的論文。在嵌入層中(embedding layers)我們將這些權重乘以
Version:0.9StartHTML:0000000105EndHTML:0000000520StartFragment:0000000141EndFragment:0000000480Ofifir Press and Lior Wolf. Using the output embedding to improve language models. arXiv?Version:0.9StartHTML:0000000105EndHTML:0000000463StartFragment:0000000141EndFragment:0000000423preprint arXiv:1608.05859, 2016.
3.5 位置編碼(Positional Encoding)
因為我們的模型中不包含遞歸和卷積惧财,為了使模型能夠利用序列的順序施蜜,我們必須注入一些關于表1的相對或絕對位置的信息。表1:不同層的類型的最大路徑長度每層(per-layer)復雜度和最小順序操作數(shù)雌隅。n是序列的長度翻默,d是維度的表示,k是卷積核的大小和r是附近限制自注意力的大小恰起。
序列中的標記(tokens)修械。為此,我們將“位置編碼(positional encodings)”添加到編碼器和解碼器堆棧底部的輸入嵌入(embeddings)中检盼。位置編碼(positional encodings)有一個和嵌入(embeddings)相同維度的肯污,因此可以將兩者相加。位置編碼(positional encodings)有很多選擇,有學習的和固定的仇箱。
在本次任務中县恕,我們使用了不同的頻率的正弦(sine)和余弦(cosine)函數(shù):
其中是位置,
是維度。也就是說剂桥,位置編碼(positional encoding)的每一個維度都對應一個正弦曲線忠烛。波長從
到
的一個幾何級數(shù)。我們選擇這個函數(shù)是因為我們假設這可以讓模型更加容易學習去得到相對位置的關系权逗,因為對于任意固定偏移量
,
可以表示為
的線性函數(shù) 美尸。
我們還嘗試去使用學習過的位置嵌入(positional embeddings),發(fā)現(xiàn)兩個版本產(chǎn)生了幾乎相同的結果(見表3行(E))斟薇。我們選擇了正弦曲線的版本师坎,因為這會讓模型推斷序列比訓練中遇到的序列更長的序列長度。
4 為什么要自注意力(Why Self-Attention)
在這個章節(jié)堪滨,我們比較了自注意力層各方面與遞歸和卷積層進行比較胯陋。遞歸和卷積層通常用于將一個變量長度的符號表示序列映射到另一個等長序列
和
,例如典型序列轉換編碼器或解碼器中的隱藏層袱箱。激勵我們使用自注意力遏乔,我們考慮三個需求。
一個是每一層的總計算復雜度发笔。另一個是可以并行化的計算量盟萨,由所需的最小順序操作數(shù)來衡量。
第三個是網(wǎng)絡中遠程依賴關系之間的路徑長度了讨。在很多序列轉換的任務中捻激,學習遠程依賴(長依賴)是一個關鍵挑戰(zhàn)。影響學習這種依賴關系的能力的一個關鍵因素是信號在網(wǎng)絡中必須穿越的前向和后向路徑的長度前计。輸入和輸出序列中任意位置組合之間的路徑越短胞谭,學習長期依賴(長依賴)關系就越容易。因此残炮,我們也比較了由不同層類型組成的網(wǎng)絡中任意兩個輸入和輸出位置之間的最大路徑長度韭赘。
如表1所示,一個自注意力層(self-attention layer)用固定數(shù)量的順序執(zhí)行操作連接所有位置势就,而循環(huán)層需要個順序操作泉瞻。在計算復雜度方面,當序列長度
小于表示維數(shù)
時苞冯,自注意力層(self-attention layers)比 遞歸網(wǎng)絡層快袖牙,這是最常見的情況,在最先進的機器翻譯模型中使用的句子表征舅锄,例如字塊(ord-piece)和字節(jié)對(byte-pair)表示鞭达。提高涉及非常長的序列的任務的計算性能,自注意力(self-attention)可以被限制為只考慮輸入序列中以各自輸出位置為中心的大小為
的鄰域。這將增加最大路徑長度到
畴蹭。我們計劃在未來的工作中進一步研究這種方法坦仍。
核寬度為的單個卷積層并不連接所有的輸入和輸出位置對。在相鄰核的情況下叨襟,這樣做需要
個卷積層繁扎,或者
個卷積層,增加網(wǎng)絡中任意兩個位置之間的最長路徑長度糊闽。卷積層通常比遞歸層貴
倍梳玫。而可分離卷積則大大降低了卷積的復雜度,達到
右犹。然而提澎, 即使有
,可分離卷積的復雜性也等于自注意力層(self-attention layer)和位置全連接前饋網(wǎng)絡層(point-wise feed-forward layer)的結合念链,這是我們在模型中采用的方法盼忌。
作為附帶利益,自注意力(self-attention)可以產(chǎn)生更多可解釋的模型钓账。我們檢查了我們模型中的注意力分布碴犬,并在附錄中展示和討論了一些例子。不僅個別注意離頭清楚地學會了執(zhí)行不同的任務梆暮,許多注意力頭似乎表現(xiàn)出與句子的句法和語義結構有關的行為。
5 訓練(Training)
這張節(jié)描述了我們模型的訓練方法绍昂。
5.1 訓練數(shù)據(jù)和批處理(Training Data and Batching)
我們使用由450萬對句子組成的WMT2014英德標準數(shù)據(jù)集進行訓練啦粹。使用字節(jié)對編碼對句子進行編碼,該編碼具有大約37000個標記(tokens)的共享源-目標詞匯表窘游。對于英法兩種語言唠椭,我們使用了更大的WMT 2014英法數(shù)據(jù)集,其中包含3600萬個句子忍饰,并將標記(tokens)拆分為32000個單詞塊詞匯贪嫂。句子對按照近似的序列長度進行分組處理。每個訓練批包含一組句子對艾蓝,其中包含大約25000個源標記(tokens)和25000個目標標記(tokens)力崇。
5.2 硬件和時間(Hardware and Schedule)
我們在一臺機器帶有8個英偉達P100顯卡的機器上訓練我們的模型。對于使用本文中描述的超參數(shù)的基本模型赢织,每個訓練步驟大約需要0.4秒亮靴。我們對基本模型進行了總共10萬步或12小時的訓練。對于我們的大型模型(如表3所示)于置,步長為1.0秒茧吊。這些大型模型被訓練了30萬步(3.5天)。
5.3 優(yōu)化器(Optimizer)
我們對?,
和
使用了Adam優(yōu)化器。根據(jù)公式搓侄,我們在訓練過程中改變學習率:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
這對應于第一個預熱步驟(warmup_steps)和訓練步驟(training)去學習率線性增加瞄桨,然后與步驟數(shù)的平方根倒數(shù)成比例減少。我們使用讶踪。
5.4 正則化(Regularization)
在訓練過程中芯侥,我們使用了三種正則化方法(但是這里只有兩種):
殘差信息漏失(Residual Dropout)?我們將信息漏失(dropout)應用到每個子層的輸出,然后將其添加到子層的輸入并進行正則化俊柔。此外筹麸,我們在編碼器和解碼器堆棧中對嵌入(embeddings)和位置編碼的和應用了dropout。對于基礎模型雏婶,我們使用物赶。表2:在2014年英語-德語和英語-法語的最新測試中,Transformer比以前的最先進的模型取得了更好的BLEU分數(shù)留晚,而訓練成本僅為一小部分酵紫。
標簽平滑(Label Smoothing)?在訓練過程中,我們對值進行標簽平滑處理错维。這會有更大的困惑奖地,因為模型不確定學會了什么,但提高了準確性和BLEU得分赋焕。
6 結果(Results)
6.1 機器翻譯(Machine Translation)
在WMT 2014英語到德語的翻譯任務中参歹,大Transformer模型(表2中的transformer (big))比之前報道的最好的模型(包括合集)高出2.0 BLEU以上,建立了新的最先進的BLEU評分28.4隆判。該模型的配置列于表3的底部犬庇。對8個P100顯卡的訓練花了3.5天。甚至我們的基礎模型超過了所有以前發(fā)表的模型和集合侨嘀,而訓練成本只是任何競爭模型的一小部分臭挽。在WMT 2014英法翻譯任務中,我們的大模型獲得了41.0的BLEU分數(shù)咬腕,超過了之前發(fā)布的所有單個模型欢峰,而訓練成本不到之前最先進的模型的1/4。Transformer(大)模型的英語-法語訓練的dropout率涨共,而不是0.3纽帖。
對于基本模型,我們使用了通過平均最后5個檢查點(checkpoints)獲得的單個模型煞赢,這些檢查點每10分鐘編寫一次俯艰。對于大型模型抱慌,我們計算了最后20個檢查點(checkpoints)的平均值。我們使用波束大信醺恪(beam size)為4和長度懲罰為的波束搜索(beam search)。這些超參數(shù)是在開發(fā)的時候經(jīng)過實驗后選定的。我們在推理期間將最大輸出長度設置為輸入長度+ 50,但在可能的情況下盡早終止。
表2總結了我們的結果晨逝,并將我們的翻譯質量和培訓成本與文獻中的其他模型架構進行了比較。我們通過將訓練時間懦铺、使用的GPU數(shù)量和每個GPU的持續(xù)單精度浮點容量相乘捉貌,來估計用于訓練一個模型的浮點運算的數(shù)量。
6.2 模型的變化(Model Variations)
為了評估Transformer不同組件的重要性冬念,我們以不同的方式改變了我們的基本模型趁窃,并在開發(fā)的數(shù)據(jù)集(newstest2013)上測量了英語到德語翻譯的性能變化。我們使用了前一節(jié)所描述的波束搜索(beam search)急前,但沒有使用檢查點平均醒陆。我們在表3中展示了這些結果。
在表3行(A)中裆针,我們改變注意力頭(attention heads)的數(shù)量以及注意鍵(attention key)和值(value)維度刨摩,保持計算量不變,如章節(jié)3.2.2所述世吨。雖然單頭注意力比最好的設置差0.9BLEU澡刹,但過多的頭也會降低質量。
表3:Transformer架構的變化耘婚。未列出的值與基本模型的值相同罢浇。所有指標都在英德翻譯開發(fā)數(shù)據(jù)集(newstest2013)。根據(jù)我們的字節(jié)對編碼沐祷,列出的困惑是逐個詞塊(per-wordpiece)的己莺,不應該與逐個詞(per-word)困惑進行比較。
表4:Transformer很好地概括了英語選區(qū)解析(結果見WSJ數(shù)據(jù)集第23節(jié))
在表3行(B)中戈轿,我們觀察到降低注意力鍵(attention key)大小會影響模型質量。這表明確定兼容性并不容易阵子,一個比點積更復雜的兼容性函數(shù)可能是有益的思杯。我們在(C)和(D)行進一步觀察到,正如預期的那樣挠进,更大的模型更好色乾,并且dropout在避免過度擬合方面非常有幫助。在行(E)中领突,我們用學習過的位置嵌入替換正弦位置編碼暖璧,并觀察到與基模型幾乎相同的結果。
6.3 英語選區(qū)解析(English Constituency Parsing)
為了評估Transformer是否可以推廣到其他任務君旦,我們對英語分組解析進行了實驗澎办。項任務提出了具體的挑戰(zhàn):產(chǎn)出受到強烈的結構性限制嘲碱,而且明顯長于輸入。此外局蚀,循環(huán)神經(jīng)網(wǎng)絡(RNN)和序列到序列模型(sequence-to-sequence models)還不能在小數(shù)據(jù)區(qū)獲得最先進的結果麦锯。
我們在語料庫(Penn Treebank)上的數(shù)據(jù)集(Wall Street Journal (WSJ))部分訓練了一個的4層transformer,大約訓練了40K個句子琅绅。我們還在半監(jiān)督環(huán)境中訓練它扶欣,使用包含大約17M個句子的更大的高置信度和語料庫(BerkleyParser)。我們在數(shù)據(jù)集(WSJ)的設置中使用了16K個標示(tokens)詞匯表千扶,在半監(jiān)督設置中使用了32K個標示(tokens)詞匯表料祠。
我們只進行了少量的實驗來選擇dropout,注意力(attention)和殘差(residual)(第5.4節(jié))澎羞,在第22節(jié)開發(fā)數(shù)據(jù)集上的學習速率和束大兴枵馈(beam size),所有其他參數(shù)從英語到德語的基礎翻譯模型保持不變煤痕。在推理過程中梧宫,我們將最大輸出長度增加到輸入長度+300。我們使用beam size 為21和的光束大邪诘铩(beam size)的數(shù)據(jù)集(WSJ)和半監(jiān)督設置塘匣。
我們在表4中的結果表明,盡管缺乏特定任務的調優(yōu)巷帝,我們的模型在上表現(xiàn)得非常好忌卤,產(chǎn)生的結果比所有以前出現(xiàn)過的模型(除了循環(huán)神經(jīng)網(wǎng)絡語法)更好。
與循環(huán)神經(jīng)網(wǎng)絡(Rnn)和序列到序列模型(sequence-to-sequence models)相比楞泼,Transformer的性能優(yōu)于Berkeley-Parser(句法分析模型)驰徊,即使只使用數(shù)據(jù)集(WSJ)的40K句訓練集進行訓練。
7 結論(Conclusion)
在本工作中堕阔,我們提出了Transformer棍厂,這是第一個完全基于注意力的序列轉換模型,用多頭自注意力(multi-headed self-attention)架構替換了編碼器-解碼器架構中最常用的循環(huán)層超陆。對于翻譯任務牺弹,Transformer的訓練速度比基于循環(huán)或卷積層的體系結構快得多。在WMT 2014英語到德語和WMT 2014英語到法語的翻譯任務中时呀,我們都達到了一個新的水平张漂。在前一項任務中,我們的最佳模型甚至優(yōu)于之前所有的報告谨娜。
我們對基于注意力的模型的未來感到興奮航攒,并計劃將其應用到其他任務中。我們計劃將Transformer擴展到涉及文本以外的輸入和輸出模式的問題趴梢,并研究局部受限的注意力機制漠畜,以有效地處理圖像币他、音頻和視頻等大型輸入和輸出。減少產(chǎn)生順序是我們的另一個研究目標盆驹。
我們用來訓練和評估模型的代碼在 https://github.com/tensorflow/tensor2tensor圆丹。
感謝??我們感謝Nal Kalchbrenner和Stephan Gouws豐富的評論、更正和啟發(fā)躯喇。
參考文獻
[1] Jimmy Lei Ba, Jamie Ryan Kiros, and Geoffrey E Hinton. Layer normalization. arXiv preprint arXiv:1607.06450, 2016.
[2] Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural machine translation by jointly learning to align and translate. CoRR, abs/1409.0473, 2014.
[3] Denny Britz, Anna Goldie, Minh-Thang Luong, and Quoc V. Le. Massive exploration of neural machine translation architectures. CoRR, abs/1703.03906, 2017.
[4] Jianpeng Cheng, Li Dong, and Mirella Lapata. Long short-term memory-networks for machine reading. arXiv preprint arXiv:1601.06733, 2016.
[5] Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Fethi Bougares, Holger Schwenk, and Yoshua Bengio. Learning phrase representations using rnn encoder-decoder for statistical machine translation. CoRR, abs/1406.1078, 2014.
[6] Francois Chollet. Xception: Deep learning with depthwise separable convolutions. arXiv preprint arXiv:1610.02357, 2016.
[7] Junyoung Chung, ?aglar Gül?ehre, Kyunghyun Cho, and Yoshua Bengio. Empirical evaluation of gated recurrent neural networks on sequence modeling. CoRR, abs/1412.3555, 2014.
[8] Chris Dyer, Adhiguna Kuncoro, Miguel Ballesteros, and Noah A. Smith. Recurrent neural network grammars. In Proc. of NAACL, 2016.
[9] Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin. Convolutional sequence to sequence learning. arXiv preprint arXiv:1705.03122v2, 2017.
[10] Alex Graves. Generating sequences with recurrent neural networks. arXiv preprint arXiv:1308.0850, 2013.
[11] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 770–778, 2016.
[12] Sepp Hochreiter, Yoshua Bengio, Paolo Frasconi, and Jürgen Schmidhuber. Gradient flow in recurrent nets: the difficulty of learning long-term dependencies, 2001.
[13] Sepp Hochreiter and Jürgen Schmidhuber. Long short-term memory. Neural computation,9(8):1735–1780, 1997.
[14] Zhongqiang Huang and Mary Harper. Self-training PCFG grammars with latent annotations across languages. In Proceedings of the 2009 Conference on Empirical Methods in NaturalLanguage Processing, pages 832–841. ACL, August 2009.
[15] Rafal Jozefowicz, Oriol Vinyals, Mike Schuster, Noam Shazeer, and Yonghui Wu. Exploringthe limits of language modeling. arXiv preprint arXiv:1602.02410, 2016.
[16] ?ukasz Kaiser and Samy Bengio. Can active memory replace attention? In Advances in Neural Information Processing Systems, (NIPS), 2016.
[17] ?ukasz Kaiser and Ilya Sutskever. Neural GPUs learn algorithms. In International Conferenceon Learning Representations (ICLR), 2016.
[18] Nal Kalchbrenner, Lasse Espeholt, Karen Simonyan, Aaron van den Oord, Alex Graves, and Koray Kavukcuoglu. Neural machine translation in linear time. arXiv preprint arXiv:1610.10099v2,2017.
[19] Yoon Kim, Carl Denton, Luong Hoang, and Alexander M. Rush. Structured attention networks.In International Conference on Learning Representations, 2017.
[20] Diederik Kingma and Jimmy Ba. Adam: A method for stochastic optimization. In ICLR, 2015.
[21] Oleksii Kuchaiev and Boris Ginsburg. Factorization tricks for LSTM networks. arXiv preprintarXiv:1703.10722, 2017.
[22] Zhouhan Lin, Minwei Feng, Cicero Nogueira dos Santos, Mo Yu, Bing Xiang, Bowen Zhou, and Yoshua Bengio. A structured self-attentive sentence embedding. arXiv preprint arXiv:1703.03130, 2017.
[23] Minh-Thang Luong, Quoc V. Le, Ilya Sutskever, Oriol Vinyals, and Lukasz Kaiser. Multi-task sequence to sequence learning. arXiv preprint arXiv:1511.06114, 2015.
[24] Minh-Thang Luong, Hieu Pham, and Christopher D Manning. Effective approaches to attentionbased neural machine translation. arXiv preprint arXiv:1508.04025, 2015.
[25] Mitchell P Marcus, Mary Ann Marcinkiewicz, and Beatrice Santorini. Building a large annotatedcorpus of english: The penn treebank. Computational linguistics, 19(2):313–330, 1993.
[26] David McClosky, Eugene Charniak, and Mark Johnson. Effective self-training for parsing. InProceedings of the Human Language Technology Conference of the NAACL, Main Conference, pages 152–159. ACL, June 2006.
[27] Ankur Parikh, Oscar T?ckstr?m, Dipanjan Das, and Jakob Uszkoreit. A decomposable attentionmodel. In Empirical Methods in Natural Language Processing, 2016.
[28] Romain Paulus, Caiming Xiong, and Richard Socher. A deep reinforced model for abstractivesummarization. arXiv preprint arXiv:1705.04304, 2017.
[29] Slav Petrov, Leon Barrett, Romain Thibaux, and Dan Klein. Learning accurate, compact,and interpretable tree annotation. In Proceedings of the 21st International Conference onComputational Linguistics and 44th Annual Meeting of the ACL, pages 433–440. ACL, July 2006.
[30] Ofir Press and Lior Wolf. Using the output embedding to improve language models. arXiv preprint arXiv:1608.05859, 2016.
[31] Rico Sennrich, Barry Haddow, and Alexandra Birch. Neural machine translation of rare words with subword units. arXiv preprint arXiv:1508.07909, 2015.
[32] Noam Shazeer, Azalia Mirhoseini, Krzysztof Maziarz, Andy Davis, Quoc Le, Geoffrey Hinton,and Jeff Dean. Outrageously large neural networks: The sparsely-gated mixture-of-expertslayer. arXiv preprint arXiv:1701.06538, 2017.
[33] Nitish Srivastava, Geoffrey E Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdinov. Dropout: a simple way to prevent neural networks from overfitting. Journal of Machine Learning Research, 15(1):1929–1958, 2014.
[34] Sainbayar Sukhbaatar, Arthur Szlam, Jason Weston, and Rob Fergus. End-to-end memorynetworks. In C. Cortes, N. D. Lawrence, D. D. Lee, M. Sugiyama, and R. Garnett, editors,Advances in Neural Information Processing Systems 28, pages 2440–2448. Curran Associates,Inc., 2015.
[35] Ilya Sutskever, Oriol Vinyals, and Quoc VV Le. Sequence to sequence learning with neuralnetworks. In Advances in Neural Information Processing Systems, pages 3104–3112, 2014.
[36] Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens, and Zbigniew Wojna.Rethinking the inception architecture for computer vision. CoRR, abs/1512.00567, 2015.
[37] Vinyals & Kaiser, Koo, Petrov, Sutskever, and Hinton. Grammar as a foreign language. InAdvances in Neural Information Processing Systems, 2015.
[38] Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V Le, Mohammad Norouzi, WolfgangMacherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, et al. Google’s neural machinetranslation system: Bridging the gap between human and machine translation. arXiv preprint arXiv:1609.08144, 2016.
[39] Jie Zhou, Ying Cao, Xuguang Wang, Peng Li, and Wei Xu. Deep recurrent models with fast-forward connections for neural machine translation. CoRR, abs/1606.04199, 2016.
[40] Muhua Zhu, Yue Zhang, Wenliang Chen, Min Zhang, and Jingbo Zhu. Fast and accurate shift-reduce constituent parsing. In Proceedings of the 51st Annual Meeting of the ACL (Volume 1: Long Papers), pages 434–443. ACL, August 2013.
注意力可視化(Attention Visualizations)
圖3:在第6層的第5層中辫封,編碼器的遠程依賴的注意機制的一個例子。許多注意力集中在動詞making的遠程依賴關系上廉丽,完成詞組making…更加困難”倦微。這里只展示了“making”這個詞。不同的顏色代表不同的頭正压。最好的彩色觀看欣福。
圖4:兩個注意力頭(attention heads),也在第5層和第6層焦履,顯然解決了復雜的部分拓劝。上圖:注意力頭5。底部:將注意力從“its”這個單詞中分離出來嘉裤。注意郑临,對這個詞的關注非常強烈。
圖5:許多注意力頭(attention heads)表現(xiàn)出的行為似乎與句子的結構有關屑宠。我們在上面給出了兩個這樣的例子厢洞,來自6層的編碼器自我注意(self-attention)的兩個不同的頭。這些頭顯然學會了執(zhí)行不同的任務典奉。