葉銥雷,曹 斌,范 菁,王 俊,陳江斌
1(浙江工業(yè)大學 計算機科學與技術學院,杭州 310023)
2(中國電信股份有限公司浙江分公司,杭州 310040)E-mail:yeyilei@zjut.edu.cn
為了完善用戶服務體系,提升用戶服務滿意度,企業(yè)會建立自己的呼叫中心以及相應的電話客服系統(tǒng),如中國電信10000號等.用戶可以隨時來電咨詢或投訴.然而隨著業(yè)務范圍不斷擴大,業(yè)務顆粒度不斷細分,客服人員所需掌握的業(yè)務知識也與日俱增.為了減輕客服人員工作壓力,提升客服服務水平,企業(yè)開始應用AI技術建立智慧客服系統(tǒng).通過監(jiān)聽用戶與客服對話,實時分析用戶來電意圖,智慧客服系統(tǒng)可以提示和糾正客服回應動作,如電信客服需要根據(jù)用戶扣費疑義進行套餐內容及其扣費記錄查詢等動作.這樣不僅有效提高了客服服務質量,并且縮短了來電服務時間.在本文中,我們致力于從用戶與客服的任務型多輪對話過程中高效準確地檢測出用戶意圖.
現(xiàn)有方法通常將意圖識別看作文本分類問題[1-6]或者序列標注問題[7-11],利用有監(jiān)督的機器學習方法對事先標注好的意圖類別進行訓練,并在線上對新的用戶表述進行意圖識別.然而,由于現(xiàn)有意圖識別方法需要對用戶的每句表述進行識別,無法很好地解決呼叫中心客服對話復雜場景,會存在如下主要問題:
1)存在無關對話,即用戶會在多輪對話中表述很多與業(yè)務無關的對話,這些對話會在一通完整對話中占據(jù)大部分;
2)用戶單個意圖可能蘊含在多輪對話內容中,即僅依靠用戶的單次表述無法準確識別用戶意圖.例如,實際電話客服場景中,由于用戶對咨詢業(yè)務的不熟悉或者反映問題的不清晰,用戶一般需要多次與客服溝通才能表明一個意圖.換句話說,現(xiàn)有的方法意圖識別粒度過小,聚焦于單句話的意圖識別不符合實際復雜應用場景.
此外,實際呼叫中心運營中,客服系統(tǒng)運維和管理人員只關心部分重要的意圖,而現(xiàn)有主流開源智能對話系統(tǒng)所采用方法的訓練語料需要對每句話標注意圖,進而給呼叫中心運維人員帶來額外的標注成本.
為了解決上述問題,本文提出了一種面向任務型多輪對話的粗粒度意圖識別方法.我們將意圖識別任務拆分為對話序列標注任務和意圖分類任務.其中,對話序列標注模型用于過濾無關對話,并且將表述同一意圖的連續(xù)對話合并,形成對話塊.然后我們將對話塊采用意圖分類模型進行分類,得到意圖識別結果.經實驗表明,采用BiLSTM-CRF[12-13]完成對話序列標注任務,StarSpace[14]完成意圖分類任務,取得了較好表現(xiàn),對比于一些現(xiàn)有的方法具有更好的準確率.
本文的章節(jié)安排如下:第2節(jié)介紹了意圖識別相關工作,第3節(jié)介紹了一些預備知識,幫助讀者理解本文,第4節(jié)詳細介紹了本文方法,第5節(jié)展示了實驗結果與分析,第6節(jié)對本文進行了總結.
意圖識別是指從對話中提取重要信息,分析說話者的說話目的,是對話系統(tǒng)的重要組成部分.在實際應用中,意圖識別有助于對話系統(tǒng)為用戶提供更精準有效的服務.接下來,我們將在本章中介紹意圖識別領域的相關工作.
意圖識別中最傳統(tǒng)的方法是基于手工規(guī)則的方法[15,16].該方法需要人工預先整理規(guī)則集.在規(guī)則集上,根據(jù)輸入對話查找匹配項,然后得到意圖.這種方法雖然簡單,但是想要整理一個全面的規(guī)則集是非常困難的,通常需要花費大量人力.并且,對于沒有匹配到規(guī)則集中規(guī)則的對話,無法進行意圖識別.
后來,有很多研究者將意圖識別看作一個意圖分類問題.Reithinger等人[1]提出了使用統(tǒng)計語言模型解決意圖識別.Grau等人[2]采用了貝葉斯方法進行意圖識別.Serafin等人[3]利用了潛在語義分析解決意圖識別.Milajevs 等人[4]研究了一系列的成分分布語義模型用于意圖識別.Chen等人[5]研究發(fā)現(xiàn)稀疏對數(shù)線性模型有利于提高意圖識別效果.Sulaiman等人[6]使用了決策樹來提高意圖識別準確率.
也有很多研究者將意圖識別看作一個序列標注問題.Stolcke等人[7]將整個對話看作是一個隱馬爾可夫模型,其中每句對話的意圖作為模型狀態(tài)的觀察結果.Tavafi等人[8]研究了使用隱馬爾可夫支持向量機來解決意圖識別.Surendran等人[9]采用了線性內核的支持向量機和隱馬爾可夫模型組合的方式進行意圖識別.Boyer等人[10]也應用隱馬爾可夫模型發(fā)現(xiàn)對話中存在著一些對話策略.Zimmermann等人[11]利用對話中詞語和韻律的特征,使用條件隨機場對意圖進行聯(lián)合分割和分類.
隨著深度學習的發(fā)展,涌現(xiàn)了很多基于深度學習的意圖識別方法.Kalchbrenner等人[17]使用卷積神經網(wǎng)絡提取每句對話中的局部特征,再使用循環(huán)神經網(wǎng)絡(Recurrent Neural Network,RNN)進行意圖識別.類似的,Mensio等人[18]使用雙向RNN將每句對話嵌入為向量,然后使用RNN進行意圖識別.Khanpour等人[19]設計了一個采用預訓練詞向量和RNN變種的深度學習模型用于意圖識別.Liu等人[20]采用結合了注意力機制(Attention)的RNN進行意圖識別.Meng等人[21]在長短期記憶網(wǎng)絡上增加了記憶模塊,能夠在意圖識別時利用更多上下文信息.
雖然研究者們已經提出了很多意圖識別的方法,但這些方法無法解決實際智慧客服系統(tǒng)復雜場景所存在的意圖識別粒度過小以及存在無關對話問題.因此,這些方法的實際效果并不理想.
為了幫助讀者更好地理解本文的方法,在本章中,我們介紹了一些預備知識,具體內容如下.
句子是由多個詞語組成的離散數(shù)據(jù),然而模型無法利用這些離散數(shù)據(jù)直接進行計算,所以需要將句子轉換為模型能夠有效利用的形式.One-Hot編碼是一種基于詞袋模型[22](Bag Of Words)的文本特征提取方法.它的主要思想是將句子中的詞語嵌入到包含所有句子詞語的向量空間中,向量的每一維代表句子中對應詞語是否出現(xiàn).例如,假設語料庫中有兩個句子,句子S1由詞語序列w1,w2,w3組成,句子S2由詞語序列w2,w3,w4組成,則詞袋模型為:
BOW={0:w1,1:w2,2:w3,3:w4}
其中,數(shù)字代表詞語編號.句子編碼過程如圖1所示.
圖1 One-Hot編碼示意圖
最終我們得到S1、S2的One-Hot編碼為:
S1=[1,1,1,0],S2=[0,1,1,1]
詞袋模型有兩大弱點:忽視了詞語順序和詞語語義.例如,“中國”、“美國”和“蘋果”,它們是毫無關系的.但實際上,“中國”和“美國”都是國家,它們之間存在著聯(lián)系.
Sentence2Vec[23]是一種能夠從不定長文本中學習固定長度特征表示的無監(jiān)督算法.通過學習詞語向量表示來包含詞語語義,例如,Word2Vec[24],再結合文本中詞語順序,將句子、段落或者文檔嵌入到一個低維稠密的向量中.換句話說,用一個向量來表示一段文本.其中,Word2Vec是一種用于訓練詞語向量表示的算法.Sentence2Vec克服了詞袋模型的兩大弱點.因此,本文使用該方法將對話嵌入到向量空間中,作為對話序列標注模型的輸入.
序列標注問題[25]是一個自然語言處理中常見的問題.對于分詞、詞性標注、命名實體識別、關鍵詞抽取等問題都可以轉化為一個序列標注問題.對于一個一維線性輸入序列,給該序列的每個元素打上標簽集合中的標簽,這就是序列標注問題.例如,有標簽集T和兩個一維線性序列:
X=[x1,x2,…,xn]
Y=[y1,y2,…,yn],yi∈T
其中,X為輸入序列,Y為序列標注結果序列,yi屬于T.序列標注就是解決如何由X得到準確的Y的過程.
Huang等人[12]提出了BiLSTM-CRF,用于解決序列標注問題.其主要由雙向長短期記憶網(wǎng)絡[26](Bidirectional Long Short-Term Memory,BiLSTM)和條件隨機場[27](Conditional Random Field,CRF)兩部分構成.該方法通過BiLSTM考慮了輸入序列的上下元素關系,通過CRF使序列標注結果更加合理.例如,在訓練語料中未出現(xiàn)標簽組合[T1,T2],則在序列標注結果中這種組合出現(xiàn)概率也會大幅降低.作者通過實驗發(fā)現(xiàn)BiLSTM-CRF在序列標注任務上具有優(yōu)異的表現(xiàn).本文采用該方法完成對話序列標注任務,即將一通對話作為輸入,得到序列標注結果,用于分析對話之間的聯(lián)系.
StarSpace[13]是由Facebook AI Research提出的一種神經嵌入模型.它可以解決各種各樣的問題,例如,文本分類、實體集合排序、基于協(xié)同過濾的推薦以及圖表嵌入等.本文采用StarSpace完成文本分類任務.該方法直接根據(jù)實體集合之間的關系學習采用離散特征表示的實體的嵌入,用于排序或分類任務.通常StarSpace可以將不同類型的實體嵌入到向量空間中,并且在這個向量空間中對它們相互比較.對于它的名字StarSpace,其中的“Star”代表了所有類型,“Space”代表了向量空間.
和其它嵌入模型一樣,StarSpace對于每個離散特征,用一個d維特征向量來表示,然后用一系列離散特征來表示實體.例如,一段文本由多個詞語組成,用一個d維特征向量代表一個詞語,然后用文本包含詞語的特征向量來表示文本.StarSpace采用最小化損失函數(shù)的方式訓練模型,其損失函數(shù)如下所示:
(1)
本章將主要介紹本文提出的意圖識別方法.其主要分為兩部分:意圖識別模型構建和意圖識別過程.其中,模型構建部分介紹了如何訓練意圖識別中所使用到的模型以及它們的作用,包括Sentence2Vec模型、BiLSTM-CRF模型和StarSpace模型.意圖識別部分介紹了如何利用上述模型構建意圖識別算法.在開始詳細介紹之前,我們先介紹本文提出的意圖識別方法的主要思想.本文方法是一個任務型的意圖識別方法,即識別的意圖都是事先人為規(guī)定的.那么意圖識別就可以被簡單地看作是一個對話意圖分類任務.然而,人們通常會使用一句話或者多句話來表達一個意圖.簡單地對每一句話進行意圖分類無法準確識別用戶意圖.因此,本文方法在意圖分類之前增加了對話序列標注模塊.這不僅將描述同一意圖的對話聯(lián)系在一起,形成對話塊,同時也過濾了大部分無關對話.換句話說,過濾了那些不屬于事先人為規(guī)定的意圖的對話.因為對話序列標注模塊通過語料學習,具備了識別出整個對話中哪些對話塊需要進行意圖分類的能力.接下來我們將詳細介紹本文的方法.
在本節(jié)中,我們將介紹意圖識別使用到的模型的構建細節(jié).其主要構建流程如圖2所示.可以看到,在每個模型訓練之前,都需要對人工標注語料進行數(shù)據(jù)預處理,包括去除停用詞和轉換語料格式兩步.在人工標注語料中,由于對話具有噪聲多的特點,許多詞語和符號會對意圖識別產生干擾.因此,在轉換語料格式之前需要先去除停用詞,即去除對意圖識別產生干擾的詞語和符號.這些停用詞是根據(jù)具體語料由人工總結得到的,而非自動化生成.不同的模型對輸入的訓練語料有自己的格式要求,所以我們將針對每個模型生成相應訓練格式的語料來進行模型訓練.從圖2中還可以發(fā)現(xiàn)BiLSTM-CRF模型訓練語料通過Sentence2Vec模型將句子轉換為句向量作為BiLSTM-CRF模型輸入.接下來我們將詳細介紹模型構建細節(jié).
圖2 模型構建流程圖
1)句子嵌入表示模型.一通用戶與客服的對話由多個句子構成,而句子無法直接用于模型計算,需要將句子嵌入為向量形式.傳統(tǒng)的句子嵌入方式有One-Hot編碼方法.但是該方法假設詞語與詞語之間是相互獨立的.顯然與實際中詞語與詞語之間相互影響不符.其次,編碼后的句子向量維度高,特征離散稀疏,造成計算能力和存儲空間浪費.因此,我們采用Sentence2Vec而不是One-Hot編碼.Sentence2Vec不僅考慮了詞語與詞語之間的聯(lián)系,還將對話嵌入到d維連續(xù)向量空間中,其中d為預設向量維度值,為之后的BiLSTM-CRF模型提供句向量輸入.本文使用開源Python庫gensim來生成Sentence2Vec模型.我們根據(jù)經驗預先設置嵌入向量維度d以及訓練語料總迭代次數(shù)epoch,得到一個效果較好的Sentence2Vec模型.
2)對話序列標注模型.在一通對話中,相鄰對話之間存在著上下文聯(lián)系,如果僅考慮單句對話進行意圖分類,那么意圖識別的效果不盡如人意.所以本文采用BiLSTM-CRF模型來完成對話序列標注任務,將相鄰對話聯(lián)系起來,形成對話塊,以達到聯(lián)系對話上下文的目的.注意到,BiLSTM-CRF模型是一種序列標注模型.在使用模型之前,我們需要定義序列標注標簽,用于標注訓練語料.本文采用了一種常用的序列標注標簽:BIEO標簽.其中,B代表對話塊開始位置,I代表對話塊中間位置,E代表對話塊結束位置,O代表無關對話位置.例如,一通對話共有S1到S6句對話,它們的人工標注語料結果如表1所示.
表1 人工標注語料結果
其中,表格第三列為意圖,I1和I2代表兩個不同的意圖.從表1中我們能夠看到,S1到S3組成一個對話塊,其意圖為I1.S5、S6組成一個對話塊,其意圖為I2.由于人工標注認為S4屬于無關對話,即對話意圖不屬于事先人為規(guī)定意圖,所以S4的序列標注標簽為O,意圖為空.于是,表1的前兩列構成了一條BiLSTM-CRF模型訓練語料.在實際語料中,O標簽占據(jù)了大部分,而這些標注O標簽的對話是我們無需關心和標注意圖的.正因如此,我們的方法降低了人工標注語料的成本.并且在在線對話序列標注時,我們將模型標注為O標簽的對話過濾,去除了大部分無關對話.特別地,我們采用由Sentence2Vec模型預訓練的句向量作為BiLSTM-CRF模型的輸入,而不是由BiLSTM-CRF自行將對話嵌入為句向量.因為Sentence2Vec模型采用無監(jiān)督學習方式從大量未標注文本數(shù)據(jù)中學習到更好的句向量,這對BiLSTM-CRF模型效果提升有很大幫助.其次,預訓練的句向量也提升了BiLSTM-CRF模型的運算效率.最終,我們通過對比設置了不同的訓練語料總迭代次數(shù)epoch的模型結果,得到一個效果較好的BiLSTM-CRF模型.
3)意圖識別模型.在上一節(jié)中,BiLSTM-CRF模型完成了對話序列標注,根據(jù)序列標注結果我們可以得到若干個對話塊.這些對話塊不僅聯(lián)系了上下文,并且每個對話塊反映了一個用戶意圖.于是,本文采用StarSpace模型對它們進行意圖分類.可以注意到是,對話塊通常包含多句對話,而StarSpace模型的輸入為一段文本.因此,我們簡單地將對話塊中的對話按照對話順序拼接成一段文本.特別地,StarSpace模型有兩種文本嵌入粒度:字符(char)和詞語(word).例如,有一段文本“我愛中國”,按字符嵌入,則文本被拆分為“我”、“愛”、“中”、“國”,按詞語嵌入,則文本被拆分為“我”、“愛”、“中國”.對于不同文本嵌入粒度的StarSpace模型效果,我們會在第五章中進行討論.
基于上述模型構建基礎,本文提出了針對在線多輪對話的意圖識別過程.其主要思想是將意圖識別任務拆分為對話序列標注任務和意圖分類任務.我們使用BiLSTM-CRF模型完成對話序列標注任務,使用StarSpace模型完成意圖分類任務.接下來,我們將詳細介紹意圖識別方法的算法流程.其偽代碼如算法1所示.
該算法的主要步驟如下:
1)按順序遍歷輸入的對話文本列表Lists,對每句對話s進行數(shù)據(jù)預處理,去除對話中的停用詞.(第3-4行)例如,有一句對話s:w1,w2,w3,w4.其中,w1到w4為構成對話s的詞語.在數(shù)據(jù)預處理時,發(fā)現(xiàn)w2在停用詞表中存在,則數(shù)據(jù)預處理后s為:w1,w3,w4.因為我們要去除那些影響意圖識別準確率的停用詞,如同在準備模型訓練語料時需要去除停用詞一樣.
2)通過Sentence2Vec模型將對話s嵌入為句向量svec,然后存入Listvec中.(第5-6行)其中,Listvec作為BiLSTM-CRF模型輸入.
3)接下來,我們使用BiLSTM-CRF模型對Listvec進行序列標注,模型結果為Listtag.(第7行)例如,在遍歷Lists的某次循環(huán)中,Listvec為:
Listvec=[svec1,svec2,svec3,svec4,svec5,svec6]
經過采用序列標注標簽為BIEO標簽的BiLSTM-CRF模型序列標注后,得到Listtag為:
Listtag=[B,E,O,B,I,E]
4)在得到對話序列標注結果Listtag后,我們需要找出對話列表中的最后一個對話塊,將其中的對話拼接為scat.(第8行)因為其它對話塊已經在之前的循環(huán)中完成了意圖分類,在當前循環(huán)中無需處理.例如,對于步驟3得到的Listtag,我們發(fā)現(xiàn)最后三句對話形成一個對話塊.于是,scat為這三句話按對話順序進行拼接后得到的文本.
5)最后,使用StarSpace模型對scat進行意圖分類,得到意圖分類結果result.若意圖分類結果置信度大于等于預先設置的意圖識別置信度閾值τ,我們就認為該結果是準確的,值得信任的,則記錄result,否則繼續(xù)遍歷對話文本列表Lists.(第9-12行)
根據(jù)算法1我們完成了對一通對話的意圖識別任務.在下一章中,我們將對我們提出的意圖識別方法進行詳細實驗分析.
算法1.多輪對話粗粒度意圖識別算法.
輸出:對話意圖識別結果
1.初始化List:Listvec用于存放對話句向量;
初始化閾值τ:τ為意圖識別置信度閾值
2.SV:加載Sentence2Vec模型;
BC:加載BiLSTM-CRF模型;
SS:加載StarSpace模型;
3.FOR EACHs∈ListsDO
在小學階段,考察的題型較為固定,主要包括聽力題、單項填空、翻譯題、閱讀理解等,但初中階段不僅增加了完形填空,而且相同題型的考察也變得更加復雜。例如,小學階段的翻譯題一般為填空式,對應中文翻譯成相應的單詞或短語,而初中階段則需要在翻譯時注意詞性以及語法,同時翻譯的長度可能為一個句子,可能為一段話。
4.s=preprocess(s);
5.svec=SV.infer_vector(s);
6.Listvec.add(svec);
7.Listtag=BC.predict(Listvec);
8.scat=block_catenate(Listtag,Lists);
9.result=SS.parse(scat);
10. IFresult.confidence≥τ
11. 記錄result;
12. END IF
13.END FOR
本章將對本文提出的意圖識別方法進行實驗與分析,并與現(xiàn)有意圖識別方法進行了對比.
本文實驗中采用的數(shù)據(jù)集來自電信呼叫中心的電話客服對話文本,總共有243通多輪對話.其中,對話語句總數(shù)為8576條,經電信領域專家標注后,共包含意圖類別11種,共對應398個經人工序列標注的對話塊.
由于Sentence2Vec是一種無監(jiān)督算法,本文采用了該公司呼叫中心更為龐大的未經過人工標注的電話客服對話文本,總共有70954通多輪對話,4182546條對話語句.通過大量的對話文本語料,我們得到了能更適合進行對話文本嵌入表示的Sentence2Vec模型.
本文采用的停用詞表來自哈工大中文停用詞表,并添加了由電信領域專家根據(jù)對話文本總結的停用詞.通過該停用詞表,我們可以降低停用詞對意圖識別的干擾.
在本文實驗中,我們不僅采用了準確率和召回率,這兩種廣泛使用的評價指標來評估實驗結果,還采用了Fβ值來評估實驗結果.Fβ值是一種綜合考慮了準確率和召回率的評價指標.它能讓我們表達出對準確率和召回率的不同偏好.例如,我們常用的F1值就是特殊形式的Fβ值,其準確率和召回率同等重要.Fβ值計算公式如下:
(2)
其中,0<β<1時,準確率具有更大影響,β=1時,即為F1值,β>1時,召回率具有更大影響.
在本節(jié)中,我們將通過實驗選擇出最佳的對話序列標注模型.我們選擇了BiLSTM-CRF和隱馬爾可夫支持向量機(Hidden Markov Support Vector Machines,SVM-HMM)兩種模型進行對比.其中,SVM-HMM是Altun等人[29]提出的一種序列標注模型,其序列標注的表現(xiàn)優(yōu)于隱馬爾可夫模型、條件隨機場等模型.因此,本文只選擇了SVM-HMM進行對比.值得注意的是,我們采用了BIEO標簽作為對話序列標注的標簽集合,并對SVM-HMM采用了兩種對話向量表示方法.其中,我們設定Sentence2Vec模型總迭代次數(shù)epoch為500,輸出句向量維度d為100,BiLSTM-CRF模型總迭代次數(shù)epoch為150.最后,我們從3個角度分析了實驗結果,結果如表2、表3和表4所示.
表2 統(tǒng)計所有標簽的對話序列標注結果
表3 統(tǒng)計BIE標簽的對話序列標注結果
表4 對話塊識別結果
為敘述方便,句向量+BiLSTM-CRF稱為方法1,One-Hot編碼+SVM-HMM稱為方法2,句向量+SVM-HMM稱為方法3.
表2統(tǒng)計了所有標簽的對話序列標注準確率.該準確率為模型的整體準確率.我們可以看到,方法2準確率最高,但我們還不能得出方法2效果最好的結論.因為3種方法的準確率十分接近,最大差值小于1.6%,且通過分析訓練語料發(fā)現(xiàn),4種標簽中O標簽占了絕大部分,導致整體準確率主要由O標簽準確率決定.
在對話序列標注中,我們最關心方法能否準確識別BIE標簽.因為BIE標簽決定了哪些對話形成了對話塊.表3統(tǒng)計了BIE標簽的對話序列標注結果,從中可以看到,方法2準確率明顯高于其它方法,但它的召回率低.這反映了方法2找出的對話塊較少,但對話塊的位置較準確.方法1準確率稍低,但其召回率高.這反映了方法1找出的對話塊多,但是對話塊的位置相比方法2不夠準確.而對于對話序列標注方法,我們更加注重方法的召回率.因為我們希望在保證一定準確率的基礎上,盡可能找出更多的對話塊,防止整個意圖識別方法召回率過低.因此,我們采用結合了方法準確率和召回率的F2值作為綜合評價指標.我們得到方法1的F2值高于其他方法,所以方法1優(yōu)于其他方法.
表4統(tǒng)計了對話塊識別結果,反映了方法能否準確找到對話塊的能力.根據(jù)表中數(shù)據(jù),我們得到了與表3相同的結論.
綜上所述,句向量+BiLSTM-CRF在對話序列標注實驗中的表現(xiàn)優(yōu)于其他方法.
本文將意圖識別任務拆分為了對話序列標注任務和意圖分類任務.在上一節(jié)得到句向量+BiLSTM-CRF的對話序列標注方法表現(xiàn)最好.本節(jié)實驗中,我們在采用該方法完成對話序列標注任務的基礎上,通過實驗得出最佳意圖分類模型以及不同意圖識別置信度閾值τ(低于該閾值將不輸出意圖識別結果)對意圖識別結果的影響.這樣做有利于找出能夠更好結合句向量+BiLSTM-CRF方法的意圖分類模型.我們選擇了支持向量機[30](Support Vector Machines,SVM)、隨機森林[31](Random Forest,RF)和StarSpace共3種模型進行對比.其中,SVM和RF是兩種常見的分類模型.需要注意的是,我們對比了采用線性核(linear)和高斯核(rbf)的SVM,以及采用詞語嵌入(word)和字符嵌入(char)的StarSpace.為了得到分類效果最佳的SVM和RF模型,我們采用網(wǎng)格搜索法得到模型的超參數(shù).實驗結果如圖3、圖4和圖5所示.
圖3 不同閾值τ對模型準確率的影響
圖4 不同閾值τ對模型召回率的影響
從圖3中我們可以看到,隨著置信度閾值τ的不斷增大,各模型準確率都呈現(xiàn)上升趨勢.同時,我們也注意到,每個模型在閾值τ到達某個臨界值時出現(xiàn)了截斷的情況.這是因為所有模型輸出的意圖分類結果置信度都小于閾值τ,導致模型沒有輸出結果.
從圖4中我們可以看到,隨著置信度閾值τ的不斷增大,各模型召回率都呈現(xiàn)下降趨勢,最后趨于0.其中,SVM(linear)、SVM(rbf)和RF召回率下降速度快,而StarSpace(char)和StarSpace(word)召回率下降較為平緩.
本文提出的意圖識別方法通過監(jiān)聽用戶與客服對話,分析用戶意圖,為客服提供幫助.因此,我們更加注重模型的準確率,以防止客服系統(tǒng)誤導客服做出錯誤的判斷.我們采用結合了方法準確率和召回率的F0.5值作為綜合評價指標,得到圖5所示結果.從中,我們發(fā)現(xiàn)所有模型的F0.5值都呈現(xiàn)先上升后下降的趨勢.其中,StarSpace(char)在閾值τ為0.76時達到最高,最高F0.5值為38.07%,優(yōu)于其他方法.
圖5 不同閾值τ對模型F0.5值的影響
因此,結合BiLSTM-CRF和StarSpace(char)的方法在意圖識別實驗中表現(xiàn)優(yōu)于其他方法.
在上一節(jié)中,我們得到了采用BiLSTM-CRF,再結合StarSpace(char)的方法在意圖識別中有較好的表現(xiàn).本節(jié)中,我們將該方法與采用RNN的現(xiàn)有意圖識別方法[20]以及直接采用StarSpace(char)的意圖識別方法進行對比.實驗結果如表5所示.
表5 不同方法意圖識別的效果對比
表5展示了3種方法在最高F0.5值對應的閾值τ下,它們的準確率和召回率.我們可以看到增加對話序列標注方法后,意圖識別的準確率和召回率都有較大的提升.其中,準確率的提升是因為對話序列標注方法起到了過濾無關對話的作用,即不會將標注為O標簽的對話進行意圖識別.這樣很大程度上減少了整個意圖識別方法的輸出意圖個數(shù),所以準確率得到了提升.召回率的提升是因為人們通常會用多句話來表達一個意圖,而只根據(jù)一句話無法準確分析意圖.對話序列標注方法起到了聯(lián)系上下對話的作用,有助于意圖識別方法輸出更多正確意圖.因此,方法的準確率和召回率都得到了提升.而相比于采用RNN的現(xiàn)有意圖識別方法,本文方法在準確率上取得了更加優(yōu)異的表現(xiàn).
本文提出了一種面向任務型多輪對話的粗粒度意圖識別方法.該方法將意圖識別任務拆分為對話序列標注任務和意圖分類任務.我們采用BiLSTM-CRF完成對話序列標注任務,用于過濾無關對話以及合并表述同一意圖的對話,采用StarSpace完成意圖分類任務,得到意圖分類結果.實驗表明,本文方法在準確率上有較大的提升.本文后續(xù)將針對如何提高方法召回率以及方法效率展開相關工作.