王晨曦, 張瑩祺
(華南師范大學 計算機學院, 廣州 510631)
文本分類是自然語言處理(natural language processing, NLP)中的經典問題之一, 其目的是為文本單位, 例如句子、查詢、段落或文檔等分配標簽[1]. 這項任務具有廣泛的應用場景, 包括問題解答, 垃圾郵件檢測, 情感分析, 新聞分類等. 其中的文本數據可以來源于網絡數據, 電子郵件, 用戶評論以及客戶服務的問題和解答等不同場景. 近年來, 圖神經網絡(graph neural network, GNN)[2-5]的新型神經網絡引起了廣泛的關注, 并在文本分類中表現出卓越的性能[6-9]. 與卷積神經網絡(convolutional neural network, CNN)[10,11]和循環神經網絡(recurrent neural network, RNN)[12,13]等序列學習模型不同, GNN可直接處理復雜的圖結構化數據, 同時能優先考慮圖的全局結構信息. 當基于GNN來進行文本學習時, 文本的結構特征和單詞之間的長距離交互能有效地捕獲, 以提高最終的文本分類性能.
基于GNN的文本分類包括兩個階段: 1)根據文本信息構建圖. 2)建立對文本圖的學習模型. 盡管現有的基于圖的方法已經取得了令人滿意的結果, 但存在兩個局限性限制了分類性能的提升. 其一, 現有方法存在語序和歧義問題, 大多數模型中將文本中的詞節點定義為一個集合(set). 如在TextING[6]中, 將文本中多次出現的同一個單詞視為唯一的詞節點. 雖然這樣能使圖中的詞節點緊密地連接, 但忽略了在文本中不同位置出現同一個詞具有不同的語序和語義信息. 其二, 現有研究缺乏對文檔中節點之間不同上下文信息進行有效交互和提取. 具體來說, 如在TextGCN[9]中構建了一個包含語料庫中所有文檔和詞之間全局關系的單一圖,這樣的方式忽略了文本中細粒度的詞交互. 并且, 在整個語料庫級別的大圖中設計文檔節點連接到所有相關詞節點, 會使文本的結構信息在詞節點進行消息傳遞(message passing)的過程中被文檔節點模糊, 這也限制了模型對新文檔進行歸納式學習(inductive learning).
為了解決上述限制, 本文提出了一種新的基于圖的文本分類方法TextIGAT, 以便準確地對文本自身特征進行提取整合, 來滿足歸納式文本分類. 首先, 為了在文本圖的構建中保留完整的文本序列, 將文檔中所有重復出現的詞保留為單獨的詞節點. 其次, 為每個輸入的文本基于文中單詞和上下文關系構建有向文本圖,此文本圖通過詞之間的共現和句法依賴關系構建, 且不計算任何邊的權重來減少構圖的操作. 然后, 模型使用自監督的圖注意力網絡(self-supervised graph attention network, SuperGAT)[14]和門控循環單元(gated recurrent unit, GRU)[15]作為基礎, 對詞節點與其鄰接點進行消息傳遞, 并更新詞節點的隱藏層狀態. 模型中利用自注意力機制(self-attention)初始化整個文本的全局表示, 并設計單向連接的文檔節點在更新過程中與局部詞節點交互, 以此保留文本的結構信息并更好地融入全局信息. 由于本文提出的文本圖保留了文本序列, 能通過GRU的雙向模型(Bi-GRU)來增強詞節點在整體文本中的順序表示. 最后, 通過注意力機制對每個輸入文本最終的詞節點表示進行整合, 并訓練和分類.
現有基于深度學習的文本分類方法主要可以分為兩類, 一類聚焦于對詞嵌入的研究, 而另一類針對于深度神經網絡模型的研究. 近些年來的研究表明, 深度學習在文本分類任務上的成功, 很大程度上取決于詞嵌入的有效性[16]. 詞嵌入是文本學習的數字表示模型, 它從大型未標記語料庫中提取單詞或短語的語義和句法信息, 并通過極大地降低向量的維數將詞映射到實數的連續向量空間. 通過對詞嵌入的研究, Joulin等人[17]提出一種簡單有效的文本分類方法fastText, 它將詞或n-gram嵌入的平均值視為文檔嵌入, 然后將文檔嵌入使用線性分類器進行分類. Shen等人[18]使用池化(pooling)對詞向量進行操作的模型SWEM, 并在與深度神經網絡的實驗對比中取得更好的結果. 在對深度神經網絡模型的研究中, CNN和RNN這兩種具有代表性的模型, 已經證明了在文本分類任務上的優越性.Kim[10]提出了TextCNN模型來使用包含多個尺寸不一卷積核的卷積神經網絡進行句子分類. Liu等人[12]基于長短期記憶網絡(long short-term memory, LSTM)設計了3種不同的詞表示共享機制, 并在文本分類中獲得了較好的效果. Lai等人[19]提出了CNN和RNN的組合模型TextRCNN, 結合兩種網絡的優勢來對文本分類的效果進行提升. 為了進一步提高深度網絡模型的表達能力, Yang等人[20]使用注意力機制(attention mechanism)為文本分類的模型的組成部分, 并取得了不錯的分類結果. 這些深度學習模型在文本分類任務上實用且應用廣泛, 但主要關注的是局部和順序特征,很少使用全局上下文信息, 也不能充分地捕捉詞與詞間的長期依賴關系.
近年來, 由于在圖結構數據的表示學習方面取得了巨大成功, 一些研究集中在基于圖的方法來提高文本分類任務的性能. Rousseau等人[21]將文本分類視為圖分類問題, 通過對文本圖進行子圖挖掘來提取特征,但通過子圖挖掘的方式容易造成特征的損失. Peng等人[22]先構建詞的共現圖, 再應用廣度優先遍歷來得到文本子圖進行卷積操作, 以此達到分類的目的. 隨著GNN的發展, 越來越多的基于GNN的模型被應用于文本分類中. Defferrard等人[23]提出了圖卷積神經網絡(graph convolutional networks, GCN), 并且首先在文本分類任務中使用, 并優于傳統的CNN模型. Yao等人[6]在整個語料庫構建的單個大圖上使用圖卷積網絡進行文本分類, 提出了TextGCN模型, 取得了出色的效果. 為了考慮更多的上下文特征, Liu等人[7]根據文本, 分別構造語義信息、句法信息和共現信息3種類型的文本圖,提出了TensorGCN模型. 其中, 節點信息可以在圖內和圖之間兩種方式傳遞, 這樣能充分挖掘文本的結構信息, 但需要占用較大的存儲資源. Huang等人[24]為每個文本構建具有全局參數共享的圖, 并提出Text-level GNN模型進行訓練. 然而, 這些模型本質上是轉導式學習(transductive learning), 所以無法對含有新結構和新單詞的文檔進行分類. 在基于GNN的文本分類的歸納式學習中, Zhang等人[9]提出TextING用于歸納文本分類, 該模型為每個文檔構建單獨的圖, 并使用門控圖神經網絡(gated graph sequence neural networks,GGNN)[25]來學習單詞表示. 歸納式學習是基于圖進行文本分析的趨勢, Ding等人[26]使用超圖(hypergraph)來基于注意力機制對每個文檔進行建模, 并提出HyperGAT來支持文本超圖上的表示學習. 與現有的方法不同, 本文通過增強詞之間的上下文關系交互, 對基于GNN的方法缺少文本順序特征的改進, 有效地整合文檔中復雜的特征來提高最終文本分類的效果.
對于從語料庫中給定的一個單詞的文本W=w1,w2,w3,···,wn, 其中每個單詞的表示為wn, n是文本長度. 為每個文本W 構建一個有向文本圖G =(V,E), 其中節點V 表示文本中的單詞, 而邊E 表示詞節點之間的關系. 文本圖 G中將文本重復出現的單詞被視為的不同節點, 所以保留了完整的文本序列和句法依賴關系. 為了增強文本中單詞之間的交互, 本文提出的文本圖G 通過共現(co-occurrences)和句法依賴(syntactic dependency)兩種上下文關系, 以及全局文檔節點構成.
首先, 通過固定大小的滑動窗口內出現單詞來得邊指向詞節點. 最后, 每個詞節點創建一條有向邊來連接自身. 文本圖構造如圖1所示, 其中 d oc代表文檔節點, wn代表詞節點, 圖中只保留w3和w4窗口大小為3的共現關系與句法依賴關系合并, 便于闡明文本圖的結構.到單詞之間的共現關系, 其默認窗口大小為3, 這種方式已廣泛用于GNN的文本表示學習. 其次, 利用Stanza工具[27]對文本中包含的句子和單詞進行據句法分析,以此來得到詞節點間含有句法依賴關系的邊. 其中, 邊保留了提取句法關系的方向, 但刪除了部分不重要和冗余的關系, 例如: 代表標點符號和單詞之間關系的“punct”和代表助動詞關系的“aux”. 在為每個文本構建有向圖時, 部分詞節點之間根據共現與句法依賴兩種關系構建的邊會出現重合. 然而, 在基于GNN的方法中每個圖的節點只能通過唯一的邊連接到其他節點,所以本文提出的構圖方法中將重合的邊合并. 文本圖中還針對每個輸入文本建立文檔節點, 并通過單一的

圖1 文本圖的構建示例
本文提出的文本圖G 保留了重復出現的詞, 能對詞節點的表示進行訓練和更新來保留完整的序列和語義信息. 通過共現和句法依賴關系的合并, 使圖中包含比單個關系文本圖更多的邊來連接詞節點, 并增強了長依賴交互, 能夠使用較淺的GNN學習到較好的文本表示, 從而避免過度參數化和因堆疊更多GNN層而導致過度平滑. 其次, 文檔節點通過單向的邊連接詞節點可以避免在節點交互過程中, 全局信息對詞結構信息的模糊. 此外, 連接節點自身的邊能使詞節點自身的特征參與傳遞. 文本圖G 適用于對含有新結構和新單詞的文檔進行分類, 能夠對文本進行歸納式學習.
TextIGAT模型主要包括3個部分: 基于GAT的單詞交互、文本序列特征交互, 以及文本表示學習, 整體架構如圖2所示.

圖2 TextIGAT模型示例圖
令輸入文本的嵌入為E =e1,e2,e3,···,en, 其中en∈Rdw為詞嵌入, dw是 詞嵌入的維度. 當在第t層GNN網絡時,文本圖中節點的隱藏狀態表示為 Ht=···,, 其中 h是每個詞節點的隱藏狀態. 對于初始狀態H0將第i個節點的隱藏狀態∈Rdw設置為它的嵌入ei, 即
模型中使用自注意力機制(self-attention)[28]對輸入文檔計算全局特征來初始化文檔節點的向量, 使得局部詞節點能與全局文本表示進行交互. 自注意力機制只需要通過對序列中的詞向量進行計算, 因此不需要詞節點之間關系的參與. 文檔全局表示使用縮放的點積注意力機制(scaled dot-product attention)[29]進行計算, 這是點積注意力機制變體的一種, 注意力權重基于以下等式計算:

其中, 鍵K (key)和值V (value)的查詢Q (query)是相同的向量并且等于 Ht, 分母是控制注意力分數比例的比例因子. 然后對 A進行的平均池化(avg pooling)得到文檔全局表示 D∈Rdw, 其思想是從加權詞節點中保留整體的特征來表示全局文本信息.
3.1.2 聚合
通過GAT的消息傳遞, 圖中的每個節點都可以根據其相連接的節點中最具代表性的特征聚合成自身的節點特征. 為了在文本圖上自適應的通過節點之間的重要程度進行消息傳遞, 本文提出的模型中使用SuperGAT[14]來聚合來自鄰居節點和文檔節點的信息.SuperGAT是將GAT中注意力的計算方式與點積注意力機制相結合的圖神經網絡, 能夠更有效為重要的相鄰節點分配更大的權重. 令初始狀態表示為, 節點i 在t層聚合來自鄰接點特征的表示可以如下獲得:

其中, aT是注意力機制中的單層前饋神經網絡, W?和Wr是模型中可訓練的參數, σ為非線性函數Sigmoid,LeakyReLU為激活函數, Ni代表節點i在圖中的鄰節點,R為多頭注意力(multi-head attention)機制中頭(head)的數量, 默認大小為3. 通過將SuperGAT應用于建立的文本圖上, 單詞節點可以靈活地聚合來自鄰居節點和文檔節點中更多重要特征.
3.1.3 更新
在聚合詞節點信息之后, 模型基于GGNN[25]的思想來更新文本圖中詞節點的隱藏狀態. GGNN是采用循環神經網絡思想來處理圖結構數據和圖嵌入的GNN, 其通過門控機制有效地決定如何更新節點的隱藏狀態. 本模塊使用GRU的基礎循環結構作為更新節點狀態的主要組件, 詞節點更新公式如下:

其中, Wx, Ux, bx( x∈{z,r,h})是可訓練的權重和偏差值,tanh 表示雙曲正切激活函數.和作為更新門和重置門分別控制有助于當前節點嵌入的信息. 由于第一層圖神經網絡能對一階鄰居進行操作, 通過堆疊GNN網絡層數T后能獲得每個節點的最終隱藏狀態HT=是節點數量.
該模塊旨在提取整個文檔的詞序信息, 進一步地增強詞節點的表達能力. 循環神經網絡可以根據其結構特征有效地提取文本序列特征, 因此使用雙向門控循環神經網絡(Bi-GRU)能夠增強詞節點的序列表示.Bi-GRU模型由兩個GRU組件組成, 可以同時處理來自前向和后向的輸入. 在構建文本圖的過程中, 由于將每個文檔中重復出現的詞作為不同的詞節點, 而保留了完整的文本序列. 因此, 最終經過GNN的隱藏狀態可以看作是Bi-GRU的起始狀態, Bi-GRU的隱藏狀態定義如下:

模型最后通過所有的詞節點的最終表示Si計算文本表示z來對輸入的文本進行分類. 基于注意力機制[30]使用以下公式計算每個詞節點的注意力權重:

其中, Wα表示權重矩陣, wα是 權重向量, bα是偏差值,f 是非線性激活函數, 如雙曲正切變換. S oftmax用于對詞節點的注意力權重進行歸一化. 注意力權重Ci通過計算詞節點向量的加權和, 以此產生一個集成的文本向量表示z:

最后, 通過將文本表示z輸入到 S oftmax 層來預測標簽. 通過以下交叉熵函數來最小化損失:

其中, Wy和by分別是權重和偏差值,是預測的標簽分數,表示文本的第k個正確標簽(ground truth). 因此TextIGAT方法可以通過最小化所有標記文檔的損失函數L 進行學習.
為了實驗結果對比的一致性, 本文對TextING模型中的4個廣泛使用的英文文本數據集(MR、Ohsumed、R8和R52)進行實驗.
MR[31]: 用于二元情感分類的電影評論數據集, 其中包含5 331條正面評論和5 331條負面評論, 每條評論只包含一個句子. 實驗中訓練集和測試集的劃分來自于Tang等人[32].
Ohsumed: 臨床數據集MEDLINE的子集, 涵蓋了5年(1987-1991年)的270種醫學期刊的所有參考文獻. 數據集中的每個醫學摘要都有來自23個心血管疾病類別的一個或多個相關類別, Ohsumed僅使用了屬于一類的7 400份文件.
R8和R52: Reuters 21578數據集的子集. R8有8個類別, 可以拆分為5 485個訓練和2 189個測試文檔. R52有52個類別, 可以拆分為6 532個訓練文檔和2 568個測試文檔. 兩個數據集中的每個文檔只與一個主題相關聯.
表1中展示了評估數據集的統計數據及其補充信息. 通過在文獻[10]中的文本清理和標記為來預處理所有數據集, 并刪除了NLTK中定義的停用詞, 以及Ohsumed、R8和R52出現少于5次的低頻詞. 因為MR屬于短文本, 因此不對其中的單詞進行刪減.

表1 評估數據集的統計表
實驗中, 對比的基線模型可以分為3種類型:
(1)基于序列的模型: 方法從局部連續詞序列中捕獲文本特征, 包括: CNN-non-static[10]和Bi-LSTM[33]兩種基于CNN和RNN的代表性模型.
(2)基于詞嵌入的模型: 方法基于預先訓練的詞嵌入對文檔進行分類, 包括: fastText[17]和 SWEM[18]兩種對詞嵌入使用平均池化或最大池化(max pooling)提取特征.
(3)基于圖的模型: 方法基于圖形結構來進行單詞之間的交互, 包括: Graph-CNN[22]對文本子圖進行卷積運算; TextGCN[6]利用GCN來學習整個語料庫級別圖的單詞和文檔嵌入; TensorGCN[7]在詞張量圖上采用圖內和圖之間傳播; Text-level GNN[24]構建具有全局參數共享的文檔圖進行文本表示學習; HyperGAT[26]為每個文檔構建超圖并使用雙重注意機制進行歸納分類;TextING[9]是基于圖的歸納式文本分類的SOTA模型.
出于公平比較, 所有實驗在Intel Xeon E5-2 680 v4 CPU和RTX 3 090 GPU上運行. 數據集選用文獻[9]中提供的訓練集和測試集, 隨機選擇訓練集的10%作為驗證集, 并根據驗證集的性能調整超參數的最佳值.本文基于PyTorch框架實現TextIGAT模型, 默認堆疊兩層GNN. 模型中采用Adam優化器[34]對參數進行更新, Ohsumed數據集的學習率為0.001, 其他數據集的學習率為0.000 3. 為防止模型訓練中過擬合, Dropout在每個模塊中設置為0.5, 并應用于詞嵌入的初始狀態.文本圖中隨機刪除節點間連接的邊, 概率設置為0.3,以獲得最佳性能. R8數據集的L2正則化參數(weight decay)設置為5E-5, 其他數據集為5E-6.
實驗使用300維度的GloVe詞向量[35]來初始化詞嵌入. 針對歸納式文本分類任務, 初始的詞嵌入在模型訓練期間不進行更新. 不包含在語料庫中的詞(outof-vocabulary, OOV)在預處理中會被替換為UNK, 并從均勻分布 [-0.01, 0.01] 中隨機采樣初始化詞嵌入. 基線模型使用其原始論文和復現中的默認參數設置.
表2展示了本文方法和其他基線方法的文本分類的準確度結果, 其中TextIGAT在4個評估數據集上均達到了較好的分類效果, 展示了其出色文本分類能力.
對比表2中的結果, 基于圖的模型通常優于CNN、LSTM和fastText等傳統神經網絡模型. 這是由于圖形結構的特性造成的, 圖形結構有利于文本處理能使詞節點能夠通過不同的搭配來學習更準確的表示. 這一觀察表明文本分類性能可以通過捕獲長距離詞節點交互提高. 其中, 基于GCN的方法本質上是轉導式學習,這會降低測試具有新詞和關系的文檔的性能. TextING和Text-level GNN在基于圖的歸納式文本分類取得了不錯的結果, 但由于欠缺對詞關系的進一步考慮, 性能受到了限制. HyperGAT模型使用超圖構建的文本圖能夠減少計算消耗, 但也忽視了整體文本中的結構特征.TextIGAT模型中文本圖含有的邊比其他基線方法要多, 能夠減少圖的直徑并增強了節點之間的消息傳遞.

表2 評估數據集上各種模型的準確率(%)
TextIGAT模型通過結合循環結構和GNN, 顯示出比大多數基于圖的基線方法更強大的分類能力. 上下文序列特征在短文本或情感分類中起著關鍵作用,例如在MR電影評論數據集中. 現有方法通常采用詞之間的共現來引入順序信息, 但這樣的方式在整個文本圖中表達詞序的能力有限. 采用循環結構來對GNN的最終隱藏狀態進行轉換, 可以有效地保持文本整體的順序特征. 通過實驗表明, 本文提出的TextIGAT模型在對比其他基于圖的基線模型取得了不錯的提升.
實驗通過消融實驗對TextIGAT模型各模塊進行分析, 結果如表3中所示. 其中, w/o global, w/o self-loop,w/o co-occurrence和w/o dependency是文本圖的變體,分別指文本圖中刪除連接全局文檔節點、自循環、共現信息和句法依賴的邊. w/o sequential是模型中去除文本順序特征的交互. 從實驗結果可見, 刪除文本圖中任何關系所連接的邊都會導致準確率下降. 其中, w/o global和TextIGAT之間的性能差距顯示了將文檔節點單向與詞節點更新相結合的重要性. 此外, 不同關系的邊在不同的數據集中有不一樣的作用. 如在不使用共現的MR數據集和不使用句法依賴的Ohsumed數據集的準確度結果較差. 這表明共現在MR數據集中起著重要作用, 而句法依賴在Ohsumed數據集中是必不可少的. 而TextIGAT模型通過共現和句法依賴關系的合并, 能讓兩種關系相互補充, 在不同的數據集中發揮出更好的分類效果. 其次, 通過將w/o sequential與原始模型的結果進行比較, 表明與序列交互的結合可以增強TextIGAT模型表達能力, 尤其是對于短文本的MR數據集. 因此, 所有模塊對于本文所提出的TextIGAT模型都是必需的.

表3 TextIGAT模型在消融實驗上的準確率(%)
圖3中記錄不同數量的圖層數的方法的模型性能.在MR和Ohsumed數據集上, 當層數為兩個或更多時,模型達到了最佳的文本分類性能. 由于在文本圖中引入了更多的邊, 單詞節點可以接收傳遞更多的信息, 且更準確地學習單詞表示. 同時, 為了評估標記訓練數據大小的影響, 實驗比較了幾個具有不同訓練數據比例的基線模型. 圖4記錄在MR和Ohsumed數據集上使用不同訓練集占比的測試準確率. 隨著標記訓練數據百分比的增加, 所有進行實驗的模型都提高其分類性能. 而TextIGAT模型可以在標記文檔有限的情況下顯著優于其他基線, 證明了其在文本分類中的有效性.

圖3 GNN的層數對準確率的影響

圖4 訓練數據比例對準確率的影響
圖5中展示了在MR數據集中正面評論和負面評論兩個類別的注意力機制可視化效果. 其中, 突出顯示的單詞與注意力權重成正比, 并且在文本圖中與之相連的詞節點較為緊密, 它們與類別標簽呈正相關. 通過本個案分析結果表示, TextIGAT模型可以在注意力機制和圖注意力模型的結合下, 準確地提取關鍵的文本信息來得到富有表現力的文本表示, 以此最終達到提升文本分類的目的.

圖5 MR數據集的注意力機制可視化
本文提出了一種基于門控圖注意力網絡的歸納式文本分類方法, 以有效地整合文本中的復雜特征和提取不同的上下文關系來提升分類效果. 該方法為語料庫中每個輸入文本構建圖, 圖中根據不同的上下文關系連接詞節點, 增強了在單個的文本圖中節點交互的距離和信息. 其次, 通過單向的文檔節點引入全局文本信息的交互, 靈活避免對文本結構信息的模糊. 此外,模型中對于GRU結構的利用, 提升了詞節點的詞順序表示以及信息的更新. TextIGAT模型專注于文本本身的特征, 能夠對含有新單詞和新結構的文本進行歸納式文本分類. 本文通過進行廣泛的實驗并與基線模型的對比, 實驗結果證明了本文提出的TextIGAT模型有效提升了基于圖神經網絡的文本分類效果.