張 英,擁 措+,于 韜
(1.西藏大學(xué) 信息科學(xué)技術(shù)學(xué)院,西藏 拉薩 850000;2.西藏大學(xué) 藏文信息技術(shù)教育部工程研究中心, 西藏 拉薩 850000;3.西藏大學(xué) 西藏自治區(qū)藏文信息技術(shù)人工智能重點(diǎn)實(shí)驗(yàn)室,西藏 拉薩 850000)
目前,注意力機(jī)制在預(yù)訓(xùn)練模型如BERT[1]、RoBERTa[2]、ALBERT[3]中得到了廣泛的應(yīng)用。相關(guān)研究表明,多頭注意力中并不是每個(gè)頭都發(fā)揮著重要作用,大多數(shù)注意力頭實(shí)際上是冗余的[4];為了減少冗余注意力的影響,研究者提出了“disentangled”[5]掩碼注意力機(jī)制和自適應(yīng)注意力機(jī)制[6]等概念。由上述研究可知語言模型固定注意力機(jī)制的頭數(shù)并不是最優(yōu)選擇,在模型訓(xùn)練過程中,不同詞數(shù)的句子均由相同頭數(shù)的注意力機(jī)制進(jìn)行特征學(xué)習(xí),可能會(huì)造成注意力頭的冗余。
為了減少冗余頭數(shù)造成的干擾,例如在包含特征相對(duì)較少的短句中,可能不需要關(guān)注罕見詞或某些復(fù)合關(guān)系等不常見的特征,從而導(dǎo)致多余的頭對(duì)特征向量造成一定的噪聲。因此本文提出了在訓(xùn)練過程中根據(jù)長短句動(dòng)態(tài)選擇注意力機(jī)制頭數(shù)的方法。另外,目前國內(nèi)對(duì)藏文預(yù)訓(xùn)練模型的研究較少,所以本文在藏文數(shù)據(jù)上進(jìn)行探究。綜上所述,本文共提出以下方案:①研究動(dòng)態(tài)多頭注意力機(jī)制的有效性,并揭示了將其融入預(yù)訓(xùn)練模型可以有益于文本分類任務(wù);②在ALBERT模型的注意力層進(jìn)行改進(jìn),并提升了該模型的效果;③本文構(gòu)建的模型可以較好地表示藏文語義關(guān)系,實(shí)驗(yàn)結(jié)果表明,在公開數(shù)據(jù)集TNCC分類任務(wù)上F1值均獲得了2%以上的提升。
自以多頭注意力為核心創(chuàng)新的transformer模型被提出以來,已成為一大研究熱點(diǎn)[7]。Paul Michel等提出部分注意力頭較冗余的看法;E Voita等[8]為了優(yōu)化Bert模型設(shè)計(jì)混合向量提取注意力頭捕捉的通用信息;隨后,Clark K等[9]針對(duì)BERT注意力機(jī)制進(jìn)行分析,發(fā)現(xiàn)注意力機(jī)制除了關(guān)注直接賓語、介詞關(guān)系等,還大量集中于分隔符、標(biāo)點(diǎn)符號(hào)。為了增強(qiáng)序列學(xué)習(xí)表示,Chien等提出了一種新的“disentangled”掩碼注意力機(jī)制,以減少冗余特征。上述研究表明,注意力機(jī)制頭數(shù)的固定,可能會(huì)造成注意力頭的冗余或過度注意。
注意力機(jī)制通常用于預(yù)訓(xùn)練模型。OpenAI提出了GPT[10]模型,以學(xué)習(xí)文本的長距離依賴。隨后,Devlin等提出BERT模型,在不同自然語言處理任務(wù)上達(dá)到了最好效果。OpenAI提出了在BERT基礎(chǔ)上進(jìn)行精細(xì)調(diào)參的RoBERTa模型。同年,Zhenzhong Lan等提出用兩種策略提高模型訓(xùn)練速度的ALBERT模型,該文結(jié)果表明注意力層的參數(shù)共享策略對(duì)模型效果影響小,因此本文將在參數(shù)量較小的ALBERT模型的自注意力層上進(jìn)行改進(jìn),以提升該模型的效果。
上文介紹的模型大多應(yīng)用在中英文上,對(duì)于語料稀少的藏文而言預(yù)訓(xùn)練模型較少。Ziqing Yang等提出了面向少數(shù)民族語言的多語言模型CINO[11]。為了促進(jìn)藏文自然語言處理任務(wù)的發(fā)展,Yuan Sun等提出使用藏文語料進(jìn)行訓(xùn)練的TiBERT[12]模型。除此之外,Hanru Shi等構(gòu)建了包含5種語言的MiLMo[13]模型。同年,于韜等[14]提出用于關(guān)系抽取任務(wù)的藏文ALBERT模型。另外,安波等[15]訓(xùn)練藏文BERT模型并在標(biāo)題分類任務(wù)上進(jìn)行實(shí)驗(yàn)。上述皆是對(duì)藏文預(yù)訓(xùn)練模型的應(yīng)用研究,因此本文將對(duì)語言模型進(jìn)行改進(jìn),以增強(qiáng)藏文下游任務(wù)性能。
自注意力機(jī)制是指通過運(yùn)算獲得句子在編碼過程中每個(gè)位置的注意力權(quán)重,再計(jì)算整個(gè)句子的隱含向量[16]。同時(shí),為了避免模型對(duì)當(dāng)前位置信息進(jìn)行編碼時(shí),過度集中于自身從而提出了多頭注意力機(jī)制。與使用單獨(dú)的注意力池化不同,多頭注意力機(jī)制使用序列不同位置的子空間表征信息進(jìn)行數(shù)據(jù)處理,然后并行地進(jìn)行注意力池化,再將多個(gè)注意力池化的輸出拼接,以構(gòu)建最終輸出[17]。
在以往的模型預(yù)訓(xùn)練過程中,多頭注意力機(jī)制的頭數(shù)h往往是固定的,但這樣會(huì)存在一定的弊端,例如當(dāng)h較大時(shí),對(duì)于特征數(shù)量較少的句子會(huì)學(xué)習(xí)到更多不重要的特征,即在信息組合時(shí)會(huì)有一定的噪聲;當(dāng)h較小時(shí),對(duì)于特征數(shù)量較多的句子,不能全面學(xué)習(xí)句子的含義。但在實(shí)際訓(xùn)練過程中,長短句所需要關(guān)注的信息數(shù)量并不同,如表1所示,長句共有56個(gè)藏文音節(jié),包含的特征信息較多,需要更多頭數(shù)的注意力機(jī)制關(guān)注句子中詞與詞之間的關(guān)系,如較為明顯的時(shí)間、數(shù)詞、處所等關(guān)系信息;而短句僅有11個(gè)藏文音節(jié),包含的特征相對(duì)較少,相對(duì)長句來說較為明顯的僅有處所關(guān)系,因此當(dāng)長短句共用一個(gè)注意力機(jī)制頭數(shù)時(shí),多余的頭可能會(huì)關(guān)注標(biāo)點(diǎn)符號(hào)等包含信息量較少的特征,對(duì)特征向量的提取過程會(huì)造成一定的干擾。因此本文針對(duì)不同詞數(shù)的句子均由相同頭數(shù)的注意力機(jī)制進(jìn)行特征學(xué)習(xí)這一情況,提出根據(jù)句子的特征數(shù)量選擇注意力機(jī)制的頭數(shù),即在訓(xùn)練過程中根據(jù)句子長度動(dòng)態(tài)確定注意力機(jī)制頭數(shù)。
表1 藏文長短句示例
其動(dòng)態(tài)多頭注意力機(jī)制具體公式如下所示,式(1)中headi表示第i個(gè)頭數(shù)對(duì)應(yīng)的注意力機(jī)制運(yùn)算后的結(jié)果[18],式(2)中DMA(Q、K、V) 表示將多個(gè)注意力機(jī)制head1,…,headh進(jìn)行拼接再乘以矩陣Wh的結(jié)果,其中Wh為多頭注意力的權(quán)重,下標(biāo)h的取值根據(jù)len_token決定,如式(3)所示
(1)
DMA(Q,K,V)=Concat(head1,…,headh)Wh
(2)
iflen_token>mh=hlelseh=hs
(3)
圖1為動(dòng)態(tài)多頭注意力機(jī)制的架構(gòu)。首先將輸入句子的詞向量轉(zhuǎn)化為3個(gè)矩陣(Q、K、V),再判斷句子的詞數(shù)(len_token)是否大于臨界值m,若小于m,則動(dòng)態(tài)多頭注意力機(jī)制取較小的頭數(shù),再根據(jù)頭數(shù)構(gòu)建hs層線性投影,然后將Q、K、V輸入至左側(cè)的路線left route進(jìn)行學(xué)習(xí),并通過hs層線性投影獲得特征向量矩陣,最后進(jìn)行拼接與映射獲得輸出結(jié)果;反之,動(dòng)態(tài)多頭注意力機(jī)制取較大的頭數(shù),除線性投影層數(shù)hl與路線right route之外,其余操作同理。
圖1 動(dòng)態(tài)多頭注意力機(jī)制架構(gòu)
為解決BERT模型參數(shù)量過大、訓(xùn)練時(shí)間過長的問題,ALBERT語言模型于2019年問世,該模型的結(jié)構(gòu)和BERT相似且參數(shù)量更小,本文將上述提出的動(dòng)態(tài)多頭注意力機(jī)制應(yīng)用于ALBERT的注意力模塊,構(gòu)建了基于動(dòng)態(tài)多頭注意力機(jī)制的語言模型(dynamic multi-head attention albert,DMA_ALBERT)。為了驗(yàn)證改進(jìn)后的模型的有效性,本文使用4.5 GB藏文通用領(lǐng)域數(shù)據(jù)分別訓(xùn)練注意力層改進(jìn)前后的模型。將動(dòng)態(tài)注意力機(jī)制應(yīng)用在語言模型中,動(dòng)態(tài)傳遞注意力機(jī)制的頭數(shù),既可以獲得該句子的重要信息,學(xué)習(xí)句子上下文相關(guān)的雙向語義特征表示,又可以減少不重要的特征對(duì)信息整合過程的干擾。
由于預(yù)訓(xùn)練模型結(jié)構(gòu)較為復(fù)雜,且訓(xùn)練數(shù)據(jù)量較大,因此動(dòng)態(tài)多頭注意力機(jī)制的頭數(shù)選擇方式由每句的總詞數(shù)改進(jìn)為每批次(batch)的總詞數(shù)。即在藏文DMA_ALBERT模型的實(shí)際訓(xùn)練過程中,動(dòng)態(tài)多頭注意力機(jī)制的頭數(shù)根據(jù)一個(gè)batch的總詞數(shù)獲得,當(dāng)總詞數(shù)大于m與batch的乘積(m×batch)時(shí),該批次的注意力機(jī)制頭數(shù)h取hl;反之,h取hs,如式(4)所示,其中token_Ci表示在當(dāng)前批次中第i個(gè)句子的token個(gè)數(shù)
(4)
本文采用CCL2022跨語言文本分類任務(wù)提供的4.5 GB藏文語料作為語言模型的訓(xùn)練數(shù)據(jù),語料主要來自維基百科、微信公眾號(hào)。同時(shí),本文訓(xùn)練SentencePiece[19]模型以構(gòu)建藏文詞表及訓(xùn)練語料。分詞粒度方面,選用unigram[20]對(duì)訓(xùn)練語料進(jìn)行子詞級(jí)分割,其原理為先初始化一個(gè)較大的詞表,再根據(jù)算法標(biāo)準(zhǔn)不斷地舍棄,直到詞表滿足預(yù)先給定的大小[21]。在藏文語言模型的訓(xùn)練過程中,由于使用ALBERT預(yù)訓(xùn)練模型作為實(shí)驗(yàn)的基礎(chǔ),因此參照ALBERT原文共選取了5個(gè)評(píng)價(jià)指標(biāo),分別是掩碼語言模型(MLM)任務(wù)的損失值(mask_loss)、預(yù)測(cè)遮掩單詞的精確度(mask_accuracy);句子順序預(yù)測(cè)(SOP)任務(wù)的損失值(sop_loss)、預(yù)測(cè)句子順序的精確度(sop_accuracy);以及MLM和SOP任務(wù)這兩部分的損失和相加所得到的總和(loss)。
由于本文使用TNCC測(cè)試語言模型的實(shí)際效果,使用精確率Precision、召回率Recall以及F1值作為文本分類任務(wù)的評(píng)價(jià)指標(biāo),具體公式如下所示
(5)
(6)
(7)
其中,首先需要計(jì)算每個(gè)類別的Precision、Recall、F1值,其中TPi表示類別i預(yù)測(cè)正確的數(shù)量;FPi表示將其它類別的樣本預(yù)測(cè)成類別i的數(shù)量;TPi+FPi表示測(cè)試集的所有文本預(yù)測(cè)成類別i的總數(shù)量;FNi表示將文本類別i預(yù)測(cè)成其它類別的數(shù)量;TPi+FNi表示真實(shí)的文本類別i的總數(shù)量。
另外該數(shù)據(jù)集是在多類別通用領(lǐng)域上構(gòu)建的,其樣本分布并不均勻,因此采用Weighted算法對(duì)上述指標(biāo)進(jìn)行計(jì)算,即需要根據(jù)每個(gè)類別占比的權(quán)重計(jì)算本次分類所有類別評(píng)價(jià)指標(biāo)的具體值,如式(8)~式(10)所示,其中wi表示在測(cè)試集中文本類別i在總文本中的占比比例
(8)
(9)
(10)
本文訓(xùn)練tiny版本的藏文改進(jìn)注意力機(jī)制前后的語言模型并進(jìn)行效果對(duì)比,在訓(xùn)練前需確定模型中注意力機(jī)制的頭數(shù)。其中隱藏層維度的值為384,而注意力機(jī)制的頭數(shù)需要被384整除,即可取值2、3、4、6、8等,考慮到語言模型結(jié)構(gòu)的復(fù)雜性,本文選擇如表2所示的注意力機(jī)制頭數(shù)進(jìn)行實(shí)驗(yàn),具體訓(xùn)練參數(shù)見表3。
表2 注意力機(jī)制頭數(shù)設(shè)定
表3 預(yù)訓(xùn)練模型主要參數(shù)
由表2可知,本文共設(shè)計(jì)了10組語言模型對(duì)比實(shí)驗(yàn),分別是4組原始的語言模型以及6組應(yīng)用動(dòng)態(tài)多頭注意力機(jī)制的語言模型。實(shí)驗(yàn)環(huán)境為搭配RTX3080Ti GPU的Ubuntu服務(wù)器,顯存為12 GB。
為了更好地對(duì)比是否動(dòng)態(tài)獲取注意力頭數(shù)語言模型的效果,本文將上述10個(gè)預(yù)訓(xùn)練模型應(yīng)用在文本分類任務(wù)上,包括長、短文本兩種分類任務(wù),這兩個(gè)任務(wù)的句子長度分布情況如圖2所示。
圖2 TNCC數(shù)據(jù)集句子長度分布
由圖2(a)可知,長文本中各句子長度區(qū)間的分布較為均勻,綜合考慮訓(xùn)練設(shè)備及預(yù)訓(xùn)練模型的句子長度取值要求,該任務(wù)的pad_size取值為300;而圖2(b)中的短文本中99%的標(biāo)題長度小于20,且最長不超過50,因此短文本任務(wù)的pad_size取值為50,下游實(shí)驗(yàn)的主要參數(shù)見表4。
表4 下游實(shí)驗(yàn)部分主要參數(shù)
首先將本文訓(xùn)練的10組語言模型應(yīng)用于TNCC文本分類任務(wù),并觀察模型在長、短文本分類任務(wù)上的效果;然后使用10組預(yù)訓(xùn)練語言模型分別結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(CNN)[22]進(jìn)行文本分類的對(duì)比實(shí)驗(yàn)。
4.2.1 固定與動(dòng)態(tài)頭數(shù)語言模型實(shí)驗(yàn)對(duì)比結(jié)果
TNCC數(shù)據(jù)集包含藏文長文本及短文本分類語料,將10組訓(xùn)練好的藏文語言模型分別應(yīng)用在長/短文本分類任務(wù)上,實(shí)驗(yàn)結(jié)果見表5,‘/’前后分別為長文本分類結(jié)果和短文本分類結(jié)果。在長文本下游分類任務(wù)中,使用ALBERT模型時(shí),head取8、16時(shí)F1值分別為73.29%、72.79%,而使用融入了動(dòng)態(tài)多頭注意力機(jī)制思想的語言模型時(shí),hs、hl取8、16時(shí)實(shí)驗(yàn)F1值為75.34%,與前者相比F1值分別提升了2.05%、2.55%。該結(jié)果表明:在訓(xùn)練過程中,語言模型動(dòng)態(tài)獲取注意力機(jī)制頭數(shù)時(shí)效果更佳,同時(shí)改進(jìn)語言模型中除hs=6、hl=8的其余4組實(shí)驗(yàn)均能驗(yàn)證動(dòng)態(tài)多頭注意力機(jī)制的有效性。但當(dāng)固定頭數(shù)取6或8時(shí)F1值為74.63%、73.29%,而hs、hl動(dòng)態(tài)取6、8時(shí)F1值為73.67%,較頭數(shù)直接取6時(shí)F1值下降了0.96%,取8時(shí)提升了0.38%。該情況的主要原因是應(yīng)用動(dòng)態(tài)多頭注意力機(jī)制時(shí),動(dòng)態(tài)選擇的兩個(gè)頭數(shù)均較小且相差不大,因此無法較好地學(xué)習(xí)長、短句的語義特征,導(dǎo)致模型效果提升不明顯。
在表5中的短文本分類結(jié)果表明,頭數(shù)取12時(shí)模型效果表現(xiàn)最好,其F1值為68.74%,而應(yīng)用了動(dòng)態(tài)多頭注意力機(jī)制思想的語言模型F1值最高為67.25%,較前者F1值低了1.49%,由此可見,動(dòng)態(tài)多頭注意力機(jī)制在短文本分類上效果較為低迷,其原因?yàn)闃?biāo)題濃縮了一篇文章的主要內(nèi)容,且詞數(shù)不超過20的標(biāo)題數(shù)量占比99%,標(biāo)題中詞與詞之間的語義關(guān)系并不明確,即根據(jù)藏文長文本訓(xùn)練的DMA_ALBERT模型,對(duì)標(biāo)題的理解能力有限,對(duì)藏文標(biāo)題分類任務(wù)的幫助較小。
4.2.2 語言模型結(jié)合卷積神經(jīng)網(wǎng)絡(luò)對(duì)比實(shí)驗(yàn)結(jié)果分析
表6為固定與動(dòng)態(tài)頭數(shù)的語言模型分別結(jié)合CNN模型在長/短文本分類任務(wù)上的實(shí)驗(yàn)結(jié)果。長文本中,hs、hl動(dòng)態(tài)取8、12時(shí)效果最好,其Weighted F1值為75.69%;在不使用動(dòng)態(tài)多頭注意力機(jī)制的ALBERT模型中,head取8時(shí)效果最好,其Weighted F1值為74.80%。后者F1值降低了0.89%,該結(jié)果表明在進(jìn)行長文本分類時(shí),動(dòng)態(tài)獲取其注意力機(jī)制的頭數(shù)效果優(yōu)于非動(dòng)態(tài)方式。根本原因是動(dòng)態(tài)多頭注意力機(jī)制可以更好地學(xué)習(xí)長、短句中的語義關(guān)系,而非動(dòng)態(tài)方式由于固定了頭數(shù)的大小,直接制約了其對(duì)語義關(guān)系的學(xué)習(xí)能力,因此DMA_ALBERT模型構(gòu)建的詞向量質(zhì)量更高,再使用模型結(jié)構(gòu)相對(duì)復(fù)雜的CNN網(wǎng)絡(luò)的卷積及池化操作可以較好地學(xué)習(xí)詞向量中的重要分類特征。與直接使用DMA_ALBERT模型相比,結(jié)合CNN模型時(shí)長文本分類效果更好,后者較前者F1值提升了0.35%。
表6 預(yù)訓(xùn)練模型結(jié)合卷積神經(jīng)網(wǎng)絡(luò)在長/短文本分類任務(wù)上的實(shí)驗(yàn)結(jié)果
由表6的短文本分類結(jié)果可知DMA_ALBERT與原始ALBERT在短文本分類任務(wù)上的效果相近,固定頭數(shù)取8時(shí)模型效果最好為68.67%;hs、hl動(dòng)態(tài)取6、8時(shí)語言模型效果最為68.70%,兩者僅相差0.03%。該結(jié)果表明在結(jié)合CNN模型的短文本標(biāo)題分類任務(wù)上,由于使用長文本訓(xùn)練的語言模型對(duì)標(biāo)題的學(xué)習(xí)能力有限,因此對(duì)模型結(jié)果影響甚微。
為了更好地對(duì)比本章實(shí)驗(yàn)結(jié)果,將上述結(jié)果使用折線圖進(jìn)行可視化展示,如圖3所示。其中,h=6表示使用固定頭數(shù)為6的注意力機(jī)制;h=6,8表示動(dòng)態(tài)使用頭數(shù)為6、8的注意力機(jī)制,即曲線前后段分別為原始語言模型的結(jié)果、結(jié)合動(dòng)態(tài)多頭注意力機(jī)制的語言模型的結(jié)果,上、下兩條曲線分別為長文本分類、標(biāo)題分類。
由圖3可知,長文本分類任務(wù)中,兩條實(shí)驗(yàn)結(jié)果曲線的后半段整體趨勢(shì)均高于前半段,表明動(dòng)態(tài)獲取注意力機(jī)制的頭數(shù)效果更優(yōu)。在不結(jié)合CNN模型的短文本分類中,原始語言模型效果更好;而結(jié)合CNN模型后,曲線后半部分更穩(wěn)定,表明CNN網(wǎng)絡(luò)能較好地學(xué)習(xí)DMA_ALBERT所得到詞向量的重要分類特征。
圖3 預(yù)訓(xùn)練語言模型結(jié)果對(duì)比
為了驗(yàn)證本文模型的有效性,將本文訓(xùn)練的語言模型與現(xiàn)有模型效果進(jìn)行對(duì)比分析,其中DMA_ALBERT模型各評(píng)價(jià)指標(biāo)的具體值見表7。所對(duì)比的模型分別為:哈工大訊飛實(shí)驗(yàn)室發(fā)布的CINO模型、藏文TiBERT模型、安波等提出的藏文BERTCNN模型,其評(píng)價(jià)指標(biāo)皆采用Macro計(jì)算方式,因此采用Macro相關(guān)指標(biāo)與前人的模型在TNCC文本分類任務(wù)上進(jìn)行對(duì)比。其中長、短文本分類任務(wù)對(duì)比結(jié)果分別見表8、表9。
由表8可知,DMA_ALBERT結(jié)合CNN模型效果最佳,hs、hl分別取8、12時(shí)模型F1值為73.23%,較CINO提升了4.63%;較TiBERT提升了2.29%;在表9中,DMA_ALBERT結(jié)合CNN時(shí)效果最佳,hs、hl分別取6、8時(shí)模型F1值為64.47%,較BertCNN提升了11.47%,較TiBert提升了2.75%。實(shí)驗(yàn)結(jié)果再次說明了融入動(dòng)態(tài)多頭注意力機(jī)制思想的語言模型的有效性。
表7 hs、hl動(dòng)態(tài)取8、12時(shí)語言模型評(píng)價(jià)指標(biāo)
表8 不同模型在長文本分類任務(wù)上的實(shí)驗(yàn)結(jié)果對(duì)比
表9 不同模型在短文本分類任務(wù)上的實(shí)驗(yàn)結(jié)果對(duì)比
本文主要針對(duì)不同詞數(shù)的句子均由相同頭數(shù)的注意力機(jī)制進(jìn)行特征學(xué)習(xí)這一情況,提出了動(dòng)態(tài)獲取注意力機(jī)制頭數(shù)的思想。并在TNCC數(shù)據(jù)集文本分類任務(wù)上分別進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,應(yīng)用了動(dòng)態(tài)多頭注意力機(jī)制的語言模型效果最優(yōu)。
與前人的模型相比,本文模型在不同任務(wù)的Macro_F1值均提升了2%以上,再次驗(yàn)證了該文方法的有效性。在未來的工作中,將繼續(xù)研究注意力機(jī)制頭數(shù)與句子長度的關(guān)系,并進(jìn)一步擴(kuò)大語言模型訓(xùn)練語料的規(guī)模,或者利用語料較多的中、英文數(shù)據(jù)檢驗(yàn)本文的方法,并在權(quán)威數(shù)據(jù)上驗(yàn)證其效果。