亢文倩
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)
問句分類是問答系統的一個重要處理過程[1],是在用戶給定自然語言問句的前提下,將問句與預定義類別形成映射,并用類別標簽表示。該類別標簽作為對問句答案范圍的語義約束,用于檢索與標簽對應的答案,盡可能地縮減檢索空間,提升檢索效率。傳統的問句分類方法大致分為基于規則的方法、基于機器學習的方法以及基于深度學習的方法三種。
基于深度學習的問句分類方法近年來成為研究的熱點,相較于機器學習方法常用卷積神經網絡(Convolutional Neural Networks,CNN)模型[2-3]、長短期記憶網絡(Long Short-Term Memory,LSTM)模型[4-6]等網絡結構,這些方法可以端到端地獲取文本特征,大大降低了人力成本和時間成本。但由于深度學習的特性,在節省資源的同時也受到數據稀疏的影響。深度學習模型處理下游自然語言處理(Natural Language Processing,NLP)任務的前提是,訓練數據和測試數據屬于同一個領域,也就是說它們必須擁有共同的特征空間和相同的數據分布,否則分類精度會大大降低。如果要對新領域的問句進行分類,則需要在新領域對模型重新進行訓練,故而深度學習分類器的可重用性較低。
深度遷移學習將深度學習方法與遷移學習相結合,對于上述問題是一種很有效的解決方法。例如,雙向編碼器表征量(Bidirectional Encoder Representations from Transformers,BERT)[7]使 用Transformer 作為主要框架,首先預訓練模型并初始化參數,其次根據下游任務的使用目標域數據對參數進行微調,可以替代Word2Vec 應用到文本分類等11 項NLP 任務中。SUN 等人[8]對比了在文本分類上BERT 模型的不同微調方法的性能。由于BERT模型從訓練數據中提取特征,因此忽略了文本標簽所提供的語義信息。
PURI 等人[9]對分類任務進行自然語言描述,將其作為輸入并對模型訓練,將所有任務轉化為QA 任務,輸出為自然語言答案。KISHALOY 等人[10]提出了一種零樣本學習方法(TARS),在上述模型基礎上,將文本分類轉化成二進制分類。TARS 模型在情感分析領域的分類適配性較高,而在問題、主題類型的分類正確率較低。
通過對以上方法的研究與分析,本文將類別標簽用于BERT 微調分類器的訓練,比較標簽和問句的語義相似度,獲取兩者的關聯性,提出一種融合標簽語義特征的BERT 微調問句分類方法,簡稱L-BERT-FiT。
鑒于深度遷移學習強大的泛化能力和特征提取能力,L-BERT-FiT 主要由以下3 部分組成如圖1所示。
(1)定義虛擬標簽詞典。首先,模型訪問訓練集和測試集,獲取已知的標簽文本,生成一個虛擬的標簽詞典。在對模型進行預訓練時,將該詞典中的標簽與問句形成一一對應的元組<預測標簽,問句>作為輸入。
(2)特征提取。將輸入的預測標簽視為文本×1,問句視為文本×2,則將分類任務視為計算文本×1和×2 相似度任務。提取×1 的語義信息和×2 的語義信息,并比較兩者的相關性,將其作為輸入特征,調節BERT 參數。
(3)BERT 微調。在上述預訓練完成后,使用微量的目標域數據對BERT 模型進行參數微調,并使用SoftMax 函數作為輸出層的線性激活函數,選擇分類結果(正確/錯誤)。
獲取源領域和將要進行預測分類的目標域類別標簽生成標簽詞典。例如,源域包含兩個類別的問句“Society”“Computers”“Entertainment”“Sports”,目標域的問句可能屬于類別“Science”“Business”“Education”“Health”,則生成的虛擬標簽詞典則為{Society,Computers,Entertainment,Sports,Science,Business,Education,Health}。
如圖2 所示,在BERT 訓練時,輸入的元組格式為<預測類標簽,問句>。BERT 將輸入的文本的格式轉化為“[CLS]y[SEP]x[SEP]”,其中y代表類標簽,x代表問句,[SEP]標志用于間隔兩個文本輸入,[CLS]標志位于輸入起始位置。

圖2 L-BERT-FiT 生成的詞嵌入
如圖2 所示,BERT 將輸入文本x中的每個單詞轉換為詞嵌入E,每個詞嵌入都由3 部分組成:Token 嵌入+Segment 嵌入+Position 嵌入。并對E進行加權映射得到三個向量Query(Q)、Key(K)和Value(V),其中Q=K=V。然后,計算輸入的特征矩陣[11]:

K,Q,V的輸入維度為dK,dQ,dV,SoftMax激活函數用以獲取權重。由于BERT 中的Selfattention 機制是多頭的,即可以獲得多個Attention輸出,則Transformer-encoder 輸出的最終特征矩陣為[11]:

式中:h代表h個Attention head,W O代表線性映射,將向量映射到高維空間更易獲取所需信息。參數矩陣

獲取到特征向量后,需要計算標簽向量A和問句向量B的語義相似度.這里使用特征向量的點積(cosine)來進行計算:
最后,使用SoftMax 函數形成一個概率分布,比較同一問句與不同標簽的相似度,取值最高的輸出為TRUE,其余的輸出為FALSE。
2.1.1 數據集
實驗數據集采用的是Yahoo! Answers數據集[12]。此數據集為英文問答數據集,共含有10 個不同的問句類別。人為地根據不同的類別標簽將數據集劃分為3 個不同的領域,每個領域包含4 種類別的問句,如表1 所示:

表1 實驗數據集的領域劃分
在實驗過程中,選擇不同的領域作為源域和目標域。選取10 000 條源域數據作為訓練集,用以預訓練模型;500 條目標域數據作為開發集,用以微調BERT;4 000 條目標域數據作為訓練集,用于測試模型在目標域的分類效果。
2.1.2 數據預處理
對數據集中的問句進行降噪處理,去除標點及特殊符號,去除多余空格,將大寫字母轉換為小寫;并將原始數字標簽替換為文本標簽,處理結果如表2 所示。

表2 預處理前后的數據元組對比
本實驗在Google colab 上利用Python3.7 編寫,使用Flair 框架。模型網絡層數為12,注意多頭個數h=12,參數總量為110 MB。詞嵌入大小為512,隱藏維度768,dropout=0.1。epoch 的最大數量為20,每批執行110 次迭代,最大batch 為16,初始學習率為0.000 1。
為了宏觀地反映L-BERT-FiT 模型的跨領域問句分類性能,對每個模型分別進行5 組跨領域分類實驗,每組實驗分別進行3 次,實驗結果取3 次的平均值。
由表3 可見,L-BERT-FiT 的分類性能在不同領域存在波動,當L-BERT-FiT 由領域1 遷移至領域3 時,精度相較BERT-FiT 提升最高,提升4.28%。當L-BERT-FiT 由領域2 遷移至領域1 時,精度相較BERT-FiT 提升最低,僅提升了1.38%。這可能與不同域之間的距離和提取的特征數量有關,但總體上實驗結果得到了顯著提升。

表3 L-BERT-FiT 與BERT 微調模型在跨域問句分類中的精度(單位:%)
由表3 可以得出結論,與BERT 微調相比,L-BERT-FiT 的平均精度提高了約2.86%,進一步提升了深度遷移學習模型——BERT 微調的跨領域的問句分類效果。
本文提出了一種融合標簽語義特征的BERT 微調問句分類方法,提取類別標簽的語義信息和問句與標簽的語義相似度作為特征對BERT 模型進行微調。實驗證明,這種方法在新領域問句集中獲得了較好的分類結果。
然而在模型訓練時,輸入的<預測標簽,問句>一對一元組會導致如下問題:輸入元組的數量成倍增長,大大增加了計算時間和成本。未來的工作將著手于解決計算負載的問題,降低模型的時間成本。問句作為短文本,面臨著特征稀疏的問題,未來將對問句進行數據增強,進一步提升分類精度。此外,由于環境限制,實驗使用了BERT-BASE 版本,目前已經有更多的BERT 變體,如ALBert、RoBERTa、ERNIE 等,未來將研究這些版本是否對跨領域問句分類任務有著更好的效果,進一步提高模型的推理能力。