孟曉龍,任正非
(1.上海旅游高等專(zhuān)科學(xué)校,上海 201418;2.上海師范大學(xué)旅游學(xué)院,上海 201418;3.科克大學(xué)數(shù)學(xué)學(xué)院,科克 愛(ài)爾蘭)
基于大規(guī)模文本語(yǔ)料庫(kù)的預(yù)先訓(xùn)練模型能夠?qū)W習(xí)通用語(yǔ)義表征,再根據(jù)給定數(shù)據(jù)集進(jìn)行微調(diào)可以顯著提升預(yù)先訓(xùn)練模型在各類(lèi)自然語(yǔ)言處理任務(wù)的性能[1]。文本分類(lèi)作為自然語(yǔ)言處理的一個(gè)基礎(chǔ)任務(wù),試圖推斷出給定的文本(或句子、文檔等)的標(biāo)簽或標(biāo)簽集合,在如情感傾向分析、新聞主題分類(lèi)、內(nèi)容審核、問(wèn)答系統(tǒng)等[2-3]諸多領(lǐng)域有廣泛的應(yīng)用。
本文基于某政務(wù)平臺(tái)公眾留言文本分類(lèi)數(shù)據(jù),分別從如何合理地選擇給定數(shù)據(jù)集的特征來(lái)源,如何在效果損失較少的情況下顯著地提升模型速率,如何有效地設(shè)計(jì)微調(diào)策略等三個(gè)方面進(jìn)行研究。主要的貢獻(xiàn)有:
(1)相對(duì)僅選取公眾留言數(shù)據(jù)集的“主題”作為數(shù)據(jù)特征來(lái)源,采用“主題+詳情”的效果可提高2%~3%;
(2)相對(duì)典型的預(yù)先訓(xùn)練模型BERT,本文采用的基于全詞掩蔽的擴(kuò)展模型RoBERTa-wwmext的效果提高2%左右,基于知識(shí)蒸餾的壓縮模型RBT3的速率提升2~4倍;
(3)相對(duì)模型默認(rèn)微調(diào)策略,本文采用的判別微調(diào)和傾斜的三角學(xué)習(xí)率等微調(diào)策略效果可提高2%~3%。
Peters等人2018年采用深度雙向Bi-LSTM來(lái)實(shí)現(xiàn)上下文相關(guān),提出[4]一種動(dòng)態(tài)的、語(yǔ)境化的語(yǔ)言模型ELMo(embedding from language models),將目標(biāo)任務(wù)處理轉(zhuǎn)移到預(yù)先訓(xùn)練產(chǎn)生詞向量的過(guò)程中。Devlin等人2018年提出基于多層雙向Transformer結(jié)構(gòu)的語(yǔ)義表征模型BERT(bidirectional encoder representations from transformers),同時(shí)利用掩碼語(yǔ)言模型和下一句子預(yù)測(cè)任務(wù)[5]來(lái)獲得高級(jí)別的語(yǔ)義表征。Liu等人2019年基于語(yǔ)義表征模型BERT,去掉下一句子預(yù)測(cè)任務(wù),設(shè)計(jì)動(dòng)態(tài)更新掩蔽模式,以及使用更大的語(yǔ)料庫(kù)、設(shè)置更大的批次大小和更長(zhǎng)的訓(xùn)練時(shí)間的訓(xùn)練策略[6],提出強(qiáng)力優(yōu)化的BERT語(yǔ)義表征模型RoBERTa(robustly optimized bert pre-train-ing approach)。Cui等人2019年利用全詞掩蔽WWM(whole word masking)來(lái)替代BERT模型采用的部分詞掩蔽方法,提出更適合中文自然語(yǔ)言處理任務(wù)的BERT-wwm模型[7],并在綜述文章[8]中介紹基于全詞掩蔽的強(qiáng)力優(yōu)化語(yǔ)義表征擴(kuò)展模型RoBERTa-wwm-ext和基于知識(shí)蒸餾的壓縮模型RBT3。
隨著預(yù)先訓(xùn)練模型深度的增加,其所捕獲的語(yǔ)義表征使目標(biāo)任務(wù)更加容易。然而,作為預(yù)先訓(xùn)練模型適應(yīng)目標(biāo)任務(wù)的主要方法的微調(diào)過(guò)程往往是脆弱的,即使有相同的超參數(shù)值,不同的隨機(jī)種子就可導(dǎo)致實(shí)質(zhì)上不同的結(jié)果[1]。
Sun等人的研究表明[9],對(duì)相關(guān)領(lǐng)域語(yǔ)料進(jìn)行進(jìn)一步的預(yù)先訓(xùn)練,可以進(jìn)一步提高BERT的能力,并在文本分類(lèi)數(shù)據(jù)集上取得SOTA的性能。Stickland等人在預(yù)先訓(xùn)練模型BERT添加額外的特定任務(wù)適應(yīng)模塊PALs(projected attention layers)[10],實(shí)現(xiàn)比標(biāo)準(zhǔn)微調(diào)模型少7倍參數(shù),卻在通用語(yǔ)言理解評(píng)估基準(zhǔn)GLUE表現(xiàn)相當(dāng)?shù)男阅堋oyal等人2017年提出預(yù)熱方法[11],即在訓(xùn)練初期使用較小的學(xué)習(xí)率開(kāi)始,并在訓(xùn)練后期逐步增大到較大的學(xué)習(xí)率。Howard等人2018年提出傾斜的三角學(xué)習(xí)率STLR(slanted triangular learning rates)方法[12],先線(xiàn)性地增加學(xué)習(xí)率,然后根據(jù)訓(xùn)練周期線(xiàn)性地衰減學(xué)習(xí)率。同時(shí),Howard等人提出判別微調(diào)DF(discriminative fine-tuning)方法[12],即區(qū)分性地以不同的學(xué)習(xí)速率調(diào)整每個(gè)層的訓(xùn)練。
多層雙向語(yǔ)義表征模型BERT的出現(xiàn)[5]使預(yù)先訓(xùn)練模型應(yīng)用于自然語(yǔ)言處理領(lǐng)域真正走向成熟,并在工業(yè)界得到廣泛的應(yīng)用,也成為學(xué)術(shù)界的研究熱點(diǎn)?;贐ERT的改進(jìn)版本也逐漸被提出,在各類(lèi)任務(wù)中展現(xiàn)SOTA的表現(xiàn)。針對(duì)BERT的改進(jìn),主要體現(xiàn)在增加訓(xùn)練語(yǔ)料、增添預(yù)先訓(xùn)練任務(wù)、改進(jìn)掩蔽方式、調(diào)優(yōu)超參數(shù)和優(yōu)化(壓縮)模型結(jié)構(gòu)等。
2.1.1 多層雙向語(yǔ)義表征模型
多層雙向語(yǔ)義表征模型BERT根據(jù)不同任務(wù)和輸出,聯(lián)合訓(xùn)練掩碼語(yǔ)言模型MLM(masked language model)和下一句子預(yù)測(cè)任務(wù)NSP(next sentence prediction)來(lái)獲得高級(jí)別的語(yǔ)義表征[5]。
其中:
掩碼語(yǔ)言模型MLM:隨機(jī)將輸入中15%的詞遮蔽起來(lái),通過(guò)其他的詞來(lái)預(yù)測(cè)被遮蔽的詞,可以學(xué)習(xí)到詞的上下文特征、語(yǔ)法結(jié)構(gòu)特征和句法特征等,保證特征提取的全面性。
下一句子預(yù)測(cè)任務(wù)NSP:輸入句子A和句子B,判斷句子B是否是句子A的下一句,可以學(xué)習(xí)到句子間的關(guān)系。
2.1.2 強(qiáng)力優(yōu)化方法
強(qiáng)力優(yōu)化的BERT語(yǔ)義表征模型RoBERTa主要從動(dòng)態(tài)掩蔽方式、移去下一句子預(yù)測(cè)任務(wù)NSP、超參數(shù)優(yōu)化和更大規(guī)模的訓(xùn)練數(shù)據(jù)等方面對(duì)語(yǔ)義表征模型BERT進(jìn)行改進(jìn)[6],具體如下:
靜態(tài)掩蔽變動(dòng)態(tài)掩蔽:BERT在預(yù)先訓(xùn)練開(kāi)始隨機(jī)選擇15%的詞進(jìn)行遮蔽,之后的訓(xùn)練不再改變,即靜態(tài)掩蔽;而RoBERTa在預(yù)先訓(xùn)練開(kāi)始時(shí)將數(shù)據(jù)復(fù)制10份,每一份都隨機(jī)選擇15%的詞進(jìn)行遮蔽,這種動(dòng)態(tài)掩蔽可間接的增加訓(xùn)練數(shù)據(jù),有助于提高模型性能。
移去下一句子預(yù)測(cè)任務(wù):實(shí)驗(yàn)發(fā)現(xiàn),移去下一句子預(yù)測(cè)任務(wù)在下游任務(wù)的性能上與原始BERT持平或略有提高。RoBERTa采用Full-Sentences模式,即支持每次輸入連續(xù)的多個(gè)句子,直到最大序列長(zhǎng)度等于512(可以跨文章),從而使模型能捕獲更長(zhǎng)的依賴(lài)關(guān)系,有助于模型在長(zhǎng)序列的下游任務(wù)取得更好的效果。
更大的批次大小和更多的訓(xùn)練數(shù)據(jù):實(shí)驗(yàn)發(fā)現(xiàn),更大的批次大小配合更大的學(xué)習(xí)率可提升模型的優(yōu)化速率和性能;更多的訓(xùn)練數(shù)據(jù)增加數(shù)據(jù)的多樣性,同樣能提升模型的性能。
2.1.3 全詞遮蔽
BERT-wwm和RoBERTa-wwm-ext模型使用全詞遮蔽WWM(whole word masking)的訓(xùn)練方式[7],將長(zhǎng)單詞整體進(jìn)行遮蔽。特別針對(duì)中文,如果一個(gè)詞的部分字被遮蔽,則同屬該詞的其他部分也會(huì)被遮蔽,即對(duì)組成這個(gè)詞的漢字全部進(jìn)行遮蔽。這種預(yù)先訓(xùn)練方式的改進(jìn),使模型能夠?qū)W習(xí)到詞的語(yǔ)義信息,已在多項(xiàng)中文自然語(yǔ)言處理任務(wù)上取得更好的效果。
2.1.4 知識(shí)蒸餾
利用知識(shí)蒸餾KD(knowledge distillation)的方法,RBT3模型[8]在訓(xùn)練中扮演學(xué)生角色,其Transformer層和Prediction層學(xué)習(xí)教師模型RoBERTa-wwm-ext對(duì)應(yīng)層的分布和輸出,以教師模型的參數(shù)初始化前三層Transformer層(包括Hidden層和Attention機(jī)制)以及Embedding層,并在此基礎(chǔ)上繼續(xù)訓(xùn)練,在僅損失少量效果的情況下大幅減少參數(shù)量,進(jìn)一步提升推斷速度并可在一些資源緊張的設(shè)備上有效執(zhí)行。
2.2.1 判別微調(diào)
本文使用判別微調(diào)DF(discriminative finetuning)方法[12],能夠讓模型在微調(diào)過(guò)程中不斷減緩底層的更新速度,盡可能地保留模型習(xí)得的底層通用知識(shí)。
通常,根據(jù)隨機(jī)梯度下降SGD(stochastic gradient descent)算法,第t次訓(xùn)練時(shí)模型參數(shù)θ更新如公式(1)所示:
其中,η表示學(xué)習(xí)率,▽?duì)菾(θ)代表模型目標(biāo)函數(shù)的梯度。對(duì)于判別微調(diào)方法,將參數(shù)θ分成{θ1,…,θL},其中,L是模型的分層數(shù),θl表示第l層的模型參數(shù)。同樣,ηl表示第l層的學(xué)習(xí)率。
判別微調(diào)的隨機(jī)梯度下降更新如下:
經(jīng)驗(yàn)發(fā)現(xiàn),若最后一層的學(xué)習(xí)率設(shè)定為ηL,將ηl=ηl-1/2.6作為較低一層的學(xué)習(xí)率是有效的。
3.2.2 傾斜的三角學(xué)習(xí)率
本文使用傾斜的三角學(xué)習(xí)率STLR(slanted triangular learning rates)方法[12],即先線(xiàn)性地增加學(xué)習(xí)率,再根據(jù)訓(xùn)練迭代次數(shù)線(xiàn)性地衰減學(xué)習(xí)率。具體表達(dá)如公式(3)所示。
其中,T是總的訓(xùn)練迭代次數(shù),cut_fr ac是學(xué)習(xí)率上升在整個(gè)訓(xùn)練迭代次數(shù)的比例,cut是學(xué)習(xí)率轉(zhuǎn)折時(shí)的迭代次數(shù),p是學(xué)習(xí)率遞增或?qū)⑦f減的放縮比例,ratio是最小學(xué)習(xí)率與最大學(xué)習(xí)率ηmax的比值,ηt是第t次迭代時(shí)的學(xué)習(xí)速率。
經(jīng)驗(yàn)發(fā)現(xiàn),當(dāng)cut_frac等于0.1至0.2,ratio等于32時(shí),具有短期增長(zhǎng)和長(zhǎng)衰減期特性,結(jié)果較好。
本文實(shí)驗(yàn)選取某政務(wù)平臺(tái)公眾留言文本分類(lèi)數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集,該數(shù)據(jù)集來(lái)源于第八屆“泰迪杯”數(shù)據(jù)挖掘挑戰(zhàn)賽,包括“編號(hào)”“用戶(hù)”“主題”“時(shí)間”“詳情”和“標(biāo)簽”等六個(gè)字段,包含城鄉(xiāng)建設(shè)、環(huán)境保護(hù)、交通運(yùn)輸?shù)?個(gè)類(lèi)別,共9210個(gè)樣本。如表1所示。
表1 某公眾留言文本分類(lèi)數(shù)據(jù)集介紹
馬修斯相關(guān)系數(shù)MCC(matthews correlation coefficient)[13]是機(jī)器學(xué)習(xí)中被用來(lái)衡量分類(lèi)質(zhì)量的指標(biāo)之一。它通常被認(rèn)為是一個(gè)平衡的指標(biāo),即對(duì)樣本不同類(lèi)別數(shù)量差別較大時(shí)也適用。對(duì)于K分類(lèi)問(wèn)題,其定義如公式(4)所示。
本文實(shí)驗(yàn)使用4.1節(jié)介紹的某政務(wù)平臺(tái)公眾留言文本分類(lèi)數(shù)據(jù)集,并以4.2節(jié)介紹的馬修斯相關(guān)系數(shù)MCC作為分類(lèi)結(jié)果的評(píng)價(jià)標(biāo)準(zhǔn)。實(shí)驗(yàn)環(huán)境單卡16GB的Tesla V100顯卡。實(shí)驗(yàn)結(jié)果括號(hào)內(nèi)為20次運(yùn)行結(jié)果的平均值,括號(hào)外為最高值。
4.3.1 特征選擇實(shí)驗(yàn)與分析
本組實(shí)驗(yàn)分別以公眾留言分類(lèi)數(shù)據(jù)集的“主題”和“主題+詳情”作為數(shù)據(jù)特征來(lái)源,基于3.1節(jié)中重點(diǎn)介紹的BERT、BERT-wwm、RoBERTa-wwm-ext和RBT3等4個(gè)預(yù)先訓(xùn)練模型,采用默認(rèn)的微調(diào)策略,即采用自適應(yīng)矩估計(jì)(Adam)優(yōu)化器,批次大小等于16,全局學(xué)習(xí)率等于1e-4,微調(diào)迭代周期Epoch等于3,并根據(jù)兩組文本輸入長(zhǎng)度不同,分別設(shè)置“主題”和“主題+詳情”的最大序列長(zhǎng)度等于32和512。實(shí)驗(yàn)結(jié)果如表2所示。
表2 特征選擇實(shí)驗(yàn)結(jié)果對(duì)比
實(shí)驗(yàn)結(jié)果表明,采用“主題+詳情”作為數(shù)據(jù)特征來(lái)源的效果可提高2%~3%,這說(shuō)明合理地選擇給定數(shù)據(jù)集的特征來(lái)源可以顯著地提升效果。其中,RoBERTa-wwm-ext模型的效果提升尤為明顯,這是由于該模型采用的Full-Sentences模式能捕獲更長(zhǎng)的依賴(lài)關(guān)系,有助于模型在長(zhǎng)序列的下游任務(wù)取得更好的效果。RBT3模型的速率可提升2~4倍,且效果損失較少,特別是采用“主題+詳情”作為數(shù)據(jù)特征來(lái)源時(shí);同時(shí)也發(fā)現(xiàn)對(duì)于RBT3這類(lèi)壓縮模型,需要設(shè)置更長(zhǎng)的微調(diào)迭代周期(如Epoch等于5或10時(shí))才達(dá)到穩(wěn)定。
4.3.2 判別微調(diào)策略實(shí)驗(yàn)與分析
本組實(shí)驗(yàn)以“主題+詳情”作為數(shù)據(jù)特征來(lái)源,以壓縮模型RBT3作為預(yù)先訓(xùn)練模型,采用判別微調(diào)DF策略,即設(shè)置模型分層超參數(shù)Dis_blocks分別等于0(即默認(rèn)的微調(diào)策略),3,5和7,其他超參數(shù)與4.3.1中相同。實(shí)驗(yàn)結(jié)果如表3所示。
表3 判別微調(diào)策略實(shí)驗(yàn)結(jié)果對(duì)比
實(shí)驗(yàn)結(jié)果表明,適當(dāng)?shù)哪P头謱映瑓?shù)設(shè)置可提高模型的效果2%~3%(如微調(diào)迭代周期Epoch等于5或10,分層超參數(shù)Dis_blocks等于5),這是由于判別微調(diào)策略會(huì)盡可能地保留模型習(xí)得的底層通用知識(shí),避免微調(diào)過(guò)程中產(chǎn)生嚴(yán)重的遺忘;而過(guò)大的分層超參數(shù)設(shè)置會(huì)導(dǎo)致性能的下降(如微調(diào)迭代周期Epoch等于3,分層超參數(shù)Dis_blocks等于7),這是由于過(guò)大的分層超參數(shù)設(shè)置會(huì)降低模型底層的更新速度,影響模型的擬合能力。
4.3.3 傾斜的三角學(xué)習(xí)率策略實(shí)驗(yàn)與分析
本組實(shí)驗(yàn)以“主題+詳情”作為數(shù)據(jù)特征來(lái)源,以壓縮模型RBT3作為預(yù)先訓(xùn)練模型,采用傾斜的三角學(xué)習(xí)率STLR策略,即設(shè)置表示學(xué)習(xí)率上升在整個(gè)訓(xùn)練迭代次數(shù)的比例超參數(shù)cut_frac分別等于0(即默認(rèn)的微調(diào)策略),0.1和0.2,表示最小學(xué)習(xí)率與最大學(xué)習(xí)率(即全局學(xué)習(xí)率)的比值超參數(shù)ratio等于32,其他超參數(shù)與4.3.1中相同。實(shí)驗(yàn)結(jié)果如表4所示。
表4 傾斜的三角學(xué)習(xí)率策略實(shí)驗(yàn)結(jié)果對(duì)比
實(shí)驗(yàn)結(jié)果表明,采用傾斜的三角學(xué)習(xí)率的“預(yù)熱”策略,同樣可提高模型的效果2%~3%,這是由于該策略有助于減緩模型在初始階段的提前過(guò)擬合現(xiàn)象和保持模型深層的穩(wěn)定性。同時(shí)也發(fā)現(xiàn)當(dāng)微調(diào)迭代周期參數(shù)設(shè)置較大(如Epoch等于5或10)時(shí),表示學(xué)習(xí)率上升在整個(gè)訓(xùn)練迭代次數(shù)的比例參數(shù)設(shè)置較小(cut_f rac等于0.1)時(shí)的實(shí)驗(yàn)結(jié)果更好。
本文以某政務(wù)平臺(tái)公眾留言分類(lèi)任務(wù)這一典型自然語(yǔ)言處理任務(wù)為例,分別從數(shù)據(jù)特征來(lái)源的選擇、模型速率的提升、微調(diào)策略的設(shè)計(jì)等三個(gè)方便進(jìn)行研究。本文的實(shí)驗(yàn)充分表明恰當(dāng)?shù)臄?shù)據(jù)特征選擇可明顯提升模型的效果;本文采用的擴(kuò)展模型RoBERTa-wwm-ext和壓縮模型RBT3分別在效果和速率上都有明顯提升;本文采用的判別微調(diào)DF和傾斜的三角學(xué)習(xí)率STLR等微調(diào)策略也有不俗的表現(xiàn),同時(shí)也提出上述策略超參數(shù)的設(shè)置提出合理建議。