亢文倩
(昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,云南 昆明 650500)
問(wèn)句分類(lèi)是問(wèn)答系統(tǒng)的一個(gè)重要處理過(guò)程[1],是在用戶給定自然語(yǔ)言問(wèn)句的前提下,將問(wèn)句與預(yù)定義類(lèi)別形成映射,并用類(lèi)別標(biāo)簽表示。該類(lèi)別標(biāo)簽作為對(duì)問(wèn)句答案范圍的語(yǔ)義約束,用于檢索與標(biāo)簽對(duì)應(yīng)的答案,盡可能地縮減檢索空間,提升檢索效率。傳統(tǒng)的問(wèn)句分類(lèi)方法大致分為基于規(guī)則的方法、基于機(jī)器學(xué)習(xí)的方法以及基于深度學(xué)習(xí)的方法三種。
基于深度學(xué)習(xí)的問(wèn)句分類(lèi)方法近年來(lái)成為研究的熱點(diǎn),相較于機(jī)器學(xué)習(xí)方法常用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)模型[2-3]、長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)模型[4-6]等網(wǎng)絡(luò)結(jié)構(gòu),這些方法可以端到端地獲取文本特征,大大降低了人力成本和時(shí)間成本。但由于深度學(xué)習(xí)的特性,在節(jié)省資源的同時(shí)也受到數(shù)據(jù)稀疏的影響。深度學(xué)習(xí)模型處理下游自然語(yǔ)言處理(Natural Language Processing,NLP)任務(wù)的前提是,訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)屬于同一個(gè)領(lǐng)域,也就是說(shuō)它們必須擁有共同的特征空間和相同的數(shù)據(jù)分布,否則分類(lèi)精度會(huì)大大降低。如果要對(duì)新領(lǐng)域的問(wèn)句進(jìn)行分類(lèi),則需要在新領(lǐng)域?qū)δP椭匦逻M(jìn)行訓(xùn)練,故而深度學(xué)習(xí)分類(lèi)器的可重用性較低。
深度遷移學(xué)習(xí)將深度學(xué)習(xí)方法與遷移學(xué)習(xí)相結(jié)合,對(duì)于上述問(wèn)題是一種很有效的解決方法。例如,雙向編碼器表征量(Bidirectional Encoder Representations from Transformers,BERT)[7]使 用Transformer 作為主要框架,首先預(yù)訓(xùn)練模型并初始化參數(shù),其次根據(jù)下游任務(wù)的使用目標(biāo)域數(shù)據(jù)對(duì)參數(shù)進(jìn)行微調(diào),可以替代Word2Vec 應(yīng)用到文本分類(lèi)等11 項(xiàng)NLP 任務(wù)中。SUN 等人[8]對(duì)比了在文本分類(lèi)上BERT 模型的不同微調(diào)方法的性能。由于BERT模型從訓(xùn)練數(shù)據(jù)中提取特征,因此忽略了文本標(biāo)簽所提供的語(yǔ)義信息。
PURI 等人[9]對(duì)分類(lèi)任務(wù)進(jìn)行自然語(yǔ)言描述,將其作為輸入并對(duì)模型訓(xùn)練,將所有任務(wù)轉(zhuǎn)化為QA 任務(wù),輸出為自然語(yǔ)言答案。KISHALOY 等人[10]提出了一種零樣本學(xué)習(xí)方法(TARS),在上述模型基礎(chǔ)上,將文本分類(lèi)轉(zhuǎn)化成二進(jìn)制分類(lèi)。TARS 模型在情感分析領(lǐng)域的分類(lèi)適配性較高,而在問(wèn)題、主題類(lèi)型的分類(lèi)正確率較低。
通過(guò)對(duì)以上方法的研究與分析,本文將類(lèi)別標(biāo)簽用于BERT 微調(diào)分類(lèi)器的訓(xùn)練,比較標(biāo)簽和問(wèn)句的語(yǔ)義相似度,獲取兩者的關(guān)聯(lián)性,提出一種融合標(biāo)簽語(yǔ)義特征的BERT 微調(diào)問(wèn)句分類(lèi)方法,簡(jiǎn)稱L-BERT-FiT。
鑒于深度遷移學(xué)習(xí)強(qiáng)大的泛化能力和特征提取能力,L-BERT-FiT 主要由以下3 部分組成如圖1所示。
(1)定義虛擬標(biāo)簽詞典。首先,模型訪問(wèn)訓(xùn)練集和測(cè)試集,獲取已知的標(biāo)簽文本,生成一個(gè)虛擬的標(biāo)簽詞典。在對(duì)模型進(jìn)行預(yù)訓(xùn)練時(shí),將該詞典中的標(biāo)簽與問(wèn)句形成一一對(duì)應(yīng)的元組<預(yù)測(cè)標(biāo)簽,問(wèn)句>作為輸入。
(2)特征提取。將輸入的預(yù)測(cè)標(biāo)簽視為文本×1,問(wèn)句視為文本×2,則將分類(lèi)任務(wù)視為計(jì)算文本×1和×2 相似度任務(wù)。提取×1 的語(yǔ)義信息和×2 的語(yǔ)義信息,并比較兩者的相關(guān)性,將其作為輸入特征,調(diào)節(jié)BERT 參數(shù)。
(3)BERT 微調(diào)。在上述預(yù)訓(xùn)練完成后,使用微量的目標(biāo)域數(shù)據(jù)對(duì)BERT 模型進(jìn)行參數(shù)微調(diào),并使用SoftMax 函數(shù)作為輸出層的線性激活函數(shù),選擇分類(lèi)結(jié)果(正確/錯(cuò)誤)。
獲取源領(lǐng)域和將要進(jìn)行預(yù)測(cè)分類(lèi)的目標(biāo)域類(lèi)別標(biāo)簽生成標(biāo)簽詞典。例如,源域包含兩個(gè)類(lèi)別的問(wèn)句“Society”“Computers”“Entertainment”“Sports”,目標(biāo)域的問(wèn)句可能屬于類(lèi)別“Science”“Business”“Education”“Health”,則生成的虛擬標(biāo)簽詞典則為{Society,Computers,Entertainment,Sports,Science,Business,Education,Health}。
如圖2 所示,在BERT 訓(xùn)練時(shí),輸入的元組格式為<預(yù)測(cè)類(lèi)標(biāo)簽,問(wèn)句>。BERT 將輸入的文本的格式轉(zhuǎn)化為“[CLS]y[SEP]x[SEP]”,其中y代表類(lèi)標(biāo)簽,x代表問(wèn)句,[SEP]標(biāo)志用于間隔兩個(gè)文本輸入,[CLS]標(biāo)志位于輸入起始位置。
圖2 L-BERT-FiT 生成的詞嵌入
如圖2 所示,BERT 將輸入文本x中的每個(gè)單詞轉(zhuǎn)換為詞嵌入E,每個(gè)詞嵌入都由3 部分組成:Token 嵌入+Segment 嵌入+Position 嵌入。并對(duì)E進(jìn)行加權(quán)映射得到三個(gè)向量Query(Q)、Key(K)和Value(V),其中Q=K=V。然后,計(jì)算輸入的特征矩陣[11]:
K,Q,V的輸入維度為dK,dQ,dV,SoftMax激活函數(shù)用以獲取權(quán)重。由于BERT 中的Selfattention 機(jī)制是多頭的,即可以獲得多個(gè)Attention輸出,則Transformer-encoder 輸出的最終特征矩陣為[11]:
式中:h代表h個(gè)Attention head,W O代表線性映射,將向量映射到高維空間更易獲取所需信息。參數(shù)矩陣
獲取到特征向量后,需要計(jì)算標(biāo)簽向量A和問(wèn)句向量B的語(yǔ)義相似度.這里使用特征向量的點(diǎn)積(cosine)來(lái)進(jìn)行計(jì)算:
最后,使用SoftMax 函數(shù)形成一個(gè)概率分布,比較同一問(wèn)句與不同標(biāo)簽的相似度,取值最高的輸出為T(mén)RUE,其余的輸出為FALSE。
2.1.1 數(shù)據(jù)集
實(shí)驗(yàn)數(shù)據(jù)集采用的是Yahoo! Answers數(shù)據(jù)集[12]。此數(shù)據(jù)集為英文問(wèn)答數(shù)據(jù)集,共含有10 個(gè)不同的問(wèn)句類(lèi)別。人為地根據(jù)不同的類(lèi)別標(biāo)簽將數(shù)據(jù)集劃分為3 個(gè)不同的領(lǐng)域,每個(gè)領(lǐng)域包含4 種類(lèi)別的問(wèn)句,如表1 所示:
表1 實(shí)驗(yàn)數(shù)據(jù)集的領(lǐng)域劃分
在實(shí)驗(yàn)過(guò)程中,選擇不同的領(lǐng)域作為源域和目標(biāo)域。選取10 000 條源域數(shù)據(jù)作為訓(xùn)練集,用以預(yù)訓(xùn)練模型;500 條目標(biāo)域數(shù)據(jù)作為開(kāi)發(fā)集,用以微調(diào)BERT;4 000 條目標(biāo)域數(shù)據(jù)作為訓(xùn)練集,用于測(cè)試模型在目標(biāo)域的分類(lèi)效果。
2.1.2 數(shù)據(jù)預(yù)處理
對(duì)數(shù)據(jù)集中的問(wèn)句進(jìn)行降噪處理,去除標(biāo)點(diǎn)及特殊符號(hào),去除多余空格,將大寫(xiě)字母轉(zhuǎn)換為小寫(xiě);并將原始數(shù)字標(biāo)簽替換為文本標(biāo)簽,處理結(jié)果如表2 所示。
表2 預(yù)處理前后的數(shù)據(jù)元組對(duì)比
本實(shí)驗(yàn)在Google colab 上利用Python3.7 編寫(xiě),使用Flair 框架。模型網(wǎng)絡(luò)層數(shù)為12,注意多頭個(gè)數(shù)h=12,參數(shù)總量為110 MB。詞嵌入大小為512,隱藏維度768,dropout=0.1。epoch 的最大數(shù)量為20,每批執(zhí)行110 次迭代,最大batch 為16,初始學(xué)習(xí)率為0.000 1。
為了宏觀地反映L-BERT-FiT 模型的跨領(lǐng)域問(wèn)句分類(lèi)性能,對(duì)每個(gè)模型分別進(jìn)行5 組跨領(lǐng)域分類(lèi)實(shí)驗(yàn),每組實(shí)驗(yàn)分別進(jìn)行3 次,實(shí)驗(yàn)結(jié)果取3 次的平均值。
由表3 可見(jiàn),L-BERT-FiT 的分類(lèi)性能在不同領(lǐng)域存在波動(dòng),當(dāng)L-BERT-FiT 由領(lǐng)域1 遷移至領(lǐng)域3 時(shí),精度相較BERT-FiT 提升最高,提升4.28%。當(dāng)L-BERT-FiT 由領(lǐng)域2 遷移至領(lǐng)域1 時(shí),精度相較BERT-FiT 提升最低,僅提升了1.38%。這可能與不同域之間的距離和提取的特征數(shù)量有關(guān),但總體上實(shí)驗(yàn)結(jié)果得到了顯著提升。
表3 L-BERT-FiT 與BERT 微調(diào)模型在跨域問(wèn)句分類(lèi)中的精度(單位:%)
由表3 可以得出結(jié)論,與BERT 微調(diào)相比,L-BERT-FiT 的平均精度提高了約2.86%,進(jìn)一步提升了深度遷移學(xué)習(xí)模型——BERT 微調(diào)的跨領(lǐng)域的問(wèn)句分類(lèi)效果。
本文提出了一種融合標(biāo)簽語(yǔ)義特征的BERT 微調(diào)問(wèn)句分類(lèi)方法,提取類(lèi)別標(biāo)簽的語(yǔ)義信息和問(wèn)句與標(biāo)簽的語(yǔ)義相似度作為特征對(duì)BERT 模型進(jìn)行微調(diào)。實(shí)驗(yàn)證明,這種方法在新領(lǐng)域問(wèn)句集中獲得了較好的分類(lèi)結(jié)果。
然而在模型訓(xùn)練時(shí),輸入的<預(yù)測(cè)標(biāo)簽,問(wèn)句>一對(duì)一元組會(huì)導(dǎo)致如下問(wèn)題:輸入元組的數(shù)量成倍增長(zhǎng),大大增加了計(jì)算時(shí)間和成本。未來(lái)的工作將著手于解決計(jì)算負(fù)載的問(wèn)題,降低模型的時(shí)間成本。問(wèn)句作為短文本,面臨著特征稀疏的問(wèn)題,未來(lái)將對(duì)問(wèn)句進(jìn)行數(shù)據(jù)增強(qiáng),進(jìn)一步提升分類(lèi)精度。此外,由于環(huán)境限制,實(shí)驗(yàn)使用了BERT-BASE 版本,目前已經(jīng)有更多的BERT 變體,如ALBert、RoBERTa、ERNIE 等,未來(lái)將研究這些版本是否對(duì)跨領(lǐng)域問(wèn)句分類(lèi)任務(wù)有著更好的效果,進(jìn)一步提高模型的推理能力。