馮月春,陳惠娟
(1.寧夏理工學院 計算機學院,寧夏 石嘴山 753000; 2.西安工程大學 計算機學院,陜西 西安 710000)
文本語義相似度對各種語言處理任務來說至關重要[1]。由于語言表達的多樣性,語義文本相似度(semantic textual similarity,STS)的檢測具有挑戰性,并且該相似度檢測需要從多個層次(如單詞、短語、句子)進行。近年來,在自然語言處理中,大量學習模型將詞的語義特征編碼成低維向量嵌入文本[2]。文獻[3]在釋義數據集PPDB上訓練單詞嵌入模型,然后將單詞表示應用于單詞和二元語法相似性任務。
現有的文本相似度建模研究大多依賴于特征,如機器翻譯度量的特征、基于依賴關系的特征等[4,5]。文獻[6]利用依賴樹提出了一種單語對齊器,并成功地將其應用于STS任務,該方法在語義文本相似度、多文檔摘要冗余消除方面取得了很好的效果。文獻[7]提出了一些基于維基百科結構特征的語義計算方法,其具有更好的文本相關性。目前,深度學習模型成為了單詞/句子連續向量的有效表示方法。文獻[8]提出一種結合HowNet語義相似度和隱含狄利克雷分配模型的主題聚類方法,該方法在一定程度上提高了文本分類的準確性,然而忽視了上下文信息。
此外,對于句子的建模,構圖方法取得了廣泛的應用。文獻[9]提出了用于句子建模的層次化卷積神經網絡-長短期記憶(convolutional neural network-long short term memory,CNN-LSTM)架構,其中CNN被用作編碼器編碼句子編碼,而LSTM被用作解碼器[10]。文獻[11]提出了一種基于卷積濾波器的N-gram單詞嵌入方法,以增強用于捕獲上下文信息的傳統單詞嵌入表示,該方法在多語言情感分析中取得了良好的性能。
由于不同的單詞嵌入模型捕獲語言屬性的不同方面,并且在不同的數據集上,嵌入模型的性能也會有所差異[12,13]。為此,提出了一種改進Bi-LSTM的文本相似度計算方法。其創新點總結如下:
(1)現有方法在編碼文本時需要維度一致,而所提方法將輸入的句子轉換成含有多個嵌入向量的多個單詞向量,簡單而有效地組合不同維度的各種預訓練單詞嵌入。
(2)為了能夠結合上下文信息處理長文本相似度問題,采用了Bi-LSTM方法,并且引入注意力機制,用來為關鍵的影響因素配置更多的計算資源,提高方法計算的效率。
所提模型主要由3部分組成,如圖1所示。首先將輸入的句子轉換成多個單詞向量,其中每個單詞向量里包含多個嵌入向量[14]。然后通過Bi-LSTM提取出每個單詞向量中的最佳詞特征,用于表示句子。最后,對兩個句子分別從詞與詞、句子與句子、詞與句子這3個層面進行多級比較,并加權計算得到其最終的相似度。

圖1 所提方法的模型

(1)

(2)
(3)
式中:σ為logistic sigmoid函數。
長短時記憶(long-short term memory,LSTM)神經網絡是一種時間遞歸神經網絡,其包含了輸入門it、 輸出門ot、 忘記門ft和記憶單元ct, 將門和記憶單元組合可極大地提升LSTM處理長序列數據的能力[16]。LSTM的函數表示為

(4)
式中:ht為t時刻隱藏狀態,Wf、Wi、Wo、Wc為LSTM的權重矩陣,bf、bi、bo、bc為LSTM的偏置量,δ(·) 為激活函數。


(5)
為了合理分配計算資源,減小非關鍵因素的影響,在Bi-LSTM中引入注意力模型。
Attention機制模擬人腦注意力的特點,核心思想是:對重要的內容分配較多的注意力,對其它部分分配較少的注意力。根據關注的區域產生下一個輸出。基于注意力模型的LSTM模型結構如圖2所示。

圖2 基于注意力模型的LSTM模型結構
在該模型中,Bi-LSTM層的輸出H(t) 經過隱藏層B,隱藏層狀態值為ut,A=[a1,a2,…,an] 為歷史輸入的隱藏狀態對當前輸入的注意力權重,最后的特征輸出v為不同注意力權重的隱藏狀態的總和

(6)
式中:uw為上下文向量;在訓練過程中隨機初始化并不斷學習;at為注意力向量。
利用改進Bi-LSTM獲得詞特征后,從詞與詞、句子與句子、詞與句子這3個層面進行多層比較,并加權計算獲得其最終的相似度。
(1)字詞比較

(7)

(2)句子比較
給定兩個輸入句子s1和s2, 將其編碼為兩個句子嵌入vs1和vs2, 為了計算兩個嵌入量之間的相似性,引入了3個比較指標:
余弦相似性εcos
(8)
乘法矢量εmul和絕對差εabs
εmul=vs1⊙vs2,εabs=|vs1-vs2|
(9)
神經差異
εnd=Wnd(vs1⊕vs2)+bnd
(10)
式中:Wnd和bnd分別為權重矩陣和偏差參數。
因此,句子相似度向量simsent計算如下
simsent=σ(Wsent(εcos⊕εmul⊕εabs⊕εnd)+bsent)
(11)
式中:Wsent和bsent分別為權重矩陣和偏差參數。
(3)詞句比較


(12)

(4)文本相似度
句子對的目標分數計算如下

(13)

由于采用皮爾遜相關r評估所提模型,因此 [1,K] 范圍內句子對的相似度計算替換為

(14)

滿足z=rTp的稀疏目標分布p計算如下
(15)
對于i∈[1,K],z為相似性得分。

(16)
式中:m為訓練句子對的數目,θ為模型參數。采用梯度下降優化學習模型參數,并在訓練階段保持預訓練單詞嵌入的固定。
所提方法采用SMTeuroparl、MSRvid和MSRpar這3種數據集用于評測文本的相似度。其中SMTeuroparl和MSRpar文本長度長,但SMTeuroparl不符合語法,而MSRpar結構復雜,符合語法。MSRvid長度最短且結構簡單。實驗中,由3個預先訓練的單詞嵌入組成的單詞嵌入維度,并作為Bi-LSTM尺寸;bdc、bsent、bws和bws′的維數分別為50、5、5和100。
采用3種數據集和fastText、Glove、SL999以及Baroni這4種預訓練的單詞嵌入模型評估所提方法的效率,并將所提方法與其它方法進行比較分析。
將使用多個預訓練單詞嵌入方法與使用1個、2個和3個預訓練單詞嵌入方法的效率進行比較,結果見表1。其中采用的兩個評估指標為:z為相似性得分, |V|avai為預先訓練的單詞嵌入中可用詞匯的比例。所有方法采用相同的目標函數和多層次比較,將Bi-LSTM的維數和卷積濾波器的數目設置為相應字嵌入的長度。

表1 不同數據集上不同數量預訓練單詞嵌入方法的評估結果
從表1中可看出,使用4個預訓練單詞嵌入的方法優于使用其它數量單詞嵌入的方法。其中 |V|avai是預先訓練的單詞嵌入中可用詞匯的比例,MSRvid數據集忽略了慣用的多詞表達式和命名實體,因此MSRvid的 |V|avai相當高。由于SL999的嵌入經過了釋義數據庫的訓練,且具有較高的 |V|avai, 因此加入SL999單詞嵌入,其可用詞匯增多且相似度會提高。
在MSRpar和SMTeuroparl中,由于SMTeuroparl不符合語法,而MSRpar結構復雜,且符合語法,因此對于不符合語法的文本語法分析樹和依存關系樹可能是錯誤的,從而導致實驗結果偏低。當采用4種預先訓練的單詞嵌入方式時,其 |V|avai明顯提高,因此文本相似度的度量性能也隨之提升。
為了全面論證所提方法的性能,選擇MSRvid和MSRpar兩個數據集分別從詞、句等多層相似性進行論證。
(1)MSRvid
采用生活中的一些相似文本對所提方法的性能進行評估,結果見表2。

表2 用于文本相似度分析的典型文本
從表2的樣本#1中可看出,在樣本#1的上下文中,people和spectators不能交換,詞的相似度必須考慮上下文信息。而所提方法采用Bi-LSTM能夠很好的基于上下文信息計算文本相似度,從而判定#1中語句相似度不高。所提方法中引入注意力機制,能注重比較整個上下文的意義而不是每個詞的強表現力。在樣本#3中,可看出這兩個句子對共享一些短語(如a good idea)。雖然這對詞有相同的短語,但為其分配的相似度很低,這與所提方法相矛盾,因此#3相似度僅為0.9。而樣本#2的相似度較高,其值為8.8。在這些樣本中,每個單詞或短語對句子的貢獻程度不同,如 “just”通常對其句子意義貢獻不大,但在樣本#3中,其改變了整個句子的含義。因此,在評價句子的相似性或語法蘊涵時,應考慮每個詞在句子中的作用。由此可知,所提方法能夠較為準確地辨識文本相似度。
(2)MSRpar
本文采用的改進Bi-LSTM方法有效結合了文本詞語的上下文,考慮了局部語境。為了理解局部語境對句子相似度的相關性,研究了不帶局部語境的Bi-LSTM,并將其與所提方法進行了比較,使用不同長度的局部語境:3、5、7和9,結果見表3。

表3 測試集的皮爾遜r和斯皮爾曼ρ相關系數和均方誤差
最初的Bi-LSTM只考慮單詞的一般上下文來分析句子,正如預期的那樣,根據皮爾遜相關系數和均方誤差(mean square error,MSE)對單詞的一般和局部上下文進行句子分析。短或長的局部上下文沒有產生最好的結果,這表明短的局部上下文(3個詞)沒有得到足夠的關于詞鄰域的信息,長的局部上下文(7個詞)包含了不相關的信息。因此,在設置局部上下文詞匯數為5時,算法性能最佳。
為了論證語境對文本相似度的影響,表4和表5在詞匯層面上展示了一對釋義的相似性:“她的一生跨越了女性不可思議的變化。”和“瑪麗經歷了一個解放女性改革的時代。” 對于兩個句子中的每一對詞,由余弦距離度量一般詞嵌入的相似度,結果見表4,長度為5的局部上下文相似度見表5。其中需要注意的是,因為各自代表不同的維度空間,這兩個表具有不同的值范圍。

表4 余弦距離度量一般詞嵌入的相似度結果

表5 長度為5的局部上下文相似度結果
從表4中可以看出,單詞嵌入保留了單詞的一般語義和句法關系。在本例中,這些詞與具有類似語義(1-“Her”和2-“Mary”、1-“life”和2-“lived”、1-“reform”和2-“change”)或具有類似句法角色(1-“of”和2-“for”)的詞更為相似。表5強調了單詞的局部上下文有基于其窗口中單詞的語義和句法特征;例如,最接近1-“life”的上下文是2-“Mary”,2-“lived”,2-“through”,因為這些局部上下文有直接(2-“lived”)和間接(2-“Mary”)相似的語義。這一分析類似于語境的句法特征,例如最近的當地語境1-“for”是2-“lived”,2-“of”。當所提方法分析短語動詞或詞義強烈依賴于其前一個詞和后一個詞的多個詞的表達時,當地語境的關聯性得到加強。
所提方法對于MSRpar數據集中多層次相似的文本相似度見表6。
表6中的#1句子對描述了一個主動語態和被動語態,意思相同,因此相似度為8.8。#2句子對是肯定句和否定句,相似度較低。而對于#3句子對,所提方法能夠確定短語動詞“wipe off”和動詞“clean”的語義關系,因此相似度較高,為7.6。在MSRpar數據集中的相似度測試結果與實際值相近,由此論證了所提方法的準確性。局部語境不僅有助于更好地識別相似的句子,而且有助于更好地識別否定句和不同意義的句子。這些局部信息為改進Bi-LSTM提供了一個更平滑的單詞分析,以及它們在句子中的連接方式。

表6 MSRpar數據集中用于文本相似度分析的典型文本
本章將MSRvid、MSRpar和SMTeuroparl這3個數據集中的所有文本按長度分類,分別統計相似度計算性能。將所提方法與文獻[6]、文獻[7]和文獻[9]所提方法在文本長度從10-70之間的MSRvid上進行相似度對比計算,結果如圖3所示。當句長大于70或者小于10時文本長度稀疏化,不具代表性。

圖3 不同句長下的相似度計算結果
從圖3中可以看出,隨著文本長度變長,4種算法相關度計算性能略有下降。尤其在句長為20-35字時下降較為明顯,但所提方法性能仍較優于其它文獻所提方法。當句長大于35時,4種方法的相關度計算性能均有所上升,且在45字句長后再次出現下降。文獻[6]與文獻[9]所提方法相關度計算性能大體相似,文獻[7]所提方法在長句長條件下相關度計算性能下降最為明顯。由圖可知,所提方法相關度計算性能整體優于文獻[6]、文獻[7]和文獻[9]所提方法。
將所提方法與文獻[6]、文獻[7]和文獻[9]所提方法在MSRvid、MSRpar和SMTeuroparl這3個數據集上進行對比分析,結果如圖4所示。

圖4 不同數據集上不同方法的計算結果
從圖4中可看出,所提方法在不同數據集的文本相似度計算上都具有較大的改善。特別是在STS任務中,所提方法在MSRpar和SMTeuroparl兩個數據集上相較于其它文獻所提方法都具有明顯優勢。由于MSRpar包含了復雜的樣本,因此4種方法的相似度計算性能均較低。文獻[9]所提算法在MSRvid數據集中表現較好的相似度計算性能,略優于所提方法,但所提方法性能仍略優于文獻[6]和文獻[7]所提方法。在SMTeuroparl數據集中不使用詞嵌入,盡管文獻[9]所提方法在句子分類上很強,需要提取顯著特征來預測目標,但由于該方法忽略了詞序的屬性,在捕捉需要兩個句子整體意義的句子間的關系效果不佳。而所提方法通過改進Bi-LSTM捕捉這一特性,并應用了多層相似加權,因此相比于其它方法,其獲得的相似度最高。
此外,MSRvid長度最短且結構簡單,因此不同方法在該數據集上表現的性能均較為理想。
所提方法使用多個預訓練單詞嵌入和多層次比較以測量語義文本相似關系。其中Bi-LSTM能在處理長本文的同時結合上下文提取特征,并且引入注意力機制減小非關鍵因素的影響,提高了方法的效率,而采用多層相似加權能得到更為準確的計算結果。在MSRvid、MSRpar和SMTeuroparl這3個數據集上對所提方法進行了對比論證,結果表明了多個預訓練單詞嵌入的高效性,通過提高可用詞匯的比例提高文本相似度計算效率,并且允許使用多個不同維度的預訓練單詞嵌入。此外,相比于其它方法,所提算法的對于文本相似度的計算性能更佳。
但所提方法未考慮一些非規范化的口語化的表達方式,由于句法、語義分析系統的局限性,其對文本內容的影響不能準確反映在相似度計算結果中。如何提高對于非規范化文本的句法、語義分析,是以后研究工作中需要關注的問題。另外,可將所提方法應用到遷移學習任務中,拓展其使用范圍。