田 媛,郝文寧,陳 剛,靳大尉,鄒 傲
(陸軍工程大學(xué) 指揮控制工程學(xué)院,江蘇 南京 210001)
深度神經(jīng)網(wǎng)絡(luò),作為一種表示學(xué)習(xí)方法,已經(jīng)被廣泛應(yīng)用于NLP任務(wù)[3-4],并取得顯著成果,鑒于此,研究者嘗試將其應(yīng)用于IR中,現(xiàn)有的神經(jīng)信息檢索模型可大致分為兩類:語義匹配模型和關(guān)聯(lián)匹配模型。語義匹配模型主要關(guān)注文本的表示,通過深度神經(jīng)網(wǎng)絡(luò)將查詢和待檢索文檔映射到低維的向量空間,然后利用這種向量表示計算它們的相似度;關(guān)聯(lián)匹配模型主要關(guān)注文本之間的交互,對查詢和待檢索文檔之間的局部交互進行建模,使用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)層次交互信息以得到全局的相似度得分?,F(xiàn)有的用于IR的深度關(guān)聯(lián)匹配模型通常以詞為單位進行局部相關(guān)度匹配,沒有考慮詞之間的順序及語義信息,無法解決一詞多義的問題。該文提出的關(guān)聯(lián)匹配模型使用語義相對完整的句子作為單位實現(xiàn)查詢與待檢索文檔之間的局部交互,首先計算查詢中每個句子與待檢索文檔中各個句子的相似度得分,并將這些得分映射到固定數(shù)量的桶中,桶按相似度等級劃分,從而獲取固定長度的匹配直方圖;然后使用一個前饋神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)局部交互的層次信息獲取每個查詢句與整個文檔的相似度得分;最后使用一個門控網(wǎng)絡(luò)計算每個查詢句的權(quán)重并聚合得到最終整個查詢與文檔的相似度得分。
主要貢獻如下:
(1)將句子級檢索與深度關(guān)聯(lián)匹配模型相結(jié)合,以語義相對完整的句子為單位進行查詢與待檢索文檔之間的局部匹配,充分考慮了詞的上下文信息。
(2)查詢Q的全部局部匹配直方圖輸入到神經(jīng)網(wǎng)絡(luò)之前將其重新排列,解決模型因?qū)ξ恢眯畔⑦^度擬合,即可能在經(jīng)常用0填充的句子處學(xué)習(xí)到較低的權(quán)重帶來的整體檢索性能下降的問題。
(3)使用交叉熵損失替換鏈損失,并通過實驗驗證,使用交叉熵損失可以提高模型的檢索性能。
IR中的核心問題就是計算文檔與給定查詢之間的相關(guān)性,也就是文本匹配的問題。傳統(tǒng)BM25是一個專門用于計算查詢和候選文檔之間相似度的評分標準,文獻[5]指出,其搜索功能在實踐中往往會過度懲罰有用的長文檔,Na等人[6-7]將其改進成vnBM25,有效地緩解了文章長度的冗余影響。Kusner等人[8]提出了詞移距離的概念(WMD),從轉(zhuǎn)換成本上度量文本之間的相似度。鑒于深度神經(jīng)網(wǎng)絡(luò)良好的表示學(xué)習(xí)能力,近年來研究者已經(jīng)提出了很多深度匹配模型用于IR,旨在基于自由文本直接對查詢和文檔之間的交互進行建模[9],這些模型大致分為兩類,語義匹配模型和關(guān)聯(lián)匹配模型。如圖1(a)所示,語義匹配模型中的深度網(wǎng)絡(luò)是為查詢和待檢索文檔學(xué)習(xí)一個好的表示,然后直接使用匹配函數(shù)去計算二者之間的相似度,例如在DSSM[10]中,深度網(wǎng)絡(luò)使用的是一個前饋神經(jīng)網(wǎng)絡(luò),匹配函數(shù)則是余弦相似度函數(shù);在C-DSSM[11-12]中,使用卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)查詢和文檔的向量表示,然后使用余弦相似度函數(shù)計算二者之間的相似度得分。
(a)語義匹配模型 (b)關(guān)聯(lián)匹配模型
然而,Guo等人[13]指出,IR中所要求的匹配與NLP任務(wù)中所要求的匹配是不同的,若在創(chuàng)建文本表示之后再進行交互,可能造成精確匹配信息的丟失。關(guān)聯(lián)匹配更適用于檢索任務(wù),如圖1(b)所示,首先建立查詢中詞與待檢索文檔中詞之間的局部交互,然后使用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)層次匹配模式以獲取全局相似度得分,例如ARC-II[14]和MatchPyramid[15]模型使用詞向量之間的相似度得分作為兩個文本的局部交互,然后使用分層的卷積神經(jīng)網(wǎng)絡(luò)來進行深度匹配;DRMM模型首先計算查詢-文檔對詞之間的相似度得分,并將其映射成固定長度的直方圖,然后將相似度直方圖送入一個前饋神經(jīng)網(wǎng)絡(luò)以獲取最終的得分;K-NRM[16]模型使用核池化來代替DRMM中的相似度直方圖,有效解決了生成直方圖時桶邊界的問題。
近年來已經(jīng)有學(xué)者提出句子級的檢索方法,但是這些方法僅使用無監(jiān)督學(xué)習(xí)將查詢句與文檔句之間的相似度得分簡單整合以獲取最終得分。文獻[17]中提出三種整合方法:第一個是將文檔中每個句子的相似度得分進行累加以獲得整個文檔的相似度得分;第二個是將文檔中全部句子相似度得分的平均值作為整個文檔的相似度得分;第三個是取文檔中句子相似度得分的最大值作為文檔的相似度得分。李宇等人[18]提出了相關(guān)片段比率的概念,取文檔中句子相似度得分的最大值與相關(guān)片段比率的乘積作為整個文檔的相似度得分。文中模型將句子級檢索與深度神經(jīng)網(wǎng)絡(luò)相結(jié)合,使用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)查詢句子與待檢索文檔句子之間的層次匹配信息,從而獲得整個查詢-文檔對的相似度得分。
該文提出了一個句子級深度關(guān)聯(lián)匹配模型(sentence level deep relevance matching model,SDRMM),具體來說,在句子級別的關(guān)聯(lián)匹配上使用了一個深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),學(xué)習(xí)查詢句與文檔句的層次匹配信息以獲取最終的查詢-文檔對得分。如圖2所示。
圖2 句子級深度關(guān)聯(lián)匹配模型
(1)
為獲取固定長度的匹配直方圖,該文對查詢句與文檔句之間的相似度得分按等級分組,每一組看做一個桶,統(tǒng)計落入各個桶中的文檔句個數(shù),然后取其對數(shù)作為最終的局部匹配信息,考慮到較多桶中可能只有一個文檔句子,直接取對數(shù)后值為0,會影響模型的訓(xùn)練效果,先對桶中的文檔句子數(shù)進行加一操作再取其對數(shù)。例如,將相似度范圍[-1,1]劃分為4個等級{[-1,-0.5),[-0.5,0),[0,0.5),[0.5,1]},查詢中的其中一個句子與待檢索文檔對應(yīng)的局部交互得分為(0.2,-0.1,0.6,0.7,0.8,0.9),那么該查詢句所對應(yīng)的固定長度的匹配信號就為[0,log2,log2,log3]。
深度關(guān)聯(lián)匹配模型的輸入即為上述查詢中各個句子與待檢索文檔之間的局部交互信息,首先使用前饋神經(jīng)網(wǎng)絡(luò)從不同水平的局部交互中學(xué)習(xí)層次匹配信息,針對每個查詢句得到一個與待檢索文檔的相似度得分,前饋網(wǎng)絡(luò)中隱藏層的輸出如式(2)所示:
i=1,2,…,M;l=1,2,…,L
(2)
(3)
(4)
由于在保證深度關(guān)聯(lián)匹配模型輸入的固定長度時使用了零填充方法,在訓(xùn)練時,模型可能會在經(jīng)常填充零的位置錯誤學(xué)習(xí)到較低的權(quán)重,也就是說,門控網(wǎng)絡(luò)在學(xué)習(xí)權(quán)重時,可能會對不同位置的局部匹配信號區(qū)別對待。為了避免這種問題,首先將零填充后的每個查詢的全部局部關(guān)聯(lián)匹配直方圖重新排列,然后再將其送入模型進行訓(xùn)練,實驗結(jié)果表明該做法能夠提高整體的檢索性能。
在已有的一些神經(jīng)信息檢索模型中,例如DRMM、PACRR[22]等,通常使用成對的排序損失最大間隔損失來訓(xùn)練模型,而在文中的句子級深度關(guān)聯(lián)匹配模型訓(xùn)練時,使用一個交叉熵損失來替換最大間隔損失,對比實驗表明,交叉熵損失可以提高模型的檢索性能。損失函數(shù)定義為:
L(Q,D+,D-,Θ)=
(5)
其中,Q為一條查詢,D+表示與查詢相關(guān)的文檔,D-表示與查詢不相關(guān)的文檔,Score(Q,D)表示查詢與文檔的相似度得分,Θ表示前饋神經(jīng)網(wǎng)絡(luò)和門控網(wǎng)絡(luò)中的全部參數(shù)。
使用Med數(shù)據(jù)集對提出的句子級深度關(guān)聯(lián)匹配模型進行評估,該數(shù)據(jù)集來自Glasgow大學(xué)收錄的IR標準文本測試集,其中包含1 033篇文檔,30條查詢,詳細情況如表1所示。對Med數(shù)據(jù)集進行預(yù)處理,去除標簽等無用信息,參照標準停用詞表刪去停用詞并提取詞干,實驗中使用五折交叉驗證以減少過度學(xué)習(xí),將全部查詢劃分為5部分,每次取4/5的查詢作為訓(xùn)練集,剩下的作為驗證集。此外,還在Med數(shù)據(jù)集上對提出的模型和一些基準信息檢索模型進行比較,使用MAP、檢索出的Top-10個文檔的歸一化折現(xiàn)累積增益nDCG@10和Top-10個文檔的準確率P@10作為評估指標。
表1 Med數(shù)據(jù)集信息
使用一些現(xiàn)存的基準模型如BM25、DRMM、無監(jiān)督句子級檢索模型以及筆者之前提出的無監(jiān)督句子級關(guān)聯(lián)匹配模型與該文的句子級深度關(guān)聯(lián)匹配模型進行比較,本節(jié)將對這些基準模型進行簡要介紹。
BM25:該模型代表了一種經(jīng)典的概率檢索模型[23],它通過詞項頻率和文檔長度歸一化來改善檢索結(jié)果。
無監(jiān)督句子級檢索模型:左家莉等人提出一種結(jié)合句子級別檢索的文檔檢索模型,首先計算待檢索文檔中每個句子與查詢的相似度得分,然后通過對這些相似度得分的簡單加和、求平均或取最大值來獲取整個文檔與查詢的相似度得分,這里分別將三種不同的整合方法表示為SRIR1、SRIR2和SRIR3;李宇等人提出一種文檔檢索中的片段化機制,通過設(shè)定合適閾值從文檔中篩選出高度相關(guān)片段并計算相關(guān)片段比率,然后將相關(guān)片段中的最高相似度得分與相關(guān)片段比率的乘積作為整個文檔與查詢的相似度得分,這里將該模型記為TSM_BM25;筆者在之前的工作中也提出了一種無監(jiān)督句子級檢索模型,先使用預(yù)訓(xùn)練的Sentence-Bert模型獲取查詢與待檢索文檔中各個句子的向量表示,使用余弦距離計算句子之間的相似度得分,然后再使用現(xiàn)有的整合方法獲取整個文檔的得分,模型記作MI-IR。
DRMM:該模型是一種關(guān)注文本交互的深度匹配模型,首先通過計算查詢中的詞與待檢索文檔中的詞之間的相似度獲取局部關(guān)聯(lián)匹配直方圖,然后通過前饋神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)出分層的關(guān)聯(lián)匹配從而獲取最終查詢-文檔對的相似度得分。
該文的句子級深度關(guān)聯(lián)匹配模型是由三層前饋神經(jīng)網(wǎng)絡(luò)和一層門控網(wǎng)絡(luò)構(gòu)成的,在前饋神經(jīng)網(wǎng)絡(luò)中,一層輸入層接收局部關(guān)聯(lián)匹配信號,設(shè)有30個節(jié)點,兩個隱藏層分別包含5個節(jié)點和1個節(jié)點,獲取每個查詢句與文檔的相似度得分;門控網(wǎng)絡(luò)設(shè)有1個節(jié)點,獲取最終查詢-文檔對的相似度得分。在訓(xùn)練時,使用Adam優(yōu)化器,batch-size設(shè)為20,學(xué)習(xí)率設(shè)為0.01,epoch設(shè)為3,門控網(wǎng)絡(luò)中參數(shù)向量的維度設(shè)為768,與句向量的維度保持一致。對基準模型DRMM,使用CBOW模型獲取300維的詞向量用于計算查詢中的詞與待檢索文檔中的詞之間的局部關(guān)聯(lián)。
本節(jié)展現(xiàn)不同的基準模型以及該文的句子級深度關(guān)聯(lián)匹配模型在Med數(shù)據(jù)集上的實驗結(jié)果,如表2所示。
表2 Med數(shù)據(jù)集測試評估
可以看出,幾個無監(jiān)督的句子級檢索模型均比傳統(tǒng)的文檔級概率檢索模型BM25在性能上有所提升,這表明一些相似度計算方法可能會受到文本長度的影響。在這些無監(jiān)督句子級檢索模型中,SRIR模型與TSM_BM25模型的檢索性能相差不大,表明在Med數(shù)據(jù)集上對用BM25公式計算出來的文檔句的相似度得分使用不同的無監(jiān)督整合方法差別不大,而筆者之前提出的MI-IR模型,相對于其他幾種無監(jiān)督句子級檢索模型在準確率和nDCG上均有一定的提升,說明Sentence-Bert模型確實能更好地捕獲句子的語義信息,從而提升文檔檢索的性能。神經(jīng)檢索模型DRMM相較于傳統(tǒng)的BM25檢索模型在MAP、P@10以及nDCG@10上分別有8.1%、11.9%和6.9%的提升,且優(yōu)于幾種無監(jiān)督的句子級檢索模型,比MI-IR模型在MAP上有7.3%的提升,這也表明了關(guān)注文本之間交互的深度神經(jīng)網(wǎng)絡(luò)檢索方法能夠提升文檔檢索的性能。
在這些檢索模型中,該文的句子級深度關(guān)聯(lián)匹配模型(SDRMM)明顯表現(xiàn)更好,其相較于傳統(tǒng)檢索模型BM25在MAP、P@10以及nDCG@10上分別有18.6%、19.3%和15.4%的提升;較無監(jiān)督句子級檢索模型中表現(xiàn)最好的MI-IR模型分別有17.7%、11.3%和8.9%的提升;較深度關(guān)聯(lián)匹配模型DRMM分別有9.6%、6.6%和7.9%的提升。證實了以語義相對完整的句子為單位的查詢-文檔對之間的局部關(guān)聯(lián)匹配要比以詞為單位的局部關(guān)聯(lián)匹配表現(xiàn)好,能夠捕獲文本之間更加精確的匹配信息。
通過消融實驗對SDRMM做進一步分析,以驗證打亂查詢中局部匹配直方圖輸入順序以及使用交叉熵損失的有效性。實驗中仍然使用Med數(shù)據(jù)集,SDRMMsequence表示查詢匹配直方圖順序未打亂且使用交叉熵損失的SDRMM;SDRMMhinge表示查詢匹配直方圖順序打亂且使用鏈損失的SDRMM;SDRMMhinge×sequence表示既未將查詢匹配直方圖順序打亂又未使用交叉熵損失的SDRMM,實驗結(jié)果如圖3所示。
圖3 消融實驗評估
從圖中數(shù)據(jù)可以看出,在同樣使用了交叉熵損失的情況下,打亂查詢句的順序比不打亂查詢句的順序在P@10和nDCG@10上均有近1%的提升;在同樣打亂查詢句的順序的情況下,使用交叉熵損失比使用鏈損失在P@10和nDCG@10上分別有近3%和近2%的提升,在MAP上有0.3%的提升;不打亂查詢句順序且使用鏈損失的模型效果最差,在MAP指標上低于SDRMM 0.8%,在P@10和nDCG@10上分別低于SDRMM近4%和近3%??偟膩碚f,選擇的最優(yōu)的SDRMM相比于SDRMMsequence、SDRMMhinge以及SDRMMhinge×sequence在Top-K個檢索文檔的MAP、準確率和nDCG上均有一定的提升,證實提出的打亂查詢中句子的輸入順序以及使用交叉熵損失對于提升文檔檢索的性能的有效性。
提出了一種新的關(guān)注文本之間交互的神經(jīng)信息檢索模型,通過獲取查詢與待檢索文檔之間更深層的匹配信息來提高檢索的性能?,F(xiàn)存的一些深度關(guān)聯(lián)匹配模型通常是以詞為單位計算查詢與文檔之間的局部交互信息,但這往往忽略了詞之間的順序和語義信息。使用語義相對完整的句子為單位,在已有的無監(jiān)督句子級檢索的基礎(chǔ)上,使用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)查詢句與待檢索文檔句之間的層次交互信息從而得到整個查詢-文檔對的相似度得分。為了進一步提升文檔檢索的性能,使用交叉熵損失來替代現(xiàn)有一些模型中常用的鏈損失,此外,為了減小模型訓(xùn)練時對不同位置查詢句區(qū)別對待的影響,在輸入查詢中的句子時,將其順序打亂。在Med數(shù)據(jù)集上的實驗結(jié)果表明,該文的句子級深度關(guān)聯(lián)匹配模型比一些傳統(tǒng)的信息檢索模型以及先進的檢索模型表現(xiàn)好。
當(dāng)前在計算查詢句與待檢索文檔句之間的相似度得分時,只簡單使用了余弦相似度函數(shù),在下一步的工作中,將對句子之間的相似度計算方法進行改進,考慮結(jié)合文檔中句子的位置信息,因為句子的位置也會影響其重要程度;還可以將多種相似度算法相結(jié)合,以綜合不同算法的優(yōu)勢。還希望能在更多的數(shù)據(jù)集上訓(xùn)練該句子級深度關(guān)聯(lián)匹配模型,以進一步查看模型在不同數(shù)據(jù)集上的表現(xiàn)。