邵云帆,孫天祥,邱錫鵬
(復(fù)旦大學(xué) 計算機(jī)科學(xué)技術(shù)學(xué)院,上海 200433)
不同于英語或其他能輕易區(qū)分字詞的語言,中文句子中不包含顯式的分詞信息。在自然語言處理任務(wù)中,通常用兩種粒度來編碼和處理中文文本,詞級別和字級別[1-3]。然而,如今大部分的中文預(yù)訓(xùn)練語言模型都采用字級別的細(xì)粒度編碼方式。這會讓句子被編碼為很長的序列,增加模型的計算開銷。而計算開銷的增加,在預(yù)訓(xùn)練語言模型中更加明顯。原因是預(yù)訓(xùn)練語言模型大都以Transformer作為主要模型架構(gòu)。而Transformer的時間和空間復(fù)雜度都是O(L2),其中L是編碼句子的長度。另一方面,詞級別的粗粒度編碼方式一般需要結(jié)合性能良好的中文分詞器。當(dāng)采用詞級別編碼的預(yù)訓(xùn)練語言模型被用于不同的數(shù)據(jù)集時,需要考慮所結(jié)合的中文分詞器的領(lǐng)域遷移問題。當(dāng)數(shù)據(jù)分布在模型應(yīng)用領(lǐng)域和分詞器的訓(xùn)練領(lǐng)域中的差異過大時,分詞器的性能會有所下降,影響預(yù)訓(xùn)練語言模型的編碼效果。更重要的是,詞級別的粗粒度編碼存在詞典外詞、數(shù)據(jù)稀疏以及錯誤傳播等問題[4-6]。這些問題進(jìn)一步阻礙了粗粒度編碼方式在預(yù)訓(xùn)練語言模型中的直接使用。
盡管詞級別編碼方式有著眾多不足,近年來,有許多工作顯示詞級別的粗粒度信息能夠增強(qiáng)采用字級別編碼的中文預(yù)訓(xùn)練語言模型。一種融合粗粒度信息的方式是將詞級別的編碼作為額外的特征輸入模型[7-9]。這一方式往往需要引入額外的參數(shù)并增加模型的計算和存儲開銷。另一種融合方式是利用詞級別的信息改進(jìn)預(yù)訓(xùn)練任務(wù)。一些工作嘗試改進(jìn)預(yù)訓(xùn)練中的遮蔽掩碼策略,將隨機(jī)遮蔽改為遮蔽句子中的粗粒度信息,如遮蔽詞、短語或者實(shí)體[1,10-11]。改進(jìn)后的預(yù)訓(xùn)練任務(wù)能增強(qiáng)模型的性能,但是訓(xùn)練后的模型依舊用細(xì)粒度的字來編碼文本。此外,在預(yù)訓(xùn)練時,粗粒度遮蔽的方法需要識別句子中的詞、短語或?qū)嶓w,這通常需要一個高質(zhì)量詞典。在大規(guī)模預(yù)訓(xùn)練語料中,通常難以得到這樣的詞典,而用現(xiàn)有的詞典可能會產(chǎn)生領(lǐng)域不匹配問題。
為了結(jié)合字級別和詞級別編碼的優(yōu)點(diǎn),探索高效的中文預(yù)訓(xùn)練模型編碼粒度和編碼方式。本文做出了以下改進(jìn):
首先,探索了基于混合粒度編碼的中文預(yù)訓(xùn)練模型的有效性。在這一編碼中,單字、詞語和短語可以同時出現(xiàn),共同編碼文本?;旌狭6染幋a的詞表通過數(shù)據(jù)驅(qū)動的算法直接在預(yù)訓(xùn)練數(shù)據(jù)中得到[12]。相比之前的中文預(yù)訓(xùn)練語言模型,我們的模型編碼效率更高,同時也避免了詞表外詞(OOV)問題,緩解了預(yù)定義詞表與訓(xùn)練數(shù)據(jù)的領(lǐng)域不匹配問題。
另外,由于混合粒度的編碼擴(kuò)大了模型詞表,可能需要用更有效率的方式預(yù)訓(xùn)練語言模型。為了加速預(yù)訓(xùn)練過程,我們提出了IDF遮蔽,一種基于詞語逆向文檔頻率(IDF)信息[13]的遮蔽策略。詞語的IDF信息直接從預(yù)訓(xùn)練語料中統(tǒng)計得到,以緩解數(shù)據(jù)分布不一致問題。在預(yù)訓(xùn)練時優(yōu)先遮蔽高IDF的詞語并讓模型預(yù)測。高IDF的詞語相比隨機(jī)挑選的詞出現(xiàn)概率更低,更加難以被預(yù)測。因此,這一預(yù)訓(xùn)練任務(wù)能鼓勵模型捕捉更充分的上下文信息,從而加速模型的收斂。
我們在多個中文自然語言處理任務(wù)中進(jìn)行了實(shí)驗(yàn),證明了本文方法的有效性。在CLUE基準(zhǔn)數(shù)據(jù)集上超越了BERT、RoBERTa等預(yù)訓(xùn)練模型。
相比直接使用一個訓(xùn)練好的中文分詞器,我們采用一元語言模型(Unigram Language Model)來獲取混合粒度編碼詞表。更具體地,我們采用一個基于一元語言模型的無監(jiān)督詞表構(gòu)建算法SentencePiece[14],在中文預(yù)訓(xùn)練語料上得到混合粒度的詞表和每個詞的出現(xiàn)概率。這一算法的使用讓我們不用對語料進(jìn)行分詞處理,因此避免了因引入分詞器而帶來的數(shù)據(jù)分布不一致。
具體而言,我們基于句子中每個元素的出現(xiàn)概率都相互獨(dú)立這一假設(shè),使用一元語言模型建模語料中的句子。對于任意句子x,可以看成是詞表中元素詞元的(token)的序列x=(x1,x2,…,xN),因此,句子的出現(xiàn)概率可以表示為:
(1)
其中,N是句子中詞元個數(shù),p(xi)是詞表中詞元xi的出現(xiàn)概率,服從條件:
(2)
其中,V是預(yù)先給定的固定大小的詞表。詞表的構(gòu)建對于詞信息的利用至關(guān)重要。多粒度中文預(yù)訓(xùn)練模型一般通過在語料上統(tǒng)計詞頻得到高頻詞以構(gòu)建詞表[7-9, 15]。這些詞表中的詞一般質(zhì)量較高,有清晰的詞邊界。然而,這些詞表并未針對編碼效率進(jìn)行優(yōu)化,若直接用于混合粒度編碼,可能會出現(xiàn)編碼后序列過長、詞表過大、詞表利用率低等問題。與詞頻統(tǒng)計方法不同的是,我們采用Kudo等[12]提出的算法,在大規(guī)模語料上迭代式地優(yōu)化詞表在整個數(shù)據(jù)集上的似然L,從而使得到的詞表更適用于混合粒度編碼。具體而言,基于一元語言模型,計算整個數(shù)據(jù)集的似然L,并進(jìn)行優(yōu)化,如式(3)所示。
(3)
其中,|D|為整個語料的句子數(shù),S(X)是句子X的分詞候選集合,P(x)的定義如式(1)。直接優(yōu)化似然L計算量過大,因此這里使用EM算法并進(jìn)行迭代優(yōu)化。首先,算法根據(jù)語料統(tǒng)計得到一個大的初始詞表,然后循環(huán)迭代式地逐步刪除詞表中的詞,針對數(shù)據(jù)集似然L進(jìn)行優(yōu)化,直到詞表大小符合預(yù)定義的閾值。具體的循環(huán)刪詞步驟為:
(1) 使用EM算法計算詞表中每個詞的概率p(xi),使數(shù)據(jù)集似然L最大。
(2) 針對每個詞xi計算lossi,表示將詞xi移除后似然L的減小量。
(3) 保留lossi較高的前μ%(一般取80%)的詞。
表1 不同詞表的對比
有了混合粒度的編碼詞表,就可以將任意句子編碼為混合粒度的詞元序列。具體而言,對于一段輸入文本X,我們找到一串詞元序列x,使得總概率最大,如式(4)所示。
(4)
其中,S(X)是句子X的分詞候選集合。集合中的每一段分詞序列都由詞表中的詞元組成,并且詞表中包含了大量細(xì)粒度的詞元,即漢字和字母。因此,在詞表中不存在的詞,會被拆分成字序列加以表示。這樣我們的分詞算法就可以避免詞表外詞(OOV)的問題。我們采用維特比算法[16]來得到概率最高的詞元序列,避免遍歷S(X)中的所有情況,減少了分詞時所需的開銷。
我們觀察到,混合粒度編碼增加了詞表大小,這可能使得預(yù)訓(xùn)練語言模型需要訓(xùn)練更多的步數(shù)才能達(dá)到原有的效果。一方面,這會引入更多參數(shù)來表示詞表中的詞元向量。另一方面,基于齊夫定律,詞表中的詞元在數(shù)據(jù)集中呈現(xiàn)長尾分布,存在極少的高頻詞元和大量的低頻詞元[17]。這樣高度偏斜的詞頻分布會導(dǎo)致數(shù)據(jù)稀疏的問題,即大量的詞向量很少出現(xiàn),也很難被訓(xùn)練。
為了更加系統(tǒng)地了解這一問題,我們在預(yù)訓(xùn)練語料上進(jìn)行分詞,并計算了每個詞的詞頻和逆文檔頻率(IDF)[13]。對于一個詞w,它的逆文檔頻率可以表示為:
(5)
其中,PD(w)是詞w在文檔中的出現(xiàn)概率,Nw是包含詞w的文檔數(shù),N是語料中的總文檔數(shù)。
正如圖1中的結(jié)果所示,詞頻分布有著很大的方差,分布范圍從101到108,并且大部分的詞都只有很低的詞頻(小于103),顯然這會導(dǎo)致數(shù)據(jù)稀疏問題。
圖1 預(yù)訓(xùn)練語料中詞的詞頻和逆文檔頻率(IDF)的分布圖
為了緩解這一問題,一個簡單直接的思路是在預(yù)訓(xùn)練時增加低頻詞的被遮蔽和被預(yù)測概率。然而,根據(jù)圖1,擁有相似詞頻的詞語可能有著差異很大的數(shù)據(jù)分布,而這一分布可以利用IDF來描述。如在圖1中,我們展示了詞頻約為2 000時,不同詞語的IDF值。其中高IDF的詞可能是實(shí)體或名詞,而帶有低IDF值的詞含有的語義信息較少。這說明IDF值相比詞頻而言,在篩選低頻詞時更加可靠。
因此,我們提出IDF遮蔽策略來加速預(yù)訓(xùn)練過程,并增強(qiáng)模型的表達(dá)能力。具體的處理流程如圖2所示,我們首先在預(yù)訓(xùn)練語料中統(tǒng)計得到大規(guī)模詞表以及對應(yīng)的IDF值。在預(yù)訓(xùn)練時,我們首先利用現(xiàn)有分詞器將句子分為由n個詞組成的序列,然后從詞表中得到每個出現(xiàn)詞的IDF值,進(jìn)一步從中取IDF值最大的k個詞作為候選集;最后,在候選集中隨機(jī)采樣m個詞作為遮蔽詞。由于IDF詞表一般遠(yuǎn)大于混合粒度的編碼詞表,遮蔽詞可能橫跨多個混合粒度詞元序列。為了減少分詞器的錯誤傳播,我們選擇能覆蓋遮蔽詞的連續(xù)混合粒度詞元序列進(jìn)行遮蔽,即以詞粒度選擇遮蔽范圍,以模型編碼粒度進(jìn)行遮蔽。因?yàn)镮DF詞表的數(shù)據(jù)從預(yù)訓(xùn)練語料中得到,緩解了數(shù)據(jù)分布不一致的問題。另外,IDF遮蔽還增加了預(yù)訓(xùn)練任務(wù)的難度。相比隨機(jī)遮蔽策略和簡單的詞級別遮蔽策略,IDF遮蔽策略讓模型更加難以利用局部信息預(yù)測遮蔽位置的詞,進(jìn)而使得模型建模更豐富的、跨度更大的上下文信息,從而增強(qiáng)了模型的表達(dá)能力[11]。
圖2 混合粒度編碼的模型使用IDF遮蔽訓(xùn)練時的數(shù)據(jù)處理流程
為了公平對比,我們使用大規(guī)模開源數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,處理后數(shù)據(jù)集大小為13 GB,包含九百萬個文檔。對于混合粒度編碼的詞表,設(shè)置詞表大小為6萬,用SentencePiece在預(yù)訓(xùn)練語料中隨機(jī)采樣的2 000萬個句子進(jìn)行一元語言模型的訓(xùn)練。對于IDF遮蔽需要的低頻詞表和IDF值信息,我們首先用現(xiàn)有的中文分詞器,將預(yù)訓(xùn)練語料分詞,然后統(tǒng)計詞頻和IDF值,略去詞頻小于10的詞。最后得到的IDF詞表包含了大約100萬個詞。我們采用BERT-base架構(gòu),即12層的雙向Transformer編碼器,768維隱向量,前饋網(wǎng)絡(luò)中間層維度為3 072,12個注意力頭,每個注意力向量的維度為64。我們從頭開始預(yù)訓(xùn)練,以公平對比,并使用Adam優(yōu)化器訓(xùn)練模型100萬步,最大句子長度為512,一個批次有384個句子。我們利用學(xué)習(xí)率先熱身(Warmup)再衰減策略,學(xué)習(xí)率從零開始線性增加1萬步,達(dá)到峰值10-4,然后線性衰減到零。遵循RoBERTa的超參數(shù)設(shè)置,我們將Adam的beta設(shè)為(0.9,0.98),參數(shù)衰減(Weight Decay)設(shè)為0.01。在預(yù)訓(xùn)練時,我們將遮蔽比例設(shè)為15%,并采用IDF遮蔽策略。其中,k為句子總詞數(shù)的30%,m為句子總詞數(shù)的15%。如當(dāng)句子中包含512個詞時,候選集大小k=154,遮蔽詞數(shù)量m=77。整個預(yù)訓(xùn)練在8塊英偉達(dá)RTX3090顯卡(顯存為24 GB)上完成,需要7天左右的時間。
2.2.1 數(shù)據(jù)集
為了測試不同領(lǐng)域以及不同句長分布下模型的性能,我們選用以下數(shù)據(jù)集進(jìn)行實(shí)驗(yàn):
CLUE中文語言理解基準(zhǔn)分類數(shù)據(jù)集[18]: 包含了6個數(shù)據(jù)集,語義相似度匹配數(shù)據(jù)集AFQMC,文本分類數(shù)據(jù)集IFLYTEK和TNEWS,自然語言推理數(shù)據(jù)集CMNLI,代詞消歧數(shù)據(jù)集WSC,以及論文關(guān)鍵詞匹配數(shù)據(jù)集CSL。與Zhang等相同,我們在TNEWS和CSL上使用了數(shù)據(jù)增強(qiáng)[8]。此外,我們還在情感分析數(shù)據(jù)集ChnSentiCorp[19],篇章級文本分類THUCNEWS[20]句對語義匹配數(shù)據(jù)集LCQMC[21]上測試了我們的模型。
對于已有分詞標(biāo)注的任務(wù)(如詞性標(biāo)注,命名實(shí)體識別,基于Span的閱讀理解等),在使用混合粒度編碼時,直接使用傳統(tǒng)方式微調(diào)會由于分詞不一致問題產(chǎn)生性能損失。針對這些任務(wù),可以采用以下方法: ①改進(jìn)解碼方式,讓模型預(yù)測詞邊界; ②直接使用字粒度編碼微調(diào); ③配合其他字粒度編碼器同時使用;這些改進(jìn)能緩解分詞不一致問題,我們將混合粒度編碼在這些任務(wù)中的擴(kuò)展作為未來工作。
2.2.2 微調(diào)實(shí)驗(yàn)設(shè)置
對于基準(zhǔn)模型,我們選擇幾個有代表性的主流中文預(yù)訓(xùn)練語言模型進(jìn)行比較,以證明本文所提出的方法的有效性。為了與其他不同的編碼方式進(jìn)行比較,選取的模型有字級別、詞級別以及多粒度融合字詞的中文預(yù)訓(xùn)練語言模型:
BERT: 為了充分比較,我們選取幾種不同的BERT實(shí)現(xiàn): ①由谷歌發(fā)布的中文版BERT模型[22],在中文wiki上使用隨機(jī)遮蔽訓(xùn)練,在本文中用BERT(Google)表示; ②由Cui等發(fā)布的基于整詞遮蔽訓(xùn)練的BERT-wwm[2],在本文中簡寫為BERT; ③由Zhang和Li得到的詞級別BERT[8],簡稱BERT(word)。
RoBERTa: 我們使用Cui等發(fā)布的RoBERTa-wwm-ext進(jìn)行實(shí)驗(yàn)[2]。這一模型使用谷歌BERT初始化,在大規(guī)模語料上訓(xùn)練100萬步得到。
AMBERT: 由Zhang等提出的多粒度編碼模型[8],分別使用兩個參數(shù)共享的編碼器處理細(xì)粒度和粗粒度分詞的文本。
LICHEE: 通過改進(jìn)詞嵌入層融合文本的多粒度信息的預(yù)訓(xùn)練方法[15]。作者將這一方法在不同結(jié)構(gòu)的預(yù)訓(xùn)練模型上進(jìn)行了應(yīng)用。我們選用LICHEE-BERT進(jìn)行對比。
Lattice-BERT: 通過改進(jìn)注意力機(jī)制以編碼Lattice結(jié)構(gòu)的多粒度中文預(yù)訓(xùn)練模型[9]。
我們對所有模型都使用統(tǒng)一的微調(diào)流程,針對每個數(shù)據(jù)集,僅使用該數(shù)據(jù)集的訓(xùn)練集進(jìn)行微調(diào)。在每個數(shù)據(jù)集上,都進(jìn)行有限的網(wǎng)格搜索。其中,設(shè)置批量大小為{16,32},學(xué)習(xí)率為{1,2,3,5}×10-5,訓(xùn)練周期在除了WSC的數(shù)據(jù)集上取{5,8},在WSC上固定為80個周期。對于CLUE分類數(shù)據(jù)集,本文取開發(fā)集正確率最高的模型在測試集上進(jìn)行預(yù)測,并匯報測試集的正確率。對于其他數(shù)據(jù)集,我們運(yùn)行5次相同設(shè)置的實(shí)驗(yàn),并同時匯報最佳和平均正確率。
我們匯報了基準(zhǔn)模型以及我們的模型分別在CLUE分類數(shù)據(jù)測試集上的性能,結(jié)果列在表2中。對于其他數(shù)據(jù)集,我們的結(jié)果列在表3中,其中,“?”表示本文根據(jù)原論文復(fù)現(xiàn)后的結(jié)果,括號中的數(shù)字為平均值,括號前的數(shù)字為最高值。
表2 不同模型在CLUE基準(zhǔn)測試中測試集上的正確率 (單位: %)
表3 不同模型在三個數(shù)據(jù)集上的正確率對比 (單位: %)
如表2和表3所示,混合粒度編碼相比單一粒度的中文預(yù)訓(xùn)練模型,如BERT和RoBERTa等,有著明顯的性能優(yōu)勢。如表2所示,而對比其他多粒度編碼的預(yù)訓(xùn)練模型,如AMBERT、LICHEE-BERT和Lattice-BERT等,也有很強(qiáng)的競爭力。同時,混合粒度編碼減短了輸入長度,提高了模型推理效率。
混合粒度編碼的一大優(yōu)勢是相比細(xì)粒度的編碼,在保持模型的表達(dá)能力不變的同時,能夠縮短編碼序列的長度,并能減少模型的計算量。我們隨機(jī)從數(shù)據(jù)集中抽取不同句子長度的文本,并計算這些文本用不同編碼方式所需要的模型計算量,即FLOPs。結(jié)果如圖3所示,混合粒度編碼有效減少了計算開銷,在長文本上效果尤為明顯。
圖3 字級別編碼方式(BERT)和混合粒度編碼(Ours)在不同長度下的相對計算開銷比較
我們進(jìn)一步在不同數(shù)據(jù)集上對比不同編碼方式的平均編碼長度,并分別記錄推理時間,結(jié)果如表4所示,相比字粒度編碼,混合粒度編碼縮小了文本的平均編碼長度,并加快了推理速度。
表4 不同編碼方式在不同數(shù)據(jù)集上的平均編碼長度和推理時間比較
為了進(jìn)一步比較不同的編碼方式,我們?nèi)コ薎DF遮蔽,使用和BERT相同的整詞遮蔽進(jìn)行訓(xùn)練和比較。如表5所示,我們的模型“Our BERT(mixed)”就編碼效率而言優(yōu)于同等數(shù)據(jù)量訓(xùn)練的BERT模型。為了公平比較,用同樣的數(shù)據(jù)集和超參復(fù)現(xiàn)了BERT,結(jié)果見“Our BERT(char)”??梢钥吹絀DF遮蔽相比整詞遮蔽能同時為字級別和混合粒度編碼的預(yù)訓(xùn)練模型帶來性能提升。當(dāng)IDF遮蔽配合混合粒度編碼時,所帶來的提升更加明顯。
表5 不同編碼方式和遮蔽方式在CLUE基準(zhǔn)測試中驗(yàn)證集上的正確率(除特殊標(biāo)明模型使用整詞遮蔽訓(xùn)練) (單位: %)
為了更進(jìn)一步地證明IDF遮蔽策略的有效性,我們分別使用IDF遮蔽策略以及整詞遮蔽策略預(yù)訓(xùn)練了語言模型,最終結(jié)果見表5。配合混合粒度編碼,我們的模型最終能在CLUE驗(yàn)證集上取得76.13%的平均性能。而單獨(dú)在字級別預(yù)訓(xùn)練模型上使用IDF遮蔽,增強(qiáng)了預(yù)訓(xùn)練任務(wù)的難度,從而也增強(qiáng)了模型的性能(表5)。
我們選取出優(yōu)化了不同步數(shù)的模型在TNEWS數(shù)據(jù)集上進(jìn)行微調(diào)。結(jié)果如圖4所示,當(dāng)訓(xùn)練步數(shù)相同時,使用了IDF遮蔽策略的模型的下游任務(wù)性能比整詞遮蔽策略優(yōu)化的模型要好,并且隨著訓(xùn)練步數(shù)的增加IDF遮蔽策略將持續(xù)地提升模型的性能,在訓(xùn)練1M步后依然保持了性能增長趨勢,并且大幅超過了整詞遮蔽策略訓(xùn)練的模型。
圖4 使用不同遮蔽方式訓(xùn)練的模型在TNEWS驗(yàn)證集上的性能隨預(yù)訓(xùn)練步數(shù)的變化情況
為了更細(xì)致地比較IDF遮蔽策略和整詞遮蔽策略的不同,我們隨機(jī)采樣了約2 000萬個詞的預(yù)訓(xùn)練語料(約200 MB),分別使用整詞遮蔽和IDF遮蔽選擇遮蔽詞,并將被遮蔽的詞數(shù)按詞頻進(jìn)行統(tǒng)計,結(jié)果如圖5所示。相比整詞遮蔽,IDF遮蔽傾向于選擇詞頻在102~106的中低頻詞進(jìn)行掩碼,而顯著減少高頻詞(詞頻高于108)的掩碼次數(shù)。如圖5所示,IDF遮蔽改變了不同詞頻的詞被遮蔽的概率,而非完全忽略高頻詞。因?yàn)镮DF遮蔽僅在句內(nèi)進(jìn)行IDF排序和選擇,而語料中存在很多僅由高頻詞組成的句子,這時IDF遮蔽從句中選擇的遮蔽詞(其在句內(nèi)排序IDF很高)在整個語料上IDF很低,屬于高頻詞。
圖5 不同遮蔽方式中被遮掩詞在語料中的詞頻分布
現(xiàn)存的中文預(yù)訓(xùn)練語言模型通常將句子以字序列的方式編碼。然而,這會使得長句子難以被表示,會產(chǎn)生很大的計算開銷。同時,這也忽略了中文豐富的粗粒度信息。為了融合粗粒度信息到中文預(yù)訓(xùn)練語言模型中,Zhang等提出了使用兩個參數(shù)共享的編碼器分別建模粗粒度和細(xì)粒度的信息[8]。而Diao等提出使用一個額外的編碼器單獨(dú)建模N元(N-Gram)信息,并逐層融合到細(xì)粒度編碼的預(yù)訓(xùn)練語言模型中[7]。然而,這些額外引入的編碼器會引入大量的參數(shù),額外增加了計算和存儲開銷。Li等將文本進(jìn)行細(xì)粒度編碼的同時,加入了Lattice信息作為模型的輸入,并提出了表示Lattice結(jié)構(gòu)的相對位置編碼,使得模型能同時建模多種粒度的文本[9]。然而,Li等的模型結(jié)構(gòu)使得輸入序列變長,相對位置編碼也存在較大的計算開銷,大大增加了模型的計算量。相比之前的工作,我們提出的混合粒度編碼能將句子表示為較短的序列,增加了模型的編碼效率。
相比僅使用隨機(jī)遮蔽的預(yù)訓(xùn)練任務(wù),有一系列工作顯示,遮蔽文本中的詞、短語和實(shí)體進(jìn)行訓(xùn)練,將會增強(qiáng)預(yù)訓(xùn)練模型的性能[1, 9-11]。例如,谷歌在BERT的基礎(chǔ)上,使用整詞遮蔽訓(xùn)練了BERT-wwm。Joshi等人提出SpanBERT,隨機(jī)遮蔽連續(xù)的詞元序列,從而進(jìn)一步增加任務(wù)難度[10-12]。ERNIE為了融合知識到模型中,提出遮蔽句子中的實(shí)體。針對融合了Lattice信息的模型,Li等提出先將文本分成幾個互相沒有Lattice信息連邊的幾個分割,然后以分割為單元遮蔽[9]。這樣的模型無法直接利用相連的Lattice信息進(jìn)行預(yù)測,增加了預(yù)測難度。ERNIE-Gram提出在訓(xùn)練細(xì)粒度編碼的語言模型時,可以同時讓模型預(yù)測文本中的粗粒度信息,從而增強(qiáng)模型的性能[22]。這樣模型仍然建模細(xì)粒度分詞的文本,在預(yù)訓(xùn)練時使用整詞遮蔽后,模型需同時預(yù)測被遮蔽詞以及詞的細(xì)粒度信息(詞元序列)。然而,這些方法在遮蔽前往往需要得到文本中的詞語或?qū)嶓w等粗粒度信息。這時一般需要一個預(yù)先給定的大規(guī)模詞庫或?qū)嶓w庫。因此,預(yù)訓(xùn)練語料和詞庫之間可能會出現(xiàn)數(shù)據(jù)分布不一致的問題。并且,這些方法在遮蔽時沒有考慮到數(shù)據(jù)稀疏的問題,低頻詞的出現(xiàn)相對較少且比較稀疏。相比之前的方法,IDF遮蔽策略使用了在預(yù)訓(xùn)練語料上得到的統(tǒng)計信息,并且讓模型重點(diǎn)學(xué)習(xí)文本中的稀有詞,從而緩解了數(shù)據(jù)不一致和數(shù)據(jù)稀疏的問題,更進(jìn)一步地增強(qiáng)了模型。
本文探索了中文預(yù)訓(xùn)練中應(yīng)用混合粒度編碼的可能性。相比之前中文預(yù)訓(xùn)練模型廣泛采用的細(xì)粒度編碼,我們提出的混合粒度編碼有效提升了編碼效率。而相比詞級別等粗粒度的編碼方式,本文的方法有效緩解了詞表外詞(OOV)以及數(shù)據(jù)稀疏等問題。搭配上所提出的IDF遮蔽策略,我們預(yù)訓(xùn)練的混合粒度編碼語言模型在多個數(shù)據(jù)集上取得了有競爭力的性能,并且減少了大量模型計算量。
未來工作包括混合粒度編碼應(yīng)用范圍的拓展以及預(yù)訓(xùn)練遮蔽策略的進(jìn)一步改進(jìn)?;旌狭6染幋a能夠明顯提升編碼器的編碼效率,但對于需要細(xì)粒度分詞的下游任務(wù)不夠友好。未來可以將混合粒度編碼器與細(xì)粒度的解碼器相結(jié)合,進(jìn)一步擴(kuò)展模型的應(yīng)用深度和廣度。另一方面,IDF遮蔽策略根據(jù)詞頻信息調(diào)節(jié)了不同詞匯的遮蔽頻率,未來可以基于更豐富的數(shù)據(jù)集和其他先驗(yàn)信息更系統(tǒng)地選擇遮蔽詞和遮蔽方式,以加快模型的預(yù)訓(xùn)練過程并提升訓(xùn)練效果。