自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

“位置嵌入”:Transformer背后的秘密

譯文 精選
人工智能 深度學(xué)習(xí)
一篇解釋Transformer模型中 "位置嵌入 "背后的秘密,來自著名的研究論文--"注意力是你需要的一切"。

譯者 | 崔皓

審校 | 孫淑娟

目錄

  • 簡介
  • NLP中的嵌入概念
  • 需要在變形金剛中進(jìn)行位置嵌入
  • 各種類型的初始試錯實(shí)驗(yàn)
  • 基于頻率的位置嵌入
  • 總結(jié)
  • 參考文獻(xiàn)

簡介

深度學(xué)習(xí)領(lǐng)域中Transformer架構(gòu)的引入無疑為無聲的革命鋪平了道路,對于NLP的分支而言尤為重要。Transformer架構(gòu)中最不可或缺的就是“位置嵌入”,它使神經(jīng)網(wǎng)絡(luò)有能力理解長句中單詞的順序和它們之間的依賴關(guān)系。

我們知道,RNN和LSTM,在Transformer之前就已經(jīng)被引入,即使沒有使用位置嵌入,也有能力理解單詞的排序。那么,你會有一個明顯的疑問,為什么這個概念會被引入到Transformer中,并且如此強(qiáng)調(diào)這個概念的優(yōu)勢。這篇文章將會把這些前因后果給您娓娓道來。

NLP中的嵌入概念

嵌入是自然語言處理中的一個過程,用于將原始文本轉(zhuǎn)換為數(shù)學(xué)矢量。這是因?yàn)闄C(jī)器學(xué)習(xí)模型將無法直接處理文本格式,并將其用于各種內(nèi)部計算過程。

針對Word2vec、Glove等算法進(jìn)行的嵌入過程被稱為詞嵌入或靜態(tài)嵌入。

通過這種方式可以將包含大量單詞的文本語料庫傳遞到模型中進(jìn)行訓(xùn)練。該模型將為每個詞分配相應(yīng)的數(shù)學(xué)值,假設(shè)那些出現(xiàn)頻率較高的詞是相似的。在這個過程之后,得出的數(shù)學(xué)值將用于進(jìn)一步的計算。

比如說,考慮到我們的文本語料庫有3個句子,如下:

  • 英國政府每年向巴勒莫的國王和王后發(fā)放大量補(bǔ)貼,聲稱對行政管理有一定控制權(quán)。
  • 王室成員除了國王和王后之外,還包括他們的女兒瑪麗-特蕾莎-夏洛特(Madame Royale)、國王的妹妹伊麗莎白夫人、男仆克萊里和其他人。
  • 這被莫德雷德背叛的消息打斷了,蘭斯洛特沒有參與最后的致命沖突,他在國王和王后面前都活了下來,而圓桌的衰落也是如此。

在這里,我們可以看到“國王”和“皇后”這兩個詞經(jīng)常出現(xiàn)。因此,該模型將假設(shè)這些詞之間可能存在一些相似性。當(dāng)這些詞被轉(zhuǎn)化為數(shù)學(xué)值時,在多維空間中表示時,它們會被放在一個小的距離上。

圖片來源:由作者提供插圖

假設(shè)有另一個詞“路”,那么從邏輯上講,它不會像“國王”和“王后”一樣那么頻繁地出現(xiàn)在這個大型文本語料庫中。因此,這個詞將遠(yuǎn)離“國王”和“王后”并被遠(yuǎn)遠(yuǎn)地放在空間中的其他位置。

圖片來源:由作者提供插圖

在數(shù)學(xué)上,一個矢量是用一連串的數(shù)字來表示的,其中每個數(shù)字代表這個詞在某個特定維度上的大小。比如說:我們在這里把

因此,“國王”在三維空間中以[0.21,0.45,0.67]的形式表示。

詞 "女王 "可以表示為[0.24,0.41,0.62]。

詞 "Road "可以表示為[0.97,0.72,0.36]。

需要在Transformer中進(jìn)行位置嵌入

正如我們在介紹部分所討論的,對位置嵌入的需求是為了使神經(jīng)網(wǎng)絡(luò)理解句子中的排序和位置依賴性。

例如,讓我們考慮以下句子:

第1句--"雖然薩欽-坦杜爾卡今天沒有打出100分,但他帶領(lǐng)球隊(duì)獲得了勝利"。

第2句--"雖然薩欽-坦杜爾卡今天打出100分,但他沒能領(lǐng)球隊(duì)獲得了勝利"。

這兩個句子看起來很相似,因?yàn)樗鼈児蚕泶蟛糠值膯卧~,但它們的內(nèi)在含義卻非常不同。沒"這樣的詞的排序和位置已經(jīng)改變了傳達(dá)信息的背景。

因此,在NLP項(xiàng)目中,理解位置信息是非常關(guān)鍵的。如果模型僅僅使用多維空間中的數(shù)字而誤解了上下文,就會導(dǎo)致產(chǎn)生嚴(yán)重的后果,特別是在預(yù)測性模型中。

為了克服這一挑戰(zhàn),神經(jīng)網(wǎng)絡(luò)架構(gòu),如RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))和LSTM(長期短時記憶)被引入。在某種程度上,這些架構(gòu)在理解位置信息方面非常成功。他們成功背后的主要秘密是,通過保留單詞的順序來學(xué)習(xí)長句子。除此之外,它們還擁有關(guān)于離 "感興趣的詞 "很近的詞和離 "感興趣的詞 "很遠(yuǎn)的詞的信息。

比如說,請考慮以下句子--

"薩欽是有史以來最偉大的板球運(yùn)動員"。

圖片來源:由作者提供插圖

紅色下劃線的詞是這些詞的。在這里可以看到,"感興趣的詞 "是按照原文的順序來遍歷的。

此外,他們還可以通過記住

圖片來源:由作者提供插圖

雖然,通過這些技術(shù),RNN/LSTM可以理解大型文本語料庫中的位置信息。但是,真正的問題是對大型文本語料庫中的單詞進(jìn)行順序遍歷。想象一下,我們有一個非常大的文本語料庫,其中有100萬個詞,按順序遍歷每一個詞需要非常長的時間。有時,為訓(xùn)練模型承擔(dān)這么多的計算時間是不可行的。

為了克服這一挑戰(zhàn),引入了一個新的先進(jìn)架構(gòu)--"Transformer"。

Transformer架構(gòu)的一個重要特點(diǎn)是,可以通過并行處理所有詞來學(xué)習(xí)一個文本語料庫。無論文本語料庫包含10個詞還是100萬個詞,Transformer架構(gòu)并不關(guān)心。 

圖片來源:由作者提供插圖

圖片來源:由作者提供插圖

現(xiàn)在,我們需要面對并行處理單詞的挑戰(zhàn)了。因?yàn)樗械脑~都是同時訪問的,所以單詞之間的依賴性信息會丟失。因此,模型無法記住某一個特定單詞的的關(guān)聯(lián)信息也無法準(zhǔn)確地保存下來。這個問題再次將我們引向最初的挑戰(zhàn),即盡管模型的計算/訓(xùn)練時間大大減少,但仍要保留上下文的依賴關(guān)系。

那么如何解決上述問題呢?解決方案是

不斷試錯

最初,當(dāng)這個概念被引入時,研究人員非常渴望得出一種優(yōu)化的方法,可以在Transformer結(jié)構(gòu)中保留位置信息。作為試錯實(shí)驗(yàn)的一部分,嘗試的第一個方法是

在這里,我們的想法是在使用單詞向量的同時引入新的數(shù)學(xué)向量,該向量包含單詞的索引。

圖片來源:由作者提供插圖

假設(shè)下圖是詞語在多維空間中的代表

圖片來源:由作者提供插圖

在加入位置矢量后,其大小和方向可能會像下圖這樣改變每個單詞的位置。

圖片來源:由作者提供插圖

這種技術(shù)的缺點(diǎn)是,如果句子特別長,那么位置向量會按比例隨之增加。比方說,一個句子有25個單詞,那么第一個單詞將被添加一個幅度為0的位置向量,最后一個單詞將被添加一個幅度為24的位置向量。當(dāng)我們在更高的維度上投射這些數(shù)值時,這種巨大的不確定性可能會造成問題。

另一種用來減少位置向量的技術(shù)是

在這里,每個詞相對于句子長度的分?jǐn)?shù)值被計算為位置向量的幅度。

分?jǐn)?shù)值的計算公式為

價值=1/N-1

其中 "N "是某一特定詞的位置。

比如說,讓我們考慮如下圖的例子--

圖片來源:由作者提供插圖

在這種技術(shù)中,無論句子的長度如何,位置向量的最大幅度都可以被限定為1。但是,也存在一個很大的漏洞。如果比較兩個長度不同的句子,某個特定位置上單詞的嵌入值就會不同。特定的詞或其對應(yīng)的位置應(yīng)該在整個文本語料庫中擁有相同的嵌入值,以方便理解其上下文。如果不同句子中的同一個詞擁有不同的嵌入值,那么在一個多維空間中表示文本語料庫的信息將成為非常復(fù)雜的任務(wù)。即使實(shí)現(xiàn)了這樣一個復(fù)雜的空間,模型也很有可能由于過多的信息失真而在某一點(diǎn)上崩潰。因此,這種技術(shù)被排除在Transformer位置嵌入的發(fā)展之外了。

最后,研究人員提出了一個Transformer架構(gòu),并在著名的白皮書中提到--"注意力是你需要的一切"。

基于頻率的位置嵌入

根據(jù)這項(xiàng)技術(shù),研究人員推薦了一種基于波頻的文字嵌入方式,使用以下公式---

圖片來源:由作者提供插圖

"pos "是特定單詞在句子中的位置或索引值。

"d "是代表句子中某個特定單詞向量的最大長度/維度。

"i "代表每個位置嵌入維度的指數(shù)。它也表示頻率。當(dāng)i=0時,它被認(rèn)為是最高的頻率,對于隨后的數(shù)值,頻率被認(rèn)為是遞減的幅度。

圖片來源:由作者提供插圖

圖片來源:由作者提供插圖

圖片來源:由作者提供插圖

由于曲線的高度取決于X軸上所描述的單詞位置,所以曲線的高度可以作為單詞位置的代理。如果2個詞的高度相似,那么我們可以認(rèn)為它們在句子中的接近度非常高。同樣,如果兩個詞的高度相差很大,那么我們可以認(rèn)為它們在句子中的接近度很低。

根據(jù)我們的例子文本--"薩欽是一個偉大的板球運(yùn)動員"。

對于

pos = 0

d = 3

i[0] = 0.21, i[1] = 0.45, i[2] = 0.67  

在應(yīng)用公式的同時。

圖片來源:由作者提供插圖

當(dāng) i =0,

PE(0,0) = sin(0/10000^2(0)/3)

PE(0,0) = sin(0)

PE(0,0) = 0

當(dāng) i =1,

PE(0,1) = cos(0/10000^2(1)/3)

PE(0,1) = cos(0)

PE(0,1) = 1

當(dāng) 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  

在應(yīng)用公式的同時。

圖片來源:由作者提供插圖

當(dāng) i =0,

PE(3,0) = sin(3/10000^2(0)/3)

PE(3,0) = sin(3/1)

PE(3,0) = 0.05

當(dāng) i =1,

PE(3,1) = cos(3/10000^2(1)/3)

PE(3,1) = cos(3/436)

PE(3,1) = 0.99

當(dāng)i =2,

PE(3,2) = sin(3/10000^2(2)/3)

PE(3,2) = sin(3/1.4)

PE(3,2) = 0.03

圖片來源:由作者提供插圖

在這里,最大值將被限制在1(因?yàn)槲覀兪褂玫氖莝in/cos函數(shù))。因此,不存在早期技術(shù)中高量級位置向量的問題。

此外,彼此高度接近的詞在較低的頻率下可能落在相似的高度,而在較高的頻率下它們的高度會有一點(diǎn)不同。

如果詞與詞之間的距離很近,那么即使在較低的頻率下,它們的高度也會有很大的差異,而且它們的高度差異會隨著頻率的增加而增加。

比如說,考慮一下這句話--"國王和王后在路上行走"。

“國王"和 "路 "這兩個詞被放在較遠(yuǎn)的位置。

考慮到在應(yīng)用波頻公式后,這兩個詞的高度大致相似。當(dāng)我們達(dá)到更高的頻率(如0)時,它們的高度將變得更不一樣。

圖片來源:由作者提供插圖

圖片來源:由作者提供插圖

圖片來源:由作者提供插圖

而“國王"和 "王后"這兩個詞被放置在較近的位置。

這2個詞在較低的頻率(如這里的2)中會被放置在相似的高度。當(dāng)我們達(dá)到較高的頻率(如0)時,它們的高度差會增加一點(diǎn),以便進(jìn)行區(qū)分。

圖片來源:由作者提供插圖

但我們需要注意的是,如果這些詞的接近程度較低,當(dāng)向高頻率發(fā)展時,它們的高度將有很大的不同。如果單詞的接近度很高,那么當(dāng)向更高頻率發(fā)展時,它們的高度將只有一點(diǎn)點(diǎn)的差別。

總結(jié)

通過這篇文章,我希望你對機(jī)器學(xué)習(xí)中位置嵌入背后復(fù)雜的數(shù)學(xué)計算有一個直觀的了解。簡而言之,我們討論了從而實(shí)現(xiàn)某些目標(biāo)的需要。

對于那些對 "自然語言處理 "感興趣的技術(shù)愛好者來說,我認(rèn)為這些內(nèi)容對理解復(fù)雜的計算方法是有幫助的。更詳細(xì)的信息,可以參考著名的研究論文--"注意力是你所需要的一切"。

譯者介紹

崔皓,51CTO社區(qū)編輯,資深架構(gòu)師,擁有18年的軟件開發(fā)和架構(gòu)經(jīng)驗(yàn),10年分布式架構(gòu)經(jīng)驗(yàn)。

原文標(biāo)題:??Positional Embedding: The Secret behind the Accuracy of Transformer Neural Networks??,作者:Sanjay Kumar

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2020-04-15 13:55:28

Kubernetes容器

2010-10-25 10:13:16

ibmdwWebSphere

2013-03-01 10:45:36

Nike大數(shù)據(jù)

2010-05-24 18:22:56

SNMP協(xié)議

2010-11-29 10:28:32

云計算BigTable

2010-11-25 09:54:14

云計算MapReduce

2012-05-21 21:53:05

2017-09-18 08:52:34

2010-12-06 14:28:56

云計算Chubby

2010-11-25 10:05:51

云計算GFS

2011-02-17 09:45:40

云計算RPC框架

2023-11-07 08:28:08

GPT模型環(huán)境

2011-01-04 10:00:41

云計算YunTable

2021-12-30 11:30:13

人工智能機(jī)器學(xué)習(xí)技術(shù)

2010-07-29 10:20:35

JDK 7Java 7Java政治

2012-07-12 09:37:23

Instagram工程技術(shù)

2020-05-12 15:20:04

ifswitchJava

2019-09-03 18:16:44

Android 10Google長甜品

2015-10-19 09:43:11

facebookinternet.or天網(wǎng)

2014-06-19 13:27:09

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號