注意力機(jī)制和Transformer
機(jī)器翻譯是NLP領(lǐng)域中最重要的問(wèn)題之一,也是Google翻譯等工具的基礎(chǔ)。傳統(tǒng)的RNN方法使用兩個(gè)循環(huán)網(wǎng)絡(luò)實(shí)現(xiàn)序列到序列的轉(zhuǎn)換,其中一個(gè)網(wǎng)絡(luò)(編碼器)將輸入序列轉(zhuǎn)換為隱藏狀態(tài),而另一個(gè)網(wǎng)絡(luò)(解碼器)則將該隱藏狀態(tài)解碼為翻譯結(jié)果。但是,這種方法存在兩個(gè)問(wèn)題:
- 編碼器網(wǎng)絡(luò)的最終狀態(tài)難以記住句子開(kāi)頭,導(dǎo)致對(duì)于長(zhǎng)句子的模型質(zhì)量較差。
- 序列中的所有單詞對(duì)結(jié)果的影響是相同的,但實(shí)際上,輸入序列中特定的單詞往往對(duì)順序輸出的影響大于其他單詞。
注意機(jī)制
注意機(jī)制提供了一種權(quán)衡每個(gè)輸入向量對(duì)RNN每個(gè)輸出預(yù)測(cè)的上下文影響的方法。具體實(shí)現(xiàn)是在輸入RNN和輸出RNN之間創(chuàng)建快捷方式。這樣,在生成輸出符號(hào)yt時(shí),我們將考慮所有輸入隱藏狀態(tài)hi,具有不同的權(quán)重系數(shù)αt,i。
注意機(jī)制對(duì)于NLP的許多當(dāng)今或即將達(dá)到的最新技術(shù)水平負(fù)有責(zé)任。添加注意機(jī)制增加了模型參數(shù)的數(shù)量,這導(dǎo)致了RNN的擴(kuò)展問(wèn)題。擴(kuò)展RNN的關(guān)鍵限制是,模型的循環(huán)性質(zhì)使批處理和并行化訓(xùn)練變得具有挑戰(zhàn)性。在RNN中,序列的每個(gè)元素都需要按順序處理,這意味著它不能輕松并行化。
帶注意機(jī)制的編碼器解碼器模型
引入注意機(jī)制后,結(jié)合這個(gè)約束,導(dǎo)致了現(xiàn)在我們所知道和使用的Transformer模型的創(chuàng)建,例如BERT到Open-GPT3。
Transformer模型
Transformer的主要思想之一是避免RNN的順序性并創(chuàng)建一個(gè)可在訓(xùn)練期間并行化的模型。這是通過(guò)實(shí)現(xiàn)兩個(gè)思想來(lái)實(shí)現(xiàn)的:位置編碼和使用自注意力機(jī)制來(lái)捕獲模式,而不是使用RNN(或CNN)。這就是為什么介紹transformers的論文被稱(chēng)為“Attention is all you need”。
位置編碼/嵌入
位置編碼的思想是,當(dāng)使用RNN時(shí),標(biāo)記的相對(duì)位置由步數(shù)表示,因此不需要明確表示。但是,一旦我們切換到注意機(jī)制,我們需要知道序列中標(biāo)記的相對(duì)位置。為了獲得位置編碼,我們將標(biāo)記的序列與序列中的標(biāo)記位置一起增強(qiáng)(即一系列數(shù)字0,1,…)。然后,我們將標(biāo)記位置與標(biāo)記嵌入向量混合。為將位置(整數(shù))轉(zhuǎn)換為向量,我們可以使用不同的方法:
- 可訓(xùn)練嵌入,類(lèi)似于標(biāo)記嵌入。這是我們?cè)诖丝紤]的方法。我們?cè)跇?biāo)記和它們的位置之上應(yīng)用嵌入層,得到相同尺寸的嵌入向量,然后將它們相加。
- 固定的位置編碼函數(shù),如原始論文中所提出的
多頭自注意力
接下來(lái),我們需要捕獲序列中的一些模式。為了做到這一點(diǎn),transformers使用自注意力機(jī)制,它本質(zhì)上是應(yīng)用于相同的輸入和輸出序列的注意力機(jī)制。應(yīng)用自注意力使我們能夠考慮句子中的上下文,并查看哪些單詞是相互關(guān)聯(lián)的。例如,它使我們能夠查看哪些單詞被指代,以及考慮上下文:
在transformers中,我們使用多頭自注意力來(lái)使網(wǎng)絡(luò)能夠捕獲多種不同類(lèi)型的依賴(lài)關(guān)系,例如長(zhǎng)期與短期的單詞關(guān)系,共指與其他關(guān)系等。
編碼器解碼器注意力
在transformers中,注意力應(yīng)用于兩個(gè)位置:
- 使用自注意力來(lái)捕獲輸入文本中的模式。
- 執(zhí)行序列翻譯時(shí),它是位于編碼器和解碼器之間的注意力層。
編碼器解碼器注意力與RNN中描述的注意力機(jī)制非常相似。下面的動(dòng)畫(huà)圖解釋了編碼器解碼器注意力的作用。
由于每個(gè)輸入位置都被獨(dú)立地映射到每個(gè)輸出位置,因此transformers可以比RNN更好地并行化,這使得更大、更具表現(xiàn)力的語(yǔ)言模型成為可能。每個(gè)注意力頭可以用于學(xué)習(xí)不同的單詞關(guān)系,從而提高下游的自然語(yǔ)言處理任務(wù)的效果。
BERT
BERT(雙向編碼器表示來(lái)自transformers)是一個(gè)非常大的多層變壓器網(wǎng)絡(luò),BERT-base有12層,BERT-large有24層。該模型首先使用無(wú)監(jiān)督的訓(xùn)練(預(yù)測(cè)句子中的掩碼單詞)在大量文本數(shù)據(jù)(維基百科+圖書(shū))上進(jìn)行預(yù)訓(xùn)練。在預(yù)訓(xùn)練期間,模型吸收了大量的語(yǔ)言理解,這可以通過(guò)微調(diào)其他數(shù)據(jù)集來(lái)利用。這個(gè)過(guò)程被稱(chēng)為遷移學(xué)習(xí)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-487207.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-487207.html
到了這里,關(guān)于注意力機(jī)制和Transformer的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!