李美玲,任亞偉,孫軍梅,李秀梅,何鑫睿
(杭州師范大學(xué) 信息科學(xué)與工程學(xué)院,杭州 311121)
隨著電子商務(wù)的快速興起,智能客服成為金融領(lǐng)域的一大研究熱點.智能客服的核心是快速、準(zhǔn)確地回答用戶的咨詢問題.傳統(tǒng)的智能客服模型主要是計算用戶提問語句和知識庫語句的相似度,通過匹配的方式檢索出答案.盡管用戶提問語句和知識庫語句包含相似的關(guān)鍵詞,但語義邏輯卻可能截然不同[1],如表1所示.其中,Q 表示用戶提問語句,T 表示語義相同的語句一,F 表示語義不同的語句二.因此,智能客服模型中語句相似度的計算需要綜合考慮關(guān)鍵詞信息和語義邏輯信息.
表1 語句例子
句子相似度是實現(xiàn)智能客服的關(guān)鍵技術(shù),是文本相似度識別的子集[2].基于深度學(xué)習(xí)的方法是進行文本相似度計算的重要方法,它從不同角度提取文本中的信息,可以更大限度利用上下文信息,從而提高輸入表征的信息量,克服文本語義表示上的鴻溝問題,使計算結(jié)果更加準(zhǔn)確.基于深度學(xué)習(xí)的方法利用Word2Vec[3]等詞向量方法將詞語轉(zhuǎn)化為詞向量后,輸入到神經(jīng)網(wǎng)絡(luò)模型中,得出句子的語義特征表示,再將語義特征表示送入全連接層或使用距離公式進行語義相似度計算.Hu 等將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[4]用于問題文本相似度計算中,分別對兩個句子用CNN 進行編碼,然后將編碼后的文本向量進行拼接,送入全連接網(wǎng)絡(luò)[5].Yin 等使用兩個獨立的帶有注意力最大值池化的字符級和單詞級CNN 模型進行相似度計算[6].CNN 在卷積層使用濾波器抽取文本特征,只能獲取濾波器窗口內(nèi)單詞間的依賴關(guān)系,無法獲取句子中所有單詞間的依賴信息,無法獲取整體結(jié)構(gòu)信息.與CNN 不同,循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)不僅考慮前一時刻的輸入,而且賦予網(wǎng)絡(luò)對前面內(nèi)容的記憶功能.Mueller 在詞向量的基礎(chǔ)上提出了使用長短時記憶(Long-Short Term Memory,LSTM)[7]神經(jīng)網(wǎng)絡(luò)提取句子的語義特征,并結(jié)合余弦距離計算獲得的句子向量的相似程度[8].由于單向長短時記憶神經(jīng)網(wǎng)絡(luò)只能捕獲前一時刻的信息,Neculoiu提出利用雙向長短時記憶神經(jīng)網(wǎng)絡(luò)(Bidirectional Longshort Term Memory,Bi-LSTM)[9]同時獲取上下文的信息,加強句子特征的提取[10].Bowman 等人使用時間遞歸神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)集SICK (Sentence Involving Compositional Knowledge)進行語義推理[11].紀(jì)明宇等人將門控循環(huán)網(wǎng)絡(luò)(Gated Neural Network,GRU)應(yīng)用在智能客服數(shù)據(jù)的相似度計算上取得了不錯的效果[12].
循環(huán)神經(jīng)網(wǎng)絡(luò)如LSTM、GRU 編碼句子時,句子間的依賴程度會隨著距離增加而減弱.為彌補循環(huán)神經(jīng)網(wǎng)絡(luò)這一缺點,Hu 引入了注意力機制[13],其核心思想是通過給文本詞向量和其他隱藏表示向量分配不同的權(quán)重系數(shù)來突出對結(jié)果影響較大的特征.楊飛以單詞和句子為研究對象,提出Siamese-LSTM 模型融入注意力機制可以在高維的結(jié)構(gòu)空間中學(xué)習(xí)文本的豐富語義特征表示[14].Lin 等提出自注意力機制能編碼遠距離的依賴關(guān)系[15].Vaswani 等提出的基于自注意力的翻譯模型(Transformer)中采用的多頭注意力(multi-head attention)能集成不同子空間的信息提高編碼依賴關(guān)系的能力[16].胡艷霞等基于多頭注意力機制和Tree-LSTM的句子相似度計算,實現(xiàn)句子對間相關(guān)語義結(jié)構(gòu)特征的充分利用[17].
本文面向金融證券領(lǐng)域智能客服,在文獻[8]所研究的Siamese 網(wǎng)絡(luò)的基礎(chǔ)上,引入多頭注意力機制提取不同語義空間中字詞間的依賴關(guān)系,提出多特征融合的句子相似度模型,更好地捕捉兩個句子語義中的上下文信息,進而更好地計算用戶提問語句和知識庫語句之間的相似度.本文主要貢獻有以下兩點:
1)提出一種面向智能客服的句子相似度模型,該模型融合語義特征和詞形特征,其中詞形特征基于傳統(tǒng)統(tǒng)計特征方法實現(xiàn),極大保留了關(guān)鍵詞和詞頻相似度特征;語義特征基于深度學(xué)習(xí)方法實現(xiàn),能夠抽取文本全局結(jié)構(gòu)信息和深層語義信息,并且加入多頭注意力機制集成不同子空間的信息以理解字詞之間的依賴關(guān)系,更好地計算金融證券領(lǐng)域中用戶提問語句與知識庫語句之間的相似度.相比于傳統(tǒng)單一神經(jīng)網(wǎng)絡(luò)模型和基于注意力機制的神經(jīng)網(wǎng)絡(luò)模型,本文提出的多特征融合模型可以取得更好的相似度計算效果.
2)利用網(wǎng)絡(luò)爬蟲技術(shù)抓取數(shù)據(jù),得到金融證券領(lǐng)域的用戶詢問數(shù)據(jù)集,并在該數(shù)據(jù)集基礎(chǔ)上運用數(shù)據(jù)增強技術(shù)[18]進行不同倍數(shù)的數(shù)據(jù)增強,利用數(shù)據(jù)增強后的數(shù)據(jù)集進一步驗證了本文提出的多特征融合模型的有效性和泛化能力.
本文面向金融證券領(lǐng)域,提出多特征融合模型用于計算智能客服中用戶提問語句和語料庫語句相似度.該模型綜合考慮語句的詞形特征和語義特征,利用關(guān)鍵詞信息和詞頻信息得到語句的詞形特征,利用語義信息得到語句的語義特征.模型具體結(jié)構(gòu)如圖1所示.
圖1 多特征融合模型圖
首先在預(yù)處理層,對用戶提問語句S1與語料庫語句S2進行去無用字符、去停用詞、中文糾錯、中文分詞等預(yù)處理操作,然后通過特征提取模塊分別獲得詞形特征矩陣和語義特征矩陣,并在特征融合層將詞形特征矩陣和語義特征矩陣按列拼接,之后輸入到分類層進行相似度判斷.最終將機器學(xué)習(xí)分類器分類結(jié)果作為兩個語句間多特征融合相似度判斷結(jié)果.多特征融合模型充分利用關(guān)鍵詞和詞頻方面信息提取兩個語句的詞形特征,以及深度學(xué)習(xí)方法提取兩個語句的語義特征.
該模塊由N-gram 算法[19]、編輯距離[20]和Jaccard[21]相似度3 種傳統(tǒng)統(tǒng)計特征方法構(gòu)成,用于獲取預(yù)處理層輸出語句的詞形特征矩陣.首先采用Ngram 算法,該算法是基于統(tǒng)計語言模型的經(jīng)典算法,但其只考察了語句對中詞出現(xiàn)的信息,沒有完全考慮詞之外的其他信息,例如語句間的編輯距離、相同詞的數(shù)量等.因此,本文在N-gram 算法基礎(chǔ)上,引入語句編輯距離差異和Jaccard 相似度作為影響因素.獲取詞形特征模塊分以下4個步驟進行:
1)利用N-gram 算法得到語句S1和語句S2在詞序列方面的相似度特征,具體計算如下式所示:
其中,S imS(S1,S2,n) 表示S1和S2基于不同階Ngram的句子相似度值,len1(n)和len2(n)分別是S1和S2的n元N-gram的個數(shù),意義在于計算兩個長度不同句子的相似度時引入一定的懲罰措施.SimN指計算兩個句子的對應(yīng)N-gram 集合之間的相似度,通過將文本里面的內(nèi)容按照字節(jié)進行大小為N的滑動窗口操作,形成長度為N的字節(jié)片段序列,然后通過計算公共子串[22]的比例來衡量相似度,這里N取3.
2)通過動態(tài)規(guī)劃求S1轉(zhuǎn)換到S2的操作數(shù)(插入、刪除和替換)得到語句S1和語句S2在編輯距離方面的相似度特征.操作數(shù)越少則編輯距離越小,相似性越高.
3)通過Jaccard 算法統(tǒng)計得到語句S1和語句S2在所含相同詞匯數(shù)量方面的相似度特征.通常,兩個句子中共同出現(xiàn)的詞語較多,即反應(yīng)了兩個句子間相同成分占的比例越大,則相似性越高,具體計算如下式所示:
4)將獲得的N-gram 相似度矩陣、編輯距離相似度矩陣和Jaccard 相似度矩陣按列拼接獲得三特征融合的詞形特征矩陣.
該模塊通過深度學(xué)習(xí)方法獲取預(yù)處理層輸出語句的語義特征矩陣.我們提出基于多頭注意力機制的神經(jīng)網(wǎng)絡(luò)模型LBMA (LSTM Based on Multi-head Attention),主要包括詞向量嵌入層、網(wǎng)絡(luò)編碼層、注意力交互層、語義特征融合層.如圖2所示,語句S1和語句S2經(jīng)過詞嵌入層將句子中的詞映射為對應(yīng)的詞向量,這里我們將位置信息映射為與詞向量相同維度的向量,位置編碼的目的是區(qū)分句子中詞的位置信息,計算公式如式(3)和式(4)所示,并將詞向量和位置編碼合并輸入網(wǎng)絡(luò)編碼層.
圖2 LBMA 模型框架
圖3為LBMA 模型中網(wǎng)絡(luò)編碼層、注意力交互層和語義特征融合層的詳細結(jié)構(gòu)圖.包含位置編碼的詞向量經(jīng)過LSTM 網(wǎng)絡(luò)和Bi-LSTM 網(wǎng)絡(luò)進行全局語義特征編碼表示,將LSTM 網(wǎng)絡(luò)輸出經(jīng)過點乘的方法送入CNN 網(wǎng)絡(luò)層充分提取句子間的相似特征信息,同時運用多頭注意力機制獲取LSTM 網(wǎng)絡(luò)輸出不同子空間的字詞依賴特征,其中多頭注意力計算過程如式(5)–式(7)所示,并將經(jīng)過多頭注意力機制重新語義編碼的向量全局平均池化后經(jīng)過余弦相似度和曼哈頓相似度兩個特征提取方法獲取深層語義特征,將Bi-LSTM網(wǎng)絡(luò)輸出經(jīng)過乘法、減法和最大值3個特征提取方法獲取差異特征,最終將以上特征通過矩陣拼接的方式進行語義特征融合.
圖3 LBMA中網(wǎng)絡(luò)編碼層、注意力交互層和語義特征融合層的詳細結(jié)構(gòu)圖
其中,pos表示詞語在句子中的位置,i表示詞向量的位置,%表示取余操作,dmodel表示詞向量維度.
本文所采用的基礎(chǔ)數(shù)據(jù)集為2019“海康杯”第八屆浙江省大學(xué)生服務(wù)外包創(chuàng)新應(yīng)用大賽公共數(shù)據(jù)集.此外,我們通過Python 網(wǎng)絡(luò)爬蟲技術(shù)模擬瀏覽器行為的方式,從百度知道動態(tài)抓取數(shù)據(jù),對該基礎(chǔ)數(shù)據(jù)集進行擴充,得到金融證券領(lǐng)域用戶詢問數(shù)據(jù)集.通過人工標(biāo)注的方法,將已有數(shù)據(jù)中每對相似語句標(biāo)注為標(biāo)簽1,作為正樣本數(shù)據(jù)集,即兩個句子同義;將已有數(shù)據(jù)中每對不相似語句標(biāo)注為標(biāo)簽0,作為負樣本數(shù)據(jù)集,即兩個句子異義.共獲取金融證券領(lǐng)域相關(guān)數(shù)據(jù)117588 條,其中數(shù)據(jù)正負樣本比為52877:64711,并將數(shù)據(jù)集中的60%作為訓(xùn)練集,40%作為測試集.為驗證模型泛化能力,在盡量不改變語義的前提下,本文利用適合中文語料的4 種數(shù)據(jù)增強方法[18]擴充數(shù)據(jù)集.4 種方法為同義詞替換(Synonym Replacement,SR)、隨機插入(Random Insertion,RI)、隨機交換(Random Swap,RS)和隨機刪除(Random Deletion,RD),其中,SR是從句子中隨機選取n個不屬于停用詞表中的字詞,并隨機選擇其同義詞替換它們;RI是隨機找出句中某個不屬于停用詞表的詞,并求出其隨機的同義詞,將該同義詞插入句子的隨機位置,重復(fù)n次;RS是隨機的選擇句子兩個字詞并交換它們的位置,重復(fù)n次;RD是以每一條語料中改動的詞所占的比例p隨機刪除句子中的一個字詞,重復(fù)n次,其中,p和n均是人為設(shè)置的值.該數(shù)據(jù)增強技術(shù)生成類似于原始數(shù)據(jù)并引入一定程度噪聲的增強數(shù)據(jù),該方法有助于防止過擬合,其中同義詞替換和隨機插入操作會引入新的詞匯,允許模型泛化到那些在測試集中但不在訓(xùn)練集中的字詞.
實驗根據(jù)召回率(Recall,R)實際識別出的正確結(jié)果與數(shù)據(jù)庫中總的正確結(jié)果的百分比,如式(8);準(zhǔn)確率(Accuracy,A)返回結(jié)果中所有預(yù)測正確結(jié)果占總樣本數(shù)的百分比,如式(9);F1 分?jǐn)?shù)(F1-score)值為召回率(R)和精確率(P)的調(diào)和平均值,如式(11).3個評價指標(biāo)的計算結(jié)果來評價算法計算相似度的性能.
其中,TP為真正類(True Positive)即一個實例是正類且被預(yù)測為正類;FN為假負類(False Negative)即一個實例是正類但被預(yù)測為負類;FP為假正類即一個實例為負類但被預(yù)測為正類;TN為真負類(True Negative)即一個實例是負類且被預(yù)測為負類.
在本文的實驗中,詞向量采用Word2Vec 詞嵌入向量表示方法,其中每個詞向量維度為300 維,詞典大小為2.08 MB,Batch size 設(shè)置為512,激活函數(shù)采用Sigmoid,學(xué)習(xí)率設(shè)為0.001,代價函數(shù)選擇二元交叉熵(binary_crossentropy),為了緩解訓(xùn)練中可能出現(xiàn)的過擬合問題,隨機失活率(dropout rate)設(shè)置為0.5,采用Adam 優(yōu)化方法,模型迭代次數(shù)(epoch)最大設(shè)為20,使用Earlystopping,多頭注意力機制中注意力個數(shù)設(shè)置為8.
為驗證本文提出的詞形特征模塊有效性和語義特征模塊有效性,設(shè)置實驗1和實驗2;為驗證提出的多特征融合模型有效性,設(shè)置實驗3;為驗證數(shù)據(jù)增強方法有效性,設(shè)置實驗4,具體實驗結(jié)果如下.
實驗1.基于詞形特征的語句相似度計算
為驗證三詞形特征融合方法的有效性,我們分別用N-gram、編輯距離和Jaccard 相似度3 種基線方法和三詞形特征融合方法對測試集進行相似度計算,根據(jù)召回率、準(zhǔn)確率和F1 值進行評價.當(dāng)三詞形特征融合時,我們經(jīng)過多次對比實驗后選擇基于RBF 核的支持向量機分類器[23]進行分類判斷,設(shè)置閾值為0.8,將測試結(jié)果中大于閾值的數(shù)據(jù)歸為1 即判斷兩個語句同義,小于閾值的數(shù)據(jù)歸為0 即判斷兩個語句異義,并將分類器分類結(jié)果作為兩個語句間的詞形相似度判斷結(jié)果.各評價指標(biāo)結(jié)果如表2所示.
表2 詞形特征計算相似度的各評價指標(biāo)結(jié)果(%)
從表2可知,三詞形特征融合能提升效果,使召回率、準(zhǔn)確率為、F1 值都提升到85%以上.
實驗2.基于語義特征的語句相似度計算
為驗證基于多頭注意力機制的神經(jīng)網(wǎng)絡(luò)模型LBMA的有效性和比較不同深度學(xué)習(xí)模型的效果,我們加入了Siamese-LSTM、Siamese-LSTM-Att和Siamese-LSTM-Self Att 三個基線模型進行對比,實驗采用五折交叉驗證的方式選取評價指標(biāo)的平均值作為各評價指標(biāo)結(jié)果,如表3所示,模型準(zhǔn)確率對比曲線如圖4所示.
表3 神經(jīng)網(wǎng)絡(luò)模型計算相似度的各評價指標(biāo)結(jié)果(%)
圖4 不同模型準(zhǔn)確率的變化曲線
從表3可知,Siamese-LSTM 模型準(zhǔn)確率為84.19%,而加入注意力機制的Siamese-LSTM-Att 模型相比Siamese-LSTM 模型準(zhǔn)確率提升了4.58%,可以看出局部注意力對于模型表現(xiàn)提升是有效的.加入自注意力機制的Siamese-LSTM-Self Att 相比Siamese-LSTM 模型提升了6.82%,表明自注意力機制更能捕捉句子中的語義特征.此外,LBMA 相比Siamese-LSTM 模型提升了10.24%,可以看出基于多頭注意力的神經(jīng)網(wǎng)絡(luò)模型LBMA 提取語義特征能力更強.
從圖4可知,我們的模型在第2個epoch 時就達到了90%的準(zhǔn)確率,并在第8個epoch 開始緩慢提升,模型接近收斂點,證明我們的基于多頭注意力機制的神經(jīng)網(wǎng)絡(luò)模型收斂速度明顯快于其他的模型.
實驗3.多特征融合模型相似度計算
為驗證多特征融合模型的有效性,進行多特征融合模型相似度計算實驗,該實驗結(jié)果與三詞形特征融合模型和語義特征模型LBMA 結(jié)果相比較,各評價指標(biāo)結(jié)果如表4所示.
表4 不同模型計算相似度的各評價指標(biāo)結(jié)果(%)
從表4可知,多特征融合模型計算結(jié)果高于三詞形特征融合模型和語義特征模型LBMA 計算結(jié)果,因此多特征融合方法對于金融證券領(lǐng)域句子相似度計算是有效的.
實驗4.數(shù)據(jù)增強有效性驗證
為驗證數(shù)據(jù)增強方法有效性,進行數(shù)據(jù)增強實驗,并將該實驗結(jié)果與原數(shù)據(jù)集實驗結(jié)果相比較.數(shù)據(jù)增強方法如下,本文借助外部Synonyms 知識庫引入新的中文詞匯,實現(xiàn)4 種數(shù)據(jù)增強方法中同義詞替換和隨機插入操作,然后設(shè)置對于每一條語料增強的數(shù)據(jù)量n和每一條語料中改動的詞所占的比例p,并在原始數(shù)據(jù)的基礎(chǔ)上對于每一條語料分別通過4 種數(shù)據(jù)增強方法獲得4n條增強數(shù)據(jù),并將4n條數(shù)據(jù)打亂順序后選出前n條并保留原始數(shù)據(jù)為最終數(shù)據(jù).具體地,我們兩次運用數(shù)據(jù)增強技術(shù),其中比例p都設(shè)置為0.1,n分別設(shè)置為1和4,即每條數(shù)據(jù)分別增強1 條和4 條并保留原數(shù)據(jù),分別擴充至235176 條(2 倍)和587940 條(5 倍),與原數(shù)據(jù)集進行對比實驗,多特征融合模型中的機器學(xué)習(xí)分類器經(jīng)過多次對比實驗后選擇基于RBF核的支持向量機,數(shù)據(jù)增強后各評價指標(biāo)結(jié)果如表5.
表5 多特征融合模型數(shù)據(jù)增強后各評價指標(biāo)結(jié)果(%)
從表5可知,多特征融合模型在數(shù)據(jù)增強后召回率、準(zhǔn)確率和F1 值均有所提升,說明數(shù)據(jù)增強方法對于該數(shù)據(jù)集是有效的,可以提升模型泛化能力,進一步說明模型對于增強的那一部分?jǐn)?shù)據(jù)的特征提取效果更好.
本文為提高金融證券領(lǐng)域客服的智能性,提出融合詞形特征和語義特征的句子相似度計算模型,其中詞形特征考慮了N-gram 相似度、編輯距離、Jaccard相似度三種詞形信息,并提出基于多頭注意力機制的神經(jīng)網(wǎng)絡(luò)模型LBMA 提取句子間的語義特征.實驗結(jié)果表明,與單一神經(jīng)網(wǎng)絡(luò)模型和基于注意力的神經(jīng)網(wǎng)絡(luò)模型相比,LBMA的性能有所提升,且多特征融合模型在客服數(shù)據(jù)中也獲得了較好的效果.為驗證數(shù)據(jù)增強方法對于多特征融合模型的有效性,我們在盡量不改變語義信息的前提下使用數(shù)據(jù)增強方法擴充數(shù)據(jù)集進行對比實驗,進一步提升了多特征融合模型的句子相似度計算效果.