編者按:在過去的一段時間,自然語言處理領(lǐng)域取得了許多重要的進(jìn)展,Transformer、BERT、無監(jiān)督機(jī)器翻譯,這些詞匯仿佛在一夜之間就進(jìn)入了人們的視野。你知道它們具體都是什么意思嗎?今天,我們就將為大家介紹三個NLP領(lǐng)域的熱門詞匯。
Transformer
Transformer 在2017年由Google在題為《Attention Is All You Need》的論文中提出。Transformer 是一個完全基于注意力機(jī)制的編解碼器模型,它拋棄了之前其它模型引入注意力機(jī)制后仍然保留的循環(huán)與卷積結(jié)構(gòu),而采用了自注意力(Self-attention)機(jī)制,在任務(wù)表現(xiàn)、并行能力和易于訓(xùn)練性方面都有大幅的提高。
在 Transformer 出現(xiàn)之前,基于神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯模型多數(shù)都采用了 RNN 的模型架構(gòu),它們依靠循環(huán)功能進(jìn)行有序的序列操作。雖然 RNN 架構(gòu)有較強(qiáng)的序列建模能力,但是存在訓(xùn)練速度慢,訓(xùn)練質(zhì)量低等問題。
與基于 RNN 的方法不同,Transformer 模型中沒有循環(huán)結(jié)構(gòu),而是把序列中的所有單詞或者符號并行處理,同時借助自注意力機(jī)制對句子中所有單詞之間的關(guān)系直接進(jìn)行建模,而無需考慮各自的位置。
具體而言,如果要計算給定單詞的下一個表征,Transformer 會將該單詞與句子中的其它單詞一一對比,并得出這些單詞的注意力分?jǐn)?shù)。注意力分?jǐn)?shù)決定其它單詞對給定詞匯的語義影響。之后,注意力分?jǐn)?shù)用作所有單詞表征的平均權(quán)重,這些表征輸入全連接網(wǎng)絡(luò),生成新表征。
由于 Transformer 并行處理所有的詞,以及每個單詞都可以在多個處理步驟內(nèi)與其它單詞之間產(chǎn)生聯(lián)系,它的訓(xùn)練速度比 RNN 模型更快,在翻譯任務(wù)中的表現(xiàn)也比 RNN 模型更好。
除了計算性能和更高的準(zhǔn)確度,Transformer 另一個亮點(diǎn)是可以對網(wǎng)絡(luò)關(guān)注的句子部分進(jìn)行可視化,尤其是在處理或翻譯一個給定詞時,因此可以深入了解信息是如何通過網(wǎng)絡(luò)傳播的。
之后,Google的研究人員們又對標(biāo)準(zhǔn)的 Transformer 模型進(jìn)行了拓展,采用了一種新型的、注重效率的時間并行循環(huán)結(jié)構(gòu),讓它具有通用計算能力,并在更多任務(wù)中取得了更好的結(jié)果。
改進(jìn)的模型(Universal Transformer)在保留Transformer 模型原有并行結(jié)構(gòu)的基礎(chǔ)上,把 Transformer 一組幾個各異的固定的變換函數(shù)替換成了一組由單個的、時間并行的循環(huán)變換函數(shù)構(gòu)成的結(jié)構(gòu)。
相比于 RNN一個符號接著一個符號從左至右依次處理序列,Universal Transformer 和 Transformer 能夠一次同時處理所有的符號,但 Universal Transformer 接下來會根據(jù)自注意力機(jī)制對每個符號的解釋做數(shù)次并行的循環(huán)處理修飾。
Universal Transformer 中時間并行的循環(huán)機(jī)制不僅比 RNN 中使用的串行循環(huán)速度更快,也讓 Universal Transformer 比標(biāo)準(zhǔn)的前饋 Transformer 更加強(qiáng)大。
預(yù)訓(xùn)練 Pre-train
目前神經(jīng)網(wǎng)絡(luò)在進(jìn)行訓(xùn)練的時候基本都是基于后向傳播(Back Propagation,BP)算法,通過對網(wǎng)絡(luò)模型參數(shù)進(jìn)行隨機(jī)初始化,然后利用優(yōu)化算法優(yōu)化模型參數(shù)。
但是在標(biāo)注數(shù)據(jù)很少的情況下,通過神經(jīng)網(wǎng)絡(luò)訓(xùn)練出的模型往往精度有限,“預(yù)訓(xùn)練”則能夠很好地解決這個問題,并且對一詞多義進(jìn)行建模。
預(yù)訓(xùn)練是通過大量無標(biāo)注的語言文本進(jìn)行語言模型的訓(xùn)練,得到一套模型參數(shù),利用這套參數(shù)對模型進(jìn)行初始化,再根據(jù)具體任務(wù)在現(xiàn)有語言模型的基礎(chǔ)上進(jìn)行精調(diào)。
預(yù)訓(xùn)練的方法在自然語言處理的分類和標(biāo)記任務(wù)中,都被證明擁有更好的效果。目前,熱門的預(yù)訓(xùn)練方法主要有三個:ELMo,OpenAI GPT 和 BERT。
在2018年初,艾倫人工智能研究所和華盛頓大學(xué)的研究人員在題為《Deep contextualized word representations》一文中提出了ELMo。
相較于傳統(tǒng)的使用詞嵌入(Word embedding)對詞語進(jìn)行表示,得到每個詞唯一固定的詞向量,ELMo 利用預(yù)訓(xùn)練好的雙向語言模型,根據(jù)具體輸入從該語言模型中可以得到在文本中該詞語的表示。在進(jìn)行有監(jiān)督的 NLP 任務(wù)時,可以將 ELMo 直接當(dāng)做特征拼接到具體任務(wù)模型的詞向量輸入或者是模型的最高層表示上。
在ELMo的基礎(chǔ)之上,OpenAI的研究人員在《Improving Language Understanding by Generative Pre-Training》提出了OpenAI GPT。
與ELMo為每一個詞語提供一個顯式的詞向量不同,OpenAI GPT能夠?qū)W習(xí)一個通用的表示,使其能夠在大量任務(wù)上進(jìn)行應(yīng)用。
在處理具體任務(wù)時,OpenAI GPT 不需要再重新對任務(wù)構(gòu)建新的模型結(jié)構(gòu),而是直接在 Transformer 這個語言模型上的最后一層接上 softmax 作為任務(wù)輸出層,再對這整個模型進(jìn)行微調(diào)。
ELMo和OpenAI GPT這兩種預(yù)訓(xùn)練語言表示方法都是使用單向的語言模型來學(xué)習(xí)語言表示,而Google在提出的BERT則實(shí)現(xiàn)了雙向?qū)W習(xí),并得到了更好的訓(xùn)練效果。
具體而言,BERT使用Transformer的編碼器作為語言模型,并在語言模型訓(xùn)練時提出了兩個新的目標(biāo):MLM(Masked Language Model)和句子預(yù)測。
MLM是指在輸入的詞序列中,隨機(jī)的擋上 15% 的詞,并遮擋部分的詞語進(jìn)行雙向預(yù)測。為了讓模型能夠?qū)W習(xí)到句子間關(guān)系,研究人員提出了讓模型對即將出現(xiàn)的句子進(jìn)行預(yù)測:對連續(xù)句子的正誤進(jìn)行二元分類,再對其取和求似然。
圖片來源:Google AI Blog
無監(jiān)督機(jī)器翻譯
Unsupervised Machine Translation
現(xiàn)有的機(jī)器翻譯需要大量的翻譯文本做訓(xùn)練樣本,這使得機(jī)器翻譯只在一小部分樣本數(shù)量充足的語言上表現(xiàn)良好,但如何在沒有源翻譯的情況下訓(xùn)練機(jī)器翻譯模型,即無監(jiān)督訓(xùn)練,成為了目前熱門的研究話題。
Facebook 在 EMNLP 2018 上的論文《Phrase-Based & Neural Unsupervised Machine Translation》利用跨字嵌入(Cross Word Embedding),提升了高達(dá) 11 BLEU,那么 Facebook 是如何實(shí)現(xiàn)的呢?
第一步是讓系統(tǒng)學(xué)習(xí)雙語詞典。系統(tǒng)首先為每種語言中的每個單詞訓(xùn)練詞嵌入,訓(xùn)練詞嵌入通過上下文來預(yù)測給定單詞周圍的單詞。
不同語言的詞嵌入具有相似的鄰域結(jié)構(gòu),因此可以通過對抗訓(xùn)練等方法讓系統(tǒng)學(xué)習(xí)旋轉(zhuǎn)變換一種語言的詞嵌入,以匹配另一種語言的詞嵌入。
基于這些信息,就可以得到一個相對準(zhǔn)確的雙語詞典,并基本可以實(shí)現(xiàn)逐字翻譯。在得到語言模型和初始的逐字翻譯模型之后,就可以構(gòu)建翻譯系統(tǒng)的早期版本。
然后將系統(tǒng)翻譯出的語句作為標(biāo)注過的真實(shí)數(shù)據(jù)進(jìn)行處理,訓(xùn)練反向機(jī)器翻譯系統(tǒng),得到一個更加流暢和語法正確的語言模型,并將反向翻譯中人工生成的平行句子與該語言模型提供的校正相結(jié)合,以此來訓(xùn)練這個翻譯系統(tǒng)。
通過對系統(tǒng)的訓(xùn)練,形成了反向翻譯的數(shù)據(jù)集,從而改進(jìn)原有的機(jī)器翻譯系統(tǒng)。隨著一個系統(tǒng)得到改進(jìn),可以使用它以迭代方式在相反方向上為系統(tǒng)生成訓(xùn)練數(shù)據(jù),并根據(jù)需要進(jìn)行多次迭代。
逐字嵌入初始化、語言建模和反向翻譯是無監(jiān)督機(jī)器翻譯的三個重要原則。將基于這些原理得到的翻譯系統(tǒng)應(yīng)用于無監(jiān)督的神經(jīng)模型和基于計數(shù)的統(tǒng)計模型,從訓(xùn)練好的神經(jīng)模型開始,使用基于短語模型的其它反向翻譯句子對其進(jìn)行訓(xùn)練,最終得到了一個既流暢,準(zhǔn)確率又高的模型。
對于無監(jiān)督機(jī)器翻譯,微軟亞洲研究院自然語言計算組也進(jìn)行了探索。研究人員利用后驗(yàn)正則(Posterior Regularization)的方式將 SMT(統(tǒng)計機(jī)器翻譯)引入到無監(jiān)督NMT的訓(xùn)練過程中,并通過EM過程交替優(yōu)化 SMT 和 NMT 模型,使得無監(jiān)督 NMT 迭代過程中的噪音能夠被有效去除,同時 NMT 模型也彌補(bǔ)了 SMT 模型在句子流暢性方面的不足。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4797瀏覽量
102414 -
機(jī)器翻譯
+關(guān)注
關(guān)注
0文章
140瀏覽量
15095 -
nlp
+關(guān)注
關(guān)注
1文章
490瀏覽量
22426
原文標(biāo)題:請收下這份 NLP 熱門詞匯解讀
文章出處:【微信號:AI_Thinker,微信公眾號:人工智能頭條】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論