熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

"); //-->

博客專欄

EEPW首頁 > 博客 > 打通語言理論和統(tǒng)計(jì)NLP,Transformers/GNNs架構(gòu)能做到嗎?

打通語言理論和統(tǒng)計(jì)NLP,Transformers/GNNs架構(gòu)能做到嗎?

發(fā)布人:AI科技大本營 時(shí)間:2020-10-06 來源:工程師 發(fā)布文章

作者 | Chaitanya K. Joshi

譯者 | 蘇本如,責(zé)編 | 夕顏

我的工程師朋友經(jīng)常問我:圖深度學(xué)習(xí)聽起來很棒,但是有沒有實(shí)際應(yīng)用呢?

雖然圖神經(jīng)網(wǎng)絡(luò)被用于Pinterest、阿里巴巴和推特的推薦系統(tǒng),但一個(gè)更巧妙的成功案例是Transformer架構(gòu),它在NLP(Natural Language Processing ,自然語言處理)世界掀起了一場風(fēng)暴。

在這篇文章中,我嘗試在圖神經(jīng)網(wǎng)絡(luò)(GNNs)和Transformers之間建立一種聯(lián)系。我將討論NLP和GNN社區(qū)對于模型架構(gòu)背后的直覺,用方程和圖形建立兩者之間的聯(lián)系,并討論兩者如何合作來共同進(jìn)步。

讓我們從模型架構(gòu)的目的——表示學(xué)習(xí)(representation learning)開始。

01 NLP的表示學(xué)習(xí)

在較高的層次上,所有的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)都將輸入數(shù)據(jù)的“表示”構(gòu)建為嵌入向量,并對有關(guān)數(shù)據(jù)的有用統(tǒng)計(jì)和語義信息進(jìn)行編碼。這些潛在的或隱藏的“表示”可以用于執(zhí)行一些有用的操作,例如對圖像進(jìn)行分類或翻譯句子。神經(jīng)網(wǎng)絡(luò)通過接收反饋(通常是通過誤差/損失函數(shù))來學(xué)習(xí)構(gòu)建更好的“表示”。

對于自然語言處理(NLP),通常遞歸神經(jīng)網(wǎng)絡(luò)(RNNs)以順序的方式構(gòu)建句子中每個(gè)單詞的“表示”,即一次一個(gè)單詞。直觀地說,我們可以把一個(gè)RNN層想象成一個(gè)傳送帶,上面的文字從左到右進(jìn)行遞歸處理。最后,我們得到了句子中每個(gè)單詞的一個(gè)隱藏的特征,我們將其傳遞給下一個(gè)RNN層或用于我們選擇的NLP任務(wù)。

如果你想回顧一下RNNs和NLP的表示學(xué)習(xí),我強(qiáng)烈推薦Chris Olah的博客。

1.jpg

Transformers 最初是為機(jī)器翻譯而引入的,現(xiàn)在已經(jīng)逐漸取代了主流NLP中的RNNs。該架構(gòu)采用了一種全新的表示學(xué)習(xí)方法:完全不需要使用遞歸,Transformers使用一種注意力機(jī)制(attention mechanism)來構(gòu)建每個(gè)單詞的特征,以確定句子中所有其他單詞對前述單詞的重要性。了解了這一點(diǎn),單詞的更新特征就是所有單詞特征的線性變換的和,并根據(jù)其重要性進(jìn)行加權(quán)。

在2017年的時(shí)候,這種想法聽起來非常激進(jìn),因?yàn)镹LP社區(qū)已經(jīng)習(xí)慣了使用RNN處理文本的順序式方式(即一次一個(gè)單詞)。它的名字可能也起到了推波助瀾的作用。

 02 詳解Transformer

讓我們通過將前一段翻譯成數(shù)學(xué)符號和向量的語言來發(fā)展關(guān)于架構(gòu)的直覺。我們將句子S中第i個(gè)單詞的隱藏特征h從從第 ? 層更新到第 ?+1層,如下所示:

2.jpg

例如:

3.jpg

這里的:

4.jpg

其中j∈S表示句子中的詞集,、、是可學(xué)習(xí)的線性權(quán)重(分別表示注意力計(jì)算的Query、Key和Value)。

對于句子中的每個(gè)單詞,注意力機(jī)制是并行執(zhí)行的,以一個(gè)單詞一個(gè)單詞地方式獲得更新后的特征,這是RNNs上的Transformer的另一個(gè)優(yōu)點(diǎn):它逐詞逐詞地更新特征。

我們可以通過以下管道(pipeline)來更好地理解注意力機(jī)制:

1601961730199799.jpg

考慮到單詞的特征 和其他詞集的特征,通過向量點(diǎn)積計(jì)算每對(i,j)的注意力權(quán)重,然后對所有j的注意力權(quán)重執(zhí)行softmax運(yùn)算。最后。我們得到單詞i的最新特征。句子中的每個(gè)單詞都會并行地通過相同的管道來更新其特征。

03 多頭注意力機(jī)制

讓這個(gè)簡單的向量點(diǎn)積注意力機(jī)制發(fā)揮作用是很棘手的。因?yàn)殄e(cuò)誤的可學(xué)習(xí)權(quán)重的隨機(jī)初始化會使訓(xùn)練過程變得不穩(wěn)定。

我們可以通過并行執(zhí)行多個(gè)注意力“頭”并將結(jié)果串聯(lián)起來(讓每個(gè)“頭”現(xiàn)在都有獨(dú)立的可學(xué)習(xí)權(quán)重)來解決這個(gè)問題:

6.jpg

式中,7.jpg是第k個(gè)注意力頭的可學(xué)習(xí)的權(quán)重,是降維投影,以匹配跨層的8.jpg9.jpg的維度。

多個(gè)頭部允許注意力機(jī)制從本質(zhì)上“對沖****注”,可以從上一層觀察前一層隱藏特征的不同轉(zhuǎn)換或不同的方面。我們稍后會詳細(xì)討論。

04 規(guī)模大小問題

Transformer架構(gòu)的一個(gè)關(guān)鍵問題是,經(jīng)過注意力機(jī)制之后的單詞特征可能具有不同的規(guī)模和大小。這可能是由于在對一些單詞的其他單詞特征進(jìn)行求和的時(shí)候,這些單詞具有非常尖銳或非常分散的注意力權(quán)重。此外,在單個(gè)特征向量條目層面上,將多個(gè)注意力頭拼接在一起,每個(gè)注意力頭的輸出值可以在不同的尺度上,從而導(dǎo)致最終向量的值具有很寬的動(dòng)態(tài)值范圍。

按照傳統(tǒng)的機(jī)器學(xué)習(xí)(ML)的經(jīng)驗(yàn),這時(shí)候向pipeline中添加一個(gè)歸一化層似乎是合理的。

Transformer通過使用LayerNorm克服了第二個(gè)問題,LayerNorm在特征級別進(jìn)行規(guī)一化并學(xué)習(xí)仿射變換。此外,通過特征維度的平方根來調(diào)整向量點(diǎn)積注意力有助于解決第一個(gè)問題。

最后,Transformer的作者提出了另一個(gè)控制尺度問題的“技巧”:一個(gè)具有特殊結(jié)構(gòu)的基于位置排列的2層MLP。在多頭注意力之后,他們通過一個(gè)可學(xué)習(xí)的權(quán)重將投射到一個(gè)(荒謬的)更高的維度,在那里它經(jīng)歷了ReLU非線性后,再被投射回其原始維度,然后再進(jìn)行另一次歸一化:

10.jpg

老實(shí)說,我不確定這個(gè)過于參數(shù)化的前饋?zhàn)訉颖澈蟮拇_切直覺是什么。我想LayerNorm和scaled dot products并沒有完全解決前面提到的問題,所以大的MLP可以說是一種獨(dú)立地重新縮放特征向量的hack方法。根據(jù)Jannes Muenchmeyer的說法,前饋?zhàn)訉哟_保了Transformer是一個(gè)萬能逼近器。因此,投影到一個(gè)非常高的維度空間,經(jīng)歷一次ReLU非線性,然后重新投射到原始維度,使模型能夠比在隱藏層中保持相同維度時(shí)可以“表示”更多的功能。

Transformer層的最終結(jié)構(gòu)圖看起來是這樣的:

1601961871807523.jpg

Transformer架構(gòu)也非常適合深度學(xué)習(xí)網(wǎng)絡(luò),這使得NLP社區(qū)在模型參數(shù)和擴(kuò)展數(shù)據(jù)方面都能夠進(jìn)行擴(kuò)展。

每個(gè)多頭注意力子層和前饋?zhàn)訉拥妮斎牒洼敵鲋g的殘差連接是堆疊Transformer層的關(guān)鍵(但為了清晰起見,在圖中省略了)。

05 使用GNNs構(gòu)建圖的表示

現(xiàn)在,我們暫時(shí)先不討論NLP。

圖神經(jīng)網(wǎng)絡(luò)(GNNs)或圖卷積神經(jīng)網(wǎng)絡(luò)(GCNs)構(gòu)建圖數(shù)據(jù)中節(jié)點(diǎn)和邊的表示。它們通過鄰域聚合(或消息傳遞)來實(shí)現(xiàn)這一點(diǎn),每個(gè)節(jié)點(diǎn)從其鄰域收集特征,以更新其對周圍的局部圖結(jié)構(gòu)的表示。堆疊幾個(gè)GNN層使得模型能夠在整個(gè)圖中傳播每個(gè)節(jié)點(diǎn)的特征--從它的鄰居傳播到鄰居的鄰居,依此類推。

12.jpg

以這個(gè)表情符號社交網(wǎng)絡(luò)為例: GNN產(chǎn)生的節(jié)點(diǎn)特征可以用于預(yù)測任務(wù),例如:識別最有影響力的成員或提出潛在的聯(lián)系。

在其最基本的形式中,GNNs通過對第?層節(jié)點(diǎn)(比如說)自身特征的非線性變換,在每個(gè)相鄰節(jié)點(diǎn)j∈N(i)的特征的集合中加入節(jié)點(diǎn)自身特征的非線性變換,從而更新第?層節(jié)點(diǎn)i的隱藏特征h:

13.jpg

在這里,,是GNN層的可學(xué)習(xí)權(quán)重矩陣,σ是一個(gè)類似于ReLU的非線性變換函數(shù)。在本示例中, = { }。

鄰域節(jié)點(diǎn)j∈N(i)上的求和可以用其他輸入大小不變的聚合函數(shù)來代替,例如簡單的mean/max或更強(qiáng)大的函數(shù),比如基于注意力機(jī)制的加權(quán)求和函數(shù)。

這聽起來耳熟嗎?

也許一個(gè)pipeline(管道)將有助于實(shí)現(xiàn)連接:

14.jpg

如果我們將多個(gè)并行的鄰域頭進(jìn)行聚合,并用注意力機(jī)制(即加權(quán)和)代替鄰域j上的求和,加上歸一化和前饋MLP,看,我們就得到了一個(gè)圖Transformer!

06 句子是全連通的詞圖

為了使連接更加明確,可以將一個(gè)句子看作一個(gè)完全連通的圖,其中每個(gè)單詞都與其他每個(gè)單詞相連?,F(xiàn)在,我們可以使用GNN為圖(句子)中的每個(gè)節(jié)點(diǎn)(單詞)構(gòu)建特性,然后我們可以使用它執(zhí)行NLP任務(wù)。

15.jpg

廣義地說,這就是Transformers正在做的: 它們是具有以多頭注意力作為鄰域聚合函數(shù)的GNNs。而標(biāo)準(zhǔn)的GNNs從其局部鄰域節(jié)點(diǎn)j∈N(i)聚合特征,NLP的Transformer將整個(gè)句子S視為局部鄰域,在每一層聚合來自每個(gè)單詞j∈S的特征。

重要的是,各種特定于問題的技巧,-- 例如位置編碼、因果/屏蔽聚合、學(xué)習(xí)速率調(diào)度器和廣泛的預(yù)訓(xùn)練 -- 對Transformers 的成功至關(guān)重要,但在GNN社區(qū)中很少出現(xiàn)。同時(shí),從GNN的角度來看,Transformers可以啟發(fā)我們擺脫架構(gòu)中的許多華而不實(shí)的東西。

07 我們學(xué)到了什么?

句子都是全連通圖嗎?

既然我們已經(jīng)在Transformer和GNNs之間建立了聯(lián)系,讓我來談?wù)勔恍┫敕ā?/p>

首先,全連通圖是NLP的最佳輸入格式嗎?

在統(tǒng)計(jì)NLP和ML(機(jī)器學(xué)習(xí))流行之前,像Noam Chomsky這樣的語言學(xué)家專注于發(fā)展語言結(jié)構(gòu)的形式化理論,例如語法樹/圖。樹形長短期記憶網(wǎng)絡(luò)(Tree LSTMs)模型已經(jīng)被嘗試過了,但是否有可能Transformers/GNNs是可以將語言理論和統(tǒng)計(jì)NLP這兩個(gè)世界結(jié)合在一起的更好的架構(gòu)?例如,MILA(蒙特利爾學(xué)習(xí)算法研究所和斯坦福大學(xué)最近的一項(xiàng)研究探索了使用語法樹增強(qiáng)預(yù)訓(xùn)練的Transformer,如Sachan等人在2020年提出的基于Transformer的雙向編碼器表示( BERT)。

16.jpg

圖片來源: 維基百科

長期依賴性

全連通圖的另一個(gè)問題是,它們使得學(xué)習(xí)單詞之間的長期依賴關(guān)系變得困難。原因很簡單,這是因?yàn)閳D的邊數(shù)量和節(jié)點(diǎn)的數(shù)量成平方量級關(guān)系,即在一個(gè)有著n個(gè)單詞的句子中,Transformer/GNN將在對單詞的量級上進(jìn)行計(jì)算。對于非常大的n來說,這個(gè)計(jì)算規(guī)模大到無法控制。

NLP社區(qū)對長序列和依賴關(guān)系問題的看法很有趣:使注意力機(jī)制在輸入大小方面變得稀疏或自適應(yīng),在每一層中添加遞歸或壓縮,以及使用局部敏感哈希來獲得有效的注意力,這些都是可能使得Transformers變得更好的新想法。

看到來自GNN社區(qū)的想法加入其中是一件很有趣的事,例如用于句子圖稀疏化的二分法(BP- Binary Partitioning)似乎是另一種令人興奮的方法。BP-Transformers遞歸地將句子分為兩部分,直到它們能夠從句子標(biāo)記中構(gòu)造出一個(gè)分層二叉樹。這種結(jié)構(gòu)化的歸納偏置有助于模型以內(nèi)存級效率的方式處理較長的文本序列。

17.jpg

資料來源:Ye等人,2019年

Transformers正在學(xué)習(xí)“神經(jīng)語法嗎” ?

在一些有關(guān)Transformers學(xué)習(xí)的文章中,基本假設(shè)是Transformers對句子中的所有詞對進(jìn)行注意力計(jì)算,以確定哪些詞對是最有趣的,也就是能讓“Transformer”學(xué)習(xí)一些類似于特定任務(wù)語法的東西。在多頭注意力中,不同的頭也可以“觀察”不同的句法屬性。

用圖的術(shù)語來說,通過在全圖上使用GNN,我們能從GNN在每一層執(zhí)行鄰域聚合的方式恢復(fù)最重要的邊以及它們可能包含的內(nèi)容嗎?我還不太相信這個(gè)觀點(diǎn)。

18.jpg

資料來源:Clark等人, 2019

08 為什么是多頭注意力?為什么是注意力?

我更贊同多頭機(jī)制的優(yōu)化觀點(diǎn),即擁有多個(gè)注意力頭可以改進(jìn)學(xué)習(xí),并克服糟糕的隨機(jī)初始化。例如,這些論文表明,Transformer頭可以在訓(xùn)練后被“修剪”或移除,而不會對性能產(chǎn)生顯著影響。

多頭鄰域聚合機(jī)制在GNNs中也被證明是有效的,例如,GAT使用相同的多頭注意力,MoNet使用多個(gè)高斯核來聚合特征。雖然這些是為了穩(wěn)定注意力機(jī)制而發(fā)明的,但這些多頭技巧會成為擠出額外模型性能的標(biāo)準(zhǔn)嗎?

相反,具有簡單聚合函數(shù)(如sum或max)的GNN不需要多個(gè)聚合頭來進(jìn)行穩(wěn)定的訓(xùn)練。如果我們不必計(jì)算句子中每個(gè)詞對之間的配對兼容性,那對Transformers來說不是很好嗎?

Transformers能從完全擺脫注意力中獲益嗎?Yann Dauphin和合作者的最近工作提出了一種替代的ConvNet的架構(gòu)。Transformers也可能最終會做一些類似的事情。

19.jpg

資料來源:Wu等人,2019年

09 為什么Transformers的訓(xùn)練這么難?

閱讀最新的Transformer論文讓我覺得,訓(xùn)練這些模型需要一些類似于黑魔法的東西來確定最佳學(xué)習(xí)速率調(diào)度器、熱身策略和衰減設(shè)置。這可能只是因?yàn)槟P吞^龐大,而NLP的研究任務(wù)又太具有挑戰(zhàn)性了。

但是最近的結(jié)果表明,這也可能是因?yàn)闅w一化的具體排列和架構(gòu)內(nèi)的殘差連接所導(dǎo)致的。

我很喜歡閱讀最新的@DeepMind Transformer論文,但是訓(xùn)練這些模型為什么需要它樣的黑魔法呢?”對于基于單詞的語言模型(LM),我們使用了16,000個(gè)warmup-step和500,000個(gè)decay-step,并犧牲了9000個(gè)goat。”

https://t.co/dP49GTa4zepic.twitter.com/1K3Fx4s3M8

- Chaitanya K.Joshi(@chaitjo)于2020年2月17日

我知道自己過分激動(dòng)了,但這讓我提出疑問:我們真的需要多頭的昂貴的配對的注意力,過分參數(shù)化的MLP子層,和復(fù)雜的學(xué)習(xí)速度調(diào)度器嗎?

我們真的需要如此之大的模型嗎?對于手頭的任務(wù)來說,具有良好的歸納偏差的體系結(jié)構(gòu)不應(yīng)該更容易訓(xùn)練嗎?

原文鏈接:

https://thegradient.pub/transformers-are-graph-neural-networks/

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞:

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉