編碼器是Transformer體系結(jié)構(gòu)的基本組件。編碼器的主要功能是將輸入標記轉(zhuǎn)換為上下文表示。與早期獨立處理token的模型不同,Transformer編碼器根據(jù)整個序列捕獲每個token的上下文。
其結(jié)構(gòu)組成如下:

把它的工作流程分解成最基本的步驟:
步驟1 -輸入嵌入
嵌入只發(fā)生在最底部的編碼器中。編碼器首先使用嵌入層將輸入標記(詞或子詞)轉(zhuǎn)換為向量。這些嵌入捕獲符號的語義并將其轉(zhuǎn)換為數(shù)值向量。
所有編碼器接收一個向量列表,每個向量的大小為512(固定大?。?。在底部的編碼器中,這將是單詞嵌入,但在其他編碼器中,是直接在它們下面的編碼器的輸出。

步驟2 -位置編碼
由于transformer沒有像RNN那樣的遞歸機制,因此它們使用添加到輸入嵌入中的位置編碼來提供有關(guān)序列中每個標記的位置的信息。這使他們能夠理解每個單詞在句子中的位置。
為了做到這一點,研究人員建議使用各種正弦和余弦函數(shù)的組合來創(chuàng)建位置向量,使這種位置編碼器能夠用于任何長度的句子。在這種方法中,每個維度由波的唯一頻率和偏移量表示,其值范圍從-1到1,有效地表示每個位置。

步驟3 -編碼器層堆棧
Transformer編碼器由一堆相同的層組成(在原始Transformer模型中為6層)。
編碼器層用于將所有輸入序列轉(zhuǎn)換為連續(xù)的抽象表示,該表示封裝了從整個序列中學(xué)習到的信息。該層包括兩個子模塊:
一個完全連接的網(wǎng)絡(luò)。
此外,它結(jié)合了每個子層周圍的剩余連接,然后進行層規(guī)范化。

步驟3.1Multi-HeadSelf-Attention機制
在編碼器中,Multi-Headattention利用了一種特殊的attention機制,即Self-Attention。這種方法使模型能夠?qū)⑤斎胫械拿總€單詞與其他單詞關(guān)聯(lián)起來。例如,在給定的示例中,模型可能會學(xué)習將單詞“are”與“you”聯(lián)系起來。
這種機制允許編碼器在處理每個標記時專注于輸入序列的不同部分。它計算attention分數(shù)的基礎(chǔ)是:
查詢是一個向量,表示attention機制中輸入序列中的特定單詞或標記。
在attention機制中,鍵也是一個向量,對應(yīng)于輸入序列中的每個單詞或標記。
每個值都與一個鍵相關(guān)聯(lián),并用于構(gòu)造注意力層的輸出。當一個查詢和一個鍵匹配得很好,這基本上意味著它們有很高的attention分數(shù),相應(yīng)的值在輸出中被強調(diào)。
第一個Self-Attention模塊使模型能夠從整個序列中捕獲上下文信息。而不是執(zhí)行單一的attention功能,查詢,鍵和值是線性投影h次。在查詢、鍵和值的每個投影版本上,attention機制并行執(zhí)行,產(chǎn)生h維輸出值。
詳細架構(gòu)如下:

矩陣乘法——查詢和鍵的點積
一旦查詢、鍵和值向量通過線性層,在查詢和鍵之間執(zhí)行點積矩陣乘法,從而創(chuàng)建分數(shù)矩陣。
分數(shù)矩陣建立了每個單詞對其他單詞的強調(diào)程度。因此,在同一時間步長內(nèi),每個單詞相對于其它單詞被分配一個分數(shù)。分數(shù)越高,說明attention越集中。
這個過程有效地將查詢映射到相應(yīng)的鍵。

降低attention分數(shù)的大小
然后通過將分數(shù)除以查詢維度和關(guān)鍵向量的平方根來縮小分數(shù)。這一步的實現(xiàn)是為了確保更穩(wěn)定的梯度,因為值的乘法可能導(dǎo)致過大的影響。

將Softmax應(yīng)用于調(diào)整后的分數(shù)
然后,對調(diào)整后的分數(shù)應(yīng)用softmax函數(shù)得到關(guān)注權(quán)重。這導(dǎo)致概率值范圍從0到1。softmax函數(shù)強調(diào)高分,淡化低分,從而增強了模型有效判斷哪些詞應(yīng)該得到更多關(guān)注的能力。

結(jié)合Softmax結(jié)果與值向量
attention機制的下一步是將softmax函數(shù)的權(quán)重與值向量相乘,得到一個輸出向量。
在這個過程中,只有呈現(xiàn)高softmax分數(shù)的單詞被保留。最后,這個輸出向量被送入一個線性層進行進一步處理。

我們終于得到了attention機制的輸出!
所以,你可能想知道為什么它被稱為Multi-Headattention?
請記住,在所有進程開始之前,我們會中斷查詢、鍵和值h次。這個過程被稱為Self-Attention,在每個小階段中(heads)分別發(fā)生。每個head都獨立發(fā)揮其魔力,召喚出一個輸出向量。
這個整體經(jīng)過最后的線性層,就像一個過濾器,對集體表現(xiàn)進行微調(diào)。這里的美妙之處在于每個head的學(xué)習多樣性,豐富了編碼器模型,具有強大的和多方面的理解。
步驟3.2歸一化和殘留連接
編碼器層中的每個子層后面都有一個規(guī)范化步驟。此外,每個子層的輸出被添加到它的輸入(殘余連接),以幫助緩解梯度消失問題,允許更深入的模型。這個過程在前饋神經(jīng)網(wǎng)絡(luò)之后也會重復(fù)。

步驟3.3前饋神經(jīng)網(wǎng)絡(luò)
歸一化剩余輸出通過點向前饋網(wǎng)絡(luò)導(dǎo)航,這是額外細化的關(guān)鍵階段。
把這個網(wǎng)絡(luò)想象成兩個線性層,在它們之間有一個ReLU激活,作為一個橋梁。一旦處理完畢,輸出就會走上一條熟悉的路徑:它循環(huán)回去,并與點向前饋網(wǎng)絡(luò)的輸入合并。
這次團聚之后是另一輪歸一化,確保一切都調(diào)整得很好,并與下一步同步。

步驟4 -編碼器的輸出
最終編碼器層的輸出是一組向量,每個向量表示具有豐富上下文理解的輸入序列。然后將該輸出用作Transformer模型中解碼器的輸入。
這種編碼為解碼器鋪平了道路,指導(dǎo)它在解碼時注意輸入中的正確單詞。
可以把它想象成建造一座塔,在那里可以堆疊N個編碼器層。這個堆棧中的每一層都有機會探索和學(xué)習attention的不同方面,就像知識層一樣。這不僅使理解多樣化,而且可以顯著增強Transformer網(wǎng)絡(luò)的預(yù)測能力。
-
編碼器
+關(guān)注
關(guān)注
45文章
3883瀏覽量
141006 -
模型
+關(guān)注
關(guān)注
1文章
3622瀏覽量
51585 -
Transformer
+關(guān)注
關(guān)注
0文章
153瀏覽量
6771
原文標題:Transformer架構(gòu)詳細解析——編碼器
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
光電編碼器的工作原理
光電編碼器,光電編碼器的工作原理
編碼器工作原理和選型方法
拉線編碼器的工作原理
工作流程圖怎么用?有哪些繪制工作流程圖的軟件
基于transformer的編碼器-解碼器模型的工作原理
基于 Transformers 的編碼器-解碼器模型
神經(jīng)編碼器-解碼器模型的歷史
磁性直線編碼器工作原理
NX CAD軟件:數(shù)字化工作流程解決方案(CAD工作流程)
Transformer架構(gòu)中解碼器的工作流程

Transformer架構(gòu)中編碼器的工作流程
評論