蘇玉蘭,陳 鑫,洪 宇,朱朦朦,張 民
(蘇州大學 計算機科學與技術學院,江蘇 蘇州 215006)
相似問句識別是自然語言理解領域中一個重要的研究方向,在自動問答[1]、復述識別[2]、文本檢索[3]等領域發(fā)揮著重要作用。相似問句識別通常被視為一個二元分類問題,即對于兩個問句q1與q2進行識別,判斷這兩個問句是否語義相似。在早期研究工作中,主要是基于特征工程,通過構建有效特征進行分類。隨著深度神經網絡的快速發(fā)展,通過復雜的深度神經網絡模型替代特征工程進行問句相似識別,已取得優(yōu)異的效果。
但是,在自動問答系統(tǒng)中,相似問句識別并不是簡單的對兩個問句q1,q2進行二元分類的場景,而是給定q0,從{q1,q2,q3,…,qn}中找出與q0相似問句的復雜場景。對此,現(xiàn)有工作通常是將其視為召回和再排序兩個階段。首先利用檢索算法等從常見問答數(shù)據(jù)集{q1,q2,q3,…,qn}召回與q0相關的k條問答對,再將其轉換成k次的二元問句匹配場景。面對自動問答中的大量數(shù)據(jù),召回相關問句時考慮時效問題,通常是基于淺層的語義或特征衡量進行召回,再利用復雜的神經網絡模型對召回數(shù)據(jù)進行基于深度語義衡量的再排序處理。但是,如果召回前k條問答對的準確率不高,后續(xù)基于二元匹配方法的模型再優(yōu)秀也無法得到正確的結果,這是一個錯誤傳遞問題。而且如果召回的數(shù)量較多,二元匹配模型較為復雜,整個過程時間消耗會比較大。因此,面對問答系統(tǒng)中的相似問句識別問題,如何在保證時效性的同時,又能夠對問句進行深度語義上衡量,這是本文所面臨的問題。
針對以上問題,本文受人臉識別相關工作的啟發(fā),提出了基于語義空間距離的相似問句識別方法(Semantic Space Distance Method,SSDM)。在人臉識別任務中,需要將一張新的人臉照片F(xiàn)0與已有的人臉數(shù)據(jù){F1,F2,F3,…,Fn}進行識別得出結果。整個場景除了識別的介質(圖像和文本)不同之外,與自動問答系統(tǒng)中相似問句識別場景高度相似。人臉識別相關任務通過訓練得到基于卷積神經網絡的特征提取模型,再通過特征提取模型將所有圖像投射到相同的特征空間上進行距離衡量,本文所提出的SSDM方法也與上述任務的方法類似。SSDM分為訓練與測試兩個階段。在訓練時,通過多分類訓練,使得SSDM方法中的問句語義編碼模型能夠對不同問句編碼得到有區(qū)分度的語義向量。在測試時,通過SSDM方法中訓練好的問句語義編碼模型將所有的問句投射到同一語義向量空間,利用余弦距離進行相似度衡量。經實驗證明,該方法與多個基線方法相比在性能上更優(yōu),并且該方法在工作環(huán)境中的時效性也能得到保證。
本文的主要貢獻歸納如下:
(1) 提出基于語義向量空間距離的相似問句識別方法SSDM,將自動問答系統(tǒng)中的相似問句識別類比于人臉識別場景,通過多類別數(shù)據(jù)進行多分類學習,利用人臉識別任務中的多個Margin Loss損失函數(shù)使得SSDM的問句語義編碼模型能夠將相似問句在語義空間更聚合,不相似問句在語義空間上更分散,從而將相似問句識別轉化為語義空間中的距離進行識別。
(2) 通過SSDM方法訓練得到的語義編碼模型,在測試時可以預先處理測試數(shù)據(jù)集,將大規(guī)模問句進行語義編碼投射到語義空間向量進行存儲,當測試問句進行相似問句識別時,只需要一次語義編碼,再進行常數(shù)時間復雜度的余弦距離計算與排序就可以得到相似問句。在時效性上,SSDM方法優(yōu)于基于二元問句匹配識別方法;在性能上,通過在ASQD數(shù)據(jù)上的實驗結果得知,SSDM方法性能優(yōu)于多個基準方法。
本文組織結構如下: 第1節(jié)介紹相關工作;第2節(jié)介紹SSDM方法的架構和具體細節(jié);第3節(jié)介紹相關實驗和結果,并進行分析;第4節(jié)為總結與展望。
相似問句識別研究本質上是對問句的語義理解研究,相關方法研究大致可以分為以下幾種。
(1)基于語素權重的方法。經典的檢索模型BM25算法[4]和向量空間模型算法[5]都是通過對問題進行語素切分,通過相關的語素權重,運用公式計算得到相似性得分,根據(jù)得分進行相似問題的識別判斷。基于語素權重計算的方法,優(yōu)點是計算簡單快捷,對于數(shù)量較多的數(shù)據(jù)仍然能夠快速得出結果。缺點是過于依賴語素信息,缺乏語義上的衡量,對于詞義空缺的問題無法有效解決。
(2)基于特征工程的方法。大多數(shù)早期工作都是基于特征工程進行相似問句識別。它們基于語料分析發(fā)現(xiàn)語法或者句法結構等特征,常見特征有編輯距離[6]、構建模板[7]、句法結構信息[8]等。同時,許多工作[9]將這些構建的特征結合BM25算法或者向量空間模型,更好地進行相似問句檢索識別?;谔卣鞴こ痰姆椒▋?yōu)點在于針對特定數(shù)據(jù)構建的特征有較優(yōu)的區(qū)分能力,但是其缺點也相當明顯,特征構建繁瑣且適用性不強。
(3)基于翻譯模型的方法。一些研究者將相似問題檢索識別作為一個翻譯任務。Zhou等人[10]提出基于短語的翻譯模型用于問題檢測。通過翻譯模型得到一個問句翻譯成另一個問句的概率,利用這個概率衡量這兩個問句的相似性。該方法的優(yōu)點在于: 對于問句與問句之間的詞義空缺問題,翻譯模型可以通過訓練不同詞語、短語之間的對齊予以解決。它的缺點在于: 當一個問題q0,從數(shù)據(jù){q1,q2,q3,…,qn}進行相似問句檢索時,轉換成n次q0與qi之間翻譯模型概率判斷,當n的數(shù)值較大時,時效性不高。
(4)潛在主題模型方法。該方法認為相似問題之間的主題也應當一致,而不能只考慮語素層級上的相似性。Ji等[11]利用主題模型獲取問句的潛在主題分布表征,結合傳統(tǒng)的檢索方法BM25等一起對相似問句進行識別。該方法的優(yōu)點在于: 利用主題信息,從更多維度進行相似問句識別。它的缺點在于: 對于問題與問題之間的衡量,潛在主題信息也只是類似于構建一個特征用于輔助,主題信息特征有時區(qū)分度不高。
(5)基于深度學習的方法。隨著神經網絡的快速發(fā)展,通過多種神經網絡模型架構針對自然問句進行深度語義編碼,并進行相似度衡量。這些方法大多將相似問句識別視為一個二元匹配問題,可以分為以下三種: 孿生卷積神經網絡模型[12]與孿生循環(huán)神經網絡模型[13]等通過構建模型將問句進行向量表示并分類得結果。匹配金字塔模型(MatchPyramid)[14]、多卷積自交互匹配模型(MCSM)[15]等在對問句向量表示的基礎上通過對兩個問句向量充分交互融合進行分類,這類方法因為對兩個問句之間的語義表示進行了充分交互匹配,性能通常更優(yōu)。第三種是基于BERT[16]這類的大規(guī)模預訓練模型,通過針對相似問句二元匹配識別任務的微調,在性能上取得突破性進展?;谏疃葘W習方法的優(yōu)點在于: 深度語義匹配,解決詞義空缺的問題。其缺點在于: 將相似問題識別轉換成一個二元匹配任務,在實際環(huán)境中,需要進行n次二元匹配,當n較大時,時效性不高。
相似問句識別任務基于深度神經網絡取得了很大的進展。但是,現(xiàn)有的基于深度神經網絡模型的方法,將相似問句識別轉換成二元相似問句匹配識別。這使得在實際問答場景中,面對大量數(shù)據(jù),考慮時效性問題,通常是先利用經典的檢索算法等進行相似問句的召回,再基于此進行深度神經網絡模型匹配。這使得最終性能受限于召回數(shù)據(jù)的準確性。
針對以上問題,我們將人臉識別任務與相似問句識別任務進行對比,如圖1所示。人臉識別任務,旨在給定一張人臉圖像F0,從已有的人臉數(shù)據(jù){F1,F2,F3,…,Fn}進行識別判斷該人臉圖像的身份。這與相似問句識別任務極為相似。而人臉識別任務,主要是基于卷積神經網絡[17](Convolutional Neural Network,CNN)對人臉圖像進行高維特征抽取并進行相似人臉識別。例如,Deepface[18]、SphereFace[19]、CosFace[20]等。
圖1 人臉識別和相似問句識別
在圖1中,訓練好的人臉特征提取模型會提前將數(shù)據(jù)庫的人臉圖像轉化為特征向量{f1,f2,f3,…,fn},每當有新的人臉圖像F0,通過特征抽取得到f0,最后通過特征向量之間的距離遠近進行人臉識別。而前沿的相似問句識別是將任務轉化成二元分類任務,在實際使用時會先從大規(guī)模的問句集合{S1,S2,S3,…,Sk}進行相似問句召回,然后基于召回數(shù)據(jù),進行多次S0與Si的二分類判斷。
因此,受人臉識別任務的啟發(fā),本文提出基于語義空間距離的相似問句識別方法SSDM,該方法不將相似問句識別轉化為二元分類問題,而是基于人臉識別任務的思想,通過多分類訓練一個有語義向量區(qū)分度的語義編碼模型,將所有問句投射到語義向量空間,基于語義空間距離進行相似問句衡量識別。
我們首先在2.1節(jié)介紹SSDM的整體架構組成。接著分別在2.2節(jié)與2.3節(jié)針對SSDM的細節(jié)進行詳細介紹。
首先,本文給定相似問句識別場景如下: 存在常用問答數(shù)據(jù)集Q={Q1,…,Qi,…,Qn},共有n個互不相似的問句集,每個問句集Qi=(q1,q2,…,qi),包含i(i≥3)個互相相似的問句。對于用戶問句q0,需要從數(shù)據(jù)集中找出與其相似的問句,即qsmilar=Search(q0,Q)?;谠搱鼍埃疚奶岢龌谡Z義空間距離的相似問句識別方法SSDM,其框架如圖2所示。
圖2 基于語義空間距離的相似問句識別方法
SSDM方法框架主要分為訓練和測試兩個階段。在訓練階段,數(shù)據(jù)集Q={Q1,…,Qi,…,Qn}中每個問句集Qi包含的問句都對應相同類別標簽Li,整個數(shù)據(jù)集總共有n個類別標簽。不同于之前相關研究方法訓練需要輸入兩個問句與對應的0/1標簽,SSDM方法在訓練時只輸入一個問句與對應的類別標簽(q,Li),整個訓練過程是通過對每個問句q進行n分類訓練。如圖2所示,在訓練時,SSDM方法通過語義編碼模型Encoder將問句q編碼成語義向量,通過對應的多類別標簽和特定的損失函數(shù),利用反向傳播對語義編碼模型Encoder進行優(yōu)化調整。在測試階段,SSDM方法利用訓練好的語義編碼模型Encoder,將測試問句{q1,q2,…,qn}與用戶問句q0編碼映射到相同語義空間中,得到各自的向量表示{S1,S2,…,Sn}與S0,通過計算向量S0與所有Si之間的余弦距離進行排序,從而得到最終相似問句。本文將在2.2節(jié)介紹語義編碼模型,2.3節(jié)介紹SSDM使用的損失函數(shù)。
語義編碼模型Encoder是SSDM方法的主要訓練目標,其目的主要是將自然問句進行語義編碼,能夠將所有的自然問句進行語義空間的投射,并在語義空間上通過距離進行問句相似識別。語義編碼架構如圖3所示,主要分為詞向量層、上下文編碼層。
圖3 語義編碼模型
詞向量層主要是將自然問句進行向量表示。相關研究工作中主要是將自然問句進行分詞之后,利用預訓練好的詞向量GloVe[21]進行向量表示,也可以隨機初始化詞向量。而SSDM的語義編碼層中,主要是基于字進行切分并隨機初始化為300維度的向量表示。基于字進行向量表示,首先可以加快模型處理速度,其次可以解決大多數(shù)未登錄詞問題。自然問句通過向量化表示為q=(V1,V2,…,Vn),Vi∈R1×300,n≤32。
上下文編碼層主要是在詞向量層的基礎上,結合上下文信息,對自然問句進行深層語義編碼表示。本文SSDM實驗了三種不同的語義編碼方法,即圖3中上下文編碼層的AG、AC、AT,下面對它們分別說明如下。
(1)AG: 詞向量層之后,利用谷歌于2017年提出的注意力機制[23]對問句進行多頭自注意力計算,再利用注意力機制對問句向量表示Q進行語義計算,最終利用門控循環(huán)網絡[23](Gated Recurrent Unit,GRU)進行上下文信息語義編碼。具體計算如式(1)~式(4)所示。
(1)
headi=Attentioni(Q,Q,Q)
(2)
Qatt=Concat(head1,…,headh)W0
(3)
QAG=GRU(Qatt)
(4)
式(1)中Q、K、V是三個向量表示,通常Q是一個問句向量表示,K與V是相同的另一個問句向量表示,通過式(1)可以對兩個問句向量進行注意力矩陣計算,其中dk是向量維度。而如式(2)所示,輸入是三個相同的問句向量Q,則是問句自注意力矩陣計算。式(3)、式(4)是問句字向量表示Q經過多頭自注意力機制計算得到表示Qatt,最后再經過GRU進一步融合上下文信息得到最終的問句語義輸出QAG,其中,式(3)中的Concat函數(shù)表示向量拼接操作。
(2)AC: 該方法也是基于谷歌提出的注意力機制,如式(1)~式(3)所示,得到多頭自注意力向量表示Qatt,再利用CNN對Qatt進行特征抽取,最后通過池化層進行平均池化,得到最終的問句語義輸出QAC。
(3)AT: 利用谷歌2017年提出的Transformer架構[23]中的Encoder,基于注意力機制對整個問句Q進行語義編碼。整個語義編碼過程如圖3所示,當通過多頭自注意力機制得到QAT之后,再經過殘差與正則層,通過前饋網絡,最后再經過殘差與正則層得到最終的問句語義表示QAT。
本文在3.4.1小節(jié)針對以上三種語義編碼方法進行了詳細的實驗對比分析,探究不同的問句語義編碼模型對SSDM方法的影響。
本文所提SSDM方法受人臉識別任務的啟發(fā),在訓練階段進行多分類。在人臉識別任務中,相關研究主要集中在損失函數(shù)的構建中,提出多種損失函數(shù)。本節(jié)主要介紹SSDM方法中實驗的3種損失函數(shù)Softmax,Angular Softmax[24],Additive Margin Softmax[25]。
Softmax損失函數(shù)是常用于分類的損失函數(shù),當定義第i個輸入特征Xi以及它的標簽yi時,Softmax Loss具體計算方法如式(5)、式(6)所示。
(7)
(8)
如圖4所示,Softmax損失函數(shù)只著重于對不同類之間區(qū)分能力,對相同類之間沒有約束。A-Softmax與AM-Softmax損失函數(shù)都是在Softmax的基礎上做進一步的約束,使模型能夠擴大類間距離,縮小類內距離。因此,A-Softmax與AM-Softmax損失函數(shù)能夠在訓練時讓SSDM的語義編碼模型能夠對問句在語義空間上的分布更有區(qū)分度,相似問句聚集,不相似問句分散。
圖4 三種損失函數(shù)
在3.4.3小節(jié),針對這3種不同的損失函數(shù)進行實驗分析對比。
本文采用來自Biendata的對抗相似問題數(shù)據(jù)(Adversarial Similar Question Data,ASQD),ASQD數(shù)據(jù)是法律領域的相似問句數(shù)據(jù)集,不同于常用的Quora問句數(shù)據(jù)集(Quora Question Paraphrase Dataset,QQPD)。ASQD數(shù)據(jù)形式更豐富,它有6 036組數(shù)據(jù),每組數(shù)據(jù)包含相似與不相似問句集。如例1所示,相似問句與對抗問句之間相同字符較多,主題接近,不易區(qū)分判別,易于混淆。相似問句的問句互相之間語義相似,對抗數(shù)據(jù)的問句互相之間不相似,只用于對相似數(shù)據(jù)進行干擾判斷。ASQD數(shù)據(jù)中,每組數(shù)據(jù)平均擁有3條相似問句與3條對抗問句數(shù)據(jù)。
例1 相似問句數(shù)據(jù)
哪些情形下,不予受理民事訴訟申請?
民事訴訟中對哪些情形的起訴法院不予受理
人民法院不予受理的民事案件有哪些情形?
對抗問句數(shù)據(jù)
民事訴訟什么情況下不能立案
哪些案件會給開具民事訴訟不予立案通知書
法院對于哪些案件再審申請不予受理
ASQD數(shù)據(jù)集信息如表1所示。其中,訓練集由4 036組數(shù)據(jù)的相似問句集作為組成,包含4 036個類別,12 255條自然問句;開發(fā)集由1 000組ASQD數(shù)據(jù)中的相似問句組成,包含1 000個類別,3 021條自然問句。在SSDM進行訓練時,使用訓練集進行訓練,通過開發(fā)集挑選模型。測試集則由1 000組ASQD數(shù)據(jù)的相似問句與對抗問句組成,包括6 388條自然問句,來自相似問句數(shù)據(jù)3 033條,對抗問句數(shù)據(jù)3 355條。在測試時,利用SSDM訓練好的語義編碼模型將6 388條問句進行語義向量編碼存儲,再對3 033條相似問句數(shù)據(jù)在語義向量空間進行余弦距離計算,得到最相似的10條數(shù)據(jù)。
表1 ASQD數(shù)據(jù)劃分統(tǒng)計
ASQD數(shù)據(jù)集每組數(shù)據(jù)都存在多個相似問句,適合SSDM方法在訓練階段利用多組多個相似問句進行多分類得到更好的語義編碼模型。同時,ASQD每組數(shù)據(jù)存在著不易區(qū)分的不相似問句,如例1所示,這些同組不相似問句與相似問句之間存在較多相似字符,使得相似問句識別難度增加,易于混淆。由此構建的測試集數(shù)據(jù)能夠更好地驗證模型的性能。
實驗中,本文主要采用兩種指標進行模型方法的衡量。它們分別是平均精度均值(Mean Average Precision,MAP)、精確度P@i。在測試時,通過訓練得到的語義編碼模型將測試集所有問句提前語義向量化,再對新的q0進行語義向量編碼得到語義向量s0,通過將s0與存儲的語義向量進行余弦距離計算,得到最相似的前10個相似問句。則對于兩種指標的計算方法分別如下。
(1)MAP: 對于返回的前10個,如果與q0是相似問句,則對應的Rel=1,否則Rel=0。具體計算過程如式(9)所示。
(9)
其中,sumi=∑j≤iRel,i,j≤10,i,j表示返回結果的位序,p表示返回的10個結果中與q0相似的個數(shù),N表示測試樣本總數(shù)。MAP指標能夠從整體上衡量方法的性能。
(2)P@i:i表示返回結果個數(shù),本實驗主要用P@1,P@2記錄返回1結果出現(xiàn)與q0相似問句的精度,返回2個結果出現(xiàn)與q0相似問句的精度。P@i指標對方法性能能夠直觀地進行衡量。
實驗中,SSDM將最大句子長度設置為32,隨機初始化字向量維度300,使用的CNN卷積核為5,輸出維度為300。使用5頭自注意力機制,單個注意力輸出維度為60。使用Adam優(yōu)化函數(shù),學習率為1e-03,隨epoch增加而自動降低。
3.4.1 性能分析
本文選取經典的檢索算法BM25、向量空間模型(Vector Space Model,VSM)、潛在語義分析(Latent Semantic Analysis,LSA)、神經網絡模型孿生網絡SCAQ[12]作為多個基準模型進行實驗對比。其中,SCAQ模型將本文所提SSDM中的語義編碼模型AC作為共享語義編碼單元,將ASQD的訓練集與開發(fā)集進行二分類數(shù)據(jù)轉化,將每組相似問句兩兩組合作為正樣本,將每組數(shù)據(jù)中相似問句與對抗問句兩兩組合作為負樣本,以此總共構建67 176條訓練數(shù)據(jù)集,16 612條開發(fā)集數(shù)據(jù)?;谠摂?shù)據(jù)進行二元問句匹配訓練,將訓練好的最優(yōu)SCAQ模型中的語義編碼單元取出,并將它在ASQD的測試集上進行實驗測試分析對比。如表2所示,其中第6~9行展示的是基于SSDM方法框架和AM-Softmax損失函數(shù),采用不同語義編碼架構的方法性能結果。
表2 ASQD測試集實驗結果 (單位: %)
本文之所以選取SCAQ模型作為一個基準模型,是因為SCAQ模型是孿生卷積神經網絡模型的一種,它雖然在訓練時需要同時輸入兩個問句進行語義編碼表示和相應處理,但是兩個問句之間沒有交互且兩個問句是經過相同的一個語義編碼層,因此可以將訓練好的SCAQ模型中的語義編碼層單獨取出,在ASQD的測試集上按照SSDM方法的測試流程進行相應實驗。而匹配金字塔模型、多卷積自交互匹配模型(MCSM)、BiMPM以及基于BERT的方法,它們的語義編碼層需要同時輸入兩個問句向量表示,在兩個問句向量表示之間進行各種復雜計算(比如多種注意力計算等),它們的“語義編碼層”無法單獨對一個問句進行語義編碼表示,必須在兩個問句之間進行交互處理,因此無法像SSDM方法那樣在ASQD測試集上進行相應流程的測試實驗。
從表2可以看出,本文方法SSDMAC在MAP和P@i指標上比傳統(tǒng)方法(第2~5行)性能提升5%以上。對比第6~9行的方法結果可以發(fā)現(xiàn),基于AC語義編碼架構的SSDMAC性能最優(yōu)。而SSDMAT性能較低,分析發(fā)現(xiàn)語料中自然問句通常比較簡短,并且ASQD的訓練數(shù)據(jù)規(guī)模不大,基于Transformer的語義編碼方法對簡短的小規(guī)模數(shù)據(jù)效果不明顯。從SSDMGRU與SSDMAG兩者的實驗結果對比分析,可以發(fā)現(xiàn)沒有注意力機制之后,SSDMGRU方法在MAP與P@i上的性能下降3%以上。這一結果說明多頭自注意力機制在語義編碼時能夠幫助模型捕獲更好的語義表示。
同時,本文對比SCAQ方法與SSDMAC,可以發(fā)現(xiàn)SCAQ方法在MAP與P@i指標上都低10%以上。因此,可以看出那些將問句相似任務轉化為二元分類任務研究的方法,在測試使用時只適合于訓練方式相同的輸入模式,即輸入兩個問句,讓模型方法進行匹配識別判斷。而本文SSDM方法在訓練時進行多分類訓練,而測試使用時無須與訓練相同的輸入處理,可以靈活測試使用。SSDM在測試使用前,可以提前處理大批量數(shù)據(jù),通過將數(shù)據(jù)提前進行語義向量轉化并存儲。在測試使用時,SSDM只需要對一個問句進行語義向量轉化,并與事先存儲的語義向量進行常數(shù)級的余弦距離計算得到結果。
3.4.2 多頭注意力分析
本文針對基于AC語義編碼架構的SSDMAC進行了注意力機制的多頭實驗,以探究自注意力機制的頭數(shù)對實驗結果的影響。實驗結果如表3所示。本文嘗試從單頭注意力開始,不斷遞增頭數(shù),但是保持多頭注意力最終輸出維度都是300維。從表3可以發(fā)現(xiàn),多頭注意力的實驗性能優(yōu)于單頭自注意力,提升0.84%以上。而對比不同頭數(shù)的性能,可以發(fā)現(xiàn)隨頭數(shù)增多,性能略有提升,但是整體性能波動微小,隨著頭數(shù)繼續(xù)增加,性能會略降。
表3 多頭注意力實驗結果 (單位: %)
3.4.3 損失函數(shù)實驗分析
本節(jié)主要針對不同的損失函數(shù)對SSDM方法的影響進行實驗分析對比。本文基于3種不同的語義編碼SSDM方法進行不同損失函數(shù)的實驗,結果如表4所示。實驗發(fā)現(xiàn),所有基于AM-Softmax與A-Softmax損失函數(shù)的方法在測試集上性能在MAP與P@1指標上都優(yōu)于使用Softmax損失函數(shù)的方法。這一結果驗證了AM-Softmax與A-Softmax損失函數(shù)在SSDM方法中的有效性優(yōu)于普通的Softmax損失函數(shù)。
表4 不同損失函數(shù)實驗結果 (單位: %)
同時,仔細對比SSDMAC與SSDMAG在使用不同損失函數(shù)的實驗結果,發(fā)現(xiàn)在AM-Softmax與A-Softmax上的實驗結果,它們性能接近,但是對于SSDMGRU而言,基于AM-Softmax損失函數(shù)的使用性能在MAP與P@i上都比基于A-Softmax損失函數(shù)的方法高5%以上。這說明基于自注意力的語義編碼方法能夠更好地在語義空間對問句進行映射,所以AM-Softmax與A-Softmax實驗效果接近。而對于沒有自注意力機制的語義編碼方法,AM-Softmax效果優(yōu)于A-Softmax,在語義空間中能夠更好地幫助語義編碼模型對問句進行編碼。
3.4.4 時效性分析
本節(jié)分析對比SSDM方法的復雜度,并基于此進行時效性分析。如表5所示,對注意力機制,RNN、CNN,還有相似問句識別中前沿的方法BiMPM[26]進行了復雜度分析。其中,SSDMAC方法是基于Attention和CNN的基礎架構,所以它的復雜度為兩者之和,SSDMAG是基于Attention和CNN的基礎架構,所以它的復雜度是兩者之和。對于SSDMAC而言,Attention、CNN本身架構不復雜,且訓練時可以并行處理,訓練迭代與測試使用時速度快。
表5 模型復雜度分析
前沿的相似問句識別研究方法如BiMPM,BERT等方法,將相似問句識別作為二元匹配問題取得很大進展。但是這些前沿方法復雜度高,在實際測試使用時,將問句識別過程轉化為多個二元匹配過程,整個過程耗時長,無法滿足實際應用場景的時效性需求,所以大多數(shù)工作是先基于BM25等方法進行少量相似問句的召回,再用復雜的深度神經網絡模型BERT等進行識別。而SSDM方法在測試使用前,可以使用訓練好的問句語義編碼模型對數(shù)據(jù)進行預處理,將大量數(shù)據(jù)提前轉化成語義向量存儲。在測試時,SSDM方法只需要利用語義編碼模型將測試問句進行一次語義向量轉化,再將其與事先存儲的語義向量進行常數(shù)項時間復雜度的向量距離計算與排序就能得到結果。整個過程時效性大大超過基于二元匹配的深度神經網絡方法,并且仍然是基于問句深層語義進行匹配識別。
3.4.5 樣例分析
首先,例2是測試集中的一組相似問句,共有3句互相相似的問句。當以問句(1)作為用戶問句進行測試時,表6是BM25算法返回的前10個結果和相應的得分,表7是SSDMAC算法返回的前10個結果和相應的得分,其中,兩表中的得分都是數(shù)值越大,置信度越高。
表6 BM25樣例
表7 SSDMAC樣例
例2 相似問句數(shù)據(jù)
(1) 協(xié)議離婚的,一定是倆人都想離嗎?
(2) 協(xié)議離婚當事人雙方是否必須具有離婚的共同意愿?
(3) 協(xié)議離婚必須是當事人雙方都同意嗎?
分別對比表6和表7的對應結果,我們可以發(fā)現(xiàn)例2中的問句(1)對應的相似問句作為輸入,通過SSDMAC方法全部找到,即表7中加粗的兩句,分別位列第1與第3序位。而BM25方法只找到問句(2),位列第1序列。同時,SSDMAC方法找到10個結果,與用戶問句在整體語義相關度上比BM25算法更為相關。這是因為BM25算法只能基于淺層的特征進行相似衡量。而SSDMAC方法將所有問句投射到相同語義空間中,通過衡量問句語義向量之間的余弦距離得到最終結果。這整個過程包含了問句的深層語義信息,因此能夠獲得更加準確的結果。
本文還針對例2中的問句(1),對SSDMAC中的多頭自注意力進行了可視化分析展示,如圖5所示??梢钥闯?,通過自注意力機制每個字對整個問句中每個字的注意力的不同分布。
圖5 自注意力可視化
本文針對相似問句識別,受人臉識別任務的啟發(fā)提出一種基于語義空間距離衡量的SSDM方法。SSDM將相似問句識別作為多類別分類任務,通過人臉識別中的margin損失函數(shù)進行反向傳播訓練語義編碼模型,在測試時只使用訓練好的語義編碼模型對自然問句進行語義空間上的距離衡量得到相似問句。本文在ASQD語料上進行實驗,實驗結果證明,基于多頭自注意力機制與CNN語義編碼的SSDMAC方法在MAP與P@i指標上都優(yōu)于基線方法。同時,通過多組實驗也驗證人臉識別任務中常用的AM-Softmax,A-Softmax損失函數(shù)在SSDM方法中的作用。這些損失函數(shù)使得通過多分類訓練得到的語義編碼方法能夠對同類問句語義向量更加聚合,不同類問句語義之間更加分散。許多前沿研究將相似問句識別當作二元分類,雖然在性能上取得突破,但是在實際應用中面臨大量數(shù)據(jù),考慮到時效問題無法直接應用,通常需要先利用快速的方法如檢索算法等進行淺層語義匹配識別,進行相似問句召回,在基于召回的數(shù)據(jù)運用前沿的二元匹配方法進行再匹配識別。SSDM方法解決了實際應用中的時效問題,并且仍然從問句深層語義進行匹配識別,從實驗性能上也優(yōu)于常用的檢索算法等。
在未來工作中,一方面將針對問句語義編碼模型做進一步研究分析,本文嘗試的幾種不同的語義編碼模型實驗,已經證明不同的語義編碼模型對實驗最終結果影響很大,所以我們將結合相關的前沿研究繼續(xù)探究更優(yōu)的問句語義編碼模型;另一方面,將人臉識別中不同的損失函數(shù)應用到SSDM方法中,實驗驗證其有效性,我們將結合自然語言的特性去構建更優(yōu)的損失函數(shù),進一步提升方法的性能。