譯者 | 崔皓
審校 | 孫淑娟
目錄
- 簡介
- NLP中的嵌入概念
- 需要在變形金剛中進行位置嵌入
- 各種類型的初始試錯實驗
- 基于頻率的位置嵌入
- 總結
- 參考文獻
簡介
深度學習領域中Transformer架構的引入無疑為無聲的革命鋪平了道路,對于NLP的分支而言尤為重要。Transformer架構中最不可或缺的就是“位置嵌入”,它使神經網絡有能力理解長句中單詞的順序和它們之間的依賴關系。
我們知道,RNN和LSTM,在Transformer之前就已經被引入,即使沒有使用位置嵌入,也有能力理解單詞的排序。那么,你會有一個明顯的疑問,為什么這個概念會被引入到Transformer中,并且如此強調這個概念的優勢。這篇文章將會把這些前因后果給您娓娓道來。
NLP中的嵌入概念
嵌入是自然語言處理中的一個過程,用于將原始文本轉換為數學矢量。這是因為機器學習模型將無法直接處理文本格式,并將其用于各種內部計算過程。
針對Word2vec、Glove等算法進行的嵌入過程被稱為詞嵌入或靜態嵌入。
通過這種方式可以將包含大量單詞的文本語料庫傳遞到模型中進行訓練。該模型將為每個詞分配相應的數學值,假設那些出現頻率較高的詞是相似的。在這個過程之后,得出的數學值將用于進一步的計算。
比如說,考慮到我們的文本語料庫有3個句子,如下:
- 英國政府每年向巴勒莫的國王和王后發放大量補貼,聲稱對行政管理有一定控制權。
- 王室成員除了國王和王后之外,還包括他們的女兒瑪麗-特蕾莎-夏洛特(Madame Royale)、國王的妹妹伊麗莎白夫人、男仆克萊里和其他人。
- 這被莫德雷德背叛的消息打斷了,蘭斯洛特沒有參與最后的致命沖突,他在國王和王后面前都活了下來,而圓桌的衰落也是如此。
在這里,我們可以看到“國王”和“皇后”這兩個詞經常出現。因此,該模型將假設這些詞之間可能存在一些相似性。當這些詞被轉化為數學值時,在多維空間中表示時,它們會被放在一個小的距離上。
圖片來源:由作者提供插圖
假設有另一個詞“路”,那么從邏輯上講,它不會像“國王”和“王后”一樣那么頻繁地出現在這個大型文本語料庫中。因此,這個詞將遠離“國王”和“王后”并被遠遠地放在空間中的其他位置。
圖片來源:由作者提供插圖
在數學上,一個矢量是用一連串的數字來表示的,其中每個數字代表這個詞在某個特定維度上的大小。比如說:我們在這里把
因此,“國王”在三維空間中以[0.21,0.45,0.67]的形式表示。
詞 "女王 "可以表示為[0.24,0.41,0.62]。
詞 "Road "可以表示為[0.97,0.72,0.36]。
需要在Transformer中進行位置嵌入
正如我們在介紹部分所討論的,對位置嵌入的需求是為了使神經網絡理解句子中的排序和位置依賴性。
例如,讓我們考慮以下句子:
第1句--"雖然薩欽-坦杜爾卡今天沒有打出100分,但他帶領球隊獲得了勝利"。
第2句--"雖然薩欽-坦杜爾卡今天打出100分,但他沒能領球隊獲得了勝利"。
這兩個句子看起來很相似,因為它們共享大部分的單詞,但它們的內在含義卻非常不同。沒"這樣的詞的排序和位置已經改變了傳達信息的背景。
因此,在NLP項目中,理解位置信息是非常關鍵的。如果模型僅僅使用多維空間中的數字而誤解了上下文,就會導致產生嚴重的后果,特別是在預測性模型中。
為了克服這一挑戰,神經網絡架構,如RNN(循環神經網絡)和LSTM(長期短時記憶)被引入。在某種程度上,這些架構在理解位置信息方面非常成功。他們成功背后的主要秘密是,通過保留單詞的順序來學習長句子。除此之外,它們還擁有關于離 "感興趣的詞 "很近的詞和離 "感興趣的詞 "很遠的詞的信息。
比如說,請考慮以下句子--
"薩欽是有史以來最偉大的板球運動員"。
圖片來源:由作者提供插圖
紅色下劃線的詞是這些詞的。在這里可以看到,"感興趣的詞 "是按照原文的順序來遍歷的。
此外,他們還可以通過記住
圖片來源:由作者提供插圖
雖然,通過這些技術,RNN/LSTM可以理解大型文本語料庫中的位置信息。但是,真正的問題是對大型文本語料庫中的單詞進行順序遍歷。想象一下,我們有一個非常大的文本語料庫,其中有100萬個詞,按順序遍歷每一個詞需要非常長的時間。有時,為訓練模型承擔這么多的計算時間是不可行的。
為了克服這一挑戰,引入了一個新的先進架構--"Transformer"。
Transformer架構的一個重要特點是,可以通過并行處理所有詞來學習一個文本語料庫。無論文本語料庫包含10個詞還是100萬個詞,Transformer架構并不關心。
圖片來源:由作者提供插圖
圖片來源:由作者提供插圖
現在,我們需要面對并行處理單詞的挑戰了。因為所有的詞都是同時訪問的,所以單詞之間的依賴性信息會丟失。因此,模型無法記住某一個特定單詞的的關聯信息也無法準確地保存下來。這個問題再次將我們引向最初的挑戰,即盡管模型的計算/訓練時間大大減少,但仍要保留上下文的依賴關系。
那么如何解決上述問題呢?解決方案是
不斷試錯
最初,當這個概念被引入時,研究人員非常渴望得出一種優化的方法,可以在Transformer結構中保留位置信息。作為試錯實驗的一部分,嘗試的第一個方法是
在這里,我們的想法是在使用單詞向量的同時引入新的數學向量,該向量包含單詞的索引。
圖片來源:由作者提供插圖
假設下圖是詞語在多維空間中的代表
圖片來源:由作者提供插圖
在加入位置矢量后,其大小和方向可能會像下圖這樣改變每個單詞的位置。
圖片來源:由作者提供插圖
這種技術的缺點是,如果句子特別長,那么位置向量會按比例隨之增加。比方說,一個句子有25個單詞,那么第一個單詞將被添加一個幅度為0的位置向量,最后一個單詞將被添加一個幅度為24的位置向量。當我們在更高的維度上投射這些數值時,這種巨大的不確定性可能會造成問題。
另一種用來減少位置向量的技術是
在這里,每個詞相對于句子長度的分數值被計算為位置向量的幅度。
分數值的計算公式為
價值=1/N-1
其中 "N "是某一特定詞的位置。
比如說,讓我們考慮如下圖的例子--
圖片來源:由作者提供插圖
在這種技術中,無論句子的長度如何,位置向量的最大幅度都可以被限定為1。但是,也存在一個很大的漏洞。如果比較兩個長度不同的句子,某個特定位置上單詞的嵌入值就會不同。特定的詞或其對應的位置應該在整個文本語料庫中擁有相同的嵌入值,以方便理解其上下文。如果不同句子中的同一個詞擁有不同的嵌入值,那么在一個多維空間中表示文本語料庫的信息將成為非常復雜的任務。即使實現了這樣一個復雜的空間,模型也很有可能由于過多的信息失真而在某一點上崩潰。因此,這種技術被排除在Transformer位置嵌入的發展之外了。
最后,研究人員提出了一個Transformer架構,并在著名的白皮書中提到--"注意力是你需要的一切"。
基于頻率的位置嵌入
根據這項技術,研究人員推薦了一種基于波頻的文字嵌入方式,使用以下公式---
圖片來源:由作者提供插圖
"pos "是特定單詞在句子中的位置或索引值。
"d "是代表句子中某個特定單詞向量的最大長度/維度。
"i "代表每個位置嵌入維度的指數。它也表示頻率。當i=0時,它被認為是最高的頻率,對于隨后的數值,頻率被認為是遞減的幅度。
圖片來源:由作者提供插圖
圖片來源:由作者提供插圖
圖片來源:由作者提供插圖
由于曲線的高度取決于X軸上所描述的單詞位置,所以曲線的高度可以作為單詞位置的代理。如果2個詞的高度相似,那么我們可以認為它們在句子中的接近度非常高。同樣,如果兩個詞的高度相差很大,那么我們可以認為它們在句子中的接近度很低。
根據我們的例子文本--"薩欽是一個偉大的板球運動員"。
對于
pos = 0
d = 3
i[0] = 0.21, i[1] = 0.45, i[2] = 0.67
在應用公式的同時。
圖片來源:由作者提供插圖
當 i =0,
PE(0,0) = sin(0/10000^2(0)/3)
PE(0,0) = sin(0)
PE(0,0) = 0
當 i =1,
PE(0,1) = cos(0/10000^2(1)/3)
PE(0,1) = cos(0)
PE(0,1) = 1
當 i =2,
PE(0,2) = sin(0/10000^2(2)/3)
PE(0,2) = sin(0)
PE(0,2) = 0
對于
pos = 3
d = 3
i[0] = 0.78, i[1] = 0.64, i[2] = 0.56
在應用公式的同時。
圖片來源:由作者提供插圖
當 i =0,
PE(3,0) = sin(3/10000^2(0)/3)
PE(3,0) = sin(3/1)
PE(3,0) = 0.05
當 i =1,
PE(3,1) = cos(3/10000^2(1)/3)
PE(3,1) = cos(3/436)
PE(3,1) = 0.99
當i =2,
PE(3,2) = sin(3/10000^2(2)/3)
PE(3,2) = sin(3/1.4)
PE(3,2) = 0.03
圖片來源:由作者提供插圖
在這里,最大值將被限制在1(因為我們使用的是sin/cos函數)。因此,不存在早期技術中高量級位置向量的問題。
此外,彼此高度接近的詞在較低的頻率下可能落在相似的高度,而在較高的頻率下它們的高度會有一點不同。
如果詞與詞之間的距離很近,那么即使在較低的頻率下,它們的高度也會有很大的差異,而且它們的高度差異會隨著頻率的增加而增加。
比如說,考慮一下這句話--"國王和王后在路上行走"。
“國王"和 "路 "這兩個詞被放在較遠的位置。
考慮到在應用波頻公式后,這兩個詞的高度大致相似。當我們達到更高的頻率(如0)時,它們的高度將變得更不一樣。
圖片來源:由作者提供插圖
圖片來源:由作者提供插圖
圖片來源:由作者提供插圖
而“國王"和 "王后"這兩個詞被放置在較近的位置。
這2個詞在較低的頻率(如這里的2)中會被放置在相似的高度。當我們達到較高的頻率(如0)時,它們的高度差會增加一點,以便進行區分。
圖片來源:由作者提供插圖
但我們需要注意的是,如果這些詞的接近程度較低,當向高頻率發展時,它們的高度將有很大的不同。如果單詞的接近度很高,那么當向更高頻率發展時,它們的高度將只有一點點的差別。
總結
通過這篇文章,我希望你對機器學習中位置嵌入背后復雜的數學計算有一個直觀的了解。簡而言之,我們討論了從而實現某些目標的需要。
對于那些對 "自然語言處理 "感興趣的技術愛好者來說,我認為這些內容對理解復雜的計算方法是有幫助的。更詳細的信息,可以參考著名的研究論文--"注意力是你所需要的一切"。
譯者介紹
崔皓,51CTO社區編輯,資深架構師,擁有18年的軟件開發和架構經驗,10年分布式架構經驗。
原文標題:??Positional Embedding: The Secret behind the Accuracy of Transformer Neural Networks??,作者:Sanjay Kumar