左玉生,張 禮
(東南大學(xué) 1. 實驗室與設(shè)備管理處;2.成賢學(xué)院,江蘇 南京 210096)
語義相似性度量[1]是自然語言處理領(lǐng)域用于判定詞、句子或文本相似性的關(guān)鍵技術(shù)之一,在信息檢索領(lǐng)域有著廣泛的應(yīng)用,正得到持續(xù)的研究關(guān)注。
傳統(tǒng)的語義相似性度量通常采用基于詞匹配的相似度計算方法或基于潛在語義分析的概率主題語義相似度計算方法來評價文本或句子在語義級別上的相似性或相關(guān)性。基于詞匹配的相似度計算方法主要通過比較兩個文本中詞語的重復(fù)和相似程度以及詞序相似度等信息來衡量句子相似度[2],比較典型的有基于最長公共子序列(Longest common subsequence,LCS)[3],詞頻-逆文檔頻率(Term frequency-inverse document frequency,TF-IDF)[4]、向量空間模型(Vector space model,VSM)[5]的語義相似度計算方法。其中基于VSM計算專利相似度的模型是目前最為成熟和常用的基于詞匹配的方法。這類方法的優(yōu)點是計算速度快、工作量小,缺點是這些模型建立在詞與詞之間無聯(lián)系相互獨立,忽略文本隱藏的語義信息。針對上述不足,研究人員提出了基于潛在語義分析的概率主題語義相似度計算方法,該方法的主要思想是利用詞語中的共同信息對文本進行主題建模,挖掘?qū)@谋局袧撛诘恼Z義信息,從而計算文本之間的語義相似度。潛在語義分析模型(Latent semantic analysis,LSA)和潛在狄利克雷分配模型(Latent dirichlet allocation,LDA)是兩種比較經(jīng)典的基于潛在語義分析的概率主題模型[6]。這類方法考慮了深層語義信息,在結(jié)果上優(yōu)于基于詞匹配的方法,但仍存在沒有考慮到詞與詞之間的位置關(guān)系等缺陷。隨著深度學(xué)習(xí)方法在諸多領(lǐng)域取得成功,各類深度神經(jīng)網(wǎng)絡(luò)也被引入到語義相似性度量中用于捕獲各種語義特征和訓(xùn)練語義相似性度量模型。在文本分布式表示方面,深度學(xué)習(xí)網(wǎng)絡(luò)被用于將詞、句子等表示學(xué)習(xí),獲取詞向量[7],如word2vec、Glove和BERT等,進而獲取句子向量和文本向量。在語義相似性度量模型方面,根據(jù)任務(wù)類型和數(shù)據(jù)特點,各種類型的深度神經(jīng)網(wǎng)絡(luò),如自組織神經(jīng)網(wǎng)絡(luò)(Self-organization map,SOM)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN)等,在網(wǎng)絡(luò)深度、寬度等方面被定制用于獲得優(yōu)良的相似性度量效果[8],代表性的工作DSSM[9]和ARC-II[10]。
為了提高文本相似性度量的準確性,從深度學(xué)習(xí)的角度出發(fā),本文提出了一種新的文本語義相似性度量方法,旨在利用深度學(xué)習(xí)技術(shù)實現(xiàn)詞級別、句子級別、文本級別的表示學(xué)習(xí),使得學(xué)習(xí)到的表示向量能刻畫上下文感知的語義信息。提出的方法由詞嵌入、文本表示學(xué)習(xí)和相似性度量等模塊構(gòu)成。在詞嵌入層,通過BERT獲取詞級別的分布式表示,在表示學(xué)習(xí)層,通過BIGRU將上下文信息融入詞級別的語義向量中形成句子級別、文本級別的分布式表示,而在相似性度量層,通過CNN為兩個輸入的句子或文本計算相似性值,上述方法命名為BERT-BIGRU-CNN。為了評價提出的相似性度量方法的準確性,在兩個基準數(shù)據(jù)集上進行了試驗。
為了提高文本相似性度量的準確性,本文從深度學(xué)習(xí)的角度出發(fā)提出了一種新的文本語義相似性度量框架,如圖1所示。該框架的核心思想是利用深度學(xué)習(xí)技術(shù)實現(xiàn)詞級別、句子級別、文本級別的表示學(xué)習(xí),使得學(xué)習(xí)到的表示向量能提供上下文感知的語義信息,進而實現(xiàn)文本語義相似性度量。整個框架由三層構(gòu)成,包括詞嵌入層、文本表示學(xué)習(xí)層和相似性度量層,其中詞嵌入層旨在獲取詞級別的分布式表示,文本表示層旨在將上下文信息融入詞級別的語義向量中形成句子級別、文本級別的分布式表示,而相似性度量層旨在為兩個輸入的句子或文本計算相似性值。
圖1 基于深度神經(jīng)網(wǎng)絡(luò)的文本相似性度量框架
鑒于BERT模型可以捕獲字符級、詞級、句子級的上下文信息來消除詞的多義性,因此本文使用BERT模型作為詞嵌入層的解決方案。給定文本,采用BERT的標(biāo)準輸入格式構(gòu)建輸入張量,而后通過多層編碼器,每一層編碼器通過加權(quán)方式融合其它層的特征為輸入生成一個新的特征,最后得到的輸出張量由每個詞對應(yīng)的詞向量,段向量和位置向量相加構(gòu)成。因為BERT的最大輸入長度為512個字符,故采用滑動窗口策略以固定的窗口大小進行劃分,將文本分割成長短一致的句子集[S1,S2,…,Sn],再采用BERT進行編碼。
在詞嵌入基礎(chǔ)上,句子表示學(xué)習(xí)層將上下文信息進一步融入詞級別的語義向量中形成句子級別的分布式表示。本文采用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的變體門控反饋單元網(wǎng)絡(luò)(Gated recurrent unit,GRU)將輸入詞嵌入到上下文中以生成句子級的分布式表示,選取GRU的原因在于它不僅能獲得包含上下文信息的句子中詞嵌入表示,而且能兼顧上下文中詞出現(xiàn)順序?qū)υ~表達的影響。設(shè)模型的輸入為詞向量X[t]和隱藏狀態(tài)h[t-1],X[t]為句子中位置t處出現(xiàn)的詞由詞嵌入層編碼得到的詞向量,h[t-1]為文檔中位置t-1處包含的表示上下文信息的隱藏狀態(tài)。模型的輸出為當(dāng)前隱藏節(jié)點的輸出y[t]和傳遞給下一個節(jié)點的隱藏狀態(tài)h[t]。
(1)
(2)
得到門向量后,再通過一個激活函數(shù)tanh的全連接層來將數(shù)據(jù)放縮到(-1~1)范圍內(nèi),對輸入信息向量進行編碼并最終獲取用于更新隱藏狀態(tài)的輸入信息作為候選隱藏狀態(tài),其計算過程如式(3)所示
(3)
接著,一方面輸入信息被更新門過濾,以獲得用于更新隱藏狀態(tài)的信息。另一方面在更新門上執(zhí)行逐點操作以獲得另一個遺忘門,并且前一時刻的隱藏狀態(tài)被用于確定需保留的信息。兩部分信息融合更新作為t位置的隱藏狀態(tài),計算過程如式(4)所示
(4)
(5)
為了能夠自動地挖掘文本特征,文檔的最終表達是按文檔的單詞位置順序排列的,并保留詞語先后順序關(guān)系。本文采用卷積神經(jīng)網(wǎng)絡(luò)進行特征提取,圖2是基于CNN模型的文本編碼過程。
圖2 基于CNN的文本編碼過程
(1)輸入層。式(6)是文檔的初始表示,其中w[t]是式中位置t處的詞嵌入的最終表示,其維度為k,d′i為下標(biāo)為i的文檔的初始表示,維度為n×k,n是文檔中的單詞數(shù)。
(6)
(2)卷積層。卷積層中有3個不同窗口大小的卷積核,窗口大小分別是h1、h2和h3,每個卷積核的數(shù)量為m。選擇不同高度卷積核的原因是要考慮文檔中不同長度的文本之間的語義關(guān)系。以窗口大小hα(α=1,2,3)的第β(β∈(0,m])個卷積核Fαβ為例,得到特征序列cαβ如式(7)所示
(7)
(8)
(3)池化層。提取出文本中最具有代表性的特征項,減少無用信息的影響。采用最大池化策略,如式(9)所示,并在hα窗口大小下的m個卷積核生成的特征圖便會生成m個特征,如式(10)所示
(9)
(10)
(4)全連接層。輸出文本的特征向量,最終文本表示結(jié)果是通過將3個卷積核的特征向量結(jié)果進行拼接而獲得表示文本中間向量di,如式(11)所示
(11)
兩個待計算相似性的文本經(jīng)過文本表示層后得到了相同維度的中間向量。相似性度量層需要計算兩中間向量ds和dq之間的相似性值,采用如圖3所示的計算模型。
圖3 文本相似度計算模型
該模型先通過對兩個中間向量進行逐點乘法和逐點減法運算,獲得了兩個文本的綜合表示,并且由于關(guān)系是無向的,因此點后的向量逐點減法也經(jīng)過逐點絕對值處理,如式(12)所示
(12)
然后,向量dp通過一個全連接隱層,假設(shè)神經(jīng)網(wǎng)絡(luò)中有i個隱藏層,通過式(13)獲得輸出yi
(13)
式中:wi是第i個隱藏層的權(quán)重向量,bi是第一隱藏層的偏移矢量,α(g)采用ReLU函數(shù)作為激活函數(shù)。
(14)
式中:θk表示第k個類別的權(quán)重向量,用于預(yù)測兩個文本是否相似的可能性。
為了在訓(xùn)練過程中優(yōu)化模型需要合理構(gòu)建模型的損失函數(shù)。本文選取了交叉熵損失函數(shù),如式(15)所示,并采用小批量梯度下降法(Mini-batch)對網(wǎng)絡(luò)中的參數(shù)進行訓(xùn)練。為防止可能出現(xiàn)的過擬合的問題,利用L2正則化來約束參數(shù),同時采用dropout策略在迭代中在全連接層隨機拋棄一部分訓(xùn)練好的參數(shù)。
(15)
為了評價提出的相似性度量準確性,在基準數(shù)據(jù)集上進行了試驗評價。試驗中使用了2個基準數(shù)據(jù)集,MPRC[11]和SNLI[12]。MPRC是由微軟提供的用于同義句識別任務(wù)的基準數(shù)據(jù)集,每個句子對都進行了標(biāo)注,標(biāo)注值1表明是同義句,而標(biāo)注值0表示語義不同,訓(xùn)練集有4 076個樣本,測試集有1 718個樣本。SNLI是斯坦福大學(xué)提供的用于自然語言推理任務(wù)的基準數(shù)據(jù)集,給定假設(shè)并依據(jù)該假設(shè)進行假設(shè)間關(guān)系推理,結(jié)果為蘊含、沖突和中立,詳細的數(shù)據(jù)集樣本分布情況如表1所示。
表1 SNLI數(shù)據(jù)集的標(biāo)簽分布
試驗中采用了accuracy和F1-score來評價相似性度量結(jié)果準確性,并與其它類似的先進工作進行了對比分析,選取的對比算法同樣都采用了基于深度學(xué)習(xí)的思路,其中深度語義結(jié)構(gòu)模型(Deep semantic structured model,DSSM)[9]是最早用于度量文本相似性的深度學(xué)習(xí)模型之一。該模型采用典型的Siamese網(wǎng)絡(luò)結(jié)構(gòu),由五層的網(wǎng)絡(luò)單獨進行向量化,計算文本間的余弦相似度得到文本相似性得分;卷積網(wǎng)絡(luò)深度匹配模型ARC-II[10]采用交互學(xué)習(xí)方式,分別對查詢中的詞進行n-gram卷積提取和文檔中的詞進行卷積提取,而后得到的成對詞向量進行相似性計算得到一個相似性度矩陣。
本節(jié)從詞嵌入方式、句子表示學(xué)習(xí)方法和文本表示學(xué)習(xí)方法等三個方面評估它們對于語義相似性度量模型的影響。在詞嵌入層,采用常用的word2vec詞嵌入方式取代BERT,生成名為Word2vec-BGRU-CNN的方法,在句子表示學(xué)習(xí)層去除雙向GRU結(jié)構(gòu)得到模型BERT-CNN,在文本表示學(xué)習(xí)層用AVG取代CNN后得到模型BERT-BGRU-AVG。表2給出了消融后得到的模型與本文提出的BERT-BGRU-CNN在兩個基準數(shù)據(jù)集上的試驗結(jié)果。
表2 不同模型在基準數(shù)據(jù)集上試驗結(jié)果
從表2中可以看出,基于BERT的詞向量的模型在性能上優(yōu)于基于word2vec的模型,具體表現(xiàn)在采用BERT詞向量的模型較word2vec的在MPRC數(shù)據(jù)集上Accuracy和F1-score都有顯著的提升,分別提高了22.6%和11.2%。在句子表示學(xué)習(xí)層,采用BRGU編碼句子后在兩個數(shù)據(jù)集上指標(biāo)都有一定的提升,Accuracy和F1-score分別提高了約1.8%和1.3%,表明雙向GRU可以獲得了距離相距較遠的詞特征與基于BERT的上下文詞特征相結(jié)合,能更好地掌握文本上下文相關(guān)的信息。在文本表示層,采用CNN后的模型在兩個數(shù)據(jù)集上指標(biāo)同樣都有一定的提升。
本節(jié)將提出的模型與現(xiàn)有的先進模型進行了對比試驗,試驗結(jié)果如表3所示。從表中可以看出,本文提出的模型在兩個基準數(shù)據(jù)集上accuracy和F1-score值都優(yōu)于現(xiàn)有的模型,尤其是在MPRC基準數(shù)據(jù)集上有明顯的性能提升,這表明融合BERT,雙向GRU和CNN構(gòu)建的文本相似性度量模型能有效的度量句子級別、文檔級別的相似性。
表3 本文提出的模型與對比模型在兩個基準
出于提高文本相似性度量準確性的目的,本文提出了一種新的文本相似性度量,借助深度神經(jīng)網(wǎng)絡(luò)來捕獲文本中詞級別、句子級別和文本級別的豐富語義信息,從而提高文本相似性度量準確性。通過在兩個基準數(shù)據(jù)集上的試驗和對比驗證了提出的文本語義相似性度量的有效性。