翁兆琦,張 琳
(上海海事大學 信息工程學院,上海 201306)
文本語義匹配是自然語言處理中眾多任務(wù)的基礎(chǔ),也是自然語言處理的一個重要研究方向。文本語義匹配的應(yīng)用場景十分廣泛,例如信息檢索中查詢語句和檢索內(nèi)容之間的語義匹配度、自動問答中查詢問句與候選答案之間的語義匹配度等。隨著深度學習的不斷發(fā)展,關(guān)于文本語義匹配問題的研究已經(jīng)逐漸從傳統(tǒng)基于統(tǒng)計的方法轉(zhuǎn)變?yōu)樯疃任谋菊Z義匹配模型。目前,文本語義匹配研究存在的挑戰(zhàn)主要包括詞語匹配的多元性、短語匹配的結(jié)構(gòu)性和文本匹配的層次性3個方面[1]。
本文構(gòu)建文本匹配模型MAII,分別從顆粒、局部、全局3 個角度進行語義信息交互,以獲得更豐富的語義信息。其中,顆粒角度的交互用于匹配詞語之間的語義,局部角度的交互用于匹配短語結(jié)構(gòu),全局角度的交互用于匹配文本層次性。此外,在CCKS 2018 問句匹配大賽的中文數(shù)據(jù)集上進行實驗,以驗證模型的有效性。
自然語言是一種包含復(fù)雜結(jié)構(gòu)和豐富含義的語言。因此,包含豐富語義知識的文本表示是文本語義匹配的基礎(chǔ)。深度文本匹配模型的發(fā)展主要可歸納為以下3 個階段:
1)單語義模型階段,即先利用簡單的神經(jīng)網(wǎng)絡(luò)編碼文本,再計算文本之間的相似度。如DSSM 模型[2]先使用詞哈希方法簡化網(wǎng)絡(luò)的輸入向量維度,再利用深度神經(jīng)網(wǎng)絡(luò)將2 個文本表示成同一語義空間中的低緯度語義向量,最后計算它們之間的語義相似度。
2)多語義模型階段,即考慮到文本的局部結(jié)構(gòu),從文本的多顆粒角度解讀文本。如MV-LSTM 模型[3]采用雙向長短時記憶網(wǎng)絡(luò)Bi-LSTM 處理2 個文本,為考察每個單詞在不同語境下的含義,對長短時記憶網(wǎng)絡(luò)LSTM[4]隱藏層的輸出進行語義匹配度計算。
3)深層次的句間交互模型階段,即從文本不同的方面考慮深層次的交互,得到更豐富的語義表示,如BIMPM 模型、DIIN 模型、MatchPyramid 模型和ESIM模型。BIMPM 模型[5]分別在句子的2 個方向進行語義編碼,并結(jié)合4 種匹配方式進行文本的語義相似度匹配;DIIN 模型[6]先通過高速網(wǎng)絡(luò)對2 個句子進行語義編碼,得到同一個句子之間不同單詞的交互信息,再對之前的語義編碼進行文本內(nèi)部的注意力交互,最后通過DenseNet[7]網(wǎng)絡(luò)保留特征信息;MatchPyramid 模型[8]通過指示函數(shù)、余弦相似度、點積3 種方法構(gòu)建相似度矩陣,并用卷積神經(jīng)網(wǎng)絡(luò)對矩陣進行特征提取,最后進行分類得到句子的相似度;ESIM模型[9]結(jié)合了BiLSTM和注意力機制,經(jīng)過局部推理和推理組合后得到2 個文本之間的語義匹配關(guān)系。
上述模型在很多高質(zhì)量、大規(guī)模的英文開源數(shù)據(jù)集(如Quora、SNLI 等)上都表現(xiàn)出較強的競爭力,但是由于中文在語法結(jié)構(gòu)和語境表達上較英文更為復(fù)雜,并且中文文本語義匹配數(shù)據(jù)集相對缺乏,因此目前對中文文本語義匹配的研究較少。而這些在英文數(shù)據(jù)集上表現(xiàn)良好的文本語義匹配模型可能在中文數(shù)據(jù)集上表現(xiàn)并不出色。DSSM 模型中使用的詞哈希方法并不適用于中文,并且DSSM 采用了詞袋模型,喪失了文本的語序信息和上下文信息;ESIM 模型和DIIN 模型雖然考慮了文本的語序信息和上下文信息,并且提取了這些信息的交互特征,但是對文本更多細節(jié)信息的交互仍考慮不夠。
本文構(gòu)建基于多角度信息交互的文本語義匹配模型MAII,針對詞語匹配、短語結(jié)構(gòu)匹配、文本層次性匹配這3 個方面,分別從顆粒、局部、全局3 個角度來充分利用文本原始的交互信息。首先得到詞粒度的交互矩陣,然后通過卷積神經(jīng)網(wǎng)絡(luò)提取文本結(jié)構(gòu)信息,進一步得到短語結(jié)構(gòu)的交互矩陣,之后通過自注意力機制得到文本內(nèi)部信息的交互矩陣,將所有交互矩陣進行拼接并送入Bi-LSTM 中提取特征,分別得到2 個文本最終的語義表示,經(jīng)過平均池化后再由一個多層感知機進行分類,輸出2 個文本的匹配度。
對于給定的文本語義匹配樣本sample={score,P,H}(其中P、H 表示需要進行語義匹配的2 個文本,score 為2 個文本的匹配度,score 可以為簡單的0/1 標簽,也可以為連續(xù)的數(shù)值),文本語義匹配就是使P、H 通過文本語義匹配模型得到它們的匹配度得分score。本文實驗所采用數(shù)據(jù)集的score 就是簡單的0/1 標簽,以如下數(shù)據(jù)集樣本為例,通過MAII模型判斷score是否等于1。當score=1時,表示2 個文本表達了同一語義,構(gòu)成復(fù)述關(guān)系;當score=0 時,表示2 個文本表達了不同的語義,不構(gòu)成復(fù)述關(guān)系。
例1
短文本P:卡里有錢為什么顯示還款失?。?/p>
短文本H:為啥賬戶有錢卻還款失???
標簽score:1
例2
短文本P:一般多久能收到審核電話?
短文本H:一直都是等待電話通知
標簽score:0
本文首先對文本P、H 做向量化處理,然后將其輸入多角度信息交互模型MAII 中進行端到端的訓練,最后輸出分類結(jié)果,得到2 個文本的匹配度。MAII模型架構(gòu)如圖1 所示。
圖1 MAII 模型架構(gòu)Fig.1 Framework of MAII model
MAII 模型主要由以下4 個部分組成:
1)表示層:將自然語言形式表示的文本P、H 向量化,以方便后續(xù)傳入MAII 模型中訓練。
2)多角度注意力交互層:分別從3 個角度計算不同層次的信息交互,得到3 個注意力交互矩陣。
3)語義組合層:對得到的交互矩陣進行拼接組合后傳入BiLSTM中提取特征,得到最終的文本語義表示。
4)預(yù)測層:將最終的文本語義表示經(jīng)過平均池化后輸入多層感知機進行分類。
2.2.1 表示層
表示層將自然語言形式表達的2 個短文本向量化,便于后續(xù)語義向量的表達。利用Word2Vec[10]、GloVe[11]等預(yù)訓練的詞向量能夠使語義相近的2 個詞語在維度上也更靠近,給模型帶來更多的語義知識,使其具有更好的匹配性能。
當前較流行且取得了較好效果的預(yù)訓練語言模型有GPT 模型[12]、BERT 模型[13-14]等,這些語言模型參數(shù)較多,加載速度慢,內(nèi)存、時間等消耗大。Word2Vec 是基于局部語料訓練的,其特征提取基于滑窗;而GloVe是基于全局詞頻統(tǒng)計的詞表征工具,雖然利用到了全局信息,但是共現(xiàn)矩陣大,加載速度慢。綜合考慮到實驗效果和內(nèi)存消耗等原因,本文選擇Word2Vec語言模型來訓練詞向量[15]。Word2Vec根據(jù)上下文之間的出現(xiàn)關(guān)系訓練詞向量,有Skip Gram、CBOW(Constinuous Bags of Words)2 種訓練模式,Skip Gram 根據(jù)目標單詞預(yù)測上下文,CBOW 則根據(jù)上下文預(yù)測目標單詞,最后使用模型的部分參數(shù)作為詞向量。
首先對短文本P、H 進行分詞,然后將每個單詞用Word2Vec 預(yù)訓練詞向量表示,對于詞表中未出現(xiàn)的單詞進行隨機初始化。對于P、H 這2 個短文本,其詞嵌入表示如式(1)和式(2)所示:
其中:Ep??m×d;Eh??n×d;m、n分別表示短文本P、H中詞的個數(shù);d表示詞向量的維度。
2.2.2 多角度注意力交互層
一個好的語義匹配模型需要進行豐富的信息交互。注意力機制可以幫助模型對輸入的每個部分賦予不同的權(quán)重,抽取出更關(guān)鍵和重要的信息,使模型做出更準確的判斷,同時又不會為模型的計算和存儲帶來更大的開銷。本文分別從顆粒、局部、全局3 個角度進行注意力交互。
1)基于顆粒角度的注意力交互
為使2 個文本互相匹配到對方低層次的語義信息,首先計算文本中詞級粒度的交互信息。
基于顆粒、局部角度的注意力交互層以相同的方式分別計算文本P、H 的注意力機制表示。以計算基于顆粒角度的注意力機制表示為例:
(1)計算文本P 中第i個詞和文本H 中第j個 詞之間的點乘相似度eij,如式(3)所示:
其中:eij?Rm×n。
(2)分別得到文本P、H 的注意力表示αp、βh,如式(4)和式(5)所示:
2)基于局部角度的注意力交互
相較于利用N-gram 算法獲取文本的結(jié)構(gòu)信息,卷積神經(jīng)網(wǎng)絡(luò)由于局部連接和權(quán)值共享而計算量小,因此具有高效性。此外,利用卷積神經(jīng)網(wǎng)絡(luò)的位置不變性更易得到文本P、H 的局部結(jié)構(gòu)信息。針對判斷2 個文本之間語義是否相似的問題,以文本P1、H1 為例進行說明。文本P1 表示的是詢問微粒貸分期還款功能的頁面在哪里;文本H1 則表示的是詢問微粒貸分期還款所需要的月數(shù)頁面在哪里。如果舍棄了文本頭部和尾部的信息,而只用文本中間的信息來判斷這2 個文本語義是否相似,則會得到錯誤的結(jié)果。
P1:哪有頁面顯示微粒貸的分期還款???
H1:沒有頁面顯示微粒貸分期還款的月數(shù)?
無論是文本頭部、尾部的語義信息量還是文本中間的語義信息量,在對2 個文本進行語義匹配度計算時都具有相同的重要性。因此,本文選用寬卷積[16-18],具體步驟如下:
(1)將經(jīng)過表示層的詞嵌入Ep、Eh輸入卷積神經(jīng)網(wǎng)絡(luò)中提取局部結(jié)構(gòu)信息。經(jīng)過Wide_CNN 結(jié)構(gòu)得到的文本語義矩陣可以表示如式(6)和式(7)所示:
圖2 Wide_CNN 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Structure of Wide_CNN network
(2)對經(jīng)過Wide_CNN 結(jié)構(gòu)的含有文本局部結(jié)構(gòu)信息的編碼層輸出進行注意力交互計算,分別得到文本P、H 最終的注意力表示cp、ch。
3)基于全局角度的注意力交互
為了捕獲文本的長距離依賴,考慮文本的語序和上下文信息,得到深層次語義信息,需要在文本內(nèi)部進行交互,尋找文本序列內(nèi)部的聯(lián)系。以文本P為例,計算P 的自注意力表示Sp如式(8)所示:
其中:αij=;d為詞向量的維度。同理,得到H的自注意力表示Sh。
2.2.3 語義組合層
經(jīng)過多角度的交互信息計算,可以得到3 種注意力交互矩陣。將上文得到的4 個語義矩陣進行拼接組合得到新的語義表示,即:
在此基礎(chǔ)上,將新的語義表示輸入Bi-LSTM 提取文本語義特征,在LSTM 中包含3 個門控單元(輸入門It、遺忘門Ft、輸出門Ot)和2 個記憶單元(長期記憶、短期記憶ht)。在t時刻,LSTM 的3 個門單元和2 個記憶單元的計算方法如下:
其中:ht-1為t-1 時刻隱藏層的輸出;xt為當前時刻(即t時刻)的輸入;WI、WF、WC、WO表示不同的權(quán)重矩 陣;bI、bF、bC、bO表示不同的偏置矩陣;σ 表示Sigmiod 函數(shù);ht表 示t時 刻LSTM 單元的輸出。
最終的文本語義表示如式(17)和式(18)所示:
其中:、分別為經(jīng)過Bi-LSTM 編碼后2 個文本在t時刻的語義表示。
2.2.4 預(yù)測層
為將整個文本的語義聚合成一個向量,對Bi-LSTM的輸出結(jié)果進行平均池化操作來提取語義特征:
最后,將語義向量V傳入帶有ReLU 激活函數(shù)的多層感知機的分類器中進行分類。本文使用softmax 交叉熵損失函數(shù),整個網(wǎng)絡(luò)采用反向傳播進行端到端的訓練。
使用CCKS 2018 微眾銀行智能客服問句匹配大賽[19]提供的數(shù)據(jù)集進行實驗,驗證本文MAII 模型的有效性。該數(shù)據(jù)集提供了10 萬對訓練文本對、1 萬對驗證文本對和1 萬對測試文本對,其中包括同義對和非同義對,同義對和非同義對的比例接近1∶1。
以損失值和準確率2 個指標來評價測試模型。實驗由300 維的Word2Vec 預(yù)訓練詞向量工具更新分好詞的文本對,對于詞表中未出現(xiàn)的詞采用隨機初始化方式表達。Bi-LSTM 的隱藏層大小為150,卷積核的寬度設(shè)置為3,dropout 比例為0.5,batch 的大小為128,實驗選用Adam 作為優(yōu)化器。
作為實驗對比,根據(jù)相關(guān)的論文進行復(fù)現(xiàn)或使用開源代碼,將3 個在英文數(shù)據(jù)集上表示良好的語義匹配模型應(yīng)用到本次實驗的數(shù)據(jù)集中。實驗中所有模型均不進行任何特征工程[20-21]。各模型的實驗對比結(jié)果如表1 所示。實驗結(jié)果表明,本文提出的MAII 模型在數(shù)據(jù)均衡的語義匹配中文數(shù)據(jù)集上表現(xiàn)較好。
表1 不同文本語義匹配模型的實驗結(jié)果Table 1 Experimental results of different text semantic matching models
為探索3 種角度的交互信息對于文本語義匹配的有效性,本文另做了3 次實驗,在保證其他模塊和參數(shù)不變的情況下,分別去除基于顆粒角度的信息交互模塊、基于局部角度的信息交互模塊和基于全局角度的信息交互模塊,在測試集上得到如表2 所示的準確率??梢钥闯觯谌コ我粋€角度的交互信息模塊后,模型在測試集上的準確率都有所下降,這說明3 種角度的交互信息都具有重要的作用。其中,其中基于顆粒角度的交互信息模塊對MAII 模型的影響最大,缺少該模塊的模型準確率比MAII 模型低2.78%。
表2 3 種角度的交互信息對模型性能的影響Table 2 Influence of three-angles interactive information on the performance %
文本語義匹配實際上包含了很多類似的任務(wù)場景,如文本相似度計算、復(fù)述識別、問答匹配、自然語言推理、文本蘊含識別、機器閱讀理解等。雖然在這些任務(wù)中,文本的語義匹配根據(jù)場景的不同而有略微的差異,但是很多情況下文本語義匹配模型在這些類似的任務(wù)上都具有通用性。本文實驗選擇了樣本標簽為0/1 的短文本對。從同義文本對P:“卡里有錢為什么顯示還款失敗”和“H 為啥賬戶有錢卻還款失敗”中可以看到,P 中“卡里/有錢”“還款/失敗”與H 中“賬戶/有錢”“還款/失敗”的語義是高度契合的。這些詞語或短語的匹配可以通過本文提出的基于顆粒角度的交互和基于局部角度的交互得到很好實現(xiàn)。
在預(yù)測層,為了能夠得到更多的語義特征,本文考慮了除平均池化外的最大池化,以期通過拼接平均池化和最大池化的結(jié)果來獲取更多的信息,但筆者經(jīng)過實驗發(fā)現(xiàn),添加了最大池化并沒有提高測試集的準確率反而增加了計算量,因此,本文沒有具體敘述。
此外,深度學習是端到端的訓練難以解釋,而本文通過提出的3 個角度給很好地解釋了這一過程,并且本文對提出的3 個角度分別進行了實驗,結(jié)果證明3 個角度的提出都是非常有意義的。
本文提出基于多角度信息交互的文本語義匹配模型MAII,從3 個不同的角度考慮文本信息的交互以獲得含有豐富語義知識的文本表示。實驗結(jié)果表明,MAII模型較其他3 個在英文數(shù)據(jù)集上表現(xiàn)良好的模型,在中文數(shù)據(jù)集上準確率更高。從MAII 模型各模塊拆分實驗結(jié)果可見,從不同角度考慮文本的交互信息能夠為文本的語義表示引入更豐富的知識,提升文本匹配任務(wù)的準確率。MAII 模型雖然為中間的多角度交互層提供了更為豐富的語義知識,但是在開始的表示層僅使用了Word2Vec 預(yù)訓練詞向量工具對文本進行向量化,而Word2Vec 用法雖然簡單易懂,卻不能解決一詞多義的問題。因此,下一步將使用BERT、EMLO 等動態(tài)詞向量模型向量化文本,使文本在進入多角度交互層之前可以為模型引入更多的語義信息。此外,在多角度交互層本文僅簡單地對4 種交互矩陣進行了拼接,沒有更深層次地考慮4 種交互矩陣之間的差異性。因此,后續(xù)將進行語義的各種推理和組合,加深對語義信息的理解和建模。