揭秘任务型对话机器人(下篇)
本文來(lái)自專欄語(yǔ)言、知識(shí)與人工智能,作者騰訊知文實(shí)驗(yàn)室
近年來(lái)比較熱門的任務(wù)型對(duì)話的研究主要集中在端到端的框架的研究,基本跟傳統(tǒng)任務(wù)型算法框架——語(yǔ)言理解模塊(Spoken Language Understanding,對(duì)話管理模塊(Dialogue Management),自然語(yǔ)言生成模塊(Natural Language Generation)有較大的差別。其中一些這類模型本質(zhì)上實(shí)際為一些sequence-to-sequence結(jié)合知識(shí)庫(kù)的架構(gòu),如Manning 2017年的兩篇也是Encoder-Decoder的模型。不過(guò),這類模型對(duì)數(shù)據(jù)標(biāo)注要求很高(可以參見(jiàn)Stanford Dialog Dataset的標(biāo)注),仍然處在探索階段,業(yè)界上真正實(shí)用性較強(qiáng)依舊以傳統(tǒng)的算法框架為主。本篇文章也是著重介紹傳統(tǒng)算法框架中的語(yǔ)言理解模塊,著重于語(yǔ)言理解模塊中的意圖與槽位的聯(lián)合模型。
本文的主要目錄結(jié)構(gòu)
首先回顧一下任務(wù)型導(dǎo)向?qū)υ挼囊c(diǎn),包括概念及實(shí)例(Ideepwise與阿里小蜜等);其次從任務(wù)型的語(yǔ)義表示說(shuō)起到整體的對(duì)話框架也包括一些實(shí)例;最后也是本文的重點(diǎn),我們將介紹傳統(tǒng)算法框架中語(yǔ)言理解模塊的意圖與槽位的聯(lián)合模型。
1. 什么是任務(wù)型?
任務(wù)型的概念
對(duì)象
任務(wù)型導(dǎo)向的對(duì)話指特定條件下提供信息或服務(wù)的對(duì)話。通常情況下是為了滿足帶有明確目的的用戶。
具體場(chǎng)景與功能
例如查流量,查話費(fèi),訂餐,訂票,咨詢等任務(wù)型場(chǎng)景。由 于用戶的需求較為復(fù)雜,通常情況下需分多輪陳述,用戶也可能在對(duì)話過(guò)程中不斷修改與完善自己的需求,任務(wù)型機(jī)器人需要通過(guò)詢問(wèn)、澄清和確認(rèn)來(lái)幫助用戶明確目的。
任務(wù)評(píng)價(jià)
首先要有解決問(wèn)題的明確目標(biāo),評(píng)價(jià)指標(biāo)較重要的一點(diǎn)為,輪次盡可能少,盡量直逼答案 ,如果答非所問(wèn)嚴(yán)重影響用戶使用。
任務(wù)型與閑聊對(duì)比
Ideepwise產(chǎn)品:
阿里小蜜產(chǎn)品:
從上面可以看出任務(wù)型導(dǎo)向的對(duì)話目的十分明確,關(guān)鍵是獲取意圖與約束條件(槽位)以及對(duì)話狀態(tài)的追蹤。
任務(wù)型導(dǎo)向?qū)υ捲诖蠹易逯械奈恢?/strong>
這里的分類是這樣分的:首先將對(duì)話分為問(wèn)答與會(huì)話,在問(wèn)答中按照文檔是否結(jié)構(gòu)化分為無(wú)結(jié)構(gòu)化文檔與結(jié)構(gòu)化文檔。無(wú)結(jié)構(gòu)化文檔中包含一些如IR信息檢索(如QA對(duì),查找文檔的問(wèn)題),IE信息抽取(如閱讀理解,查找文檔中的精確片段),這一塊的難點(diǎn)在于相似性的計(jì)算。結(jié)構(gòu)化文檔中包含數(shù)據(jù)庫(kù),知識(shí)圖譜等,他們的輸入為結(jié)構(gòu)化的片段,數(shù)據(jù)庫(kù)具有查詢的功能,知識(shí)圖譜具有查詢與推理的能力,這一塊的難點(diǎn)其實(shí)也是如何獲取自然語(yǔ)言中的約束條件(槽位)的問(wèn)題。接下來(lái)重點(diǎn)看下會(huì)話,會(huì)話劃為為閑聊型,任務(wù)型等,傳統(tǒng)的任務(wù)型分為語(yǔ)言理解模塊(SLU),對(duì)話管理模塊(DM)以及自然語(yǔ)言生成模塊(NLG)等。后續(xù)的介紹主要針對(duì)SLU模塊中的聯(lián)合模型的一個(gè)介紹。
語(yǔ)義的表示方法是自然語(yǔ)言領(lǐng)域的難點(diǎn),這對(duì)于任務(wù)導(dǎo)向的對(duì)話來(lái)說(shuō)也是如此……
2. 任務(wù)型中的語(yǔ)義表示
自然語(yǔ)言如何解析成合適的語(yǔ)義表示一直是一個(gè)難題。下面主要介紹三種相關(guān)的語(yǔ)義表示方法。
1. 分布語(yǔ)義表示(Distributional semantics)
主要包括詞level與句子level。詞level上主要有:Word2Vector, GloVe, ELMo, FastText…等句子level主要有Skip-Thoughts, Quick-Thoughts, InferSent…等分布式表示
2. 框架語(yǔ)義表示(Frame semantics)
主要包括三元組的形式,Action(slot,value),例如查詢幣種,Inform(貨幣=人民幣,…)
3. 模型論語(yǔ)義表示(Model-theoretic semantics)
這是十分有趣的一種表示方式,參見(jiàn)Paul Gochet著作《Philosophical Perspectives for Pragmatics》。
例如一些詞表示成兩個(gè)集合的運(yùn)算 :
傳統(tǒng)的任務(wù)型算法框架上一篇文章介紹過(guò),這里祭上圖回顧一下:
我們這里以一個(gè)例子開(kāi)始語(yǔ)言理解模塊的拓展。對(duì)于一段對(duì)話我們需要通過(guò)語(yǔ)言理解模塊對(duì)它進(jìn)行解析,包括領(lǐng)域的識(shí)別如是航空還是酒店,以及每個(gè)片段的意圖,比如是購(gòu)票還是退票,以及每個(gè)具體意圖下的約束信息(槽位)。
3. 語(yǔ)言理解模塊
語(yǔ)言理解模塊主要包括意圖與槽位的識(shí)別。意圖的識(shí)別實(shí)際上是一個(gè)分類問(wèn)題,如基于規(guī)則,傳統(tǒng)機(jī)器學(xué)習(xí)算法 (SVM),基于深度學(xué)習(xí)算法(CNN, LSTM, RCNN, C-LSTM, FastText)等。意圖在對(duì)話中還涉及轉(zhuǎn)換,這里不在說(shuō)明。Slot識(shí)別實(shí)際上是一種序列標(biāo)記的任務(wù),如基于規(guī)則 (Phoenix Parser),基于傳統(tǒng)機(jī)器學(xué)習(xí)算法 (DBN; SVM),基于深度學(xué)習(xí)算法(LSTM, Bi-RNN, Bi-LSTM-CRF)。有些人可能不大區(qū)別slot與實(shí)體的區(qū)別,下面以BIO標(biāo)注舉個(gè)例子:
如”show flights from Boston to New York today“中對(duì)于實(shí)體來(lái)講Boston與New York都是標(biāo)注為city,而對(duì)于slot來(lái)說(shuō)區(qū)分為出發(fā)城市與目的地城市,可以這樣說(shuō)槽位的種類相比與實(shí)體更加的多元化。
Joint Model (Intent+Slot)
1. 第一篇文章主要利用雙向的GRU+CRF作為意圖與槽位的聯(lián)合模型。
Zhang X, Wang H. A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding[C] IJCAI. 2016
模型如下:
- 輸入為窗口化的詞向量:
- 利用雙向GRU模型學(xué)習(xí)到高維度特征。
- 意圖與槽位
對(duì)于意圖分類來(lái)說(shuō),利用每一個(gè)學(xué)習(xí)到的隱藏層特征,采用max pooling槽位得到全句的表達(dá),再采用softmax進(jìn)行意圖的分類:
對(duì)于槽位來(lái)說(shuō),對(duì)每個(gè)隱藏層的輸入用前向網(wǎng)絡(luò)到各個(gè)標(biāo)簽的概率,并采用CRF對(duì)全局打分得到最優(yōu)的序列。
聯(lián)合的損失函數(shù)為槽位與意圖的極大似然
本文的模型簡(jiǎn)單而且槽位識(shí)別的準(zhǔn)確率與意圖識(shí)別的準(zhǔn)確率都達(dá)到很高的水準(zhǔn),
本文的結(jié)果基于ATIS數(shù)據(jù)集:
Intent :98.32 Slot (F1):96.89
2. 第二篇主要采用利用語(yǔ)義分析樹(shù)構(gòu)造了路徑特征對(duì)槽位與意圖的識(shí)別的聯(lián)合模型。(RecNN+Viterbi)
Guo D, Tur G, Yih W, et al. Joint semantic utterance classification and slot filling with recursive neural networks[C] 2014 IEEE. IEEE, 2014
先介紹下本文的basic Recursive NN的模型
輸入為單個(gè)詞向量(后續(xù)優(yōu)化輸入為窗口的詞向量),每個(gè)詞性被看作為權(quán)重向量(weight vector ),這樣每個(gè)詞在其路徑的運(yùn)算為簡(jiǎn)單的詞向量與詞性權(quán)重向量的點(diǎn)積運(yùn)算。如上圖中的方塊為詞性的權(quán)重向量與輸入向量的點(diǎn)積運(yùn)算后的結(jié)果。當(dāng)一個(gè)父節(jié)點(diǎn)有多個(gè)孩子分支的時(shí)候,可以看成每個(gè)分支與權(quán)重點(diǎn)積的和運(yùn)算。
意圖識(shí)別模塊
意圖識(shí)別,該文章中直接采用根節(jié)點(diǎn)的輸出向量直接做一個(gè)分類。
槽位識(shí)別
這一模塊引入了路徑向量的特征
如”in“這個(gè)單詞,在語(yǔ)義分析樹(shù)中的路徑為”IN-PP-NP“,將該路徑的每個(gè)輸出向量做一個(gè)加權(quán)運(yùn)算得到path的特征,本文采用了三個(gè)詞的path特征的concat作為tri-path特征進(jìn)行槽位的分類,從而進(jìn)行對(duì)”in“的一個(gè)預(yù)測(cè)。
優(yōu)化
文章中還在baseline的基礎(chǔ)上做了一些優(yōu)化:
優(yōu)化輸入為窗口的詞向量
節(jié)點(diǎn)用與先前簡(jiǎn)單加權(quán)不同的網(wǎng)絡(luò),采用了非線性的激活函數(shù)
采用基于Viterbi的CRF優(yōu)化全局,及采用了基于tri-gram的語(yǔ)言模型極大化標(biāo)注序列
本文的結(jié)果基于ATIS數(shù)據(jù)集:
Intent :95.40 Slot (F1):93.96
3. 第三篇主要是基于CNN+Tri-CRF的模型
Xu P, Sarikaya R. Convolutional neural network based triangular crf for joint intent detection and slot filling 2013 IEEE Workshop on. IEEE, 2013
看一下篇CNN+TriCRF模型,模型框架如下:
對(duì)于槽位識(shí)別的模型
輸入的為每個(gè)的詞向量,經(jīng)過(guò)一個(gè)卷積層得到高維特征h,隨后經(jīng)過(guò)Tri-CRF作為整體的打分。Tri-CRF與線性的CRF的區(qū)別是輸入前用了一個(gè)前向網(wǎng)絡(luò)得到每個(gè)標(biāo)簽的分類。我們來(lái)分析一下評(píng)分的公式:
上述的t(Yi-1,Yi)為轉(zhuǎn)移的打分,hij為CNN得到的高維特征,每個(gè)時(shí)刻的高維特征經(jīng)過(guò)一個(gè)前向網(wǎng)絡(luò)得到每個(gè)標(biāo)簽的概率,這樣前兩者的結(jié)合就是整體的打分。
對(duì)于意圖識(shí)別
CNN采用同一套參數(shù),得到每個(gè)隱藏層的高維特征h,直接采用max pooling得到整句的表達(dá),用softmax得到意圖分類。
將上述結(jié)合起來(lái)實(shí)際上就是聯(lián)合模型。
本文的結(jié)果基于ATIS數(shù)據(jù)集:
Intent :94.09 Slot (F1):95.42
4. 第四篇的主要是基于attention-based RNN
Liu B, Lane I. Attention-based recurrent neural network models for joint intent detection and slot filling[J]. 2016.
首先介紹一下context vector的概念,參見(jiàn)Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. 2014.
上述公式中的g實(shí)際上是一個(gè)前向的網(wǎng)絡(luò)得到decoder每個(gè)隱藏層與輸入序列中每個(gè)encoder隱藏層的相關(guān),即attention分量,對(duì)encoder每時(shí)刻隱藏層的輸出與當(dāng)前時(shí)刻的attention的加權(quán)即得到文本向量(context vector)
進(jìn)入正文,本文采用的encoder-decoder模型如下:
槽位
圖a隱藏層非對(duì)齊attention的模型。decoder隱藏層非對(duì)齊的方式,decoder端的每個(gè)cell的輸入為上一時(shí)刻隱藏層s,上一時(shí)刻標(biāo)簽的概率s與文本向量c的輸入。
圖b為隱藏層對(duì)齊無(wú)attention的模型,decoder端的每個(gè)cell的輸入為上一時(shí)刻隱藏層s,上一時(shí)刻標(biāo)簽的概率s與對(duì)應(yīng)的encoder的每個(gè)時(shí)刻隱藏層的輸出。
圖c隱藏層對(duì)齊attention的模型。decoder端的每個(gè)cell的輸入為上一時(shí)刻隱藏層s,上一時(shí)刻標(biāo)簽的概率s,上一時(shí)刻標(biāo)簽的概率s與文本向量c的輸入與對(duì)應(yīng)的encoder的每個(gè)時(shí)刻隱藏層的輸出。
意圖
采用encoder的最后輸出加入文本向量作為intent的分類。
該模型基于ATIS數(shù)據(jù)集(+aligned inputs):
Intent :94.14 Slot (F1):95.62
本文還基于上述的idea得到另外一種基于attention RNN的聯(lián)合模型
BiRNN 隱藏層的輸入為
槽位
BiRNN得到的高維特征與文本向量concat起來(lái)作為單層decoderRNN的輸入用于槽位識(shí)別,需要注意的是encoder的輸出概率只作用于BiRNN的正向傳輸層。
意圖
單層decoderRNN的隱藏層的輸出的加權(quán)得到最后的輸出向量,得到最后的意圖分類
該模型基于ATIS數(shù)據(jù)集(+aligned inputs):
Intent :94.40 Slot (F1):95.78
5. 第五篇主要是在線意圖與槽位,語(yǔ)言的聯(lián)合模型(Online-RNN-LU)。上述四種聯(lián)合模型之所以不是在線處理,主要一點(diǎn)是都是以整個(gè)句子為單位做解析,不能做到實(shí)時(shí)的解析。本文的亮點(diǎn)就是實(shí)時(shí)解析,對(duì)輸入到當(dāng)前為止的時(shí)刻T得到最優(yōu)意圖與槽位的解析以及一個(gè)詞語(yǔ)的預(yù)測(cè)。
Liu B, Lane I. Joint online spoken language understanding and language modeling with recurrent neural networks[J]. 2016.
上圖表示當(dāng)前到時(shí)刻T的一個(gè)解析:
意圖
w為T時(shí)刻前(包括T)的詞語(yǔ)序列,c為T時(shí)刻前的意圖,s為T時(shí)刻前的槽位序列,根據(jù)上述三者作為當(dāng)前時(shí)刻T的RNN的輸入,RNN隱藏層的輸出,通過(guò)不同的MLP層分別作為當(dāng)前時(shí)刻T意圖與槽位的分類,同時(shí)該隱藏層的輸出concat意圖與槽位的信息輸入MLP層得到下一個(gè)詞的預(yù)測(cè)。
實(shí)際如下操作,采用LSTM,輸入為上一時(shí)刻的詞語(yǔ)序列,意圖與槽位信息。其中公式中的IntentDist,SlotLabelDist,WordDist為MLP層。
訓(xùn)練的方法即上述三個(gè)模塊的極大似然
值的注意的是本文由于在線的算法,采用了greedy的思想,基于先前的意圖與槽位達(dá)到當(dāng)前的最優(yōu)。
上述幾種模型在ATIS上的評(píng)分
4.總結(jié)
上述的模型主要以深度學(xué)習(xí)的方法解決了傳統(tǒng)任務(wù)算法框架中較為重要的意圖與槽位的識(shí)別,這些模型都能應(yīng)用到實(shí)際中一個(gè)相關(guān)的任務(wù)型領(lǐng)域(本人使用過(guò)LSTM+CRF的方法實(shí)現(xiàn)項(xiàng)目中匯率的槽位提取)。如何使用對(duì)話管理模塊結(jié)合該語(yǔ)言理解模塊解決多輪對(duì)話的問(wèn)題一直是一個(gè)較為頭疼的難題,盡管在傳統(tǒng)算法框架上提出了一些例如傳統(tǒng)模型或者強(qiáng)化學(xué)習(xí)的方法,但數(shù)據(jù)的規(guī)范性,對(duì)話過(guò)程不流暢,死板等嚴(yán)重影響用戶在任務(wù)型對(duì)話的體驗(yàn)。最近較為熱鬧的Task-Oriented 主要是基于sequence-to-sequence的模型結(jié)合知識(shí)庫(kù),產(chǎn)生了一些意想不到的驚喜,下一篇主要介紹這類模型。
Reference:
[1] Zhang X, Wang H. A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding[C] IJCAI. 2016
[2] Guo D, Tur G, Yih W, et al. Joint semantic utterance classification and slot filling with recursive neural networks[C] 2014 IEEE. IEEE, 2014
[3] Xu P, Sarikaya R. Convolutional neural network based triangular crf for joint intent detection and slot filling 2013 IEEE Workshop on. IEEE, 2013
[4] Liu B, Lane I. Attention-based recurrent neural network models for joint intent detection and slot filling[J]. 2016.
[5] Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. 2014.
[6] Liu B, Lane I. Joint online spoken language understanding and language modeling with recurrent neural networks[J]. 2016.
問(wèn)答
如何用php檢測(cè)搜索引擎機(jī)器人?
相關(guān)閱讀
任務(wù)型對(duì)話機(jī)器人簡(jiǎn)介
文本情感分析綜述
當(dāng)深度學(xué)習(xí)遇見(jiàn)自動(dòng)文本摘要
此文已由作者授權(quán)騰訊云+社區(qū)發(fā)布,原文鏈接:https://cloud.tencent.com/developer/article/1147476?fromSource=waitui
歡迎大家前往騰訊云+社區(qū)或關(guān)注云加社區(qū)微信公眾號(hào)(QcloudCommunity),第一時(shí)間獲取更多海量技術(shù)實(shí)踐干貨哦~
總結(jié)
以上是生活随笔為你收集整理的揭秘任务型对话机器人(下篇)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 白雪 | NLP加持知识图谱在金融事件挖
- 下一篇: 在服务器上安装anaconda遇到的问题