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

通過NMT訓練的通用語境詞向量:NLP中的預訓練模型?

開發(fā) 開發(fā)工具
本文先描述了如何訓練一個帶注意力機制的神經機器翻譯,其次描述了如何抽取該模型的通用詞向量與將其應用于其它任務的性能。

自然語言處理(NLP)這個領域目前并沒有找到合適的初始化方法,它不能像計算機視覺那樣可以使用預訓練模型獲得圖像的基本信息,我們在自然語言處理領域更常用的還是隨機初始化詞向量。本文希望通過 MT-LSTM 先學習一個詞向量,該詞向量可以表征詞匯的基本信息,然后再利用該詞向量輔助其它自然語言處理任務以提升性能。本文先描述了如何訓練一個帶注意力機制的神經機器翻譯,其次描述了如何抽取該模型的通用詞向量與將其應用于其它任務的性能。

對于自然語言處理中的大多數問題而言,理解語境是很有必要的。為了生成一句英文的德語翻譯,翻譯模型需要理解英文句子中的單詞是如何組織在一起的。為了知道哪些單詞是最重要的,文本摘要模型也需要語境。執(zhí)行語義情感分析的模型需要理解如何挑選出能夠改變一句話的情感的關鍵詞。問答模型依賴于對「問題中的詞匯分布如何改變答案中的詞匯分布」的理解。因為這些模型都需要理解語境是如何影響一個單詞的意思的,所以,只要能夠與一個學會了如何將單詞語境化的模型相結合,上述每個模型都能夠從中獲益。

一、在自然語言處理(NLP)中模仿 IMAGENET-CNN 模式

機器視覺在尋求可重用的表征方面比自然語言處理更加成功。在大型圖像分類數據集 ImageNet 上訓練的深度卷積神經網絡(CNN)經常被用作其他模型的組成部分。為了將圖像分類做得更好,卷積神經網絡通過逐漸構建一個更加復雜模型,而去理解像素是如何與其他像素關聯的。模型可以在這些表征的基礎上去解決看圖說話問題、人臉識別問題以及目標檢測問題,而不是一切都從零開始。自然語言處理也應該做一些類似的表征去解決單詞和語境之間的關聯。

為了教會神經網絡理解單詞在語境中的含義,我們首先教它如何將英文翻譯成德語。然后,我們展示了可以重用該翻譯任務的神經網絡就像模仿機器視覺中在 ImageNet 上訓練卷積神經網絡的方式那樣。我們是這樣來做的:通過將神經網絡的輸出(也就是我們所說的語境向量(CoVe))作為其它自然語言處理任務的神經網絡的新輸入。在我們的實驗中,給這些網絡提供 CoVe 的情況總會改善模型的性能,這十分令我們振奮,所以所以我們公布了這個能夠生成 CoVe 的可訓練神經網絡,以進一步探索自然語言處理中的可重用表征。

二、詞向量

今天大多數用于自然語言處理的深度學習模型都依賴詞向量來代表單個單詞的含義。對于不太熟悉這領域的人而言,可以這樣簡單的理解:我們把每一種語言中的每一個單詞都與一串被叫做向量的數字聯系起來了。

深度學習中將單詞表示成向量是很普遍的情況

圖 1

圖 1是深度學習中將單詞表示成向量是很普遍的情況。深度學習模型以詞向量序列的形式讀取序列化的單詞,而不是以文本的形式。

1. 預訓練的詞向量

有時候在為特定任務訓練模型之前,詞向量會被初始化成隨機數,但是,也有其他很常見的方式,例如,使用 word2vec、GloVe 或者 FastText 等方法來初始化詞向量。前兩個方法會逐漸和這一假設結合起來:至少一個單詞的部分含義是和它的用法有關的。

Word2Vec 會訓練出能夠預測局部語境窗(local context window)的模型;這個模型在發(fā)現一個單詞之后就會去預測它附近的單詞。

預訓練的詞向量

圖 2

圖 2是像 word2vec 和 GloVe 一樣的算法能夠生成一些相互關聯的詞向量,這些詞向量在自然語言中通常也是相關的。就像像圖中描述的一樣,「Word vectors are lists of numbers」這句話中,「vector」的向量就在「lists」、「of」「numbers」這三個詞的周圍。

GloVe 采用了相似的方法,它還顯式地附加了每個單詞和其他單詞一起出現的統(tǒng)計信息。在這兩種方法中,每個單詞都由一個對應的詞向量來表示,訓練過程會將詞向量之間的關聯與單詞在自然語言中的使用方式聯系起來。

2. 預訓練的詞向量的天然特性

將這些詞向量看作空間中的點,我們就會發(fā)現一些非常有趣的關聯,它可以讓人回想起自然語言中單詞之間的語義關聯。

 男性-女性詞對在向量分布的不同(Pennington 等人 2014)

圖 3. 男性-女性詞對在向量分布的不同(Pennington 等人 2014)

a-b,c:d 這種關系指的是:c+(a-b) 會生成一個距離 d 最近的向量(Mikolov 等人,2013)

圖 4. a-b,c:d 這種關系指的是:c+(a-b) 會生成一個距離 d 最近的向量(Mikolov 等人,2013)

比較級和最高級之間的向量的差別

圖 5. 比較級和最高級之間的向量的差別

顯而易見,對于目標任務,使用由 word2vec 或者 GloVe 的中間結果作為預訓練詞向量去初始化任務,會給目標任務的模型帶來一些優(yōu)勢。由此,由 word2vec 或者 GloVe 生成的詞向量也就找到了在很多自然語言處理任務中進行廣泛實驗的方式。

三、隱向量

這些預訓練的詞向量表現出了很有趣的性質,并且相對隨機初始化的詞向量而言,有著顯著的性能提升。但是正如之前提及的,單詞很少獨立出現。使用預訓練詞向量的模型必須學習如何去使用它們。在該項工作中,我們通過訓練中間任務獲得環(huán)境詞向量,該環(huán)境詞向量是通過截斷尋找比隨機初始化方法更好的向量而得出。

1. 編碼器

將詞向量語境化的一個常用方法就是使用循環(huán)神經網絡(RNN)。循環(huán)神經網絡是能夠處理可變長度向量序列的深度學習模型。這一特性使得它們很適合來處理詞向量序列。為了更好地處理長序列,我們使用了一種特定種類的 RNN,即長短期記憶(LSTM)網絡。在處理過程的每一步中,LSTM 輸入一個詞向量,輸出一個被稱作隱向量的新向量。這個過程常常被稱之為對序列的編碼,完成編碼過程的神經網絡就被稱為編碼器。

 LSTM 將詞向量序列作為輸入,輸出一個新的隱向量

圖 6. LSTM 將詞向量序列作為輸入,輸出一個新的隱向量

2. 雙向編碼器

隱向量并不包含出現在當前輸入序列之后的單詞的信息,但是這個很容易被改進。我們可以反向運行一個 LSTM 以得到一些反向的輸出向量。我們將這一對前向-反向 LSTM 看做一個單元,通常被稱作雙向 LSTM。它以一個詞向量序列作為輸入,運行了前向和反向 LSTM,并將每個 LSTM 對應的輸出連接成一個輸出,然后返回最終得到的隱向量。

包含每個單詞之前和之后信息的雙向編碼器

圖 7. 包含每個單詞之前和之后信息的雙向編碼器。

我們將兩個雙向 LSTM 堆疊在一起作為一個編碼器。第一個雙向 LSTM 處理整個序列,然后將輸出作為作為第二個雙向 LSTM 的輸入。

四、機器翻譯中的隱向量

因為結果證明預訓練的詞向量對于很多自然語言處理任務來說都是很有用的表征,所以我們要預訓練我們的編碼器,這樣的話,它就能夠輸出普遍有用的隱向量。為了預訓練,我們選擇機器翻譯作為我們的第一個任務。較之于其他的自然語言處理任務,機器翻譯擁有更大的數據集。并且,對于訓練通用的語境向量而言,翻譯任務的本質看上去更加吸引人。例如,與其他的類似于文本分類的任務相比,翻譯貌似更需要那種能夠理解語言的語感。

1. 解碼器

我們通過教編碼器如何將英文翻譯成德文來教它生成有用的隱向量。解碼器生成了針對英文句子的隱向量,另一個叫做解碼器的神經網絡就會在生成德語句子的時候參考這些隱向量。

正因為 LSTM 是我們編碼器的基礎,所以 LSTM 也在解碼器中起著非常重要的作用。與編碼器一樣,我們在解碼器中也使用兩層的 LSTM。用編碼器的最終狀態(tài)來初始化解碼器,讀入一個德語詞向量來啟動解碼器,然后就會生成解碼狀態(tài)向量。

解碼器使用一個單向的 LSTM 來從輸入詞向量創(chuàng)建解碼器狀態(tài)

圖 8. 解碼器使用一個單向的 LSTM 來從輸入詞向量創(chuàng)建解碼器狀態(tài)。

2. 注意力機制

為了決定下一步翻譯英語句子中的哪一部分,注意力機制需要從隱向量向前回溯。它使用狀態(tài)向量來判別每一個隱向量的重要性,為了記錄它的觀察值,注意力機制會生成一個新的向量,我們可以稱之為語境調整狀態(tài)(context-sdjusted state)。

注意力機制使用隱狀態(tài)和解碼狀態(tài)來生成語境調整狀態(tài)

圖 9. 注意力機制使用隱狀態(tài)和解碼狀態(tài)來生成語境調整狀態(tài)

3. 生成模型

然后,生成器會根據語境調整狀態(tài)來決定要生成哪個德語單詞,接下來語境調整狀態(tài)會回傳到解碼器中,讓解碼器對其翻譯的結果有一個準確的感知。解碼器一直重復這個過程,直至它完成所有翻譯。這就是一個標準的基于注意力機制的編碼器-解碼器結構,它被用來學習像機器翻譯一樣的序列到序列任務。

生成器使用語境調整狀態(tài)來選擇一個輸出單詞

圖 10. 生成器使用語境調整狀態(tài)來選擇一個輸出單詞

4. 預訓練的機器翻譯--長短期記憶網絡(MT-LSTM)中的語境向量

當訓練過程結束之后,我們可以將我們訓練好的 LSTM 提取出來作為編碼器用于機器翻譯。我們將這個預訓練的 LSTM 稱作機器翻譯 LSTM(MT-LSTM),并使用它生成新句子的隱向量。當我們把這些機器翻譯隱向量用于其它的自然語言處理模型時,我們就把它們稱作語境向量(CoVe)。

兩種通用架構

圖 11. 兩種通用架構:a). 我們如何訓練一個編碼器;b). 我們如何將訓練好的編碼器用在新的特定任務的模型上

五、使用 CoVe 進行的實驗

我們的實驗探索了在文本分類和問答模型中使用預訓練的 MT-LSTM 生成語境向量(CoVe)的優(yōu)點,但是 CoVe 可以被用在任何將向量序列作為輸入的模型中。

1. 文本分類

雙注意力機制(biattention)的分類網絡

圖 12. 雙注意力機制(biattention)的分類網絡

我們在兩種不同種類的文本分類任務上做了實驗。第一種是任務使用單一輸入,它包括情感分析和問答分類。第二種擁有兩個輸入,但它僅包括蘊含分類。在兩種任務上我們都使用雙注意力分類網絡(BCN)。如果僅有一個輸入,我們會將其進行復制,以呈現出雙輸入的形式,但是同時要讓模型知道避免做一些冗余的計算。不需要理解 BCN 的細節(jié),我們就可以理解 CoVe 以及使用它的好處。

2. 問答實驗

在問答實驗中我們使用了動態(tài)協同注意力網絡(DCN)。而在分析機器翻譯(MT)數據集對其他模型的性能影響時,我們使用了輕度修正的 DCN,然而在測試 CoVe 以及 CoVe 結合字符向量時的全局效果時,我們使用了修正的 DCN+。

我們實驗中所有的數據集和任務

表 1: 我們實驗中所有的數據集和任務

3. Glove+CoVe

對于每一個任務,我們都用表征輸入序列的不同方式進行實驗。我們可以使用隨機初始化的詞向量,也可以使用 Glove,或者使用 Glove 和 CoVe 聯合得出的詞向量。在最后一種情況下,我們通過一個預訓練的 MT-LSTM 來運行它,以得到 CoVe 序列,我們用對應的 Glove 序列來擴展每一個 CoVe 序列。MT-LSTM 和 Glove 都沒有作為分類任務或者問答模型訓練過程的一部分。

實驗結果表明:包括 CoVe 和 Glove 的情況總是比隨機初始化的詞向量和單獨使用 Glove 的情況具有更好的性能。

結合 Glove 和 CoVe 能夠改善驗證性能

圖 13. 結合 Glove 和 CoVe 能夠改善驗證性能。

4. 更多的機器翻譯-->更好的語境向量

改變訓練 MT-LSTM 時所用的數據量表明:更大規(guī)模的數據集會得到更高質量的 MT-LSTM,這里的更高質量的模型意味著用它生成的 CoVe 通常會在分類任務和問答任務上產生更好的性能。

結果表明,在較小的機器翻譯數據集上使用 CoVe 訓練得到的 MT-LSTM 帶來的性能提升是較小的。在一些情況中,使用小規(guī)模的機器翻譯數據集訓練的到的 MT-LSTM 會生成有損于模型性能的 CoVe。這也許意味著使用 CoVe 得到的性能提升是來自于強勁的 MT-LSTM 模型。這也意味著機器翻譯訓練集所在的領域會影響到最終 MT-LSTM 給其它任務帶來性能提升。

訓練 MT-LSTM 的數據集規(guī)模會對使用 CoVe 的模型的驗證性能產生明顯地影響

圖 14

圖 14. 訓練 MT-LSTM 的數據集規(guī)模會對使用 CoVe 的模型的驗證性能產生明顯地影響。在這里,MT-Small 是 2016 年的 WMT 多模數據集,MT-Medium 是 2016 IWSLT 訓練集,MT-Large 是 2017 年的 WMT 新聞追蹤數據集

5. 語境向量和字符向量

在這些實驗中,我們嘗試著在 Glove 和 CoVe 中添加字符向量。結果表明,對于一些任務,字符向量會和 Glove 以及 CoVe 一起產生更好的性能。這意味著 CoVe 給字符級別以及單詞級別的信息帶來了補充信息。

 CoVe 與字符級別以及單詞級別的信息是互補的

圖 15. CoVe 與字符級別以及單詞級別的信息是互補的

6. 測試性能

我們最好的模型都使用了 Glove、CoVe 以及字符級別的向量。我們對每種任務中驗證性能最高的模型在測試集上做了測試。上圖表明添加 CoVe 總能夠從起點開始就提升性能,下表表明,我們的模型足以在 7 個任務測試集中的 3 個上達到目前最高水平。

在測試的時候(2017.7.12),我們的模型與其他機器學習方法的性能對比

表 2. 在測試的時候(2017.7.12),我們的模型與其他機器學習方法的性能對比

有一個有趣之處值得注意,就像我們使用機器翻譯數據來改善我們的模型一樣,SST-2 和 IMDb 任務的目前最先進水平的模型也使用外部的監(jiān)督訓練集來改善模型。對于 SST-2 任務,最好的模型使用了 8200 萬條無標簽的亞馬遜評論,IMDb 任務的最好模型使用了 50000 條無標簽的 IMD 評論,以及 22500 條監(jiān)督訓練樣本。這兩種方法都用了比機器翻譯數據集更加相似的數據來擴展數據。這些模型的優(yōu)點可能會突出附加數據的種類和有益額外數據之間的聯系。

六、結論

我們展示了如何訓練神經網絡來實現機器翻譯,如何讓模型去學習語境中單詞的表征,我們還展示了能夠使用一部分網絡(MT-LSTM)去幫助網絡學習其他的自然語言處理任務。MT-LSTM 給分類任務和問答模型提供的語境向量(也就是 CoVe),并令它們得到了性能提升。我們在訓練 MT-LSTM 時使用的數據越多,模型性能的提升就越大,這或許和使用其他形式的預訓練向量表征帶來的性能提升是互補的。通過結合來自于 Glove、CoVe、字符向量的信息,我們能夠在很多自然語言處理任務上提升基準模型的性能。

1. 代碼發(fā)布

我們希望我們最好的 MT-LSTM 模型(就是那個我們用來生成 CoVe 的最佳模型)能夠進一步激發(fā)對自然語言處理中可重用表征的探索。代碼包括在 PyTorch 上如何生成 CoVe 的例子(代碼請參見原文鏈接)。

原文:https://einstein.ai/research/learned-in-translation-contextualized-word-vectors

【本文是51CTO專欄機構“機器之心”的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】

 

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2024-01-29 00:24:07

圖像模型預訓練

2020-03-17 09:42:00

谷歌開源機器學習

2019-04-01 14:55:58

NLP模型自然語言處理

2020-10-26 15:48:32

NLP自然語言處理數據

2017-12-26 13:53:31

深度學習遷移學習

2023-11-17 08:46:26

2023-10-25 09:50:07

自動駕駛訓練

2023-06-12 07:50:45

2020-07-29 12:16:12

預訓練自訓練神經網絡

2024-03-22 09:21:07

自動駕駛訓練

2021-08-10 15:51:55

谷歌模型技術

2021-09-09 09:29:03

AI 數據模型

2023-02-01 09:46:29

2022-05-30 15:44:33

模型訓練GAN

2021-09-26 10:47:12

預訓練模型GPT

2022-07-07 14:06:39

LiBai模型庫

2021-09-07 13:22:57

模型人工智能計算

2019-05-07 11:18:51

機器學習人工智能計算機

2024-11-04 00:24:56

2023-05-19 07:25:34

點贊
收藏

51CTO技術棧公眾號