蔚佳璇,張起貴
(太原理工大學(xué) 信息與計算機學(xué)院,山西 晉中 030600)
計算文本相似度是自然語言處理(natural language processing,NLP)中的一個基本問題,被普遍應(yīng)用于文本分類、問答系統(tǒng)、信息檢索等[1]。早期的研究主要集中在長文本,近些年網(wǎng)絡(luò)的廣泛使用使短文本以驚人的速度獲得了普及。短文本具有較短的文字形式,內(nèi)容相對稀疏,且缺乏足夠的上下文信息,這使得傳統(tǒng)的文本相似度計算方法很難適用于短文本。目前,基于深度學(xué)習(xí)的技術(shù)在文本相似度問題上的研究主要分為兩大類:句子表征學(xué)習(xí)和局部特征匹配。第一類方法先分別學(xué)習(xí)兩文本表示,然后根據(jù)余弦、歐幾里德距離等函數(shù)計算相似度,如Ma-LSTM[2]、Tree-LSTM[3]。然而該類方法缺乏交互性,無法準確捕捉文本中的局部信息。第二類方法通過考慮兩文本間不同的交互粒度來獲得更好的結(jié)果,如DF-LSTM[4]、PWIM[5]。但這些方法對句子中的所有單詞同等對待,無法體現(xiàn)不同部分對文本構(gòu)成的不同貢獻。同時,短文本較短的文字形式使得其句法信息容易被忽略。然而構(gòu)成詞語和詞序完全相同的句子如果句法結(jié)構(gòu)不同,其語義也會有所不同[6]。由此可見,句法結(jié)構(gòu)會對句子的語義產(chǎn)生影響,應(yīng)當引起重視。
針對上述問題,本文提出一種融合注意力及句法信息的短文本相似度計算方法,在自注意力的基礎(chǔ)上增加互注意力機制,并采用有效的相似性度量技術(shù)計算語義相似性;同時分析文本結(jié)構(gòu),提出一種基于圖的方法,得到帶有概率的依存結(jié)構(gòu),并將結(jié)構(gòu)轉(zhuǎn)化為關(guān)系矩陣,計算句法結(jié)構(gòu)相似度;通過將兩者加權(quán)融合,來進一步提高短文本相似度的準確率,使其結(jié)果更加合理。
目前短文本相似度計算主要分為基于字符串、基于統(tǒng)計、基于知識庫和基于神經(jīng)網(wǎng)絡(luò)的方法。通過計算文本共有詞的數(shù)量來計算相似度的基于字符串的方法(Jaccard、N-gram、編輯距離等)被最早提出。但這種方法忽略了文本中的語義信息,對語義相似但字面不相似的文本效果較差。
研究者意識到語義信息對文本相似度計算的重要性,提出了基于統(tǒng)計的方法。文獻[7]中對大型語料庫分析,統(tǒng)計關(guān)鍵詞的TF-IDF值形成句子向量并計算相似度。文獻[8]提出WMF-LDA主題模型。統(tǒng)一化映射領(lǐng)域詞和近義詞,進行主題建模,提高了運行速度。這些方法初步將語義信息考慮在內(nèi),但針對一詞多義的問題還無法解決。
部分研究者提出使用規(guī)則體系的知識庫進行相似度計算的基于知識庫的方法。文獻[9]使用WordNet計算相似度,并將其運用于評估簡短答案的考試中,但準確度不高。文獻[10]對《同義詞詞林》的結(jié)構(gòu)改造,并增加原編碼信息節(jié)點的語義,提高了詞語相似度的準確率。該類方法雖然考慮了詞語間的語義,但只是將詞語相似度簡單相加計算文本相似度,沒有考慮句法結(jié)構(gòu)信息。
基于神經(jīng)網(wǎng)絡(luò)的方法在文本相似度任務(wù)中表現(xiàn)出色。文獻[11]使用4種不同的詞嵌入表示模型計算短文本相似度,結(jié)果顯示基于神經(jīng)網(wǎng)絡(luò)的模型優(yōu)于傳統(tǒng)模型。其中卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)和長短期記憶網(wǎng)絡(luò)(long short term memory,LSTM)表現(xiàn)較好。文獻[12,13]通過CNN網(wǎng)絡(luò)提取語義信息,生成文本特征,構(gòu)建語義相似度模型,提高了精度。文獻[14]將雙向LSTM(bi-directional LSTM,BiLSTM)應(yīng)用在編碼層,將句子向量輸入分類器,效果得到提升。這些方法準確提取并學(xué)習(xí)上下文信息,但句子編碼相互獨立,沒有進行交互。文獻[15]提出了BIMPM模型,并在模型每部分增加了交互匹配,實現(xiàn)了更細粒度的交互機制。文獻[16]設(shè)計了BiGRU與Attention機制結(jié)合的模型,證明了Attention機制可以有效提升文本相似度任務(wù)。這類交互式模型能很好建模文本的關(guān)聯(lián)特征,但模型都較為復(fù)雜且忽略了句法結(jié)構(gòu)。
在學(xué)習(xí)文本句法結(jié)構(gòu)信息時,最關(guān)鍵的一步是分析文本的依存句法,一般分為兩類:基于轉(zhuǎn)移、基于圖。文獻[17]指出在文本任務(wù)中,基于圖的方法優(yōu)于基于轉(zhuǎn)移的方法。因此,如果能借鑒交互模型的優(yōu)點,并綜合考慮短文本的句法結(jié)構(gòu)信息,定能在準確度和速度上取得均衡的效果。基于該考慮,設(shè)計混合注意力結(jié)構(gòu)體系,增加交互信息,提高語義準確度,提出基于圖的依存分析方法得到帶有概率的依存結(jié)構(gòu)圖,并將其轉(zhuǎn)化為矩陣計算結(jié)構(gòu)相似度,融合兩種相似度,在提高計算準確率的同時提高計算效率,得到較為合理準確的計算結(jié)果。
本文設(shè)計的短文本相似度總框架流程如圖1所示。首先對文本數(shù)據(jù)預(yù)處理,本文選用哈工大語言技術(shù)平臺進行分詞、詞性標注、依存標簽標注,使用word2vec模型訓(xùn)練詞嵌入向量;然后分別計算語義相似度與句法結(jié)構(gòu)相似度;最終將兩者進行加權(quán)因子線性融合,得出最終短文本相似度。
圖1 總體框架流程
從總體框架圖中可知,語義相似度模塊主要由3層組成:嵌入表示層、混合注意力層和語義相似度計算層。
2.1.1 嵌入表示層
給定兩個句子P和Q, 需要通過映射預(yù)訓(xùn)練詞嵌入向量來獲得句子的嵌入矩陣。因此需要先應(yīng)用一個嵌入表示層。以句子P為例,其矩陣表示形式用Pe∈RL×m表示,其中L和m表示詞匯數(shù)和詞嵌入維數(shù)。構(gòu)造Pe的方法如下:假設(shè)文本由L個詞組成,而pi∈Rm表示句子中第i個詞的m維向量表示,則Pe表示為
Pe=p1⊕p2⊕…⊕pL
(1)
LSTM網(wǎng)絡(luò)是一種時間循環(huán)神經(jīng)網(wǎng)絡(luò),對學(xué)習(xí)具有長期依賴關(guān)系的數(shù)據(jù)非常有效。給定輸入序列v={v1,v2,…vL}, LSTM計算具有一系列隱藏狀態(tài)的輸出向量序列。在時間點t, LSTM層獲取輸入矢量vt、 隱藏矢量ht-1和存儲矢量Ct-1, 并通過輸入門i、 遺忘門f和輸出門o產(chǎn)生下一個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網(wǎng)絡(luò)在文本表示中提供了豐富的上下文信息,但無法檢測到不同部分對句子的整體組成所做的各種貢獻,因此加入混合注意力層。該層由自注意力機制和互注意力機制組成。每部分的輸入是BiLSTM網(wǎng)絡(luò)的兩個句子的輸出。
(1)自注意力機制
N=tanh(W1HP)
(9)
α=softmax(W2N)
(10)
rP=HPαT
(11)
圖2 自注意力機制流程
(12)
其中,W1、W2和W3是要學(xué)習(xí)的投影參數(shù)。
(13)
其中,Mi是張量參數(shù)。Wpq和b是要學(xué)習(xí)的參數(shù)。ReLU是一種非線性函數(shù),可以加速收斂。
(2)互注意力機制
由于需要評估兩個句子之間的相似程度,句子P中每部分的重要性也應(yīng)受到句子Q的影響。因此提出互注意力機制。如圖3所示,它通過考慮與另一句子的交互作用來將注意力權(quán)重分配給一個句子的每個部分。以P為例介紹,計算過程如式(14)~式(16)
(14)
(15)
(16)
(17)
同理,W4、W5和W6是要學(xué)習(xí)的投影參數(shù)。
圖3 互注意力機制流程
2.1.3 語義相似度計算層
在該層,將混合注意力層的結(jié)果組合為向量Y, 并將其傳送到全連接層中
(18)
由于相似度計算問題可以看作分類問題,因此為防止過度擬合,在全連接層之上應(yīng)用Dropout,并計算具有隱藏層和softmax層的概率分布。因此,根據(jù)式(19)計算出語義相似度
HASim(P,Q)=softmax(WYReLU(Y)+bY)
(19)
其中,WY和bY是softmax層的參數(shù)。
本文提出一種基于圖的依存句法分析方法,并基于依存結(jié)構(gòu)構(gòu)建關(guān)系矩陣并進一步計算句法結(jié)構(gòu)相似度,從總體框架圖中可看出該模塊主要有3層:依存結(jié)構(gòu)層、關(guān)系矩陣層和句法結(jié)構(gòu)相似度計算層。
2.2.1 依存結(jié)構(gòu)層
該層主要介紹基于圖的依存句法分析方法,以句子P={p0,p1,…pL} 為例。pi表示句子中第i個單詞,本文將根節(jié)點標識放在每個句子的開頭,記為p0。 研究句法結(jié)構(gòu)需要深度挖掘詞之間的依存關(guān)系,且涉及到詞性等其它方面的諸多信息,因此在預(yù)訓(xùn)練詞向量基礎(chǔ)上加入隨機初始化詞向量e′(pi) 以及詞性標簽向量e(posi), 得到最終詞語的詞嵌入向量表示xi
xi=(e(pi)+e′(pi))⊕e(posi)
(20)
然后將xi輸入BiLSTM網(wǎng)絡(luò)學(xué)習(xí)詞表示,得到時刻i的隱藏向量,這里記為vi。
本文使用圖G=(V,E) 表示句子P的依存結(jié)構(gòu),單詞節(jié)點集合用V={p0,p1,…pL} 表示,依存關(guān)系邊集合用E表示。每個詞對應(yīng)圖上的節(jié)點,使用pj→pi表示核心詞pj與依存詞pi之間的關(guān)系。由于任意單詞既可以作為核心詞,又可以作為依存詞,因此需要分別計算其作為核心詞或依存詞時的向量表示。本文使用前饋神經(jīng)網(wǎng)絡(luò)模型對BiLSTM的輸出vt進行計算,如式(21)~式(22)
(21)
(22)
然后采用雙仿射注意力機制為所有單詞對中的兩種依存關(guān)系計算得分,如式(23)
(23)
其中,sij是pj→pi的得分,U是權(quán)重矩陣,u是偏置項。在si={si0,…sij,…siL} 中,第i個單詞為根節(jié)點的概率由si0表示。最后進行歸一化得到概率分布α′i, 如式(24)
α′i=softmax(si)
(24)
最后采用最大生成樹算法獲得句子的依存結(jié)構(gòu)。
2.2.2 關(guān)系矩陣層
基于生成的結(jié)構(gòu),構(gòu)造關(guān)系矩陣。矩陣的行表示句子P中的關(guān)系,列表示句子Q中的關(guān)系,單元格Cellij表示句子P的第i個關(guān)系和句子Q的第j個關(guān)系之間的相似度。由于每個關(guān)系都與兩個節(jié)點(單詞)連接,因此可以分別計算所連接的兩個節(jié)點的相似度以及關(guān)系名稱的相似度來計算最終關(guān)系相似度,節(jié)點相似度使用詞嵌入方法計算。關(guān)系相似度計算公式如式(25)
(25)
R1和R2表示兩個關(guān)系, sim(AR1,AR2) 是兩個關(guān)系第一個節(jié)點的相似性; sim(BR1,BR2) 是第二個節(jié)點的相似性。 Namesim(R1,R2) 是關(guān)系名稱的相似性,這種相似性取決于關(guān)系的含義,如果名稱相同,則相似度為1。如果關(guān)系是相關(guān)的,則該值將大于不相關(guān)的值。在本文的設(shè)計中,我們將各種情況歸結(jié)為表1。
表1 關(guān)系名稱相似度評判標準
2.2.3 句法結(jié)構(gòu)相似度計算層
最終的結(jié)構(gòu)相似性,可通過第一個句子的關(guān)系被另一個句子覆蓋的程度來計算。具體的方法是選擇此關(guān)系與第二個句子中所有關(guān)系之間的最大相似度,并以此方法依次遍歷第一個句子中的所有關(guān)系,最終加權(quán),計算過程如式(26)所示
(26)
其中,n是句子P中的總關(guān)系數(shù),Ri是句子P中的第i個依存關(guān)系,α′Ri是依存關(guān)系概率,由式(24)得出。
本文綜合考慮語義和結(jié)構(gòu)信息,將基于混合注意力的語義相似度和基于句法信息的結(jié)構(gòu)相似度進行線性加權(quán)融合,得出最終的短文本相似度,如式(27)所示
SIM(P,Q)=
a×HASim(P,Q)+(1-a)×GSSim(P,Q)
(27)
其中,a是加權(quán)因子,該值的設(shè)置在實驗中具體介紹。
實驗中使用word2vec預(yù)訓(xùn)練詞向量,采用Adam算法[19]優(yōu)化,初始學(xué)習(xí)率為2e-3,在每一輪迭代中的衰減頻率為0.95,β1為0.9,β2為0.99。其它參數(shù)配置見表2。
表2 參數(shù)設(shè)置
在訓(xùn)練過程中,使用二分類交叉熵損失函數(shù)作為目標函數(shù)并添加正則化項
(28)
θ是要學(xué)習(xí)的參數(shù),N是訓(xùn)練集大小,λ是正則化參數(shù),正則化強度設(shè)置為e-4。
本文使用在文本處理任務(wù)中常用的準確率(Acc)、融合精確率(P)和召回率(R)的綜合指標F1作為相似度計算質(zhì)量評價指標。計算公式如式(29)~式(32)
(29)
(30)
(31)
(32)
tp是真正例數(shù),tn是真反例數(shù),fn是假反例數(shù),fp是假正例數(shù)。
3.3.1 加權(quán)因子設(shè)置
本文調(diào)整加權(quán)因子a的取值,選擇召回率作為評價指標。實驗結(jié)果如圖4所示。從圖中可看出召回率在0.67之前一直呈增長趨勢,在0.67之后開始下降,這是因為短文本通常不遵守書面語言的句法,且句法信息在短文本相似度中起著從屬作用,而語義信息起著主導(dǎo)作用,因此占比更大。所以加權(quán)因子a取值為0.67時最為合適。
圖4 加權(quán)因子的確定
3.3.2 對比實驗分析
為驗證本文方法的有效性,設(shè)置了本文方法與已有的其它文本相似度模型和方法的對比實驗。結(jié)果見表3。與MatchPyramid[20]、BiMPM[14]和ESIM[21]相比,本文在語義相似度模塊通過BiLSTM學(xué)習(xí)上下文感知信息,提出的
表3 對比實驗結(jié)果
混合注意力結(jié)構(gòu)體系進一步加入互注意力機制,加強了交互特征的表示,實現(xiàn)了更細粒度的交互,因此準確率得到了較大的提升;DIIN[22]和DRCN[23]在輸入階段增加了額外的句法特征,如字向量、詞向量、詞性等,并采用DenseNet結(jié)構(gòu)提取特征,RE2[24]將增強殘差連接融入到模型中,因此準確率進一步提高,但這些模型的復(fù)雜度普遍偏高,參數(shù)設(shè)置較復(fù)雜,且都沒有考慮文本的句法結(jié)構(gòu);而本文提出的方法模型復(fù)雜度較低,所需的參數(shù)相對較少,且進一步加入句法結(jié)構(gòu)特征綜合考慮語義信息與句法信息,在準確率上達到較好的結(jié)果,并且降低了計算的復(fù)雜度,提高了計算效率。本文所提的方法在準確率上達到了84.16%,F(xiàn)1值達到了86.65%,比其它模型和方法有所提升。
3.3.3 有效性分析
(1)語義相似度性能分析
首先,分析混合注意力層對計算結(jié)果的影響,結(jié)果見表4,刪除混合注意力層時,無法學(xué)習(xí)句子間的交互信息,因此準確率較低;只保留自注意力機制時,突出了句子中各部分對整體的重要程度,準確度提升了2.26個百分點;只保留互注意力機制時,著重學(xué)習(xí)兩句子間的相互作用,體現(xiàn)不同句子間的交互影響,因此準確度達到了83.85%,但結(jié)果都不如混合注意力機制下的準確;這說明我們提出的混合注意力機制對最終計算結(jié)果具有較大影響,能有效提升計算結(jié)果的準確率。
表4 混合注意力層有效性驗證
然后,我們對混合注意力層中的不同相似性度量方法進行評估。將神經(jīng)張量網(wǎng)絡(luò)(NTN)和元素級操作(EI)分別應(yīng)用于自注意力機制和互注意力機制上,以準確率為評價標準,結(jié)果見表5。在多數(shù)情況下,使用NTN可以提高交互性能,但也會顯著增加整個模型的參數(shù)。數(shù)據(jù)顯示,在自注意力成分上應(yīng)用NTN的前提下,在互注意力成分上應(yīng)用NTN并不會帶來更好的性能,且會增加模型的復(fù)雜度。因此,我們將NTN只應(yīng)用于自注意力機制,而將EI應(yīng)用于互注意力機制。
表5 相似性度量方法有效性驗證
(2)句法結(jié)構(gòu)相似度性能分析
為驗證本文的句法結(jié)構(gòu)相似度計算方法的有效性,將本文方法與其它文獻中提出的句法結(jié)構(gòu)計算方法作對比,實驗結(jié)果如圖5所示。文獻[25]的準確率較低,是因為其只將詞形、詞序、句長等特征結(jié)合忽略了句子的語義信息;文獻[26]將句子轉(zhuǎn)化為依存樹并生成RDF圖計算句法相似度,因此準確率有一定的提升;與文獻[27]中的MA-Tree-LSTM相比,本文方法略低于其結(jié)果,我們分析原因是本文使用的依存結(jié)構(gòu)是依存標簽經(jīng)過基于圖的依存句法分析模塊產(chǎn)生的,其精度不如MA-Tree-LSTM的高。
圖5 句法結(jié)構(gòu)相似度準確率對比
雖然MA-Tree-LSTM的準確度達到了較好的結(jié)果,但模型復(fù)雜度高,且每次只能處理一個句對,計算效率較低,而本文采用基于圖的依存分析方法可以實現(xiàn)多個句對并行處理,從而解決已有模型速度慢的問題。我們在不同長度的句子上設(shè)置了兩者的速度評測實驗,結(jié)果如圖6所示。句長在10以內(nèi)時,我們的方法是MA-Tree-LSTM的15倍;句長在10-20時,速度是其10倍。這表明本文提出的方法在檢測速度上有一定的優(yōu)勢。
圖6 句長對檢測速度的影響
3.3.4 實例分析
我們從數(shù)據(jù)集中抽取了4對具有代表性的句子對,用本文方法和方法1、方法2分別計算其相似度,結(jié)果見表6。序號1的句對語義有一定差別但句法結(jié)構(gòu)相似;序號2的句對語義信息一致但句法結(jié)構(gòu)差異較大;序號3的句對語義與句法結(jié)構(gòu)都有較大差異;序號4的句對語義和句法信息都一致。從數(shù)據(jù)可以看出,本文在語義相似度的計算上比方法1和方法2的結(jié)果更加準確,這是因為本文提出的混合注意力機制能更準確的學(xué)習(xí)到句子間的交互特征,而方法1和方法2只采用自注意力機制,交互信息較為單一;在文本設(shè)計的方法中,句法結(jié)構(gòu)相似度的占比較小,因此對于序號1、序號2這類型的句對,句法結(jié)構(gòu)相似度對最終計算結(jié)果有一定影響,但影響不大,并不會改變最終計算結(jié)果的準確度,與方法1和方法2的結(jié)果相比,更加符合實際;對于序列3、序號4這類型的句對,句法結(jié)構(gòu)相似度會進一步增強最終的計算結(jié)果,同樣達到了較高的準確度;這也進一步說明了本文采取融合方法的有效性。總之,本文提出的短文本相似度方法進一步提高了準確率,且計算結(jié)果更加符合事實和人的主觀判斷,驗證了本文方法的合理性和有效性。
本文提出了一種融合注意力及句法信息的短文本相似度計算方法,將短文本相似度分為語義相似度和句法結(jié)構(gòu)相似度兩部分。語義相似度中采用一種自注意力與互注意力相結(jié)合的混合注意力結(jié)構(gòu)體系提取文本間的交互特征;句法結(jié)構(gòu)相似度中采用基于圖的依存句法分析,并構(gòu)建關(guān)系矩陣,將兩者加權(quán)融合計算最終短文本相似度。實驗結(jié)果表明,該方法與其它文本相似度方法相比,有效提高了準確率及計算效率,計算結(jié)果更加符合實際。在未來的工作中,考慮將我們的方法在不同領(lǐng)域的數(shù)據(jù)集上實驗,并應(yīng)用在復(fù)述識別、問答系統(tǒng)等任務(wù)中;同時,考慮結(jié)合預(yù)訓(xùn)練語言模型(BERT、XLnet等),進一步提升短文本相似度計算結(jié)果的精確度。
表6 具體實例分析