通过预训练提升语言理解
官方地址:https://blog.openai.com/language-unsupervised/
文章:https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf
代碼:https://github.com/openai/finetune-transformer-lm
本文利用Transformer和非監(jiān)督預(yù)訓(xùn)練結(jié)合的方法,提出了一種能用于各種NLP任務(wù)的預(yù)訓(xùn)練框架,實驗結(jié)果表明該模型使12項NLP任務(wù)中的9項做到了state-of-art的結(jié)果。這說明非監(jiān)督預(yù)訓(xùn)練對提升NLP任務(wù)的監(jiān)督學(xué)習(xí)有很大幫助。
?
Background
傳統(tǒng)的NLP問題往往受制于標注數(shù)據(jù)太少,但未標注的文本數(shù)據(jù)則非常多,因此非監(jiān)督學(xué)習(xí)可以很好地利用這些未標注的文本數(shù)據(jù)。而對于有大量標注數(shù)據(jù)的NLP問題,非監(jiān)督學(xué)習(xí)到的特征表示也可以極大地提高這些NLP問題的準確率,對此一個比較有力的證明就是預(yù)訓(xùn)練好的詞向量對提升NLP任務(wù)有很大的幫助。但詞向量的局限性在于,對于不同的NLP任務(wù),我們所需要的詞的特征表示可能是不一樣的,而即便是幾百維的詞向量也難以包含這些信息用于所有的NLP任務(wù)。因此,我們需要用預(yù)訓(xùn)練的模型來提升NLP任務(wù)的性能。
?
Challenge
對于設(shè)計一個預(yù)訓(xùn)練模型,主要存在兩方面的挑戰(zhàn),一個是預(yù)訓(xùn)練優(yōu)化的任務(wù)目標,例如本文中的目標是傳統(tǒng)的LanguageModel,即用上文信息預(yù)測下一個出現(xiàn)的詞,而BERT中的目標是MaskedLanguage Model + next sentence prediction。另一個挑戰(zhàn)是預(yù)訓(xùn)練模型如何遷移到下游任務(wù)的過程,最主要的方式是模型結(jié)構(gòu)的調(diào)整,但也包含一些學(xué)習(xí)方式的改變、附屬學(xué)習(xí)目標的設(shè)立等其他手段。
?
Model
模型主要分為三個部分,分別是 Unsupervised pre-training、Supervised fine-tuning、Task-specific input transformations Experiment。整個模型結(jié)構(gòu)如下圖所示:
Unsupervised pre-training
整個預(yù)訓(xùn)練模型采用傳統(tǒng)的語言模型的方式,所以其目標函數(shù)為:
從上面的模型結(jié)構(gòu)圖中可以看到,預(yù)訓(xùn)練模型框架主要采用了多層 Transformer Decoder 的結(jié)構(gòu),具體來說就是:
其中各個變量代表的意義為
???????U: context vector of tokens
???????We: token embedding matrix
???????Wp: position embedding matrix
???????H is bridge of the two components
由于采用的是傳統(tǒng)的語言模型,因此有
對比 BERT 和 ELMo 幾個經(jīng)典的NLP預(yù)訓(xùn)練模型,可以看到,BERT主要在本文的GPT模型上加上一些小改進:
Supervised fine-tuning
和視覺任務(wù)類似地,當在做監(jiān)督學(xué)習(xí)fine-tuning時,只需把非監(jiān)督預(yù)訓(xùn)練模型的最后一層換為一個新的未訓(xùn)練的softmax分類器即可
所以此時的loss即為
附屬目標函數(shù)為
這個附屬目標函數(shù)結(jié)合了預(yù)訓(xùn)練過程中的loss,這樣做的好處為:(1)有利于提高模型的泛化能力(2)加快模型的收斂
?
Task-specific input transformations Experiment
在預(yù)訓(xùn)練模型遷移到不同NLP任務(wù)的過程中,由于任務(wù)輸入輸出的不同,模型也要做出相應(yīng)的調(diào)整。本文所進行的實驗任務(wù)主要分為四大類:分類任務(wù)、推理任務(wù)、語義相似性任務(wù)、QA類的任務(wù)(多選題任務(wù)),如下圖所示,其中start、extract表示開始符和終止符。
分類任務(wù)和預(yù)訓(xùn)練模型結(jié)構(gòu)保持一致。
推理任務(wù)中間加了一個delimiter,將推理任務(wù)輸入的premise和hypothesis分開,同時保持了其語序一致。
語義相似性任務(wù)和推理任務(wù)類似,但由于其語義沒有前后的因果關(guān)系,為保持text1和text2地位相等,所以用了兩個模型,最后用element-wise地相加把它們結(jié)合起來。
QA任務(wù)中context由document和question拼接而成,對每個answer分別進行配對,然后分別輸入到模型中,最后用一個softmax layer進行歸一化。
?
Experiment
本文進行的12項NLP任務(wù)分別為:
推理任務(wù)的實驗結(jié)果:
QA任務(wù)的實驗結(jié)果:
分類任務(wù)和語義相似性任務(wù)的實驗結(jié)果:
12項實驗中9項超過當前最好準確率,其中在 Stories Cloze Test上提高了8.9%,在RACE上提高了5.7%,都是比較顯著的提高。
?
楊海宏,浙江大學(xué)直博生,研究方向:知識問答與推理。
OpenKG.CN
中文開放知識圖譜(簡稱OpenKG.CN)旨在促進中文知識圖譜數(shù)據(jù)的開放與互聯(lián),促進知識圖譜和語義技術(shù)的普及和廣泛應(yīng)用。
轉(zhuǎn)載須知:轉(zhuǎn)載需注明來源“OpenKG.CN”、作者及原文鏈接。如需修改標題,請注明原標題。
?
點擊閱讀原文,進入 OpenKG 博客。
總結(jié)
以上是生活随笔為你收集整理的通过预训练提升语言理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文浅尝 | 重新审视语言模型与知识库
- 下一篇: 论文浅尝 | 知识图谱相关实体搜索