蔚佳璇,張起貴
(太原理工大學 信息與計算機學院,山西 晉中 030600)
計算文本相似度是自然語言處理(natural language processing,NLP)中的一個基本問題,被普遍應用于文本分類、問答系統、信息檢索等[1]。早期的研究主要集中在長文本,近些年網絡的廣泛使用使短文本以驚人的速度獲得了普及。短文本具有較短的文字形式,內容相對稀疏,且缺乏足夠的上下文信息,這使得傳統的文本相似度計算方法很難適用于短文本。目前,基于深度學習的技術在文本相似度問題上的研究主要分為兩大類:句子表征學習和局部特征匹配。第一類方法先分別學習兩文本表示,然后根據余弦、歐幾里德距離等函數計算相似度,如Ma-LSTM[2]、Tree-LSTM[3]。然而該類方法缺乏交互性,無法準確捕捉文本中的局部信息。第二類方法通過考慮兩文本間不同的交互粒度來獲得更好的結果,如DF-LSTM[4]、PWIM[5]。但這些方法對句子中的所有單詞同等對待,無法體現不同部分對文本構成的不同貢獻。同時,短文本較短的文字形式使得其句法信息容易被忽略。然而構成詞語和詞序完全相同的句子如果句法結構不同,其語義也會有所不同[6]。由此可見,句法結構會對句子的語義產生影響,應當引起重視。
針對上述問題,本文提出一種融合注意力及句法信息的短文本相似度計算方法,在自注意力的基礎上增加互注意力機制,并采用有效的相似性度量技術計算語義相似性;同時分析文本結構,提出一種基于圖的方法,得到帶有概率的依存結構,并將結構轉化為關系矩陣,計算句法結構相似度;通過將兩者加權融合,來進一步提高短文本相似度的準確率,使其結果更加合理。
目前短文本相似度計算主要分為基于字符串、基于統計、基于知識庫和基于神經網絡的方法。通過計算文本共有詞的數量來計算相似度的基于字符串的方法(Jaccard、N-gram、編輯距離等)被最早提出。但這種方法忽略了文本中的語義信息,對語義相似但字面不相似的文本效果較差。
研究者意識到語義信息對文本相似度計算的重要性,提出了基于統計的方法。文獻[7]中對大型語料庫分析,統計關鍵詞的TF-IDF值形成句子向量并計算相似度。文獻[8]提出WMF-LDA主題模型。統一化映射領域詞和近義詞,進行主題建模,提高了運行速度。這些方法初步將語義信息考慮在內,但針對一詞多義的問題還無法解決。
部分研究者提出使用規則體系的知識庫進行相似度計算的基于知識庫的方法。文獻[9]使用WordNet計算相似度,并將其運用于評估簡短答案的考試中,但準確度不高。文獻[10]對《同義詞詞林》的結構改造,并增加原編碼信息節點的語義,提高了詞語相似度的準確率。該類方法雖然考慮了詞語間的語義,但只是將詞語相似度簡單相加計算文本相似度,沒有考慮句法結構信息。
基于神經網絡的方法在文本相似度任務中表現出色。文獻[11]使用4種不同的詞嵌入表示模型計算短文本相似度,結果顯示基于神經網絡的模型優于傳統模型。其中卷積神經網絡(convolutional neural networks,CNN)和長短期記憶網絡(long short term memory,LSTM)表現較好。文獻[12,13]通過CNN網絡提取語義信息,生成文本特征,構建語義相似度模型,提高了精度。文獻[14]將雙向LSTM(bi-directional LSTM,BiLSTM)應用在編碼層,將句子向量輸入分類器,效果得到提升。這些方法準確提取并學習上下文信息,但句子編碼相互獨立,沒有進行交互。文獻[15]提出了BIMPM模型,并在模型每部分增加了交互匹配,實現了更細粒度的交互機制。文獻[16]設計了BiGRU與Attention機制結合的模型,證明了Attention機制可以有效提升文本相似度任務。這類交互式模型能很好建模文本的關聯特征,但模型都較為復雜且忽略了句法結構。
在學習文本句法結構信息時,最關鍵的一步是分析文本的依存句法,一般分為兩類:基于轉移、基于圖。文獻[17]指出在文本任務中,基于圖的方法優于基于轉移的方法。因此,如果能借鑒交互模型的優點,并綜合考慮短文本的句法結構信息,定能在準確度和速度上取得均衡的效果。基于該考慮,設計混合注意力結構體系,增加交互信息,提高語義準確度,提出基于圖的依存分析方法得到帶有概率的依存結構圖,并將其轉化為矩陣計算結構相似度,融合兩種相似度,在提高計算準確率的同時提高計算效率,得到較為合理準確的計算結果。
本文設計的短文本相似度總框架流程如圖1所示。首先對文本數據預處理,本文選用哈工大語言技術平臺進行分詞、詞性標注、依存標簽標注,使用word2vec模型訓練詞嵌入向量;然后分別計算語義相似度與句法結構相似度;最終將兩者進行加權因子線性融合,得出最終短文本相似度。

圖1 總體框架流程
從總體框架圖中可知,語義相似度模塊主要由3層組成:嵌入表示層、混合注意力層和語義相似度計算層。
2.1.1 嵌入表示層
給定兩個句子P和Q, 需要通過映射預訓練詞嵌入向量來獲得句子的嵌入矩陣。因此需要先應用一個嵌入表示層。以句子P為例,其矩陣表示形式用Pe∈RL×m表示,其中L和m表示詞匯數和詞嵌入維數。構造Pe的方法如下:假設文本由L個詞組成,而pi∈Rm表示句子中第i個詞的m維向量表示,則Pe表示為
Pe=p1⊕p2⊕…⊕pL
(1)
LSTM網絡是一種時間循環神經網絡,對學習具有長期依賴關系的數據非常有效。給定輸入序列v={v1,v2,…vL}, LSTM計算具有一系列隱藏狀態的輸出向量序列。在時間點t, LSTM層獲取輸入矢量vt、 隱藏矢量ht-1和存儲矢量Ct-1, 并通過輸入門i、 遺忘門f和輸出門o產生下一個ht和Ct, 計算公式如式(2)~式(7)
ft=σ(Wf·[ht-1,xt]+bf)
(2)
it=σ(Wi·[ht-1,xt]+bi)
(3)
gt=tanh(WC·(ht-1,xt]+bC)
(4)
ot=σ(Wo·[ht-1,xt]+bo)
(5)
Ct=ft⊙Ct-1+it⊙gt
(6)
ht=ot⊙tanh(Ct)
(7)

(8)

2.1.2 混合注意力層
盡管BiLSTM網絡在文本表示中提供了豐富的上下文信息,但無法檢測到不同部分對句子的整體組成所做的各種貢獻,因此加入混合注意力層。該層由自注意力機制和互注意力機制組成。每部分的輸入是BiLSTM網絡的兩個句子的輸出。
(1)自注意力機制

N=tanh(W1HP)
(9)
α=softmax(W2N)
(10)
rP=HPαT
(11)

圖2 自注意力機制流程
(12)
其中,W1、W2和W3是要學習的投影參數。
(13)
其中,Mi是張量參數。Wpq和b是要學習的參數。ReLU是一種非線性函數,可以加速收斂。
(2)互注意力機制
由于需要評估兩個句子之間的相似程度,句子P中每部分的重要性也應受到句子Q的影響。因此提出互注意力機制。如圖3所示,它通過考慮與另一句子的交互作用來將注意力權重分配給一個句子的每個部分。以P為例介紹,計算過程如式(14)~式(16)
(14)
(15)
(16)

(17)
同理,W4、W5和W6是要學習的投影參數。

圖3 互注意力機制流程
2.1.3 語義相似度計算層
在該層,將混合注意力層的結果組合為向量Y, 并將其傳送到全連接層中
(18)
由于相似度計算問題可以看作分類問題,因此為防止過度擬合,在全連接層之上應用Dropout,并計算具有隱藏層和softmax層的概率分布。因此,根據式(19)計算出語義相似度
HASim(P,Q)=softmax(WYReLU(Y)+bY)
(19)
其中,WY和bY是softmax層的參數。
本文提出一種基于圖的依存句法分析方法,并基于依存結構構建關系矩陣并進一步計算句法結構相似度,從總體框架圖中可看出該模塊主要有3層:依存結構層、關系矩陣層和句法結構相似度計算層。
2.2.1 依存結構層
該層主要介紹基于圖的依存句法分析方法,以句子P={p0,p1,…pL} 為例。pi表示句子中第i個單詞,本文將根節點標識放在每個句子的開頭,記為p0。 研究句法結構需要深度挖掘詞之間的依存關系,且涉及到詞性等其它方面的諸多信息,因此在預訓練詞向量基礎上加入隨機初始化詞向量e′(pi) 以及詞性標簽向量e(posi), 得到最終詞語的詞嵌入向量表示xi
xi=(e(pi)+e′(pi))⊕e(posi)
(20)
然后將xi輸入BiLSTM網絡學習詞表示,得到時刻i的隱藏向量,這里記為vi。
本文使用圖G=(V,E) 表示句子P的依存結構,單詞節點集合用V={p0,p1,…pL} 表示,依存關系邊集合用E表示。每個詞對應圖上的節點,使用pj→pi表示核心詞pj與依存詞pi之間的關系。由于任意單詞既可以作為核心詞,又可以作為依存詞,因此需要分別計算其作為核心詞或依存詞時的向量表示。本文使用前饋神經網絡模型對BiLSTM的輸出vt進行計算,如式(21)~式(22)
(21)
(22)
然后采用雙仿射注意力機制為所有單詞對中的兩種依存關系計算得分,如式(23)
(23)
其中,sij是pj→pi的得分,U是權重矩陣,u是偏置項。在si={si0,…sij,…siL} 中,第i個單詞為根節點的概率由si0表示。最后進行歸一化得到概率分布α′i, 如式(24)
α′i=softmax(si)
(24)
最后采用最大生成樹算法獲得句子的依存結構。
2.2.2 關系矩陣層
基于生成的結構,構造關系矩陣。矩陣的行表示句子P中的關系,列表示句子Q中的關系,單元格Cellij表示句子P的第i個關系和句子Q的第j個關系之間的相似度。由于每個關系都與兩個節點(單詞)連接,因此可以分別計算所連接的兩個節點的相似度以及關系名稱的相似度來計算最終關系相似度,節點相似度使用詞嵌入方法計算。關系相似度計算公式如式(25)

(25)
R1和R2表示兩個關系, sim(AR1,AR2) 是兩個關系第一個節點的相似性; sim(BR1,BR2) 是第二個節點的相似性。 Namesim(R1,R2) 是關系名稱的相似性,這種相似性取決于關系的含義,如果名稱相同,則相似度為1。如果關系是相關的,則該值將大于不相關的值。在本文的設計中,我們將各種情況歸結為表1。

表1 關系名稱相似度評判標準
2.2.3 句法結構相似度計算層
最終的結構相似性,可通過第一個句子的關系被另一個句子覆蓋的程度來計算。具體的方法是選擇此關系與第二個句子中所有關系之間的最大相似度,并以此方法依次遍歷第一個句子中的所有關系,最終加權,計算過程如式(26)所示
(26)
其中,n是句子P中的總關系數,Ri是句子P中的第i個依存關系,α′Ri是依存關系概率,由式(24)得出。
本文綜合考慮語義和結構信息,將基于混合注意力的語義相似度和基于句法信息的結構相似度進行線性加權融合,得出最終的短文本相似度,如式(27)所示
SIM(P,Q)=
a×HASim(P,Q)+(1-a)×GSSim(P,Q)
(27)
其中,a是加權因子,該值的設置在實驗中具體介紹。

實驗中使用word2vec預訓練詞向量,采用Adam算法[19]優化,初始學習率為2e-3,在每一輪迭代中的衰減頻率為0.95,β1為0.9,β2為0.99。其它參數配置見表2。

表2 參數設置
在訓練過程中,使用二分類交叉熵損失函數作為目標函數并添加正則化項
(28)
θ是要學習的參數,N是訓練集大小,λ是正則化參數,正則化強度設置為e-4。
本文使用在文本處理任務中常用的準確率(Acc)、融合精確率(P)和召回率(R)的綜合指標F1作為相似度計算質量評價指標。計算公式如式(29)~式(32)
(29)
(30)
(31)
(32)
tp是真正例數,tn是真反例數,fn是假反例數,fp是假正例數。
3.3.1 加權因子設置
本文調整加權因子a的取值,選擇召回率作為評價指標。實驗結果如圖4所示。從圖中可看出召回率在0.67之前一直呈增長趨勢,在0.67之后開始下降,這是因為短文本通常不遵守書面語言的句法,且句法信息在短文本相似度中起著從屬作用,而語義信息起著主導作用,因此占比更大。所以加權因子a取值為0.67時最為合適。

圖4 加權因子的確定
3.3.2 對比實驗分析
為驗證本文方法的有效性,設置了本文方法與已有的其它文本相似度模型和方法的對比實驗。結果見表3。與MatchPyramid[20]、BiMPM[14]和ESIM[21]相比,本文在語義相似度模塊通過BiLSTM學習上下文感知信息,提出的

表3 對比實驗結果
混合注意力結構體系進一步加入互注意力機制,加強了交互特征的表示,實現了更細粒度的交互,因此準確率得到了較大的提升;DIIN[22]和DRCN[23]在輸入階段增加了額外的句法特征,如字向量、詞向量、詞性等,并采用DenseNet結構提取特征,RE2[24]將增強殘差連接融入到模型中,因此準確率進一步提高,但這些模型的復雜度普遍偏高,參數設置較復雜,且都沒有考慮文本的句法結構;而本文提出的方法模型復雜度較低,所需的參數相對較少,且進一步加入句法結構特征綜合考慮語義信息與句法信息,在準確率上達到較好的結果,并且降低了計算的復雜度,提高了計算效率。本文所提的方法在準確率上達到了84.16%,F1值達到了86.65%,比其它模型和方法有所提升。
3.3.3 有效性分析
(1)語義相似度性能分析
首先,分析混合注意力層對計算結果的影響,結果見表4,刪除混合注意力層時,無法學習句子間的交互信息,因此準確率較低;只保留自注意力機制時,突出了句子中各部分對整體的重要程度,準確度提升了2.26個百分點;只保留互注意力機制時,著重學習兩句子間的相互作用,體現不同句子間的交互影響,因此準確度達到了83.85%,但結果都不如混合注意力機制下的準確;這說明我們提出的混合注意力機制對最終計算結果具有較大影響,能有效提升計算結果的準確率。

表4 混合注意力層有效性驗證
然后,我們對混合注意力層中的不同相似性度量方法進行評估。將神經張量網絡(NTN)和元素級操作(EI)分別應用于自注意力機制和互注意力機制上,以準確率為評價標準,結果見表5。在多數情況下,使用NTN可以提高交互性能,但也會顯著增加整個模型的參數。數據顯示,在自注意力成分上應用NTN的前提下,在互注意力成分上應用NTN并不會帶來更好的性能,且會增加模型的復雜度。因此,我們將NTN只應用于自注意力機制,而將EI應用于互注意力機制。

表5 相似性度量方法有效性驗證
(2)句法結構相似度性能分析
為驗證本文的句法結構相似度計算方法的有效性,將本文方法與其它文獻中提出的句法結構計算方法作對比,實驗結果如圖5所示。文獻[25]的準確率較低,是因為其只將詞形、詞序、句長等特征結合忽略了句子的語義信息;文獻[26]將句子轉化為依存樹并生成RDF圖計算句法相似度,因此準確率有一定的提升;與文獻[27]中的MA-Tree-LSTM相比,本文方法略低于其結果,我們分析原因是本文使用的依存結構是依存標簽經過基于圖的依存句法分析模塊產生的,其精度不如MA-Tree-LSTM的高。

圖5 句法結構相似度準確率對比
雖然MA-Tree-LSTM的準確度達到了較好的結果,但模型復雜度高,且每次只能處理一個句對,計算效率較低,而本文采用基于圖的依存分析方法可以實現多個句對并行處理,從而解決已有模型速度慢的問題。我們在不同長度的句子上設置了兩者的速度評測實驗,結果如圖6所示。句長在10以內時,我們的方法是MA-Tree-LSTM的15倍;句長在10-20時,速度是其10倍。這表明本文提出的方法在檢測速度上有一定的優勢。

圖6 句長對檢測速度的影響
3.3.4 實例分析
我們從數據集中抽取了4對具有代表性的句子對,用本文方法和方法1、方法2分別計算其相似度,結果見表6。序號1的句對語義有一定差別但句法結構相似;序號2的句對語義信息一致但句法結構差異較大;序號3的句對語義與句法結構都有較大差異;序號4的句對語義和句法信息都一致。從數據可以看出,本文在語義相似度的計算上比方法1和方法2的結果更加準確,這是因為本文提出的混合注意力機制能更準確的學習到句子間的交互特征,而方法1和方法2只采用自注意力機制,交互信息較為單一;在文本設計的方法中,句法結構相似度的占比較小,因此對于序號1、序號2這類型的句對,句法結構相似度對最終計算結果有一定影響,但影響不大,并不會改變最終計算結果的準確度,與方法1和方法2的結果相比,更加符合實際;對于序列3、序號4這類型的句對,句法結構相似度會進一步增強最終的計算結果,同樣達到了較高的準確度;這也進一步說明了本文采取融合方法的有效性。總之,本文提出的短文本相似度方法進一步提高了準確率,且計算結果更加符合事實和人的主觀判斷,驗證了本文方法的合理性和有效性。
本文提出了一種融合注意力及句法信息的短文本相似度計算方法,將短文本相似度分為語義相似度和句法結構相似度兩部分。語義相似度中采用一種自注意力與互注意力相結合的混合注意力結構體系提取文本間的交互特征;句法結構相似度中采用基于圖的依存句法分析,并構建關系矩陣,將兩者加權融合計算最終短文本相似度。實驗結果表明,該方法與其它文本相似度方法相比,有效提高了準確率及計算效率,計算結果更加符合實際。在未來的工作中,考慮將我們的方法在不同領域的數據集上實驗,并應用在復述識別、問答系統等任務中;同時,考慮結合預訓練語言模型(BERT、XLnet等),進一步提升短文本相似度計算結果的精確度。

表6 具體實例分析