趙 琪,杜彥輝,蘆天亮,沈少禹
中國人民公安大學 警務信息工程與網絡安全學院,北京 100038
文本相似度在自然語言處理中有著重要的地位。其旨在對給定的兩個文本進行特征提取,計算文本特征向量相似度,以此來量化兩個文本之間的的相似程度。文本相似度在自動問答系統、信息檢索、自動文本摘要、文本分類等自然語言處理的任務中都有著廣泛的應用[1]。
近年來,隨著深度學習的發展,深度學習在文本相似度的任務中得到廣泛的應用。由于卷積神經網絡[2]與循環神經網絡[3]在各個領域的任務中表現出了良好的性能,從而成為如今主要的兩種神經網絡模型結構。卷積神經網絡通過對詞向量矩陣進行處理,從而有效地提取出文本的局部特征,但缺點在于不能考慮文本的上下文信息,有時不能表達文本真正的含義。循環神經網絡將文本視為一個序列,它可以將上一神經元的輸出作用于下一神經元,因此這種網絡結構具有記憶性,利用循環神經網絡完成文本特征向量提取,可以考慮詞語的順序信息,利用文本的上下文信息提取文本的全局特征,但對于長距離的依賴關系,循環神經網絡不能很好地提取文本特征。針對兩種網絡結構的特點,本文提出基于capsule-BiGRU 的文本相似度分析方法,該方法將兩個文本通過兩種神經網絡結構處理之后得到的文本特征向量進行相似度分析,得到局部相似度矩陣和全局相似度矩陣,將兩個層次的相似度矩陣進行融合,以此完成文本相似度分析。
本文提出的方法首先利用互注意力機制賦予單詞不同的權重,針對兩個文本,對兩個文本的詞向量距離進行計算,對于更接近另一個文本的單詞給更高的權重。其次結合膠囊網絡與BiGRU 網絡構建集成模型,將膠囊網絡提取的文本局部特征和BiGRU網絡提取的文本全局特征分別進行相似度分析,將兩個層次的相似度矩陣進行融合。最后根據兩個句子的相似度向量判斷文本是否相似。
傳統的文本相似度研究的方法主要是以one-hot、詞袋模型、N-gram,TF-IDF 等作為文本的特征向量[4-5],利用余弦相似度等方法作為量化文本相似程度的指標。但這些方法單純地以文本的統計信息作為文本的特征向量,沒能考慮詞語的上下文信息,同時在特征提取時存在特征稀疏和維度爆炸的問題[6]。
隨著深度學習的發展,利用深度學習的方法研究文本相似度任務成為了如今的主流方法。
Mikolov等人[7]在文中提出word2vec詞向量嵌入方法,作為一種神經網絡語言模型,該方法將單詞轉化為多維向量表示,極大地方便了后續工作。Pennington等人[8]在文中提出Glove 詞向量嵌入方法,該方法融合了全局矩陣分解方法和局部文本框捕捉方法的優點,詞向量嵌入考慮了上下文的信息,更準確地表達了文本的上下文信息,在多個自然語言處理任務中有良好的表現。
Kim等人[9]在2014年發表的論文中提出了TextCNN模型,將CNN應用到自然語言處理領域中,進行文本分類任務。使用預先訓練好的詞向量作為模型的輸入,使用多個不同尺寸的卷積核來提取句子的文本特征向量,經過最大池化層篩選句子的顯著特征,將篩選出的特征連接,最后進入全連接層輸出每個類別的概率。Sabour等人[10]在2017年在文中提出了膠囊網絡,膠囊網絡是卷積神經網絡的一種變體,使用神經元向量代替傳統卷積神經網絡中的單個神經元節點,以向量的形式保存更多的信息。同時以動態路由機制訓練膠囊網絡,減少了網絡的參數,在手寫數字識別數據集上有很好的效果。Zhao等人[11]將膠囊網絡引入自然語言處理中,做文本分類的任務,膠囊網絡可以對文本信息進行有效的編碼,保存了文本多層次的特征,提取出的特征向量更準確地表達了文本的取得了很好的效果。Francis-Landau 等人[12]在文中使用CNN 完成實體關系抽取任務,該模型使用的多個粒度的卷積網絡,具有良好的表現。
Mikolov 等人[13]將循環神經網絡引入自然語言處理領域,利用循環神經網絡完成了機器翻譯的任務,使用循環結構遍歷整個文本,得到文本的全局特征。Sundermeyer 等人[14]在文獻中將LSTM 應用于自然語言處理領域,LSTM解決了傳統循環神經網絡對于輸入序列長距離信息依賴關系的問題。Neculoiu等人[15]提出基于孿生網絡結構的雙向長短期記憶神經網絡用于文本相似度,該網絡通過兩個LSTM 網絡遍歷整個文本,綜合考慮每個單詞的上下文信息,提取句子的特征,完成文本相似度的判別。Bahdanau 等人[16]在將注意力機制應用到了自然語言處理領域,通過注意力機制,神經網絡具備專注于某些特征的能力,對于重要的特征分配較多的注意力。
He 等人[17]在文中提出基于注意力機制的卷積神經網絡模型用于文本相似度分析,該模型利用注意力機制對文本單詞賦予權重并使用卷積網絡提取特征矩陣。方炯焜等人[18]將GloVe 詞向量嵌入方法與GRU 網絡結合起來做文本分類的任務,該方法利用GloVe方法完成單詞表示,并利用GRU 網絡作為分類器在文本分類中有較好的表現。Pontes 等人[19]提出利用CNN 與LSTM網絡提取文本特征完成文本相似度分析任務。郭浩等人[20]提出基于CNN-BiLSTM的文本相似度計算方法,使用CNN 和BiLSTM 網絡提取文本特征,完成相似度計算。唐莊等人[21]提出一種transformer-capsule集成模型,分別利用膠囊網絡和transformer 來提取文本的局部短語特征和全局特征,得到文本序列的多層次特征表示,完成文本分類的任務。尹春勇等人[22]對傳統膠囊網絡改進,將卷積神經網絡和膠囊網絡融合做文本分類的任務。
針對CNN 網絡與RNN 網絡在特征提取階段的優勢與不足,本文提出的方法將CNN 網絡變體capsule 與RNN網絡變體BiGRU結合,同時引入互注意力機制,解決了傳統神經網絡模型不能很好地提取文本的特征向量的問題。本文提出的方法在文本相似度任務中有較好的表現。
基于capsule-BiGRU的文本相似度分析模型框架如圖1 所示。本文提出的模型主要包括:詞向量嵌入模塊、特征矩陣提取模塊、特征矩陣分析判斷模塊。本文提出的方法首先針對文本相似度任務,使用互注意力機制分析重要的單詞賦予較高的權重。其次將膠囊網絡(capsule)和雙向門控循環單元網絡(BiGRU)相結合,使用膠囊網絡提取文本的局部特征,使用BiGRU 網絡提取文本的全局特征,將提取出的兩個層次的特征融合得到文本的多層次特征。同時對將傳統的膠囊網絡進行改進,將與文本語義無關的單詞視為噪聲膠囊,賦予較小權值,從而減輕對后續任務的影響。

圖1 基于capsule-BiGRU的文本相似度分析模型框架Fig.1 Framework of text similarity analysis model based on capsule-BiGRU
本文提出的方法首先使用預訓練的GloVe模型,將兩個文本分別映射為300 維的詞向量矩陣。將詞向量矩陣作為模型的輸入,經過注意力機制模塊賦予權重,然后將其結果分別輸入到BiGRU網絡和膠囊網絡模型中。在膠囊網絡中,首先進行卷積運算,經過主膠囊層做膠囊卷積運算,經擠壓函數運算后作為主膠囊層的輸出,經過動態路由協議機制運算后連接到分類膠囊層,將分類膠囊層的輸出結果展開作為文本的局部特征向量。在BiGRU 網絡中,使用雙向的GRU 網絡從兩個方向提取文本的信息,得到文本的全局特征向量。同時在特征向量提取階段,使用孿生神經網絡結構,即處理兩個詞向量矩陣使用完全相同的網絡結構,這樣將兩個詞向量矩陣編碼到同一矢量空間。最后將兩個文本各自的局部特征和全局特征分別進行相似度分析,得到兩個文本的相似度矩陣,將相似度矩陣作為全連接網絡的輸入,全連接網絡最后一層使用sigmoid函數作為分類器,判斷兩個文本是否相似。
在詞向量嵌入模塊首先對文本進行預處理,主要包括去停用詞、特殊符號等,通過分析所有文本,本實驗選擇句子最大長度為25 個字符,對不足25 個字符的句子進行補齊,超過25 個字符的句子截取前25 個字符作為句子表示。使用了斯坦福大學自然語言處理小組預訓練的GloVe 模型將文本中每個單詞映射為300 維詞向量。
GloVe 模型對單詞進行向量化表示過程如下:首先計算語料庫的共現矩陣X,其中Xij為在語料庫中單詞i與單詞j共同出現在同一窗口中的次數。

Xi表示單詞i在語料庫中出現的次數,Pij表示單詞j在單詞i的語境中出現的概率。假設已經知道單詞i和j的詞向量分別是vi和vj,計算vi與vj的相似度與Pij進行比較,當差值較小的時候證明詞向量與共現矩陣一致性較高,詞向量對上下文信息把握準確。

使用代價值J表示兩項的差值,bi與bj為偏差項。通過迭代的更改所有單詞的詞向量使得代價值J在整個語料庫中最小,即得到了語料庫中所有單詞最優的詞向量,這樣通過上下文信息計算出單詞的詞向量。斯坦福大學自然語言處理小組收集了維基百科網站上的數據集作為語料庫進行了詞向量訓練,該數據集包含大量的英文文本,預訓練得到的詞向量中包含更準確的上下文信息,發布了50維、100維200維與300維詞向量訓練結果。本文選用斯坦福大學自然語言處理小組發布的300維詞向量作為詞向量表示。
2.2.1 注意力
在自然語言處理中,傳統的注意力模型主要是分析文本中與任務更相關的單詞,從而賦予較高的注意力,這樣的注意力模型在處理單個句子的任務時會有較好的表現。但針對本文的任務——文本相似度而言,主要關注兩個文本是否相似,對于兩個輸入的文本t1和t2而言,更應該關注的是t1與t2相似的部分,對于相似的部分給予更高的注意力[23]。計算t1中任意一個單詞與t2中所有單詞之間的相似度并求和,相似度計算方法使用余弦相似度,將余弦相似度的和作為描述該單詞的權重的值。假設文本t1和t2經過詞向量嵌入層得到的詞向量矩陣為:

其中,表示文本t1中第j個單詞的詞向量。余弦相似度計算公式如下:

根據前式文本t1和t2的詞向量矩陣為vt1,vt2,利用余弦相似度計算公式計算兩個輸入文本所有單詞與另一文本的相似程度。

式中,kt1[i] 為文本t1中第i個單詞與文本t2各個單詞的余弦相似度和,通過計算得到文本t1與t2中各個單詞的余弦相似度kt1、kt2并作為計算各個單詞權重的值。使用kt1、kt2以及SoftMax函數完成單詞權重的計算。

At1、At2為文本t1和t2各個單詞對應的權值,將單詞的詞向量與對應權值相乘得到文本的特征矩陣,作為后續網絡的輸入。
2.2.2 膠囊網絡
在文本中存在大量的限定詞,感嘆詞等與文本語義無關的單詞,這些單詞在兩個文本中有極高的概率同時存在,經過注意力模塊運算后這些單詞可能得到較高的權重,但這些單詞對文本的語義沒有較大的影響,賦予較大的權重會對最后的結果有一定的影響。在膠囊網絡模塊中稱這些無關單詞為噪聲膠囊。使用NLTK 工具對句子中的單詞進行詞性標注,在膠囊網絡中首先根據單詞詞性對限定詞、連詞、感嘆詞、代詞賦予較低權重,以減輕噪聲膠囊對后續任務的影響,解決上述問題。將經過注意力機制的特征矩陣輸入膠囊網絡,使用動態路由算法計算上層膠囊輸出,計算步驟如下。
(1)Ai=attention(ui)
(2)bij=0
(3)迭代r次:


(4)返回vj
其中,ui為互注意力模塊得到的特征向量,Ai為降低噪聲膠囊權重之后的特征向量,r為動態路由算法迭代次數,wij為兩層膠囊之間的權值矩陣,cij為耦合系數,表示下層膠囊i激活上層膠囊j的可能性,u(j|i)為上層膠囊的輸入,squash為激活函數,vj為上層膠囊的輸出。動態路由算法將bij的初始值設為0,這樣vj的初始值為u(j|i)的均值,通過迭代更新bij,從而更新cij與vj的值。wij為神經網絡模型的參數,模型通過大量的訓練數據學習wij的值。Sabour在文中提出的膠囊網絡包括三層結構,分別為:卷積層、PrimaryCaps層、DigitCaps層。在本文提出的方法中,使用DigitCaps 層的輸出作為文本的局部特征矩陣。
2.2.3 BiGRU
雙向門控循環單元網絡(BiGRU)是一種雙向的基于門控的循環神經網絡,由前向GRU與后向GRU組合而成。通過兩個方向的網絡遍歷文本,得到包含文本上下文的信息,解決了GRU 模型只能包含上文信息的問題。GRU 模型是長短期記憶網絡(LSTM)的變體。相較于LSTM,GRU 模型網絡結構較簡單,但效果與LSTM基本相同,大大減少了網絡訓練所需的時間。循環神經網絡當前時間步的輸出與前面時間步的輸出有關,這使循環神經網絡具有記憶性,適合處理序列數據。但傳統的神經網絡只具有短期記憶,對于長距離的依賴關系效果不好,同時存在梯度爆炸或梯度消失的問題。LSTM通過門控機制解決了上述問題,可以學習跨度較長的依賴關系。LSTM神經元結構如圖2所示。

圖2 LSTM神經元結構圖Fig.2 LSTM neuron structure diagram
GRU網絡將LSTM中輸入門和遺忘門合并,稱為更新門,這使訓練網絡所需的時間大大減少。GRU 神經元結構如圖3所示。

圖3 GRU神經元結構圖Fig.3 GRU neuron structure diagram
在GRU 網絡中,更新門控制當前時刻的隱狀態狀態ht中保留多少歷史時刻的隱狀態和當前時刻的候選狀態。重置門的作用是決定當前時刻的候選狀態h′t與上一時刻的隱狀態之間的依賴程度。

xt為當前時刻的輸入,ht-1為上一時刻的隱狀態,為當前時刻的候選狀態,ht為當前時刻的隱狀態,yt為當前時刻輸出。公式(8)為更新門的計算公式,公式(9)為重置門的計算公式。
在GRU 網絡中信息只能單向傳遞,但在實際中每個單詞可能與上下文中的單詞都有依賴關系,使用BiGRU 網絡通過兩個方向的網絡訓練文本,使得模型的效果更好,BiGRU網絡結構如圖4所示。本文提出的方法使用BiGRU網絡的輸出作為文本的全局特征矩陣[24]。

圖4 BiGRU網絡結構圖Fig.4 BiGRU network structure diagram
將兩個文本的局部特征矩陣與全局特征矩陣分別進行相似度計算,得到局部特征的相似度矩陣E1和全局的相似度矩陣E2。其中E1和E2的計算方法相同,這里介紹E1的計算方法。假設兩個文本的局部特征分別為S1和S2,E1計算公式如下:

為相似度矩陣第i行第j列元素,為S1的第i行,為S2的第j行。在得到相似度矩陣后將兩個相似度矩陣展平并連接。將融合后的相似度向量作為全連接層的輸入,將全連接網絡輸出與softmax 分類器連接。使用softmax分類器判別兩個文本是否相似。
為了評估模型在文本相似度任務上的表現,本文使用了Quora Question Pairs 數據集和MRPC(Microsoft Research Paraphrase Corpus)數據集進行實驗。
Quora Question Pairs數據集包含404 000個句子對,相似的句子對標簽為1,否則為0。在本文的實驗中將數據集進行分割,80%作為訓練集,10%作為測試集,10%作為驗證集。MRPC(Microsoft Research Paraphrase Corpus)數據集包括4 076個訓練樣本和1 725個測試樣本,相似的句子對標簽為1,否則為0。
本文進行的實驗基于keras框架實現,使用Adam優化器,在Quora Question Pairs 數據集進行的實驗模型參數設置如表1所示。

表1 實驗參數設置Table 1 Experimental parameter settings
本文實驗的性能評價指標主要包括:準確率、精確率、召回率、F1值。設TP為將正確類預測為正確類的個數;TN 為將錯誤類預測為錯誤類的個數;FP 為將錯誤類預測為正確類的個數;FN 為將正確類預測為錯誤類的個數。評價指標的計算公式如下:


驗證本文提出方法的有效性,本文進行了三個實驗。實驗(1)與深度學習領域主流模型進行對比實驗;實驗(2)與其他論文中提出方法進行對比實驗;實驗(3)改變capsule網絡迭代次數進行對比實驗;實驗(4)在兩個數據集上測試模型表現。
實驗(1)中選取深度學習領域主流的模型進行比較實驗,包括:LSTM、BiLSTM、capsule、GRU、BiGRU、Siamese-capsule、Siamese-BiGRU、capsule-BiGRU,使用上述模型進行實驗,實驗結果如表2所示。

表2 實驗(1)數據結果Table 2 Experimen(t1)data results %
從表2 中可以看出,與傳統的CNN、LSTM 網絡相比,本文提出的模型在文本相似度任務中表現更好。GRU網絡與LSTM網絡在任務中的表現基本相同,但在相同的網絡規模,訓練GRU 網絡所需時間遠小于訓練LSTM 網絡。通過對比capsule 與Siamese-capsule,BiGRU 與Siamese-BiGRU 的表現發現,Siamese-BiGRU 網絡相較于BiGRU網絡,準確率提升了2.52個百分點,精確率提升了2.99 個百分點,召回率提升了1.31 個百分點,F1值提升了2.19個百分點。Siamese-capsule網絡相較于capsule網絡,準確率提升了1.88個百分點,精確率提升了3.63 個百分點,F1 值提升了1.78 個百分點。從中可以發現孿生神經網絡結構可以有效地提高模型的表現。本文提出的方法在準確率、精確率、召回率、F1值上的表現都優于傳統的神經網絡模型。相較于傳統的LSTM模型準確率提高了6.08個百分點,F1值提高了4.49個百分點。
實驗(2)中將本文提出方法與其他論文所提方法進行比較,對比結果如表3所示。

表3 實驗(2)數據結果Table 3 Experimen(t2)data results %
通過比較可以發現,本文提出的方法相較于文獻[20]提出的模型準確率提高了1.58 個百分點、F1 值提高了3.75個百分點。相較于文獻[25]提出的模型準確率提高了0.66個百分點,F1值提高了1.67個百分點,該模型使用了6層堆疊的BiLSTM網絡,模型較為復雜,訓練所需時間較長。
實驗(3)中改變capsule 網絡中動態路由算法迭代次數做對比實驗,實驗結果如表4所示。

表4 實驗(3)數據結果Table 4 Experimen(t3)data results %
基于上述實驗結果可知,動態路由算法迭代次數對capsule網絡有一定影響。隨著迭代次數的增加,訓練模型所需時間不斷增加。當動態路由算法迭代次數設置為3時,模型有較好的表現且訓練時間為198 min,迭代次數超過3次后,模型表現逐漸下降。在本文的其他實驗中膠囊網絡動態路由迭代次數設置為3,以獲得更好的表現。
由于MRPC 數據集樣本較少,所以調整了Dropout參數為0.1,其他模型參數不做調整。在表5 中可以看出,模型在Quora Question Pairs 數據集上表現更加出色,主要是因為Quora Question Pairs 數據集中的樣本數量更多,模型訓練更加完善,說明本文提出的模型的表現比較依賴于數據集中樣本的數量。

表5 實驗(4)數據結果Table 5 Experimen(t4)data results %
針對文本相似度任務,本文提出基于capsule-BiGRU的文本相似度分析方法。capsule 網絡可以有效地提取文本的局部特征向量,BiGRU 網絡使用雙向的循環網絡結構從兩個方向遍歷整個文本,從而有效地提取上下文信息得到文本的全局特征矩陣,對兩個文本的特征矩陣進行相似度分析,判斷文本是否相似。實驗表明本文提出的方法對文本相似度任務而言有更好的效果,同時模型的表現比較依賴于數據集中樣本的數量。