文/楊成彪 呂榮榮 吳剛
隨著人們生活水平不斷的提高。以智能對話機器人為代表的人工智能設(shè)備的出現(xiàn)立刻受到了大家的歡迎,當然成功的背后,這個市場并非看起來那么順利,還有很多技術(shù)還未成熟。單輪對話下的任務(wù)處理還存在諸多的瓶頸,而多輪對話下需要克服的問題還沒有引起廣大研究人員的重視。
對話系統(tǒng)特指能完成類似人與人的溝通任務(wù)的計算機系統(tǒng),最早被提出是在1950年,Alan Turing提出了著名的圖靈測試,其目的是使用人機對話的方式檢驗機器是否具有智能。由于人類交流時醞釀?wù)Z言的過程較短,句法結(jié)構(gòu)比較簡單,多用短句和省略形式,對話的內(nèi)容很難在單輪對話中交代清楚,意圖通常隱含在多輪對話中。這就需要有一種模型可以將這些對話的歷史信息利用起來,本文我們提出了一種新的基于記憶網(wǎng)絡(luò)的框架來解決多輪對話下意圖識別問題。
表1:訓(xùn)練數(shù)據(jù)的分類結(jié)果
在對話系統(tǒng)中有大量的研究是關(guān)于非精確條件下的意圖理解,在實際應(yīng)用場景中,無論是語音識別還是人的語言表述都是非精確的,這無形之中大大增加了對話系統(tǒng)應(yīng)用的難度,機器人對用戶的意圖理解也就成為對話系統(tǒng)的核心環(huán)節(jié)。
早期的語義理解通常是基于規(guī)則(rulebased),但是由于輸入語言的非精確性,錯誤率比較高。后來以數(shù)據(jù)驅(qū)動的基于統(tǒng)計學(xué)習(xí)的方法,例如基于統(tǒng)計機器翻譯的語義理解,隱矢量狀態(tài)模型,條件隨機場,深度學(xué)習(xí)等,在意圖理解的準確性上有了顯著的提高。
多輪對話系統(tǒng)中意圖識別的關(guān)鍵是對歷史交互信息的存儲和處理,記憶網(wǎng)絡(luò)是一種神經(jīng)網(wǎng)絡(luò)模型,已被成功地應(yīng)用于很多自然語言任務(wù)中了,例如問答系統(tǒng),語言建模以及對話。記憶網(wǎng)絡(luò)中的存儲器部分可以嵌入長期記憶(例如,關(guān)于真實世界的常識)和短期上下文(例如,最近的幾段對話)。短期上下文的記憶可以采用內(nèi)部記憶方式和外部記憶方式。循環(huán)神經(jīng)網(wǎng)絡(luò)的記憶是內(nèi)部記憶方式,其依靠RNNCell或者LSTMCell實現(xiàn),但是記憶能力有限,一般最多記憶十幾個時間步長。而外部的記憶方式可以任意增加加入模型的知識量,同時對模型本身做出最小限度的改變。通過在傳統(tǒng)的模型中添加獨立存儲器,作為一種神經(jīng)網(wǎng)絡(luò)能夠按需讀寫的知識庫,來增強模型。該方法通過記憶網(wǎng)絡(luò)和forget gate,引入歷史信息實現(xiàn)多輪對話的意圖識別。
多輪對話系統(tǒng)下的意圖識別算法框架分為四個模塊:編碼模塊、記憶模塊、控制模塊和分類模塊,如圖1所示。
Encoding即為編碼模塊,該模塊用于將非量化的文本用實數(shù)向量映射到量化空間,編碼器采用LSTM網(wǎng)絡(luò)結(jié)構(gòu)。Memory即為記憶模塊,該模塊采用外部存儲方式存儲歷史信息,利用注意力機制從當前對話的歷史信息中抽取與當前對話意圖相關(guān)的信息。Forget gate即為控制模塊,可以控制歷史信息的引入。Classifier即為分類模塊,多輪對話的意圖識別問題應(yīng)看成是多標簽分類問題。
采用了Word Embedding機制,將文本數(shù)據(jù)映射到一個低維度的實數(shù)向量,避免了高維度的輸入導(dǎo)致LSTM模型產(chǎn)生維度災(zāi)難的問題。同時Word Embedding機制訓(xùn)練出的詞向量具有同義詞向量相似的特征,作為LSTM模型的輸入可以大大提高分類器的性能。
為了存儲當前對話的歷史信息,需要將歷史信息Xh的每輪對話Xhi通過LSTMmem編碼為連續(xù)向量空間的向量。
當前對話Xc通過LSTMin編碼為連續(xù)向量空間的向量。
在系統(tǒng)中,LSTMmem和LSTMin共享權(quán)重,一起用于編碼歷史信息和當前對話文本,這樣更有利于序列信息的信息編碼。
歷史信息中有些與當前對話的意圖相關(guān),很多與當前對話的意圖無關(guān),無區(qū)別的引入將導(dǎo)致很多噪聲的引入,這就需要引入注意力模型來判斷。當前對話的u和歷史信息中的mi的相關(guān)程度通過兩個向量之間的內(nèi)積表示,歷史信息中每輪對話與當前對話的相關(guān)程度值的集合經(jīng)過softmax進行歸一化就得到了符合概率分布取值區(qū)間的注意力分配概率分布數(shù)值。公式如下:
其中softmax函數(shù)為:
多輪對話系統(tǒng)中,對話意圖識別有些情況中需要參考歷史信息,而有些情況下僅僅依靠當前對話就可以判斷出意圖。對于能夠直接判斷出意圖的對話,其引入歷史信息相當于引入大量噪音。forget gate通過計算一個狀態(tài)值來控制是否引入歷史信息,公式如下:
通過sigmoid 函數(shù)產(chǎn)生一個0到1之間的值g,當g接近0,表示意圖識別不需要參考歷史信息;當g接近1,表示意圖識別需要參考當前信息。
多輪對話的意圖識別問題應(yīng)看成是多標簽分類問題,深度學(xué)習(xí)在多標簽問題的解決方法上,已取得優(yōu)異的成績。本系統(tǒng)參考BPMLL設(shè)計了一套符合本網(wǎng)絡(luò)的分類器,將對話向量u和歷史向量h結(jié)合進行分類。激活函數(shù)設(shè)置為sigmoid,使得預(yù)測概率限定在(0,1)之間,得到預(yù)測標簽向量o,其維度為標簽集合大小。公式如下:
該網(wǎng)絡(luò)系統(tǒng)的目標函數(shù)采用binary cross entropy,n表示樣本的總數(shù),x表示樣本,yi表示目標標簽向量的第i維度,oi表示預(yù)測標簽向量的第i維度,目標標簽向量y和預(yù)測標簽向量o是維度為標簽集合大小的向量。公式如下所示:
本實驗采用的數(shù)據(jù)集來自微軟旗下Maluuba公司在2017年5月發(fā)布的多輪對話公開數(shù)據(jù)。該數(shù)據(jù)集包含1369個有關(guān)旅行規(guī)劃的對話片段,共有20000多個對話輪次。
本文在該數(shù)據(jù)集上進行了三個模型的意圖識別實驗,Encoder-classifier和Memory-classifier兩個模型作為本文設(shè)計的MemoryAndGate-classifier的對比實驗。Encoder-classifier將上下文信息通過雙層的LSTM模型編碼后和當前對話的LSTM編碼向量連接。Memory-classifier利用LSTM網(wǎng)絡(luò)和外部記憶網(wǎng)絡(luò)結(jié)合注意力機制編碼上下文信息后和當前對話的LSTM編碼向量連接。MemoryAndGate-classifier利用LSTM網(wǎng)絡(luò)和外部記憶網(wǎng)絡(luò)結(jié)合注意力機制編碼上下文信息后通過forget gate判斷是否和當前對話的LSTM編碼向量連接。
圖1:算法框架圖
實驗在準確率和召回率兩個評估測度上進行,表1是本文模型與對比方法的實驗結(jié)果,實驗結(jié)果表明針對多輪對話的意圖識別,采用外部記憶網(wǎng)絡(luò)結(jié)合注意力機制能夠更好的利用上下文信息輔助識別當前對話的意圖,Memory-classifier和MemoryAndGate-classifier在效果上分別比Encoder-classifier提高了6.8%和9.0%。
本文針對多輪對話的意圖識別設(shè)計基于記憶網(wǎng)絡(luò)的深度學(xué)習(xí)模型,從本實驗的解析結(jié)果中可以發(fā)現(xiàn),改進后的模型在多輪對話的意圖識別上效果有所提升。但模型仍然有一些問題需要繼續(xù)研究,對上下文信息的抽取僅考慮了與意圖相近的信息,沒有考慮與意圖有依賴關(guān)系的信息。后續(xù)可以通過改進注意力機制從上下文信息中抽取這部分信息,提升意圖識別的效果。