一、RetroMAE框架簡介
目前主流的(de)(de)語言模型(xing)的(de)(de)預(yu)訓練(lian)任務都是(shi)token級(ji)別的(de)(de),比(bi)如MLM或(huo)者(zhe)(zhe)Seq2Seq,但是(shi)這(zhe)種(zhong)訓練(lian)任務難以讓模型(xing)獲得(de)一個(ge)高質量的(de)(de)基于句子級(ji)別的(de)(de)句向量,這(zhe)限制了語言模型(xing)在(zai)檢索任務上的(de)(de)潛力。因此,有學者(zhe)(zhe)提出了RetroMAE預訓練(lian)框架,它(ta)主(zhu)要(yao)用(yong)于提升(sheng)模(mo)型的(de)在句(ju)子層級(ji)的(de)語(yu)義表(biao)征(zheng)能(neng)力。該框架基于經典的(de)掩碼(ma)自(zi)編(bian)碼(ma)器(Masked Auto-Encoder, MAE)架構(gou)進(jin)行設計,其核心思想是在輸入文本(ben)中(zhong)進(jin)行掩碼(ma)操作(zuo),然后讓模(mo)型嘗(chang)試恢復原始文本(ben),以此(ci)學習(xi)到文本(ben)的(de)深層語(yu)義結構(gou)。論(lun)文主(zhu)要(yao)對(dui)該框架的(de)encoder和decoder部(bu)分進(jin)行了介紹。
1、 Encoder
RetroMAE預(yu)訓練框架的encoder為一(yi)(yi)個類似于BERT的編碼器。主要策略是:給定一(yi)(yi)個句(ju)子(zi)輸入X,隨機(ji)mask(一(yi)(yi)般采用中等的mask比例,如15%~30%,可(ke)以(yi)保留原句(ju)大部分(fen)信(xin)息(xi))掉其中一(yi)(yi)小部分(fen)token后得到句(ju)向量。
在這(zhe)個(ge)過(guo)程中,輸(shu)入(ru)的(de)文本(ben)序列(lie)會被隨機(ji)地“掩(yan)碼”掉一(yi)部分(fen)(fen)(通常用(yong)(yong)特定的(de)標記如[MASK]替換掉原(yuan)文本(ben)的(de)部分(fen)(fen)token),然(ran)后模型需要預(yu)測這(zhe)些被掩(yan)碼位置(zhi)的(de)原(yuan)始token。這(zhe)種方法迫使模型理解和(he)學習上(shang)下文之間的(de)依(yi)賴關系(xi),從而學習到高質量的(de)語(yu)義(yi)表征。特別地,它(ta)只利用(yong)(yong)了CLS(分(fen)(fen)類(lei)標記)token的(de)隱藏狀態(tai)向量作為整個(ge)輸(shu)入(ru)序列(lie)的(de)語(yu)義(yi)表示。這(zhe)意(yi)味著模型的(de)輸(shu)出是一(yi)個(ge)整體(ti)的(de)語(yu)義(yi)向量,用(yong)(yong)于(yu)捕獲序列(lie)的(de)整體(ti)意(yi)義(yi)。
2、 Decoder
RetroMAE預訓(xun)練框架(jia)的decoder為(wei)一個一層transformer的解碼(ma)器。為(wei)了優(you)化傳統的decoder只能學習(xi)特定(ding)位置mask 的token向量的問題,這里(li)提出了一個Enhanced Decoding的策略(lve)。如下圖所(suo)示(shi):

給定一(yi)(yi)個(ge)句子輸入(ru)X,生成兩個(ge)不同的(de)輸入(ru)流:H1(句向(xiang)量(liang)+位置(zhi)(zhi)向(xiang)量(liang))和H2(句向(xiang)量(liang),token向(xiang)量(liang)+位置(zhi)(zhi)向(xiang)量(liang),這里的(de)token向(xiang)量(liang)沒有(you)被(bei)mask)。然后(hou)引入(ru)特(te)定位置(zhi)(zhi)的(de)注意力掩碼矩(ju)(ju)陣M(隨機生成的(de)下(xia)三角矩(ju)(ju)陣,對角線為(wei)(wei)0,第一(yi)(yi)行全為(wei)(wei)1,其(qi)余(yu)位置(zhi)(zhi)被(bei)隨機mask,即(ji)賦值為(wei)(wei)0,一(yi)(yi)般采用激(ji)進(jin)的(de)mask比例,如50%~70%,從而使得(de)解(jie)碼任(ren)務變得(de)極具挑戰性),使H1中(zhong)每個(ge)token向(xiang)量(liang)去H2中(zhong)查找(zhao)比較重(zhong)要的(de)上下(xia)文(確保一(yi)(yi)定看不到自身token,但一(yi)(yi)定能看到初始(shi)token向(xiang)量(liang),即(ji)encoder所產出的(de)CLS句向(xiang)量(liang)的(de)信息),最后(hou)得(de)到每個(ge)token的(de)context vector。
該過(guo)(guo)程旨在更(geng)充(chong)分(fen)地(di)(di)利用輸入(ru)序(xu)列中的(de)每(mei)個(ge)token的(de)嵌(qian)入(ru)信息,將掩碼后(hou)的(de)文本序(xu)列和(he)其(qi)他未掩碼token的(de)embedding結合起(qi)來(lai),通過(guo)(guo)拼接或者其(qi)他融合機制,送入(ru)解碼器來(lai)重建原始文本。這樣的(de)設計(ji)能(neng)(neng)夠使得(de)模(mo)型(xing)不(bu)僅學(xue)習到(dao)全局的(de)語(yu)義信息,還能(neng)(neng)更(geng)好地(di)(di)理(li)解局部的(de)詞匯和(he)上下文關系,以提高模(mo)型(xing)的(de)表達能(neng)(neng)力和(he)細節捕捉能(neng)(neng)力。

不過,由于(yu)RetroMAE獨特的decoder方(fang)式,使得(de)其只能(neng)針對Bert和RoBERTa模型進行預訓練。
二、基于RetroMAE的(de)預訓練結果
基于Bert和RoBERTa系(xi)列(lie)的模型(xing),使(shi)用RetroMAE+悟道數據進行(xing)了預訓練(lian)的實驗,并采(cai)用cmteb榜(bang)單測試集進行(xing)測試,可以得到如(ru)下(xia)結果:
|
model_name |
average |
retrieval |
reranking |
|
chinese-bert-afterPretrain |
39.67% |
38.76% |
36.47% |
|
roberta-afterPretrain |
34.52% |
26.55% |
36.18% |
|
xlm-roberta-xl-base |
21.05% |
2.75% |
31.66% |
|
chinese-bert-base |
21.27% |
2.87% |
29.18% |
可(ke)以(yi)看出,RetroMAE預訓練對于chinese-bert和roberta基(ji)座模型(xing)來說(shuo)均有15%-18%的(de)提升,說(shuo)明RetroMAE可(ke)以(yi)較好的(de)提升向量(liang)模型(xing)的(de)基(ji)礎(chu)能力。