楊立鵬,廉文彬,季續(xù)國,李 雯,陳華龍
(1.中國鐵道科學(xué)研究院集團(tuán)有限公司,北京 100081; 2.中國國家鐵路集團(tuán)有限公司,北京 100844; 3.中科知程科技有限公司,北京 100044)
自2011年上線以來,12306互聯(lián)網(wǎng)售票系統(tǒng)功能不斷豐富,為旅客提供車票預(yù)訂、候補(bǔ)、改簽、退票等票務(wù)服務(wù),推出接續(xù)換乘、動車選座、常旅客會員、候補(bǔ)購票和電子客票等客運(yùn)提質(zhì)服務(wù);進(jìn)一步優(yōu)化架構(gòu),提高系統(tǒng)安全性和穩(wěn)定性,日售票能力提升至2 000萬張;圍繞旅客出行的全行程,為旅客提供餐飲、酒店、旅游、定制服務(wù)等線上線下一體化、個性化、多元化的旅行服務(wù)產(chǎn)品。多元化的產(chǎn)品和服務(wù),疊加海量的、不確定的用戶需求,為提升面向用戶的在線咨詢、售后服務(wù)等帶來了巨大挑戰(zhàn)。客服系統(tǒng)作為鐵路系統(tǒng)的重要組成部分,在出行高峰期面臨服務(wù)需求突增,客服人員與服務(wù)需求嚴(yán)重失衡、重復(fù)性回答大量常見性問題、客服回答內(nèi)容檢索效率較低等問題。因此,12306在微信公眾號平臺開通了智能客服咨詢功能,為旅客出行提供智能、高效的服務(wù)。智能客服可為旅客提供7×24小時的余票、正晚點(diǎn)、時刻表、預(yù)售期和起售時間等信息查詢內(nèi)容,解答旅客出行中的常見問題,增加了旅客服務(wù)的承載量,輔助客服人員快速準(zhǔn)確地處理應(yīng)答,減輕了人工客服的壓力,為旅客提供更優(yōu)質(zhì)、更完善的體驗(yàn)和個性化服務(wù)。但分析大量咨詢數(shù)據(jù),發(fā)現(xiàn)智能客服系統(tǒng)還存在響應(yīng)耗時較長、針對常見問題的回答準(zhǔn)確度還有待提高等問題,影響了用戶的咨詢體驗(yàn)。因此,有必要對12306智能客服的在線咨詢服務(wù)進(jìn)行優(yōu)化,提高系統(tǒng)響應(yīng)能力和問答準(zhǔn)確度。
在問答研究領(lǐng)域,秦兵[1]介紹了問答系統(tǒng)的構(gòu)建流程,提出可通過完善建立候選集和優(yōu)化相似度的計(jì)算方法提高智能回答問題的準(zhǔn)確性。對單詞和句子采用合理的表示方法是提高相似度準(zhǔn)確性計(jì)算的關(guān)鍵,基于HowNet相似度[2]的計(jì)算和基于word2vec的方法是目前應(yīng)用較多的相似度計(jì)算方法。因此,Tomas等人[3-4]針對文本的向量表示方法進(jìn)行了研究。文獻(xiàn)[5-6]研究了文本的相似度計(jì)算方法,其中Wang R H提出使用多信息進(jìn)行文本的相似度計(jì)算。此外,由于不需要大量的特征工程工作、可顯著減少數(shù)據(jù)預(yù)處理的工作量,深度學(xué)習(xí)[7]中的循環(huán)神經(jīng)網(wǎng)絡(luò)[8-9]被越來越多地應(yīng)用在文本挖掘中。
綜上所述,該文研究了候選集的建立和相似度計(jì)算的優(yōu)化方法,綜合利用倒排索引技術(shù)[10]和LSTM孿生網(wǎng)絡(luò)[11-12]優(yōu)化文本的相似度計(jì)算流程,從而提高問題的檢索效率和準(zhǔn)確率,進(jìn)一步提升智能客服解答問題的能力。
從2019年問答的數(shù)據(jù)中選取8 741 633條記錄,分別針對咨詢的響應(yīng)時間和準(zhǔn)確度進(jìn)行分析。
作為智能客服系統(tǒng),咨詢響應(yīng)時間是重要的服務(wù)指標(biāo),其含義為用戶發(fā)出咨詢請求到獲得咨詢結(jié)果所需的總時間。鐵路客戶總是希望能夠得到最快的咨詢響應(yīng)。對不同輸入類型的響應(yīng)時間給出了統(tǒng)計(jì)分析,在具體分析時,把響應(yīng)時間分為三個區(qū)間,0~10毫秒、10~120毫秒和大于120毫秒。從統(tǒng)計(jì)結(jié)果可知,快速回復(fù)占比高,耗時較短,應(yīng)推薦快速回復(fù)方法,提高相關(guān)文的推薦質(zhì)量。
評價智能客服效果的另一個重要指標(biāo)是準(zhǔn)確率,系統(tǒng)能否準(zhǔn)確理解用戶的咨詢內(nèi)容,并給出準(zhǔn)確的回答。
圖1中,會話長度為1且AT=0的含義為,用戶在看到系統(tǒng)不能理解自己問題后立刻結(jié)束了會話。顯然,此時用戶的問題沒有得到解答;會話長度大于1但以AT=0結(jié)尾則代表用戶與系統(tǒng)進(jìn)行了耐心的交流,但最終系統(tǒng)還是未能理解用戶問題。未能解答(AT=0)的會話占比平均為20%左右,因此系統(tǒng)需要進(jìn)一步降低系統(tǒng)未解答的比例。
圖1 不能回答用戶疑問的會話占比統(tǒng)計(jì)
通過在線咨詢效果的評估可知在線客服咨詢的服務(wù)能力還需要提升,因此需要建立一個高效的智能客服咨詢服務(wù)計(jì)算流程。計(jì)算流程主要從三個方面進(jìn)行優(yōu)化:文本的預(yù)處理,F(xiàn)AQ候選集的建立和相似度計(jì)算,計(jì)算流程如圖2所示。
圖2 問答系統(tǒng)的工作流程
(1)當(dāng)語義引擎接收到用戶使用咨詢的問題后,首先需要對用戶提問的問句進(jìn)行預(yù)處理操作,包括分詞、詞性標(biāo)注、過濾停用詞,從FAQ知識庫中把相關(guān)度較高的問答對全部選出來作為精準(zhǔn)匹配的候選集,利用word2vec訓(xùn)練詞向量;
(2)利用孿生網(wǎng)絡(luò)進(jìn)行特征提取并生成句子特征向量;
(3)利用句子間的語義相似度計(jì)算出用戶問句和FAQ候選集合中各個問句的語義相似度,系統(tǒng)設(shè)定相似度的最小閾值和最大閾值,如果計(jì)算出來的語義相似度存在大于預(yù)先設(shè)定的最大閾值的問句,將挑選出相似度分值最高的FAQ,并將該FAQ中的答案作為正確答案推送到用戶端,并將其余高于閾值的FAQ作為該問題的相關(guān)問題匯總后推送給用戶。
如果FAQ候選集合中每個問句通過相似度計(jì)算出的分值均不超過設(shè)定的最大閾值,將判定是否有落在最小閾值和最大閾值之間的FAQ,如果有,則將這部分FAQ作為建議推送給用戶,以此引導(dǎo)用戶尋找正確的問題答案。如果以上都不滿足則推送給用戶默認(rèn)回復(fù)的話術(shù),引導(dǎo)用戶換一種表述方式咨詢問題。
中文的詞語之間是連續(xù)的,首先需要去掉標(biāo)點(diǎn)符號、介詞、語氣詞等虛詞以及區(qū)分意義不大的高頻詞和低頻詞,然后對文本內(nèi)容進(jìn)行分詞。由于12306智能客服系統(tǒng)關(guān)心的不是出現(xiàn)在問句中的每個詞是否都能被準(zhǔn)確切分,而是那些對檢索有意義的相關(guān)詞語能否被快速準(zhǔn)確切分,因此為提高系統(tǒng)效率,根據(jù)系統(tǒng)特點(diǎn)設(shè)計(jì)了業(yè)務(wù)詞庫和通用詞庫兩類。業(yè)務(wù)詞庫主要涉及業(yè)務(wù)直接相關(guān)的內(nèi)容,包含鐵路客運(yùn)相關(guān)的概念、術(shù)語、符號等,該詞庫對中文分詞具有關(guān)鍵性的作用。通用詞庫主要包含常見的名詞、動詞和一些形容詞、副詞等。
由于業(yè)務(wù)關(guān)鍵詞對問題查詢的貢獻(xiàn)往往大于普通詞語,所以對2個詞庫的關(guān)鍵詞分別賦予不同的權(quán)重。隨著12306互聯(lián)網(wǎng)售票系統(tǒng)功能的不斷完善,業(yè)務(wù)詞庫和通用詞庫也需要持續(xù)完善。目前中文分詞的技術(shù)已十分成熟,多數(shù)分詞工具如中國科學(xué)院的ICTCLAS,哈爾濱工業(yè)大學(xué)的LITP、jieba(結(jié)巴)等,準(zhǔn)確率都達(dá)到了95%以上。該文使用jieba分詞器,并加入業(yè)務(wù)詞庫和通用詞庫,使得領(lǐng)域詞匯如“候車室”“二等座”等可以被正確切分。
在問答系統(tǒng)中,為了提高相應(yīng)回復(fù)的檢索效率,首先使用倒排索引技術(shù)實(shí)現(xiàn)問答對的第一層過濾,即首先構(gòu)造一個倒排索引表,表中的每一項(xiàng)內(nèi)容包括一個屬性值和具有該屬性值的所有記錄的地址;然后在小范圍內(nèi)計(jì)算語義相似度,返回相似度最高的答案給用戶;選出FAQ中的問句作為候選問題集。
假設(shè)用戶輸入的目標(biāo)問題中一共存在n個詞{W1,W2,…,Wn},12306的FAQ知識庫中共有x個標(biāo)準(zhǔn)的問答對,第k(1≤k≤x)個標(biāo)準(zhǔn)問題中含有m個詞{Q1k,Q2k,…,Qmk},目標(biāo)問題和第k個標(biāo)準(zhǔn)問題之間重疊的詞個數(shù)記ck,即ck={W1,W2,…,Wn}∩{Q1k,Q2k,…,Qmk},則取ck>0的FAQ中的問答對組成候選問題集。如果將FAQ庫中的每個標(biāo)準(zhǔn)問題一一讀取后,再和目標(biāo)問題進(jìn)行計(jì)算重疊的詞個數(shù),效率是比較低的。對于目標(biāo)問句中的某個詞,為了能夠快速地統(tǒng)計(jì)FAQ庫中究竟有多少問句含有這個詞,本系統(tǒng)使用信息檢索技術(shù)中的倒排索引快速獲取候選問題集。
表1是12306的FAQ庫的實(shí)例說明,12306的FAQ庫存儲了所有的12306問答對,其中第一列記錄了FAQ庫中每個問句在庫文件中的位置。表2是構(gòu)建的倒排索引表,表中第二列記錄了FAQ庫中的標(biāo)準(zhǔn)問題中所包含的關(guān)鍵詞,第三列記錄了每個關(guān)鍵詞出現(xiàn)在FAQ中的位置編號集合。在FAQ庫中出現(xiàn)過的所有關(guān)鍵詞及其對應(yīng)的倒排列表組成了倒排索引,通過關(guān)鍵詞索引中的值很容易找到哪些FAQ庫中的標(biāo)準(zhǔn)問題包含該關(guān)鍵詞。對目標(biāo)問句中的每一個詞都進(jìn)行這樣的處理后,就可以進(jìn)一步計(jì)算出ck的值。最后,找出ck>0的FAQ庫中的標(biāo)準(zhǔn)問題位置編號,根據(jù)表1中的FAQ集合找到相應(yīng)的FAQ,計(jì)算目標(biāo)問題中的所有關(guān)鍵詞,就可以將相關(guān)的FAQ全部找出并建立候選問題集。針對用戶問題和候選問題集的相似度計(jì)算結(jié)果直接影響給用戶反饋的結(jié)果,所以為了優(yōu)化短文本相似度的計(jì)算,提出了問題匹配的相似度計(jì)算模型。
表1 12306FAQ集合
表2 倒排索引列表
長短期記憶(long short-term memory,LSTM)[13]是一種特殊的RNN,主要是為了解決長序列訓(xùn)練過程中的梯度消失和梯度爆炸問題。由于LSTM的記憶單元對原RNN中的隱層節(jié)點(diǎn)進(jìn)行替換,可以學(xué)習(xí)長期依賴信息,更好地獲取整個句子的語義特征,而且已在許多自然語言處理任務(wù)如文本相似度計(jì)算、情感分析、機(jī)器翻譯中成功應(yīng)用,因此選用Siamase LSTM(孿生網(wǎng)絡(luò))來計(jì)算句子的相似度[14]。
假設(shè)12306的FAQ庫中有N個問句,需要為輸入的問句找出庫里與其最相似的問句,即FAQ,顯然使用一個LSTM或其他的神經(jīng)網(wǎng)絡(luò)需要O(N*N)的時間,這是非常耗時的操作,因此有必要找到一個有效的方法來減輕相似度的計(jì)算量。同時FAQ庫中的每個FAQ相當(dāng)于一個類別,根據(jù)輸入匹配某個類別,屬于一個多分類的應(yīng)用[15]。在學(xué)習(xí)樣本少且類別較多的情況下,適合使用孿生網(wǎng)絡(luò)進(jìn)行神經(jīng)網(wǎng)絡(luò)計(jì)算2個輸入的相似性。算法流程如下:
(1)輸入兩個樣本到兩個同樣的參數(shù)權(quán)重共享的LSTM神經(jīng)網(wǎng)絡(luò);
(2)通過學(xué)習(xí)分別提取兩個輸入的特性向量;
(3)計(jì)算兩個網(wǎng)絡(luò)輸出的距離,如果距離較近就認(rèn)為是同一類,較遠(yuǎn)就認(rèn)為是不同的類別。這里必須是同樣的神經(jīng)網(wǎng)絡(luò),因?yàn)槿绻褂脙蓚€不同的神經(jīng)網(wǎng)絡(luò),即使輸入相同,輸出也可能認(rèn)為兩者不同。為了保證模型達(dá)到好的學(xué)習(xí)效果,通常使用對比損失函數(shù)(contrastive loss function)表示成對樣本的匹配程度。對比損失函數(shù)可以有效地處理孿生神經(jīng)網(wǎng)絡(luò)中的paired data的關(guān)系,公式如式(1)所示:
(1)
AT_LSTM(attention LSTM,基于注意力機(jī)制的LSTM模型)模型相似度計(jì)算的孿生神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)主要由輸入層、嵌入層、LSTM層、Attention層和匹配層5部分組成,如圖3所示。
圖3 句子相似度模型結(jié)構(gòu)
輸入層把每個詞語用其在詞典中的位置編號表示得到一個詞語編號序列,并統(tǒng)一為同等長度,然后傳遞給嵌入層。嵌入層采用word2vec模型將詞語映射為詞向量序列后作為LSTM層的輸入。在短文本的相似度計(jì)算過程中,由于領(lǐng)域相關(guān)的特征詞對整個文本語義的貢獻(xiàn)比較大,當(dāng)理解一句話時,通常會將注意力放到幾個重要的關(guān)鍵詞或短語上,所以利用attention機(jī)制將領(lǐng)域詞的特征對語義貢獻(xiàn)的大小加權(quán)到句子級別的特征上,能夠更深層次地表達(dá)文本的真實(shí)語義。LSTM網(wǎng)絡(luò)結(jié)構(gòu)的輸出向量表示為[h1,h2,…,hn],使用公式(2)對LSTM輸出的每個特征hi進(jìn)行編碼,利用tanh激活函數(shù)進(jìn)行一次非線性變換得到ui,根據(jù)公式(3)利用softmax函數(shù)得到各個分量ui的attention權(quán)重向量W=(β1,β2,…,βn),最后通過公式(4)對LSTM結(jié)構(gòu)輸出的向量[h1,h2,…,hn]加權(quán)和,得到LSTM提取的句子特征向量表示S。
ui=tanh(Whhi+bh)
(2)
βi=softmax(Wβui)
(3)
(4)
最終在匹配層,得到兩個句子的語義表示特征向量S1和S2后,在文本的語義空間中計(jì)算兩個向量的相似度,從而判斷兩個問句是否語義相似。使用公式(5)對兩個句子的特征向量計(jì)算分值。
(5)
12306FAQ問答集共600余條,從以往歷史問答記錄中針對每個FAQ選取意圖相同不同問法進(jìn)行語料標(biāo)注,每個標(biāo)準(zhǔn)問題選取50條相似問法,50條不相似問法,最終形成64 700問題對。最后將問題對進(jìn)行分詞、打標(biāo)簽形成標(biāo)準(zhǔn)數(shù)據(jù)集。
實(shí)驗(yàn)訓(xùn)練語料共64 700個問題對,其中54 700為訓(xùn)練集,5 000為驗(yàn)證集,5 000為測試集。此次訓(xùn)練使用隨機(jī)梯度下降法對模型權(quán)重進(jìn)行更新,LSTM網(wǎng)絡(luò)參數(shù)設(shè)置如表4所示,其中最大句子長度,即句子中詞的數(shù)量,根據(jù)以往用戶訪問記錄進(jìn)行統(tǒng)計(jì)分析,最大的句子長度是42個關(guān)鍵詞,所以句子最大長度設(shè)為50。此次訓(xùn)練使用隨機(jī)梯度下降法對模型權(quán)重進(jìn)行更新,LSTM網(wǎng)絡(luò)參數(shù)設(shè)置如表3所示。
表3 神經(jīng)網(wǎng)絡(luò)參數(shù)
AT_LSTM模型經(jīng)過100次迭代訓(xùn)練,隨著迭代次數(shù)不斷增加,損失率不斷降低,準(zhǔn)確率不斷上升,說明模型在訓(xùn)練的過程中不斷的在優(yōu)化,模型預(yù)測輸出值越來越接近實(shí)際狀況,在第80次迭代開始,損失率下降到約13%左右,準(zhǔn)確率穩(wěn)定在89%左右,模型趨近于平穩(wěn),基本已收斂到最佳狀態(tài)。
為了驗(yàn)證提出模型的有效性,分別與基于HowNet和基于詞向量余弦距離的相似度算法進(jìn)行了實(shí)驗(yàn)對比。從表4可以看出,文中方法效果較好,HowNet效果最差,原因在于HowNet根據(jù)概念之間的上下文關(guān)系和同位關(guān)系實(shí)現(xiàn)詞語相似度計(jì)算知識系統(tǒng)詞語的語義相似度計(jì)算。由于對12306領(lǐng)域詞匯收錄較少,采用HowNet可能導(dǎo)致計(jì)算的相似度比較低;而采用基于詞向量余弦距離的相似度算法得到的詞語相似度較低,原因在于word2vec雖然解決了文本表示面臨的數(shù)據(jù)稀疏和詞語間語義關(guān)系建模困難的問題,但是卻把詞向量簡單組合起來表示句子的向量,這并不能完全代表句子的真實(shí)語義,導(dǎo)致出現(xiàn)只要2個句子相同或相近的關(guān)鍵詞越多則相似度越高的現(xiàn)象。AT_LSTM模型結(jié)合了孿生LSTM網(wǎng)絡(luò)和注意力機(jī)制充分挖掘2個句子深度語義信息,然后利用余弦相似度算法計(jì)算句子特征向量之間的分值。
表4 部分實(shí)驗(yàn)結(jié)果
在測試集數(shù)據(jù)量相同的條件下,分別利用不同方法得到的準(zhǔn)確率和耗時如表5所示。語義相似度值為[0,1]之間的小數(shù),越接近于1表示相似性越高,反之則越低。一般短文本相似度通過人為設(shè)定閾值作為相似或者不相似的分界。該文設(shè)定閾值為0.9,當(dāng)計(jì)算相似度值大于該閾值時認(rèn)為2個句子相似,否則不相似。從表中可以看到,提出的AT_LSTM算法準(zhǔn)確率最高、耗時也較低。
表5 不同算法實(shí)驗(yàn)結(jié)果對比
利用word2vec深度學(xué)習(xí)模型對問句中的關(guān)鍵詞向量化,使得相近或相關(guān)的關(guān)鍵詞其空間距離也更接近,能夠較好地解決傳統(tǒng)文本表示存在的語義不足和維度災(zāi)難問題;LSTM神經(jīng)網(wǎng)絡(luò)擅長處理時序數(shù)據(jù);注意力機(jī)制可以更好地提取出句子的語義特征。充分結(jié)合word2vec、注意力機(jī)制孿生LSTM方法的優(yōu)勢,提出了可以準(zhǔn)確、快速計(jì)算文本相似度的AT_LSTM模型,并對12306智能問答系統(tǒng)中的FAQ問答集進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果驗(yàn)證了AT_LSTM模型的有效性。后續(xù)可根據(jù)12306相關(guān)系統(tǒng)的上線要求,對該算法進(jìn)行進(jìn)一步改造,并應(yīng)用于12306智能問答系統(tǒng)。此外,由于知識圖譜實(shí)體之間具有更豐富的語義關(guān)系,如果文本中出現(xiàn)多個特征詞通過知識圖譜證明它們之間的關(guān)系,將會對結(jié)果產(chǎn)生很大的影響。所以如何將知識圖譜實(shí)體之間的關(guān)系融合到短文本相似度計(jì)算將是下一步工作研究的重點(diǎn)。