感謝清華大學(xué)自然語言處理實(shí)驗(yàn)室對(duì)預(yù)訓(xùn)練語言模型架構(gòu)的梳理,我們將沿此脈絡(luò)前行,探索預(yù)訓(xùn)練語言模型的前沿技術(shù),紅框中為已介紹的文章,綠框中為本期介紹的模型,歡迎大家留言討論交流。
在之前的一期推送中,我們給大家介紹過百度的ERNIE。其實(shí)清華大學(xué)NLP實(shí)驗(yàn)室,比百度更早一點(diǎn),也發(fā)表了名為ERNIE的模型,即Enhanced Language Representation with Informative Entities。
他們認(rèn)為現(xiàn)存的預(yù)訓(xùn)練語言模型很少會(huì)考慮與知識(shí)圖譜(Knowledge Graph: KG)相結(jié)合,但其實(shí)知識(shí)圖譜可以提供非常豐富的結(jié)構(gòu)化知識(shí)和常識(shí)以供更好的語言理解。他們覺得這其實(shí)是很有意義的,可以通過外部的知識(shí)來強(qiáng)化語言模型的表示能力。在這篇文章中,他們使用大規(guī)模語料的語言模型預(yù)訓(xùn)練與知識(shí)圖譜相結(jié)合,更好地利用語義,句法,知識(shí)等各方面的信息,推出了Enhanced language representation model(ERNIE),在許多知識(shí)驅(qū)動(dòng)的任務(wù)上獲得了巨大提升,而且更適用于廣泛通用的NLP任務(wù)。
作者提出,要將知識(shí)嵌入到自然語言模型表達(dá)中去,有兩個(gè)關(guān)鍵的挑戰(zhàn):
知識(shí)的結(jié)構(gòu)化編碼
對(duì)于一個(gè)給定的文本,如何從知識(shí)圖譜中,高效地將和文本相關(guān)的常識(shí)或知識(shí)抽取出來并編碼是一個(gè)重要問題。
異構(gòu)信息融合
語言模型表示的形式和知識(shí)圖譜的表達(dá)形式是大不相同的,是兩個(gè)獨(dú)立的向量空間。怎么樣去設(shè)計(jì)一個(gè)獨(dú)特的訓(xùn)練任務(wù)來將,語義,句法,知識(shí)等信息融合起來是另一個(gè)挑戰(zhàn)。
針對(duì)這些挑戰(zhàn), 清華NLP實(shí)驗(yàn)室提出方案是 Enhanced Language RepresentatioN with Informative Entities (ERNIE)
首先,通過識(shí)別文本中的命名實(shí)體,然后將其鏈指到知識(shí)圖譜中的相應(yīng)實(shí)體上,進(jìn)行知識(shí)的抽取和編碼。相比于直接使用知識(shí)圖譜中基于圖結(jié)構(gòu)的信息,作者通過TranE這樣的知識(shí)嵌入算法,對(duì)知識(shí)圖譜的圖結(jié)構(gòu)實(shí)體進(jìn)行編碼,然后將這富有信息的實(shí)體表示作為ERNIE的輸入,這樣就可以把知識(shí)模塊中的實(shí)體的信息表示,引入到模型下層的語義表示中去。
其次,和BERT類似,采用了MLM和NSP的預(yù)訓(xùn)練目標(biāo)。除此以外,為了更好地融合文本信息和知識(shí)信息,設(shè)計(jì)了一個(gè)新的預(yù)訓(xùn)練目標(biāo),通過隨機(jī)地mask一些命名實(shí)體,同時(shí)要求模型去知識(shí)圖譜中尋找合適的實(shí)體,來填充被mask掉的部分。這個(gè)訓(xùn)練目標(biāo)這樣做就可以要求語言模型,同時(shí)利用文本信息和知識(shí)圖譜來對(duì)token-entity進(jìn)行預(yù)測,從而成為一個(gè)富有知識(shí)的語言表達(dá)模型。
本文在兩個(gè)知識(shí)驅(qū)動(dòng)的NLP任務(wù)entity typing 和 relation classification進(jìn)行了實(shí)驗(yàn),ENRIE在這兩個(gè)任務(wù)上的效果大幅超越BERT,因?yàn)槠涑浞掷昧苏Z義,句法和知識(shí)信息。在其他的NLP任務(wù)上,ENRIE的效果也很不錯(cuò)。
定義
首先,定義我們的文本token序列為{w1, 。 . 。 , wn},n為token序列的長度。同時(shí),輸入的token可以在KG中對(duì)應(yīng)entity。所對(duì)應(yīng)entity的序列為{e1, 。 . 。 , em}, m是序列中entity的數(shù)量。因?yàn)椴灰欢恳粋€(gè)token都對(duì)應(yīng)得到KG中的一個(gè)entity,所以在大多數(shù)情況下m不等于n。所有token的集合也就是字典為V,在KG中所有entity的列表為E。如果,某個(gè)在V中的token w ∈ V 在KG中有對(duì)應(yīng)的entity e ∈ E。那么這個(gè)對(duì)應(yīng)關(guān)系定義為f(w) = e
我們可以看下方的模型結(jié)構(gòu)圖,大概包括兩個(gè)模塊。
下層的文本編碼器(T-Encoder),負(fù)責(zé)捕捉基本的詞法和句法的信息,其與BERT的encoder實(shí)現(xiàn)是相同的,都是多層的Transformer,層數(shù)為N。
上方的知識(shí)編碼器(K-Encoder),負(fù)責(zé)將跟entity相關(guān)的知識(shí)信息融入到下方層傳來的文本編碼信息中,兩者可以在統(tǒng)一的特征空間中去表示。T-Encoder的輸出是{w1, 。 . 。 , wn},實(shí)體輸入通過TranE得到的知識(shí)嵌入為{e1, 。 . 。 , em}。兩者通過K-Encoder計(jì)算出對(duì)應(yīng)的特征以實(shí)現(xiàn)特定任務(wù)。
K-Encoder的結(jié)構(gòu)和BERT略微不同,包含M個(gè)stacked aggregators。首先對(duì)token的輸出和entity的embedding通過兩個(gè)多頭自注意力進(jìn)行self attention。
接著,通過以下的式子進(jìn)行兩者的結(jié)合。Wt和We分別是token和Embedding的attention權(quán)重矩陣。
Pre-training for Injecting Knowledge
除了結(jié)構(gòu)的改變以外,文章提出了特殊的預(yù)訓(xùn)練語言模型訓(xùn)練目標(biāo)。通過隨機(jī)地mask一些entity然后要求模型通過知識(shí)圖譜中實(shí)體來進(jìn)行選擇預(yù)測,起名為denoising entity auto-encoder(dEA)。由于知識(shí)圖譜中entity的數(shù)量規(guī)模相對(duì)softmax層太大了,會(huì)首先在KG中進(jìn)行篩選找到相關(guān)的entity。有時(shí)候token和entity可能沒有正確的對(duì)應(yīng),就需要采取一些措施。
5%的情況下,會(huì)將token對(duì)應(yīng)的entity替換成一個(gè)隨機(jī)的entity,這是讓模型能夠在align錯(cuò)的時(shí)候,能夠糾正過來。
15%的情況下,會(huì)將entity mask掉,糾正沒有把所有存在的entity抽取出來和entity進(jìn)行對(duì)應(yīng)的問題。
其余的情況下,保持token-entity alignments 不變,來將entity的表示融合進(jìn)token的表示,以獲得更好的語言理解能力。
Fine-tuning for Specific Tasks
對(duì)于大量普通的NLP任務(wù)來說,ERNIE可以采取和BERT相似的finetune策略,將[CLS]的輸出作為輸入文本序列的表示。對(duì)于一些知識(shí)驅(qū)動(dòng)的任務(wù),我們設(shè)計(jì)了特殊的finetune流程。
對(duì)于關(guān)系分類任務(wù),任務(wù)要求模型根據(jù)上下文,對(duì)給定的entity對(duì)的關(guān)系進(jìn)行分類。本文設(shè)計(jì)了特殊的方法,通過加入兩種mark token來高亮實(shí)體。[HD] 表示head entity, [TL]表示tail entity。
對(duì)于實(shí)體類別分類任務(wù),finetune的方式是關(guān)系分類的簡化版,通過[ENT]標(biāo)示出entity的位置,指引模型同時(shí)結(jié)合上下文和實(shí)體的信息來進(jìn)行判斷。
模型細(xì)節(jié)
從頭開始訓(xùn)ENRIE的代價(jià)太大了,所以模型用了BERT的參數(shù)初始化。利用英文WIKI作為語料,和WiKidata進(jìn)行對(duì)應(yīng),語料中包含大約4500M個(gè)subwords,和140M個(gè)entities,將句中小于三個(gè)實(shí)體的樣本丟棄。通過TranE算法在WiKidata上訓(xùn)練entity的embedding。使用了部分WiKidata,其中包含5040986個(gè)實(shí)體和24267796個(gè)三元組。
模型尺度上來說,T-encoder的層數(shù)N為6,K-encoder層數(shù)M為6。隱藏層維度兩個(gè)網(wǎng)絡(luò)分別Hw = 768, He = 100。Attention的頭數(shù)分別 Aw = 12, Ae = 4。總參數(shù)量大約114M。
ERNIE僅在語料上訓(xùn)練了一輪,最大文本長度由于速度原因設(shè)為256,batch-size為512。除了學(xué)習(xí)率為5e-5,其他參數(shù)和BERT幾乎一樣。
實(shí)驗(yàn)效果
直接放圖吧,比當(dāng)時(shí)的state-of-the-art :BERT在很多任務(wù)上都提升了不少。
這里作者認(rèn)識(shí)到,有了知識(shí)圖譜的介入,可以用更少的數(shù)據(jù)達(dá)到更好的效果。
結(jié)論
在文中提出了一種方法名為ERNIE,來將知識(shí)的信息融入到語言表達(dá)的模型中。具體地,提出了knowledgeable aggregator 和預(yù)訓(xùn)練任務(wù)dEA來更好地結(jié)合文本和知識(shí)圖譜兩個(gè)異構(gòu)的信息源。實(shí)驗(yàn)表明,ENRIE能更好地在有限的數(shù)據(jù)上進(jìn)行訓(xùn)練和泛化。
未來還有幾個(gè)重要的方向值得研究
將知識(shí)嵌入到基于特征的預(yù)訓(xùn)練語言模型如ELMo。
引入更多不同的結(jié)構(gòu)化知識(shí)進(jìn)入到語言表達(dá)模型中去,比如ConceptNet,這和WiKidata是完全不同的方式。
進(jìn)行真實(shí)世界更廣泛的語料收集,可以進(jìn)行更通用和有效的預(yù)訓(xùn)練
編輯:jq
-
編碼器
+關(guān)注
關(guān)注
45文章
3787瀏覽量
137707 -
自然語言
+關(guān)注
關(guān)注
1文章
291瀏覽量
13633 -
nlp
+關(guān)注
關(guān)注
1文章
490瀏覽量
22570 -
知識(shí)圖譜
+關(guān)注
關(guān)注
2文章
132瀏覽量
7972
原文標(biāo)題:ENRIE:知識(shí)圖譜與BERT相結(jié)合,為語言模型賦能助力
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
輕輕松松學(xué)電工(識(shí)圖篇)
?VLM(視覺語言模型)?詳細(xì)解析

中科馭數(shù)DPU助力大模型訓(xùn)練和推理

微軟發(fā)布《GraphRAG實(shí)踐應(yīng)用白皮書》助力開發(fā)者
傳音旗下人工智能項(xiàng)目榮獲2024年“上海產(chǎn)學(xué)研合作優(yōu)秀項(xiàng)目獎(jiǎng)”一等獎(jiǎng)

評(píng)論