Star-Transformer

【精簡Transformer】Star-Transformer 

本文是復旦大學發表於NAACL 2019的工作。文章的主要貢獻在於精簡transformer,增強了在modestly size datasets上的表現。精簡思路非常清晰且具有可解釋性質,消解實驗和對比實驗也很有針對性。

 

摘要

雖然transformer在很多NLP任務上都取得了很大的成功,但是它的結構很重,注意力連接是完全連接的,這導致了它對大量訓練數據的依賴。爲了降低模型的複雜性,我們用星型拓撲結構代替了全連通結構。其中每兩個相鄰節點通過一個共享中繼節點進行連接。因此,複雜性從二次降低到線性,同時保留捕獲局部成分和長期依賴關係的能力。

 

介紹

star-transformer核心思想是通過將完全連接的拓撲結構移動到星型結構中來簡化體系結構
在全連通網絡中,基連接保持了非本地通信,消除了冗餘。環形連接體現了局域性優先,與CNNs/RNNs具有相同的作用。該方法的一個內在優點是,該方法不能有效地降低局部和非局部成分的無偏差學習負擔,提高了模型的泛化能力。有待測試的是,一個共享中繼節點是否能夠捕獲長期依賴關係。我們設計了一個模擬任務“掩蔽求和”來探測處理長期依賴關係的能力。通過引入虛擬中繼節點,實現了星形變壓器的圖形結構。根治性連接和環狀連接在局部性和非局部性之間提供了更好的平衡。星型轉換的實現完全基於與標準transformer相似的注意力機制,它更簡單,更適合並行計算。由於其較好的並行能力和較低的複雜度,星變換器比RNNs或變壓器速度快,特別是在長序列建模方面

模型model

星變壓器由一箇中繼節點和n個衛星節點組成。第i個衛星節點的狀態表示文本序列中第i個token的特徵。中繼節點充當虛擬的集線器,在所有衛星節點之間收集和散佈信息.星形變壓器是一種星形結構,其內部有徑向連接和環形連接兩種連接方式.

       (1) Radical connections 對於一個有n個衛星節點的網絡,有n個基本連接。每個連接都將一個衛星節點鏈接到共享中繼節點。在基連接中,每兩個不相鄰的衛星節點都是兩跳鄰居,可以通過兩步更新接收非本地信息。
Ring connections 由於文本輸入是一個序列,所以我們將這種先驗稱爲歸納偏差.因此,我們連接相鄰的衛星節點去捕捉局部成分之間的關係。第一個節點和最後一個節點也連接起來。請注意,環形連接允許每個衛星節點從其鄰居處收集信息,並對CNNs或雙向rns起相同的作用。
       (2) star-transformer 可以同時捕捉局部和非局部的成分,radical 連接捕捉非局部成分,ring 連接捕捉局部成分。

 

多頭注意力

給定一個向量H∈Rn×d的序列,我們可以使用查詢向量q∈R1×d,使用注意力軟選擇相關信息。

爲了從h中收集更多有用的信息,就像CNNs中的多通道一樣,我們可以使用k個頭部的多頭注意力。### 更新
令st∈R1×d, Ht∈Rn×d表示第t步中繼節點和所有n個衛星節點的狀態。:當使用StarTransformer編碼長度爲n的文本序列時,我們從其嵌入E = [e1;···;en]開始,其中ei∈R1×d爲第i個令牌的嵌入。我們用H0 = E和s0 = average(E)初始化狀態。star - transformeratstep的更新可分爲兩個階段:(1)衛星節點的更新(2)中繼節點的更新。在第一階段,衛星節點的狀態碼hi會從相鄰的節點更新,包括相鄰節點的hi - 1、hi+1,中繼節點st、它的前一狀態及其對應的token嵌入。

其中Ct i表示第i個衛星節點的上下文信息。:信息交換後,使用層歸一化操作 - 在第二階段,中繼節點st總結了所有衛星節點的信息及其之前的狀態

       (1) 通過交替更新衛星和中繼節點,星形變壓器最終捕獲輸入文本序列的所有局部和非局部成分

 

位置編碼

爲了合併序列信息,我們還添加了可學習的位置嵌入,它與token嵌入連接在一起,並在所有時間步驟中共享。### 輸出經過T輪更新,HT和sT的最終狀態可以用於序列標記和分類等各種任務。對於分類,我們通過在最後一層應用一個最大池並將其與sT混合,生成固定長度的句子級向量表示,該向量被送入一個多層感知器(MLP)分類器。對於序列標記任務,HT提供了與所有輸入標記對應的特性。

 

轉載自:https://blog.csdn.net/qq_40210472/article/details/89816528

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章