?NLP論文解讀?原創(chuàng)?作者?| 楊健
專欄系列概覽
該專欄主要介紹自然語言處理領(lǐng)域目前比較前沿的領(lǐng)域—知識增強的預(yù)訓練語言模型漆改。通過解讀該主題具備代表性的論文以及對應(yīng)的代碼,為大家揭示當前最新的發(fā)展狀況去扣。為了能夠和大家更好的分享自己的收獲,筆者將遵循下面幾個原則唆铐。
?1奔滑、理論講解盡量深入淺出,通過舉例子或者大白話講解論文王浴,而非僅針對原文翻譯梅猿。
2、針對論文中一些重要的術(shù)語袱蚓,適時的做出解釋喇潘。
3、理論和實踐相結(jié)合颖低,除了理論講解,還會加入部分重要代碼講解源武。并且分享個人認為重要的一些工程技巧想幻。
知識增強的預(yù)訓練模型
工欲善其事必先利其器脏毯。今天的文章主要介紹?是什么、它的背景知識以及分類食店。后續(xù)的文章將進一步深入,詳細介紹每一類知識增強的預(yù)訓練模型价认。
從哪里來
自從神經(jīng)網(wǎng)絡(luò)成為主流以來,自然語言理解等任務(wù)大多基于神經(jīng)網(wǎng)絡(luò)為各個下游場景單獨設(shè)計模型渠退。然而這類模型僅能夠適用于單一下游任務(wù)脐彩,通用性不足。
相比自然語言理解領(lǐng)域梅誓,由于圖像處理領(lǐng)域擁有大量的有標簽數(shù)據(jù)佛南,研究人員利用遷移學習的思想,在數(shù)年前就已經(jīng)能訓練出具備一般性圖像特征的大規(guī)模預(yù)訓練模型愧怜。
然而妈拌,一方面自然語言處理領(lǐng)域缺少足夠的標注數(shù)據(jù),另一方面循環(huán)神經(jīng)網(wǎng)絡(luò)架構(gòu)也遭受梯度爆炸的困擾猜惋,使得該領(lǐng)域的大規(guī)模預(yù)訓練模型遲遲未能出現(xiàn)培愁。
Transformer的出現(xiàn)為解決這一問題帶來了希望,一方面模型通過自注意力結(jié)構(gòu)和殘差鏈接解決了循環(huán)神經(jīng)網(wǎng)絡(luò)架構(gòu)梯度爆炸的問題谍咆,從而使模型得以堆疊多層神經(jīng)網(wǎng)絡(luò)私股,另一方面通過引入自監(jiān)督的預(yù)訓練任務(wù),也解決了標注數(shù)據(jù)不足的問題倡鲸。
基于Transformer的BERT和GPT模型更是在當時橫掃了各大榜單,在各個下游任務(wù)的表現(xiàn)遠超為特定任務(wù)而設(shè)計的模型,其中BERT模型更是成為了自然語言理解發(fā)展過程中的里程碑逼争。
在這一背景下劝赔,國內(nèi)外提出了各種預(yù)訓練語言模型,比如國外的RoBERTa罩阵、XLNet启摄、T5幽钢、BART,國內(nèi)智源提出的CPM蕾羊、華為的盤古模型帽驯、阿里的M6以及百度的ERNIE等等。
筆者在下文也會介紹預(yù)訓練語言模型的分類以及各自的特點利凑。
到哪里去
深度學習技術(shù)憑借神經(jīng)網(wǎng)絡(luò)的分布式表示能力和層次結(jié)構(gòu)泛化能力嫌术,實現(xiàn)了對大規(guī)模數(shù)據(jù)的學習和利用。
基于深度學習的預(yù)訓練模型能夠從大規(guī)模無監(jiān)督數(shù)據(jù)中學習蘊含在文本中詞法割按、語法磷籍、語義等信息,在自然語言領(lǐng)域中的下游任務(wù)中取得了重大突破弛矛。
然而預(yù)訓練模型也面臨著以下的問題比然,一是預(yù)訓練模型基于統(tǒng)計的方法建模,根據(jù)共現(xiàn)信息學習文本中實體的隱式關(guān)聯(lián)扒寄,這造成了預(yù)訓練模型不具備深度理解和邏輯推理的能力。
其次该编,受到訓練數(shù)據(jù)長尾分布的影響课竣,預(yù)訓練模型魯棒性差,容易受到攻擊于樟,并被別有用心的人惡意使用迂曲。此外,預(yù)訓練模型缺乏常識知識路捧,阻礙了預(yù)訓練模型在實際應(yīng)用場景的大規(guī)模推廣杰扫。
知識能為預(yù)訓練模型提供更全面豐富的實體語義和實體關(guān)聯(lián)信息,通過提供常識和領(lǐng)域知識章姓,克服訓練數(shù)據(jù)長尾分布的限制,增強預(yù)訓練模型的魯棒性苍日。
不僅如此窗声,符號知識如知識圖譜,以三元組的形式表示拦耐,具有明確的語義见剩,為知識如何在使用場景中發(fā)揮作用引入了可解釋性苍苞。
在這個背景下狼纬,自然語言處理領(lǐng)域涌現(xiàn)出了許多知識與預(yù)訓練模型想結(jié)合的研究工作骂际,嘗試為預(yù)訓練模型注入知識,從而更好將預(yù)訓練模型應(yīng)用于知識驅(qū)動和語義理解任務(wù)盈简,這類模型也被稱之為知識增強的預(yù)訓練模型太示。
前行的途徑
什么才算是知識,如何定義知識呢臼勉?給定知識餐弱,又應(yīng)該如何注入到預(yù)訓練模型之中實現(xiàn)性能的提高呢?
維基百科將知識定義為對某個主題確信的認識,并且這些認識擁有潛在的能力為特定目的而使用速缆。Bloom等人[1]將知識分為四大類艺糜,分別是事實性知識、概念性知識破停、程序性知識和元認知知識真慢。
其中事實性知識指描述客觀事物的術(shù)語知識和具體細節(jié)及要素的知識,如事件黑界、地點朗鸠、人物、日期等烛占;
概念性知識指一個整體結(jié)構(gòu)基本要素間的關(guān)系,包括類別與分類的知識犹菇,原理與概括的知識项栏,理論、模式和結(jié)構(gòu)的知識沼沈;
程序性知識是指導行動的知識列另,一般與具體學科相關(guān)聯(lián),包括學科技能和算法知識页衙、學科技術(shù)與方法知識店乐、何時適當使用程序的知識;
元認知知識強調(diào)自我的主動性眨八,是對自我認知和認知任務(wù)的知識廉侧。
從表現(xiàn)形式上分,則可以分為顯性的符號知識和隱性的模型和向量知識闰蚕。比如知識圖譜连舍、語言知識這一類通過三元組和語法樹等方式表現(xiàn)的知識,就是顯性的符號知識诗鸭。
我們知道参滴,針對對文本進行預(yù)訓練獲得的模型如BERT、通過對三元組使用Trans系列的模型(TransE蝌箍、TransR等)生成的向量,都攜帶著語義信息杂拨,然而這類知識不如符號知識的直觀性強悯衬,我們將其歸類為隱性知識。這一系列主要介紹基于顯性知識增強的模型策橘。
考慮到符號知識主要以字符串的形式存在娜亿,而預(yù)訓練模型則基于神經(jīng)網(wǎng)絡(luò)。對符號知識的表示學習就成為了架接兩者的橋梁沛婴。
為此督赤,大多數(shù)知識增強的預(yù)訓練模型往往使用圖神經(jīng)網(wǎng)絡(luò)躲舌、知識圖譜的表示學習方法,如基于張量或者平移的模型孽糖、又或者Transformer對符號知識編碼办悟,將其轉(zhuǎn)換為表示向量(embedding)滩褥。
其次,知識的注入需要考慮預(yù)訓練的特性铺然,注入的方法大多從預(yù)訓練的語料酒甸、模型采用的預(yù)訓練任務(wù)、模型結(jié)構(gòu)沽瘦、擅長的場景等角度綜合考慮。
以清華提出的ERNIE和KnowBERT為例良哲,兩者都事先針對知識圖譜進行表示學習助隧。由于兩者都采用BERT作為基礎(chǔ)模型,就仍然使用Transformer的架構(gòu)作為編碼器編碼知識向量巍实,并且為了能夠和BERT在預(yù)訓練期間所使用的預(yù)訓練任務(wù)保持一致橘霎,這兩個模型都使用預(yù)測經(jīng)過掩碼的實體詞作為預(yù)訓練任務(wù)姐叁,以最大限度的利用模型已習得的能力。
再比如原环,BERT模型更擅長于語言理解任務(wù)处窥,而GPT系列更擅長于生成任務(wù),那么對于生成場景谒麦,為了讓模型生成具備常識的內(nèi)容哆致,就需要選擇使用自回歸方式進行預(yù)訓練,也就是GPT這類模型作為基礎(chǔ)模型注入知識耻蛇。
而對于實體分類胞此、關(guān)系分類這類側(cè)重于理解能力的任務(wù)而言漱牵,選擇BERT、RoBERTa則更加合適刁赦。具體的注入方式筆者將會在后續(xù)的文章中逐步介紹。
預(yù)訓練語言模型的分類
對于知識增強的預(yù)訓練模型而言趴荸,知識的注入和預(yù)訓練模型密切相關(guān)宦焦。因此,筆者先在這部分對各類預(yù)訓練模型做一個簡單的介紹酝豪。
預(yù)訓練模型的分類方式有多種精堕,推薦閱讀綜述論文[2-3]歹篓。筆者更傾向于從模型使用的架構(gòu)來分類,因為采用不同的架構(gòu)會影響模型能夠適用的場景背捌,這種分類方式更具有實踐意義洞斯。
從這一個角度,可以將其分為三類么抗,分別是采用Transformer的encoder架構(gòu)亚铁、采用decoder架構(gòu)刀闷、以及encoder-decoder架構(gòu)的預(yù)訓練模型仰迁。第一類的代表模型有BERT、RoBERTa施蜜,第二類代表模型則是GPT系列雌隅,最后一類的代表模型則有T5、BART等修械。
事實上肯污,encoder和decoder架構(gòu)之間的差異僅僅在于是否適用了掩碼矩陣,decoder架構(gòu)適用掩碼矩陣實現(xiàn)了下文的遮擋哄芜。
采用encoder架構(gòu)的預(yù)訓練模型由于在預(yù)訓練階段就看到了上下文信息柬唯,更擅長于理解型的任務(wù),然而對于無法看到下文信息的應(yīng)用場景而言失晴,由于和預(yù)訓練階段的訓練范式不一致拘央,效果就會大打折扣堪滨。采用decoder架構(gòu)僅僅利用上文預(yù)測,雖然能夠利用的信息更少遏乔,但適用的場景更多发笔。
而且,通過擴大參數(shù)量和訓練語料捻激,這類模型的理解能力也不弱于第一類模型前计。最近一篇基于Prompt的論文也證明了GPT模型具有很強的理解能力[4],筆者更傾向于這類模型丈屹。
最后一類模型則是采用挖取一小段文本(span)旺垒,打亂文字順序等方式來避免下文的泄露,如T5在encoder雖然能看到上下文骇钦,但是無法看到被挖取的部分文本竞漾,而這部分文本則需要decoder來預(yù)測。
這類模型能夠同時勝任語言理解和生成任務(wù)坦仍,但不足之處就是由于需要編碼器和解碼器,參數(shù)是前兩類模型的兩倍叨襟。
知識增強的預(yù)訓練模型分類
知識增強的預(yù)訓練模型可以從注入的知識以及粒度繁扎、以及注入的方法、應(yīng)用場景等角度分類糊闽。為了讓大家更具啟發(fā)梳玫,筆者在這里從知識的注入方法進行分類,將其分為基于知識向量融合的模型右犹、基于知識圖譜監(jiān)督的模型提澎、基于統(tǒng)一知識和文本結(jié)構(gòu)的模型以及基于聯(lián)合訓練的模型。
基于知識向量融合的模型對符號知識預(yù)先表示學習念链,然后針對文本中的指稱項(mention)對象的向量和實體向量加權(quán)求和盼忌、使用自注意機制等方式融合兩者掂墓。所謂指稱項可以理解為某一個實體非正式的別名谦纱。
基于圖譜監(jiān)督的模型則是通過從知識圖譜中獲取實體的語義、情感等作為模型的額外特征君编,又或者從中選擇同義跨嘉、反義詞等作為監(jiān)督語料,使預(yù)訓練模型學習顯式的實體關(guān)系吃嘿§裟耍基于統(tǒng)一結(jié)構(gòu)的模型則將符號知識和文本轉(zhuǎn)換為統(tǒng)一的結(jié)構(gòu),使用同一個編碼器兑燥,大多使用Transformer進行編碼亮瓷。
最后一類模型則通過為知識設(shè)計額外的預(yù)訓練任務(wù)實現(xiàn)知識的注入。
最后附上一張模型的分類圖贪嫂。
參考文獻:
[1]Taxonomy of educational objectives?
http://nancybroz.com/nancybroz/Literacy_I_files/Bloom%20Intro.doc
[2]Pre-trained models for natural language processing: A survey
https://www.researchgate.net/profile/Xipeng-Qiu/publication/340021796_Pre-trained_Models_for_Natural_Language_Processing_A_Survey/links/5e7b1a05299bf1f3873fd11a/Pre-trained-Models-for-Natural-Language-Processing-A-Survey.pdf
[3]Pre-Trained Models: Past, Present and Future
https://arxiv.org/pdf/2106.07139.pdf
[4]GPT Understands, Too
https://arxiv.org/pdf/2103.10385.pdf