白話文範例帶您了解Transformer核心原理: 從三個Multi-Head Attention角度出發

Why Transformer?

傳統RNN的架構是採用時序性的類神經網路進行自然語言的處理,這樣的方式就是透過時序方式一步一步解讀輸入的文字,彙整後再將編碼訊息傳遞到解碼器中,再得到最終輸出。

如果在輸入的文字長度很長的時候,由於需要一步一步解讀文字,部分的訊息會丟失掉,造成自然語言任務處理效果較差。

另外,因為時序性的類神經網路計算,需要一個接著一個計算,導致運算上並沒有辦法進行平行運算,導致整體運算效率較差。

傳統RNN在處理自然語言任務會有訊息丟失,且不能平行運算之問題

Google發表的創新文章,提出Transformer架構,就是可以解決上述傳統RNN的限制,其做法上在於不需要依賴原有RNN的架構,利用一個開創性的架構,就可突破傳統RNN限制,使得自然語言處理變的更有效,在計算上更有效率。

Transformer的產生可解決傳統RNN之限制,讓處理自然語言任務變得更有效,且在計算上可有效率

Transformer介紹

Transformer的架構相當複雜,一開始接觸到這個概念,為了避免混淆大家的理解,我們先講解Transformer比較核心的概念,讓大家簡單理解Transformer在做什麼事情。由於Transformer核心的概念就是來自於Attention機制,因此,我們就以此為出發點跟大家來做介紹。

整體Transformer的架構是在輸入的部分即為文字,輸入文字進來之後會進到編碼器當中,編碼器裡面有Multi-Head Attention的機制,經由attention計算之後,會將編碼訊息傳送到解碼器當中。另一方面,在解碼器部分也會在輸入端接收來自於先前產生的輸出訊息(我們在圖中稱為輸出往右移),就會進到Masked Multi-Head Attention的機制,處理完之後,就會在最上方的Multi Head Attention的部分彙整來自於編碼器的訊息以及來自於Masked Multi Head Attention的訊息,彙整完以後,我們即可得到輸出。上述提到的三個Attention機制就是Transformer裡面核心的概念,這三個Attention的機制可以1.讓自然語言處理任務上變得更有效,可以更關注在重要的訊息上面,也可以改善整體運算的效率。

Transformer的核心概念為Attention的機制
在Transformer的架構存在
1.編碼器有Multi-Head Attention
2.解碼器有Multi-Head Attention與Masked Multi-Head Attention

舉例來說,假設我們要實現中翻英的功能,輸入端為中文句子像是今天天氣非常晴朗,天空萬里無雲,經由Transformer的運算後,可得到最終輸出為The weather is very sunny today and the sky is cloudless。

假設我們要採用Transformer進行中文轉英文的翻譯
Transformer的輸入為中文句子,輸出為英文句子

編碼器Multi Head Attention

當我們輸入中文句子之後,在編碼器裡Multi-Head Attention的作用就是會去計算字詞與字詞之間的關聯性,才能讓我們了解哪些字詞是重要的,讓我們關注在那些重要的字詞上面。

舉例來說,當我們關注在天氣的字詞,就會將天氣的字詞與其他字詞互相對應,計算字詞之間的關聯性,像是天氣這個字詞,會跟天氣、非常晴朗萬里無雲比較關聯,代表講到天氣的字詞,我們就會較關注在這些字詞上。

編碼器Multi-Head Attention就是在建立字詞與字詞之間的關聯性,舉例來說,天氣這個詞會與天氣、非常晴朗、萬里無雲相關

接下來,會將句子裡面的字詞一一與不同的字詞互相對應,就會有字詞與字詞之間關聯性的訊息,像是講到天氣,會較關注在天氣、非常晴朗萬里無雲,講到天空,會較關注在天空、萬里無雲的字詞上。

編碼器Multi-Head Attention會針對句子裡面的字詞一一建立字詞與字詞之間的關聯性

解碼器Masked Multi Head Attention

在解碼器的部分也是一樣在尋找字詞與字詞之間的關聯性,在解碼器的輸入為輸出(往右移)這個意思是解碼器會接收來自於上個預測的輸出,舉例來說,第一個時刻就沒有解碼器輸入,第一個時刻會有解碼器輸出,之後第一時刻的解碼器輸出就會當作後一時刻解碼器的輸入,然後在預測後一個時刻的解碼器輸出。

在中翻英的例子,解碼器的輸入就是前個時刻的輸出也就是英文句子,這時候我們就會看這個句子裡面字詞與字詞之間的關聯性。

像是The weather這個詞會與The weather 、 is very sunny 、is cloudless,互相關聯。

在解碼器Masked Multi-Head Attention也是在建立字詞與字詞之間的關聯性,舉例來說, The weather這個詞會與The weather 、 is very sunny 、is cloudless相關

之後,會一一對每個字詞尋找關聯性,就可建立字詞與字詞之間關聯性的關係。講到the weather的部分就會關注在The weather 、 is very sunny 、is cloudless,依此類推。

解碼器Masked Multi-Head Attention會針對句子裡面的字詞一一建立字詞與字詞之間的關聯性

Masked的意思是在訓練的時候,我們會準備好許多中文與英文翻譯的例子,在輸入這些例子去訓練的時候,我們在解碼器輸入的部分,並不會真正輸入前一時刻的輸出,而是會直接輸入標準解答,也就是會將英文句子往右移,來表示解碼器可輸入先前的解碼器輸出。

這是因為在訓練的時候,假設在解碼器輸入是真正擷取上一個時刻的輸出,那麼有可能上一個時刻輸出預測錯的話,就會導致在訓練效果較差,因此,在訓練過程中,我們會採用標準解答來讓機器好好學習。

但是這樣會產生問題,也就是當我們翻譯到The weather的這個字詞時,就需要將The weather後面的字詞忽略掉,因為那些是未來的字詞,我們根本不應該考慮The weather與未來字詞的關聯性。

假設目前是翻譯到The weather這個詞,Masked的目的在於讓解碼器不要看到The weather之後的未來的字詞

解碼器Multi Head Attention

最終在上方的Multi Head Attention,是接收來自於編碼器的編碼訊息,以及來自於Masked Multi Head Attention的訊息,舉例來說,像是我們翻譯到The weather,就會將這個字詞丟到編碼訊息當中進行查詢。

解碼器的Multi-Head Attention將接收來自於編碼器的編碼訊息與Masked Multi-Head Attention訊息。
舉例來說,The weather這個詞將到編碼訊息(也就是中文字詞與字詞的關聯性)中查詢

查詢之後會發現The weather會與天氣很相關,然後我們又可以了解到天氣會與天氣、非常晴朗萬里無雲相關。天氣是本身自己的字詞就不要看,那非常晴朗的權重可能比較高的情況下,此時,機器就會比較關注在非常晴朗的字詞上面。

查詢之後會發現The weather這個詞會與天氣相近,與天氣較關聯的字詞就是天氣、非常晴朗、萬里無雲,在非常晴朗權重較高的情況下,就會較關注在非常晴朗的字詞

由於天氣與非常晴朗相關,綜合中文編碼訊息與當前翻譯英文字詞的結果,就會得到輸出為is very sunny,就可以完成中翻英的任務。

綜合中文編碼訊息與當前翻譯字詞The weather最終就會翻譯得到is very sunny的字詞,完成中翻英的任務

結論

透過Transformer的Attention的機制,因為可以有字詞與字詞關聯性,所以我們可以很清楚了解到在講到某個字詞的時候,需要關注哪些重要的字詞,這樣就能確保訊息是有效而且不丟失,使得在自然語言處理上效果會好。

另外,由於是直接採用關聯性的計算方式,並不用依照時序性的類神經網路來進行計算,因此,我們就可平行化計算,大幅縮短運算時間。

利用Transformer與傳統RNN相比的優點
1.有效傳遞編碼與解碼訊息,關注在需要關注的字詞上
2.平行化計算,縮短運算時間

[參考資料]:

1.Attention Is All You Need

[相似文章]:

1.Transformer介紹:為何它是現今NLP技術發展的基石?

[類神經網路基礎系列專文]:

1.類神經網路(Deep neural network, DNN)介紹

2.類神經網路—揭開網路架構調整秘辛

3.類神經網路—啟動函數介紹(一): 深入解析Relu與Sigmoid函數:如何影響類神經網路的學習效果?

4.類神經網路—啟動函數介紹(二): 回歸 vs. 分類: 線性函數與Tanh函數之原理探索

5.類神經網路—啟動函數介紹(三): 掌握多元分類的核心技術:不可不知的softmax函數原理

6.類神經網路—啟動函數介紹(四): 如何選擇最適當的啟動函數?用一統整表格讓您輕鬆掌握

7.類神經網路—前向傳播法

8.類神經網路—反向傳播法(一): 白話文帶您了解反向傳播法

9.類神經網路—反向傳播法(二): 淺談梯度

10.類神經網路—反向傳播法(三): 五步驟帶您了解梯度下降法

11.類神經網路—反向傳播法(四): 揭開反向傳播法神秘面紗

12.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法

13.類神經網路—反向傳播法(五): 用等高線圖讓您對學習率更有感

[機器學習基礎系列專文]:

1.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法

2.機器學習面臨的問題種類介紹:回歸與分類

[類神經網路延伸介紹]:

1.卷積類神經網路(Convolution neural network,CNN)介紹

2.遞迴類神經網路(Recurrent neural network,RNN)介紹

[ChatGPT系列專文]:

1.淺談最近非常火紅的ChatGPT背後可能原理機制為何?

2.從ChatGPT探索GPT的原理概念:少量數據的解方—遷移學習技巧