覃杰
(四川大學計算機學院,成都 610065)
隨著時代的飛速發展,人機對話技術變得愈發重要。對話意圖的識別是通過文本分類任務實現的,而普通的文本多分類任務不能滿足人機對話中復雜意圖的識別功能,取而代之的是多標簽文本分類任務。與傳統的文本多分類不同的是,現實生活中存在的大量數據其實是對應多個類別的。例如一篇文章可能涵蓋了文化、科技、教育相關多個類別。多標簽文本分類任務較傳統的文本分類任務的計算更為復雜,主要表現在一個樣本的文本特征需要與多個標簽產生關聯,這就要求更精細化的特征抽取并且正確地映射到對應的標簽上。此外,標簽附帶的額外信息應該被充分的利用起來,而不能僅僅簡單的作為一個分類ID 處理。
早期的多標簽文本分類任務一般將多標簽問題轉化為各個標簽的二分類問題[1],然而這種方法忽略了標簽之間的關聯關系并且當標簽數量過大的時候,模型的數量呈線性增加。后來Read et al.(2011)提出了鏈式二分類模型來建模標簽之間的高階關聯關系[2],但是計算復雜度依然十分龐大。隨著神經網絡的興起,深度學習模型如CNN、LSTM 憑借其強大的特征抽取能力,在自然語言處理的眾多任務中成為主流模型。CNN[3](Kim,2014)采用多核卷積抽取文本特征,多個卷積核可以抽取不同窗口大小的文本特征,豐富了句子特征的表達。CNN-RNN[4](Chen et al.,2017)使用CNN和RNN 捕獲了局部和全局語義特征建模標簽的內在關聯關系。近期,SGM[5]模型,通過生成式seq2seq 結構,來建模標簽間的依賴關系得到了很好的效果,但是標簽之間的關系是復雜的,線性的標簽解碼存在一定的不足。LSAN[6]模型,利用標簽語義信息確定標簽與文檔之間的語義聯系,構造特定于標簽的文檔特征表示,通過自注意力機制,捕獲屬于特定標簽的文本信息,在多個數據集上獲得了優異的成績。
本文基于LSAN 模型,引入多任務機制,通過計算文本與標簽的相似度分數作為輔助任務,聯合相似度計算loss 和多標簽分類loss 優化模型,相關指標得到進一步提升。
LSAN 模型由三個主要部分構成,第一部分是由Bi-LSTM 構成的特征提取層,第二部分是由文本自注意力機制提取文本特征的嵌入表示和標簽注意力機制提取標簽特征嵌入表示組成。第三部分是融合文本和標簽的嵌入特征進行預測的全連接網絡。具體模型結構如圖1 所示。
模型結構不同層的相關定義和功能表達如下:
(1)Bi-LSTM
雙向LSTM 模型在LSAN 模型中主要用于提取文本的詞特征嵌入表示。為了解決傳統的RNN 的長期以來問題和梯度消失問題,Hochreiter 和Schmid huber提出了LSTM 模型。該模型引入了自適應門控機制來決定LSTM 的狀態單元在某時刻保存多少上一個時刻的狀態信息,以及提取當前輸入特征的程度。Bi-LSTM 在LSTM 的基礎上增加了反向的LSTM 單元,使得在正向提取特征的情況下,又能進行逆序特征提取,從而獲得了更好的特征抽取能力。LSTM 由三部分組成:輸入門、忘記門、輸出門。所有門控單元使用當前輸入和上一時刻的隱層狀態hi及當前細胞單元狀態活值ci來計算下一時刻的細胞單元狀態。具體公式如下:

其中it,ft,ot分別對應t時刻的輸入門、忘記門、輸出門的信息,Ct為t 時刻的細胞狀態,W為對應權重參數,b為對應的偏置項。
(2)Self-Attention[7]和Label-Attention
自注意力機制主要用于抽取文本的高階特征。自注意力機制是由(Lin et al.,2017)提出的,成功地在各種文本任務上取得了很好的表現。注意力機制的計算過程由信息輸入,計算注意力分布,根據注意力分布來計算輸入信息的加權平均組成。具體的公式如下:

A(s)是文本的自注意力得分矩陣,M(s)j是由注意力得分加權到文本隱層表征對應的j類標簽的結果。其中,W2∈Rc×da,k為embedding 維數,c為標簽數目,da為超參數可以調整。H∈R2k×n為Bi-LSTM 輸出的隱層張量,M(s)∈Rc×2k是通過自注意力機制進行文本特征抽取的所有標簽的具體化表示。
標簽注意力機制主要是通過Bi-LSTM 的隱層張量與標簽嵌入計算注意力得分然后將得分與Bi-LSTM輸出的隱層張量加權計算得到具有標簽注意力分數的文本特征的隱層表示。具體公式如下:

其中C是標簽嵌入向量,A→為C與H→計算出的注意力分數,M?(l)為最終文本在標簽注意力下的嵌入表示。
(3)基于注意力的適應性融合策略
M(S)側重于文檔內容,M(l)側重于文檔內容與標簽文本之間的語義關聯。通過一個全連接層經過sig?moid 函數計算各自的分數,進行適應性加權得到最終的特定于標簽的文檔特征表示。具體公式如下:


多任務機制是同時考慮多個相關任務的學習過程,目的是利用任務間的內在關系來提高單個任務為學習的泛化性能。在多標簽文本分類中,建模標簽和文本的關系不僅可以通過上述注意力機制來實現,也可以通過計算標簽嵌入表示和文檔句向量表示的相似度來實現。假設某一訓練樣本屬于A標簽,那么A標簽的嵌入表示和該樣本的句子表示就應該比較接近。具體的公式如下:

訓練文本對應分類的標簽嵌入向量與該文本嵌入向量的相似度較高,所以通過公式(15)計算得到的loss值相對較低,而不屬于該訓練樣本的其他標簽計算得到的相似度較低,則得到的loss值較高。
為了驗證加入多任務相似度計算的有效性,本文在Ubuntu18 操作系統,配備顯卡(NVIDIA GTX1660 6GB),以及深度學習框架PyTorch 的環境下進行仿真實驗。數據部分本文采用了Arxiv Academic Paper Da?taset 數據集,該數據是由Yan 論文中[5]提供,該數據集從包含了55840 每篇學術論文摘要以及對應54 個不同的學科標簽主題。一篇學術論文摘要可能對應多個學科名稱。通過將該數據集劃分為訓練集、驗證集以及測試集。模型訓練結束采用在驗證集上模型效果最好的模型作為測試集的預測模型。其中訓練集、驗證集、測試集的大小分別設置為:53840、1000、1000。
對AAPD 數據集進行簡要的數據分析,其中訓練集和測試集的句子長度分別為163 和171。為了覆蓋大部分數據集,我們將句子長度設定為500,不足部分進行不全,超過的部分進行截斷。為了實現相似度計算任務,需要對句子真實長度進行標記,以便在實驗的過程中,實現補全token 的掩碼,從而提取到句子真實長度的隱層向量特征的平均表達。
數據經過預處理后,使用Google Word2Vec 預訓練詞向量(300 維),構成文本的嵌入矩陣,得到Bi-LSTM的輸入embedding 特征。標簽的嵌入向量維數也取300 維,通過隨機初始化生成。Bi-LSTM 中的隱層單元設置為500,批處理大小(batchsize)設置為64,每個樣本長度通過截斷和補齊固定為500,激活函數采用ReLU,學習率設定為0.001,da 參數設置為200,b 設置為256。模型訓練損失函數采用BCE(Binary Cross En?tropy)loss。使用Adam 優化器。模型訓練過程中損失函數值以及P@1,P@2,P@3 指標變化情如圖2 所示。

圖2 Loss及指標變化
實驗對比了對比加入了多任務相似度計算的LSAN 模型與未修改的模型訓練結果。相關結果如表1 所示。定義改進的方法名字為MT-LSAN。評估指標采用Top-K 中的精確度。公式定義如下:

表1 對比實驗結果

其中k表示取排名從高到底的前k個標簽的預測值進行精度計算,l表示對應的標簽類別。
通過對比實驗可以發現,加入多任務機制的模型,其精度得到了一定的提升,其中P@1 提高了0.26%,P@3 提高了0.29%。仿真實驗結果表明,加入了多任務機制的模型試驗結果得到了一定的提升。
本文在LSAN 模型的基礎上通過引入標簽與文本相似度計算的多任務機制,豐富了標簽自身的隱含信息,使得文本內容與標簽的關聯關系變得更加緊密,在現有的實驗結果上獲得了一定的提升。在現有的對話系統意圖識別中,多標簽文本分類可以解決多意圖識別問題,該模型具有一定的應用指導意義。