郭佳樂, 卜 巍, 鄔向前
(1 哈爾濱工業大學 計算機科學與技術學院, 哈爾濱150001; 2 哈爾濱工業大學 媒體技術與藝術學院, 哈爾濱150001)
近年來隨著移動互聯網的蓬勃發展,涌現了大量基于內容分發服務的App 和相關自媒體平臺,它們在日常生活中扮演著越來越重要的角色,改變了人們獲取信息的方式和途徑。 當用戶在瀏覽感興趣的內容時,這些平臺常常會主動為用戶推薦相同或者相近話題的其他文章。 而如何判斷文章之間的主要內容是否關于相同或相近的主題,即判斷一對文章之間的關系,其實可以歸結為自然語言處理領域中的文本語義匹配任務。
文本匹配任務本質上是判斷源文本與目標文本之間的語義相似度(比如:查詢-文檔的匹配、問題-答案的匹配等),而如何正確地建模文本中蘊含的語義信息對于實現更高質量的文本匹配結果十分重要。 目前,在實際建模過程中主要有兩個難點:一是詞匯和短語本身是有歧義的,存在廣泛的指代和省略等問題;二是待匹配的文本篇幅很長,文本中詞匯、短語、句子本身的語義受到復雜文章結構很大的影響。
本文針對互聯網上的文本信息,譬如新聞文章都具有較長的篇幅以及一定的行文邏輯結構,設計出一種高精度的基于圖分類的中文長文本匹配模型,并在CNSE 和CNSS 數據集上進行訓練和測試。本文的主要貢獻總結如下:
(1)提出了基于圖分類的長文本匹配算法。 該算法將輸入的文本對轉化為圖結構,利用基于注意力機制的圖神經網絡對節點特征進行抽取,通過基于多層感知機的圖分類模塊融合全圖信息的特征表示向量,進行圖分類計算,從而得到長文本匹配的結果,完成長文本匹配任務。
(2)提出了一種基于圖注意力機制的圖池化算法,增強圖節點融合過程中最大化圖的可辨別性,有效的提升了圖的表示效果,從而獲得了更魯棒且優異的長文本匹配結果。
(3)針對網絡模型的輸入,設計了多尺度卷積神經網絡模塊對節點編碼,從而提升網絡模型輸入特征質量,獲得更豐富且魯棒的節點語義表示。 同時在模型中引入更多的非線性,增強了模型的擬合能力。
(4)本文提出的中文長文本匹配算法,在CNSE和CNSS 兩個公開數據集上超越了先前算法模型的結果,各項指標均達到了目前最好的匹配結果。
為了衡量兩篇文本之間的相似度,深度學習模型之前主流的模型有向量空間模型(vector space model,VSM)、 隱 含 語 義 分 析(Latent Semantic Analysis,LSA)模型以及引入例如知識庫等外部的語義知識資源來輔助計算,但是傳統方法和模型仍舊受限于離散的單詞表示。 基于深度學習的文本語義匹配模型通常將文本編碼為分布式特征表示,通過用于度量學習的孿生結構(siamese structure)來學習文本之間的相似度信息[1]。 其中有大量的研究工作聚焦于使用深度神經網絡來對文本進行編碼,但是過去的這些研究主要都集中于短文本之間的匹配,當隨著待匹配文本篇幅增加,基于RNN 的模型在超長序列中傳遞信息會丟失重要的語義信息,而基于CNN 的模型也無法充分地表示結構更復雜的長文本的語義信息。
此外,大多數文本語義匹配的工作都忽略了長文本所具有的結構信息,而這種結構信息對于語義匹配是十分重要的,應當加以有效地利用。 Liu 等人提出層次性結構(hierarchical structure)來聚焦于句子級別的層次信息。 為了更充分地利用文本中的結構信息,Jiang 等人提出基于孿生多深度注意力機制的層次性循環神經網絡(SMASH RNN)模型,來處理長文本匹配的任務[2]。 Liu 等人基于分治思想將待匹配的長文本轉化到多個關鍵詞的匹配,并融合結果,形成整體的匹配得分,同時提出了兩個中文長文本匹配數據集[3]。
傳統的圖結構用不同的符號命名節點,用鄰接矩陣來存儲節點之間的關系。 但這種表示方法節點之間沒有語義關系,且表示形式稀疏,很難應用于深度學習的模型當中。 因此后續有很多工作聚焦于將節點特征低維稠密化,比如Deepwalk 模型,通過隨機游走獲得當前節點的上下文信息[4],之后針對大規模網絡計算,LINE 模型被提出[5]。 Node2vec 模型被提出改進的隨機游走策略,可以同時考慮到局部和宏觀的信息,并且具有很高的適應性[6]。
目前針對圖池化算法相關的工作大致可以劃分為基于節點選擇的圖池化算法和基于節點聚類的圖池化算法兩類。 基于節點選擇的模型比如gPool 算法,將節點Embedding 隱射到一維空間中,根據值的大小選擇其中top k 個節點,再進行圖卷積的計算,自適應地選擇圖全部節點的子集來形成一個新的小圖[7]。 還 有 研 究 者 提 出 SortPooling 算 法 通 過Weisfeiler-Lehman( WL)算法 可以對節點進行著色,而節點的顏色可以定義節點之間的次序,通過1-D 卷積的方法進行卷積運算,從而得到全圖的表示,用于圖分類任務[8]。 由于基于節點選擇的圖池化算法一定程度上忽略了圖的層級結構信息,而這對提升最終圖表示的可辨別性有一定的輔助作用,因此有研究者提出了一種端到端的可微可微圖池化模塊DiffPool[9]。 為了實現圖中某一個節點分配到哪一個簇,應該與其他節點的簇分配相互約束,有研究者提出了StructPool 來高效地學習高層次的圖表示,使用條件隨機場(conditional random fields,CRF)顯示地捕捉了圖中不同節點之間的高階結構關系[10]。
本文提出基于圖分類的中文長文本匹配算法,即將長文本匹配任務等價地轉化為圖分類的任務,在圖分類任務的模式下求解問題,得到原任務的結果。 如圖1 所示,首先將待匹配的一對長文本轉化為圖的結構,然后通過圖表示學習來提取節點的特征,最后通過融合全圖節點的表示來獲得圖的表示,并對圖的表示進行圖分類,獲得的圖分類結果等價于長文本匹配的結果。
給定一個文本對包含文章DA和DB, 對兩篇文章分別通過TextRank 算法來抽取出文章中的命名實體和關鍵詞作為圖的頂點并合并,把文章中的所有句子通過與每個關鍵詞計算TF-IDF 相關度來對其劃分,使得每個句子都只隸屬于一個頂點。 這樣每個頂點均包含了一個句子子集S(v),其中S(v)={SA(v),SB(v)}。 得到的文本對圖結構表示的可視化結果,如圖2 所示。

圖1 基于圖分類的長文本匹配算法框架Fig. 1 The pipeline of the proposed document matching algorithm based on graph classification
然后把關鍵詞所包含的句子集合中的文本內容使用深度神經網絡(Deep Neural Network,DNN)和詞項相似度(Term Similarity,TS)兩種編碼模式向量化。 其中DNN 編碼器使用卷積神經網絡來對文本進行編碼, 即把S(v)={SA(v),SB(v)} 的SA(v)、SB(v) 分別輸入到CNN模型中得到向量cA(v)、cB(v)。 對其計算逐元素差的絕對值和逐元素乘,最后把兩個向量進行拼接,即固定長度的輸出向量mAB(v);對于TS編碼器,每個節點v用5 種常見的詞項相似度度量方式來計算SA(v)和SB(v)的相似度,包括TF-IDF余弦相似度、TF余弦相似度、BM25 余弦相似度、Jaccard相似度和Ochiai相似度。 通過把5 種相似度向量進行拼接,得到針對每個節點的固定長度向量m′AB(v)。mAB(v) 與m′AB(v) 拼接,得到節點v的語義向量。

圖2 文本對圖結構表示的可視化結果Fig. 2 Visualization of the graph structure of the documents pairs
近年來很多圖表示學習的工作使用常規的圖卷積神經網絡,獲得了很好的結果,但是其在聚合節點的一階鄰居信息時,對于每個鄰居的信息給予的權重是相同的,并沒有考慮該信息的價值貢獻大小。而在信息聚合時,對于不同鄰居的信息根據其價值來給以不同大小的權重,實現了選擇性的信息聚合,從而有利于更有效地對節點特征進行變換。
此外,樸素圖卷積需要在建圖時完成鄰接矩陣的構建,而在實際應用當中這一步需要做大量的預處理計算,同時在進行圖卷積運算時,將鄰接矩陣加載到內存中或者GPU 顯存中時非常耗時,不利于算法在工業界大規模圖上的實際應用,因此本文使用基于自注意力機制的圖節點特征抽取算法(Graph Attention Network,GAT),來代替樸素圖卷積方法。 這樣可以省略文本建圖時必須構建鄰接矩陣的過程,同時在訓練測試加載數據時大大提升處理效率。 基于注意力機制圖神經網絡模型結構如圖3 所示。 自注意力機制在計算相似度得分時,使用公式(1)計算:

其中,a和W是訓練參數, [a‖b] 代表拼接(concatenate)操作。αij代表節點i與節點j之間的相似度,hi代表i節點的屬性特征。 LeakyReLU 為激活函數,增強模型的非線性表達能力。
此外,為了增加模型的容量以及模型訓練過程的穩定性, 引入了多頭機制( Multi - head mechanism)。 多頭機制可以將特征向量映射到不同的子空間,通過聚合多個子空間的映射結果,來得到更好的特征表示。 通過堆疊多層的GAT 層,可以抽取到更有效的節點特征表示,在相鄰的GAT 層之間同樣引入非線性激活函數LeakyReLU 來增加模型的非線性,使得訓練得到的模型更魯棒。

圖3 基于注意力機制圖神經網絡Fig. 3 Self attention based graph neural network model
學習圖數據的高層語義表示對于圖分類任務十分重要,除了引入圖卷積操作來對圖數據進行處理,類比圖像文本領域常見的池化操作,如何對圖結構數據引入圖池化操作也是一個很重要的研究方向,目前最普遍的融合算法策略是對所有節點的特征向量形成的矩陣在節點數量維度上做求和(Sum Pool)或者平均池化(Mean Pool)/最大池化(Max Pool)等操作,從而得到一個與節點特征維度相同的向量,并用這個向量作為全圖的最終表示,送入到圖分類模塊進行圖的分類。 但是,這些樸素的融合方式都可能丟失掉重要特征的信息,同時在融合時沒有考慮到圖節點之間的語義信息交互的關系,以及完全丟失了圖所具有的拓撲結構對最終圖表示向量的貢獻,因此獲得的全圖表示的可分辨性較弱,在一定程度上限制了圖分類模型性能進一步提升的潛力。
本文為了在省略鄰接矩陣的情況下依然能夠得到魯棒的結果,提出了基于圖注意力機制的圖池化算法(Graph Attention Pooling, GATPool)來完成圖節點的融合過程,基于圖注意力機制的圖池化模型算法模型如圖4 所示。算法把輸入的節點特征矩陣(N個節點)通過一層圖注意力網絡來得到一個N ×N的相似度矩陣(attention matrix) A 來衡量圖中任意兩個節點之間的相似度,如公式(2)所示,同時相似度矩陣可以作為一種既融合了節點的特征表示又顯示地建模了圖拓撲結構的模塊。 然后使用公式(3)對相似度矩陣按列進行softmax 歸一化后按行求和,公式(4)依據每個節點與其他節點的交互計算,得到了每個節點在全圖中的重要性得分Z。 通過選擇值最大的K個節點作為圖的代表X′,通過公式(7)完成節點的選擇后,通過平均池化(Mean Pooling)得到全圖的特征表示Xout。


圖4 基于圖注意力機制的圖池化模型Fig. 4 Graph Attention Pool,GATPool
為了充分地挖掘和利用輸入信息,本文提出使用多尺度卷積神經網絡模塊(記為Inception)來對每個節點所包含的文本信息S進行編碼,從而得到節點的表示向量X, 如公式(8)。 通過組合三種大小的卷積核形成層次性的模型結構,可以有效地捕獲輸入文本中在不同語義層次和空間的語義表示,通過最大池化(max pooling)操作對特征進行篩選,最后對不同卷積核的輸出結果進行拼接(concatenate),得到輸入文本的編碼向量X。

如圖5 所示,本文設計的多尺度卷積神經網絡使用了大小分別為1、2、3 三種尺寸的卷積核,最左側的K =1 的卷積核數量為32,中間和右側K =1 的卷積核數量為16,K =2 和3 的卷積核數量均為32。尺寸為1 的卷積核主要對輸入的特征維度進行變換,使得模型可以在不降低感受野大小的前提下減少模型的參數量,降低模型過擬合的風險。 尺寸為2、3 的卷積核用來捕獲文本的2-gram、3-gram 特征,通過這種局部信息和模式的提取,來增強文本的表示效果。

圖5 多尺度卷積神經網絡模塊Fig. 5 Multi-scale CNN module
文本匹配任務是一個二分類任務,通過將文本對表示為圖結構,則將文本匹配任務等價轉化為圖的二分類任務。 在融合圖節點特征得到整個圖的向量表示后,通過多層感知機(Multi-Layer Perceptron,MLP)可以實現分類過程。 多層感知器的結構如圖6 所示。
兩層線性層的隱藏單元數分別為32 和16。 將MLP 的輸出結果通過與二分類標簽進行交叉熵(Cross Entropy)計算作為損失函數。
模型網絡的目標函數使用二元交叉熵損失函數(Binary Cross Entropy Loss,記為BCELoss),計算公式(9)為:

其中,yn是標簽值,xn是模型網絡輸出的值,wn是該類別的權重值。

圖6 多層感知機(MLP)結構圖Fig. 6 The scheme of the Multi-layer perceptron(MLP) module
模型分別在CNSE(Chinese News Same Event dataset)和CNSS(Chinese News Same Story dataset)兩個數據集上進行訓練和測試。 數據集的劃分比例均保持為訓練集:驗證集:測試集=6 ∶2 ∶2,同時確保了不同集合之間不存在數據泄露,具體劃分詳情如表1 所示。

表1 兩個數據集的劃分詳情Tab. 1 Description of two evaluation datasets
CNSE 數據集中的文章來源于主流中文新聞平臺上的長文報道,包括了開放領域豐富多彩的新聞話題。 一共包含29 063 個新聞文章對,由人工根據一對新聞文章是否報道同一件新聞事件來進行標注。
CNSS 數據集中的文章來源于主流中文新聞平臺上的長文報道,包括了開放領域豐富多彩的新聞話題。 一共包含33 503 個新聞文章對,由人工根據一對新聞文章是否報道同一系列新聞熱點來進行標注。
兩個數據集中的所有文章的平均詞數是734,最大詞數是21 791。 同時在構造負樣本對時兼顧了兩篇文章TF-IDF 的相似度高于一定的閾值,增加了負樣本對本身的質量和模型識別判斷的難度。
實驗的評測標準采用通用的二分類評價標準,分別為準確率(Accuracy) 和F1 值(F1scores),分別由公式(10) 和(11) 進行計算。

由表2 中的實驗結果可以看出,與先前的7 種有代表性的文本匹配算法相比,本文提出的算法在CNSE和CNSS 兩個數據集上的準確率和F1 值等各項指標均達到了目前最好的結果。 充分說明本文提出的基于圖分類的中文長文本匹配算法通過結合注意力機制圖神經網絡、圖注意力池化算法、多尺度卷積神經網絡模塊等模型可以有效地提升文本匹配任務中的表現。

表2 基于圖分類的中文長文本匹配結果Tab. 2 Results on low-level feature enhanced model
表3 中得到了本文提出的模型消融實驗的結果,可以看出本文提出的算法需要各模塊之間緊密有效的配合,去除其中的某一些模塊會不可避免的導致模型在CNSE 和CNSS 兩個數據集上的準確率和F1 值等各項指標不同程度的下降。 其中,基于自注意力機制的圖神經網絡可以有效地對節點特征進行抽取,基于圖注意力的圖池化算法有利于獲得更具可辨別性的圖全局特征表示,而多尺度卷積神經網絡模塊可以為網絡模型的輸入提供語義豐富且魯棒的節點特征表示。

表3 模型消融實驗結果Tab. 3 Ablation study of the model
本文針對中文長文本匹配任務提出了基于圖分類框架的長文本匹配算法,通過將長文本匹配任務等價的轉化為圖分類任務,使用圖表示學習的范式來求解,從而獲得長文本匹配的結果。 同時,從增強圖節點特征表示抽取建模,強化圖節點融合池化過程,保持圖可辨別性,增強模型網絡的輸入特征、表示等方面來提升基于圖表示學習模型的文本匹配算法的性能表現。 通過本文提出的各模塊之間緊密有效地配合,本文提出的中文長文本匹配算法,在兩個公開數據集上進行了充分的實驗驗證,實驗結果表明:各項指標均達到了目前最好的結果,證明了本文方法的有效性和優越性。