胡雨晴, 紀(jì)明宇, 王晨龍
(東北林業(yè)大學(xué) 信息與計算機工程學(xué)院, 哈爾濱150040)
近年來,文本語義的相似度計算廣泛應(yīng)用于機器翻譯、信息檢索、對話系統(tǒng)等領(lǐng)域[1]。 語義的相似度是指用于比較語義實體(如詞語、句子、或定義為知識庫的概念和實例)之間的語義相似性或相關(guān)性的方法[2]。 語義實體中的句子在實際應(yīng)用場景中最為常見,國內(nèi)外學(xué)者對于句子的相似度計算提出了許多方法。
句子的特征提取是句子相似度計算的核心,目前主要有兩類句子相似度計算方法:人工提取句子特征和利用神經(jīng)網(wǎng)絡(luò)提取。 第一類方法:以句中的關(guān)鍵詞、詞頻、語義成分等句子特征,定義計算句子相似度的計算公式。 例如,Gunasinghe 等人統(tǒng)計文檔的詞頻作為句子特征,并且利用余弦距離度量相似度[3]。 此類方法存在特征稀疏的問題,語義度量不夠準(zhǔn)確。 第二類方法:利用神經(jīng)網(wǎng)絡(luò)自動提取句子級或詞語級的語義特征。 如Palangi 等人利用循環(huán)神經(jīng)網(wǎng)絡(luò)模型,將句子中的詞語特征依次提取出來[4]。 Zhuang 等人引入注意力模型到循環(huán)神經(jīng)網(wǎng)絡(luò)中更多的獲取句子的語義信息[5]。 而近年來越來越多的學(xué)者將常用于圖像處理的卷積神經(jīng)網(wǎng)絡(luò)用來處理文本數(shù)據(jù)。 Kim 等人提出Text-CNN 方法,首次利用卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)句子的局部特征[6]。 He 等人對卷積網(wǎng)絡(luò)進行了改進,提出了2 種卷積方式和3 種池化方式,從多個角度學(xué)習(xí)句子特征[7]。
但是,應(yīng)用神經(jīng)網(wǎng)絡(luò)的方法存在一些不足:神經(jīng)網(wǎng)絡(luò)的輸入端需要固定長度的句子,而文本中的句子大多長短不一,對于長句通常使用直接截取的方法,句子會丟失一部分語義信息導(dǎo)致語義特征提取不全面;短句的處理方式是直接用零來補充缺失的向量部分,這樣會使句子所含的重要語義信息過少[8]。 而且,僅僅使用基本的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)句子語義特征不夠充分。
針對上述問題,本文在依存句法的基礎(chǔ)上對長句的重要特征進行提取、對短句中重要的語義信息進行補充。 為了提高卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)句子特征的能力,本文基于Text-CNN 模型,引入了擴張卷積和反卷積的結(jié)構(gòu),來獲取多個層面的句子語義特征。
依存句法(Dependency Parsing)是指通過分析語言單位內(nèi)成分之間的依存關(guān)系揭示其句法結(jié)構(gòu)[9]。 StanfordCoreNLP 是由斯坦福大學(xué)開發(fā)的關(guān)于自然語言處理的工具包,其中包括句子的依存句法分析、分詞、詞性還原等功能。 其工具將句子的語法結(jié)構(gòu)以句法結(jié)構(gòu)樹的形式展現(xiàn),并對句中的每一個詞語的語法成分和詞性進行了標(biāo)注。
本文利用StanfordCoreNLP 對句子進行依存分析后的詞語標(biāo)注,制定出提取長短句特征的規(guī)則。對于長句,采用去掉一部分語義較弱的詞語來削減句子長度;而對于短句,則增強語義信息較為重要的詞語來增加句長。 如,在英文句子中常見的限定詞“the”、“to”及介詞“in”、“for”等等出現(xiàn)頻率較高,而包含的語義信息又過少,則可在長句中刪減。 而句中的名詞短語、動詞、副詞、人稱代詞等句中語義重要的詞語應(yīng)在短句中進行補充。
應(yīng)用上述長短句提取規(guī)則,作用于本文選用的2 個公開實驗數(shù)據(jù)集MSRP 和STS,其長短句數(shù)量變化情況見表1。 由表1 可知,MSRP 數(shù)據(jù)集的句長小于12 的 句子從821 條減少到484 條,長度超過20的句子減少了2405 條。 STS 數(shù)據(jù)集的短句子過多而且大多只有5 個單詞,短句子的語義信息過少不利于提取出句子的特征,通過本文提出的依存句法提取規(guī)則,補充短句語義信息使短句減少了151 條。2 個數(shù)據(jù)集所減少的長句和短句都分別在句長適中的區(qū)間相應(yīng)的增加了2 742 條和2 261 條。

表1 依存句法規(guī)則下英文長短句變化情況Tab.1 Changes of English short and long sentences under dependency rules
中文的依存句法分析,則利用哈爾濱工業(yè)大學(xué)提供的語言技術(shù)平臺 ( Language Technology Platform, LTP)[10]。 LTP 中常見的依存關(guān)系類型和對應(yīng)標(biāo)注見表2。

表2 LTP 中依存關(guān)系類型及標(biāo)注Tab.2 Dependency types and annotations in LTP
句法分析的目的是構(gòu)造句子的句法結(jié)構(gòu)樹(Syntactic Structure Tree)[11]。 句法結(jié)構(gòu)樹是由詞語、詞性標(biāo)注、語法成分和表示依存關(guān)系的依存弧組成的[12]。 句法結(jié)構(gòu)樹與句子的結(jié)構(gòu)有著密切關(guān)系。本文將長度超過10 個字的句子定義為長句子,長度小于5 個字的句子定義為短句子,5 到10 個字之間的句子定義為標(biāo)準(zhǔn)句。 圖1 是本文數(shù)據(jù)集中的幾個常見用句,對3 種句子的LTP 句法結(jié)構(gòu)描述。

圖1 LTP 句法結(jié)構(gòu)樹實例Fig.1 An example of lip syntax structure tree
由圖1 可以看出:長句、標(biāo)準(zhǔn)句和短句中的核心成分(HED),主語(SBV)、賓語(VOB)與其它成分之間的依存弧最多,即依存關(guān)系最多。 如果缺少這3 類成分句子的語義表達將會受到嚴(yán)重影響。 其次,依存關(guān)系較多的是修飾主語的定語成分(ATT)和修飾謂語的狀語成分(ADV)。 其它語法成分的依存關(guān)系較弱,如并列關(guān)系(COO)、動補關(guān)系(CMP)等。 可見,依存關(guān)系越多的語法成分對句子的語義表達越重要,將長句中依存關(guān)系較多的語法成分提取出來,可以在保留長句重要語義信息的同時壓縮句長;補充短句子中依存關(guān)系較多的語法成分,可以增加短句長度,并提高短句中依存關(guān)系較多語法成分的出現(xiàn)概率,使句子的語義表達更充分。
基于此,本文提出的長短句提取規(guī)則如下:對長句而言,將句中標(biāo)注為SBV、HED、VOB 的主謂賓等核心詞全部提?。痪渲袠?biāo)注為ATT、ADV、CMP(動補)修飾主謂賓的助詞選擇性提取;其它標(biāo)注不進行提取。 對于短句中存在修飾詞,周圍大多是被修飾的主語、謂語等依存關(guān)系較多成分的情況,采用復(fù)制短句中標(biāo)注為ATT、ADV、VOB 等修飾詞的前一個詞到當(dāng)前詞之后的方式,進行補充語義。
應(yīng)用上述長短句提取規(guī)則,作用于本文實驗數(shù)據(jù)集的102 477 對句子,相應(yīng)的長短句數(shù)量變化情況如圖2 所示。

圖2 運用依存規(guī)則后的句長對比Fig.2 Sentence length comparison after using dependency rule
由圖2(a)可知,智能數(shù)據(jù)集的句長主要分布在3 到10 個詞語之間,但是詞語少于5 個詞,包含語義信息太少,不利于句子相似度的比較。 在本文的依存句法提取規(guī)則下,數(shù)據(jù)集中的句長小于5 和大于10 的句子大幅度的減少,如圖2 (b)所示。 可見,數(shù)據(jù)集中過長或過短句子在依存句法規(guī)則下大量減少,便于神經(jīng)網(wǎng)絡(luò)的輸入。
擴張卷積(Dilated Convolution)又稱空洞卷積,由國外學(xué)者Yu 等人[13]提出,在圖像分割、目標(biāo)檢測等領(lǐng)域被廣泛應(yīng)用。 擴張卷積和普通卷積相比,除了卷積核的大小以外,還有一個擴張率參數(shù)表示擴張的大小。 利用這種結(jié)構(gòu),在保持參數(shù)個數(shù)不變的情況下增大了卷積核的感受野,同時可以保證輸出特征映射的大小保持不變。 普通卷積和擴張卷積的對比如圖3 所示。

圖3 擴張卷積和普通卷積對比Fig.3 Comparison between convolution and dilated convolution
圖3 中綠色區(qū)域代表卷積核,深藍色區(qū)域為感受野。 同樣是3x3 的卷積核,擴張卷積可以獲得更大的感受野,學(xué)習(xí)到更遠的特征信息。 國外學(xué)者Bai 等人[14]提出的時間卷積網(wǎng)絡(luò)TCN 中也用到了擴張卷積的思想。 本文利用擴張卷積相比普通卷積具有更大的感受野,可以同時獲取更遠的上下文信息,并能保持計算量變化較小。 利用擴張卷積代替文獻[6] Text-CNN 方法中的普通卷積部分,得到融合擴張卷積的Text-CNN 模型結(jié)構(gòu)如圖4 所示。
反卷積(Deconvolution)也稱轉(zhuǎn)置卷積,是由Zeiler 等人[15]提出,常用于圖像處理的場景分割、生成模型等領(lǐng)域。 最近流行的生成對抗網(wǎng)絡(luò)(GAN)生成器模塊,采用的就是反卷積操作,將低分辨率圖像生成高分辨率圖像[16]。 反卷積操作是卷積的逆過程,即卷積層的反向傳播就是反卷積層的前向傳播,其模型結(jié)構(gòu)如圖5 所示。
從圖5 可以看出,2×2 的輸入,通過3×3 步長為1 的過濾器,反卷積得到4×4 的輸出,反卷積時空白的部分用0 補充。 通過反卷積可以對短句子的信息進行擴充提取,利于短句子在相似度比較時可以考慮到更多的信息。

圖4 融合擴張卷積的Text-CNNFig.4 Text-CNN that blends dilated convolution

圖5 反卷積模型結(jié)構(gòu)Fig.5 Deconvolution structural model
本文選用2 個英文公開的數(shù)據(jù)集和一個中文智能客服數(shù)據(jù)集進行實驗。 3 個數(shù)據(jù)集分別是微軟提供的MSRP 數(shù)據(jù)集[17]、2012-2017 年SemEval 跨語言語義文本相似性(cross-lingual Semantic text Similarity,STS)任務(wù)的數(shù)據(jù)集[18]和螞蟻金服提供的智能客服數(shù)據(jù)集。 3 個數(shù)據(jù)集的統(tǒng)計信息見表3。

表3 3 個數(shù)據(jù)集的統(tǒng)計信息Tab.3 Statistics of three data sets
對于英文數(shù)據(jù)集,卷積神經(jīng)網(wǎng)絡(luò)之前的詞嵌入層,選用斯坦福大學(xué)利用Glove 語言模型,在2014年維基百科和Gigaword 語料預(yù)訓(xùn)練得到400 000個英文詞匯的100 維詞向量[19]。 對于中文的數(shù)據(jù)集,詞嵌入層選用Li S 等人基于上下文特征(單詞、ngram、字符等),在中文維基百科語料預(yù)訓(xùn)練得到2 129 000個中文詞匯的300 維詞向量[20]。
文本語義相似度計算方法的評價指標(biāo)通常包括準(zhǔn)確率、召回率、精確度、F1 值和評價模型穩(wěn)定的ROC(Receiver Operating Characteristic)曲線,以及曲線面積值A(chǔ)UC(Area Under ROC Curve)。 模型的ROC 曲線越靠近左上角,模型的面積AUC 越大,表示模型的穩(wěn)定性越高。
為了驗證本文方法的有效性,將文獻[6]的Text-CNN 方法、文獻[7]的Mp-CNN 方法、融合了反卷積的Text-cnn 的De-CNN 方法和本文提出的融合擴張卷積Text-cnn 的Dilated-CNN 方法,上述4 種方法結(jié)合依存句法長短句提取規(guī)則Dependency的方法,進行實驗對比。 表4 為幾種方法針對準(zhǔn)確率、召回率、精確度和F1 值等評價指標(biāo)的實驗對比。

表4 主要評價指標(biāo)對比Tab.4 Comparison of main evaluation indexes %
3.3.1 準(zhǔn)確度和F1 值的對比分析
由表4 可見,Dilated-CNN 方法在MSRP 數(shù)據(jù)集上的準(zhǔn)確率和精確度分別比其它Text-CNN 方法高2.60%和1.32%,而召回率低2.57%。 在STS 數(shù)據(jù)集上兩方法的準(zhǔn)確率和召回率相差無幾。 在中文智能客服數(shù)據(jù)集上準(zhǔn)確率降低了1.57%,但召回率提升了11.15%,最終的F1 值提高了2.51%。 表明Text-CNN 引入擴張卷積結(jié)構(gòu)后,可以學(xué)習(xí)到更遠距離的詞語語義,在長句較多的MSRP 數(shù)據(jù)集,準(zhǔn)確率會得到提高。 而在STS 短句較多的數(shù)據(jù)集變化不大。
Dilated-CNN 結(jié)合依存句法長短句提取規(guī)則Dependency 后,相比Dilated-CNN 方法在MSRP 數(shù)據(jù)集上的準(zhǔn)確率提高了3.61%,F(xiàn)1 值提高了3.04%。而其它方法在結(jié)合依存句法提取規(guī)則后,準(zhǔn)確率和F1 值都有一定的提升。 在STS 數(shù)據(jù)集的表現(xiàn)上準(zhǔn)確率有所降低,但召回率卻有所提高,最終的F1 值提升不明顯。 在智能客服數(shù)據(jù)集上,結(jié)合了依存句法長短句提取規(guī)則的Dilated-CNN 的表現(xiàn)最優(yōu),相比Dilated-CNN 準(zhǔn)確率和F1 值分別提高了5.15%和2.81%。 表明在擴展卷積的基礎(chǔ)上再引入依存分析,長短句得到語義補充后準(zhǔn)確率和F1 值在Text-CNN 的方法上再次得到提高,并且應(yīng)用到智能客服中文數(shù)據(jù)集也有明顯的提升。
3.3.2 模型穩(wěn)定性ROC 曲線的對比分析
上述方法在ROC 曲線表現(xiàn)方面的實驗對比結(jié)果如圖6、圖7、圖8 所示。

圖6 MSRP 數(shù)據(jù)集ROC 曲線對比Fig.6 ROC curve comparison of MSRP data set

圖7 STS 數(shù)據(jù)集ROC 曲線對比Fig.7 ROC curve comparison of STS data set

圖8 智能客服數(shù)據(jù)集ROC 曲線對比Fig.8 ROC curve comparison of intelligent customer service data set
從圖6(a) 可以看出,在MSRP 數(shù)據(jù)集下Dilated-CNN方法的ROC 曲線最靠近左上角,而且面積值最高為0.710,De-CNN 方法的面積值為0.664,較低于Text-CNN 方法的0.676。 圖6(b)表明在依存規(guī)則下,以上幾種方法的ROC 曲線表現(xiàn)均有提升,而且結(jié)合依存句法后的Dilated-CNN 和De-CNN的ROC 面積值為0.766 和0.715,高于Text-CNN 和Mp-CNN方法。
由圖7(a)可知,在STS 數(shù)據(jù)集下,Dilated-CNN和Text-CNN 方法相差不大。 圖7(b)在依存規(guī)則下各方法的ROC 曲線面積值提升不明顯,而各方法的曲線較原來相比均更靠近上方,表明召回率都得到了提高。
由圖8(a)可知,在智能客服數(shù)據(jù)集下Dilated-CNN 方法的曲線最靠近左上方,且面積值最高為0.757。圖8(b)在依存規(guī)則下Dilated-CNN 和De-CNN 的ROC 曲線面積值,相比未用依存規(guī)則之前分別提高了0.08 和0.29。 表明模型的穩(wěn)定性在引入依存分析后得到一定提升。
本文提出了一種基于依存句法的句子相似度計算方法,在中英文3 個公共數(shù)據(jù)集上驗證了該方法的有效性。 在準(zhǔn)確度和F1 值的表現(xiàn)上本文提出的模型方法較其它方法有所提升;而且在模型穩(wěn)定性上也有較好表現(xiàn)。 未來,將進一步研究中文的弱語法性和口語表達多樣性等影響句子相似度計算的問題。