為什么說Transformer就是圖神經網絡?
作者 | Chaitanya Joshi
譯者 | Kolen
前言
有些工程師朋友經常問我這樣一個問題:“圖深度學習聽起來很棒,但是現在是否有非常成功的商業案例?是否已經在實際應用中部署?”
除了那些顯而易見的案例,比如Pinterest、阿里巴巴和Twitter公司部署的推薦系統,一個稍有細微差別的成功案例就是Transformer架構的實現,它在NLP行業引起了軒然大波。
通過這篇文章,我想建立起圖神經網絡(GNNs)和Transformers之間的聯系。具體來說,我將首先介紹NLP和GNN領域中模型架構的基本原理,然后使用公式和圖表來闡述兩者之間的聯系,最后將討論如何讓兩者協同運作來推動這方面的研究進展。
我們先來談談模型架構的目的——表示學習。
NLP的表示學習
從一個較高的層次來分析,幾乎所有的神經網絡結構都將輸入數據表示為向量(vectors)或者嵌入(embeddings)的形式,從而對數據中有用的統計和語義信息進行編碼。這些潛在或隱藏的表示方法可以用于執行一些有用的任務,例如對圖像進行分類或翻譯句子。其中,神經網絡通過接收反饋(通常是通過誤差(error)/損失(loss)函數)來學習如何構建越來越好的表示方法。
在自然語言處理(NLP)中,按照傳統方式,人們習慣將遞歸神經網絡(RNNs)以照序列的方式(即一個時間步對應一個單詞)來構建句子中每個單詞的表示。直觀地說,我們可以把RNN層想象成一個傳送帶,上面的字從左到右進行自回歸處理。最后,我們得到句子中每個單詞的一個隱藏特征,并將其傳遞到下一個RNN層或者用于我們選擇的NLP任務。
Transformers最初是用于機器翻譯領域,但是現在已經逐漸取代了主流NLP中的RNNs。該架構采用了一種全新的表示學習方法:完全拋棄了遞歸的方法,Transformers使用 注意力 機制構建每個詞的特征,從而找出句子中所有其他單詞對上述單詞的重要性。理解了這一關鍵點我們就能明白,單詞的更新特征僅僅是所有單詞特征的線性變換之和,這些特征是根據它們的重要性進行加權。
早在2017年,這個想法聽起來就非常激進,因為NLP界已經習慣了使用RNN處理文本的序列(每次一個單詞)的風格。這篇論文的標題可能是火上澆油!
Yannic Kilcher為此做了一個出色的視頻概述。
解析Transformer
讓我們通過將上一節內容轉述成數學符號和向量的語言來加深對這個架構的認識。如下所示,我們將句子
中第i 個詞的隱藏特征h從
層更新到
層:
其中,
表示句子中的詞匯集,而
是可以學習到的線性權重(分別表示注意力計算中的Query, Key 和 Value)。 句子中的每個單詞并行執行注意力機制,從而可以一次性獲得它們已更新的特征——這是Transformer相對RNNs的另一個加分點,它使得模型能夠逐字更新特征。
我們可以通過下面這張流程圖來更好地理解注意力機制:
輸入詞匯特征
和句子中其他詞匯集
,我們使用點積運算來計算出每對
的注意力權重
,接著對所有的進行softmax 運算。 最后,把所有的
相對應的權重
累加得到單詞i更新后的詞匯特征
。 句子中的每個單詞 都會并行地經歷相同的流程來更新 其特征。
多頭注意力機制
事實證明,要讓這種點積注意力機制起作用是很難的——如果隨機初始化處理得不好會使得整個學習過程失去穩定性。我們可以通過并行執行多個注意力“頭”并將結果連接起來(現在每個注意力頭都有單獨的可學習權重)來克服這個問題:
其中,
是第k個注意力頭的可學習的權 重,而
是一個向下的投影,用以匹配跨層的
和
的尺寸。
通過觀察上一層中隱藏特征的不同的變換過程以及方面,多頭機制允許注意力機制從本質上“規避風險”。關于這點,我們將在后面詳細討論。
尺度問題和前向傳播子層
促使形成最終形態的Transformer結構的關鍵問題是,注意機制之后的詞的特征可能在不同的尺度或重要性上:(1)這可能是由于某些詞在將其他詞的特征累加時具有非常集中或非常分散的注意力權重
。(2)在單個特征/向量輸入級別,跨多個注意力頭(每個可能會以不同的比例輸出值)進行級聯可以導致最終向量
的輸入具有一個大范圍的值。遵循傳統的機器學習思路,在上述流程中增加一個歸一化層似乎是一個合理的選擇。
Transformers使用LayerNorm克服了問題(2),LayerNorm在特征層級上進行歸一化并學習一種仿射變換。此外,通過求特征維度的平方根來縮放點積注意力有助于抵消問題(1)。
最后,作者提出了控制尺度問題的另一個“技巧”:具有特殊結構的考慮位置的雙層MLP。在多頭注意力之后,他們通過一個可學習的權重
將投影到一個更高的維度,在該維度中,
經過ReLU非線性變換,然后投影回其原始維度,然后再進行另一個歸一化操作:
說實話,我不確定超參數化前饋子層背后的確切理由是什么,似乎也沒有人對此提出疑問! 我認為LayerNorm和縮放的點積不能完全解決突出的問題,因此大型MLP是一種可以相互獨立地重新縮放特征向量的手段。
Transformer層的最終形態如下所示:
Transformer架構也非常適合非常深的網絡,使NLP界能夠在模型參數和擴展數據這兩方面進行延伸。每個多頭注意力子層和前饋子層的輸入和輸出之間的殘差連接是堆疊Transformer層的關鍵(但為了清楚起見,在上圖中省略了)。
GNNs構建圖的表示
我們暫時不討論NLP。
圖神經網絡(GNNs)或圖卷積網絡(GCNs)在圖數據中建立節點和邊的表示。它們是通過鄰域聚合(或消息傳遞)來實現的,在鄰域聚合中,每個節點從其鄰域收集特征,以更新其周圍的局部圖結構表示。通過堆疊多個GNN層使得該模型可以將每個節點的特征傳播到整個圖中,從其鄰居傳播到鄰居的鄰居,依此類推。
以這個表情符號社交網絡為例:由GNN產生的節點特征可用于預測性任務,例如識別最有影響力的成員或提出潛在的聯系。
在他們最基本的形式中,GNNs通過以下方法來更新節點i在
層的隱藏層特征h(例如,
- 免責聲明
- 本文所包含的觀點僅代表作者個人看法,不代表新火種的觀點。在新火種上獲取的所有信息均不應被視為投資建議。新火種對本文可能提及或鏈接的任何項目不表示認可。 交易和投資涉及高風險,讀者在采取與本文內容相關的任何行動之前,請務必進行充分的盡職調查。最終的決策應該基于您自己的獨立判斷。新火種不對因依賴本文觀點而產生的任何金錢損失負任何責任。