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