文/楊成彪 呂榮榮 吳剛
隨著人們生活水平不斷的提高。以智能對話機器人為代表的人工智能設備的出現立刻受到了大家的歡迎,當然成功的背后,這個市場并非看起來那么順利,還有很多技術還未成熟。單輪對話下的任務處理還存在諸多的瓶頸,而多輪對話下需要克服的問題還沒有引起廣大研究人員的重視。
對話系統特指能完成類似人與人的溝通任務的計算機系統,最早被提出是在1950年,Alan Turing提出了著名的圖靈測試,其目的是使用人機對話的方式檢驗機器是否具有智能。由于人類交流時醞釀語言的過程較短,句法結構比較簡單,多用短句和省略形式,對話的內容很難在單輪對話中交代清楚,意圖通常隱含在多輪對話中。這就需要有一種模型可以將這些對話的歷史信息利用起來,本文我們提出了一種新的基于記憶網絡的框架來解決多輪對話下意圖識別問題。

表1:訓練數據的分類結果
在對話系統中有大量的研究是關于非精確條件下的意圖理解,在實際應用場景中,無論是語音識別還是人的語言表述都是非精確的,這無形之中大大增加了對話系統應用的難度,機器人對用戶的意圖理解也就成為對話系統的核心環節。
早期的語義理解通常是基于規則(rulebased),但是由于輸入語言的非精確性,錯誤率比較高。后來以數據驅動的基于統計學習的方法,例如基于統計機器翻譯的語義理解,隱矢量狀態模型,條件隨機場,深度學習等,在意圖理解的準確性上有了顯著的提高。
多輪對話系統中意圖識別的關鍵是對歷史交互信息的存儲和處理,記憶網絡是一種神經網絡模型,已被成功地應用于很多自然語言任務中了,例如問答系統,語言建模以及對話。記憶網絡中的存儲器部分可以嵌入長期記憶(例如,關于真實世界的常識)和短期上下文(例如,最近的幾段對話)。短期上下文的記憶可以采用內部記憶方式和外部記憶方式。循環神經網絡的記憶是內部記憶方式,其依靠RNNCell或者LSTMCell實現,但是記憶能力有限,一般最多記憶十幾個時間步長。而外部的記憶方式可以任意增加加入模型的知識量,同時對模型本身做出最小限度的改變。通過在傳統的模型中添加獨立存儲器,作為一種神經網絡能夠按需讀寫的知識庫,來增強模型。該方法通過記憶網絡和forget gate,引入歷史信息實現多輪對話的意圖識別。
多輪對話系統下的意圖識別算法框架分為四個模塊:編碼模塊、記憶模塊、控制模塊和分類模塊,如圖1所示。
Encoding即為編碼模塊,該模塊用于將非量化的文本用實數向量映射到量化空間,編碼器采用LSTM網絡結構。Memory即為記憶模塊,該模塊采用外部存儲方式存儲歷史信息,利用注意力機制從當前對話的歷史信息中抽取與當前對話意圖相關的信息。Forget gate即為控制模塊,可以控制歷史信息的引入。Classifier即為分類模塊,多輪對話的意圖識別問題應看成是多標簽分類問題。
采用了Word Embedding機制,將文本數據映射到一個低維度的實數向量,避免了高維度的輸入導致LSTM模型產生維度災難的問題。同時Word Embedding機制訓練出的詞向量具有同義詞向量相似的特征,作為LSTM模型的輸入可以大大提高分類器的性能。
為了存儲當前對話的歷史信息,需要將歷史信息Xh的每輪對話Xhi通過LSTMmem編碼為連續向量空間的向量。

當前對話Xc通過LSTMin編碼為連續向量空間的向量。

在系統中,LSTMmem和LSTMin共享權重,一起用于編碼歷史信息和當前對話文本,這樣更有利于序列信息的信息編碼。
歷史信息中有些與當前對話的意圖相關,很多與當前對話的意圖無關,無區別的引入將導致很多噪聲的引入,這就需要引入注意力模型來判斷。當前對話的u和歷史信息中的mi的相關程度通過兩個向量之間的內積表示,歷史信息中每輪對話與當前對話的相關程度值的集合經過softmax進行歸一化就得到了符合概率分布取值區間的注意力分配概率分布數值。公式如下:

其中softmax函數為:

多輪對話系統中,對話意圖識別有些情況中需要參考歷史信息,而有些情況下僅僅依靠當前對話就可以判斷出意圖。對于能夠直接判斷出意圖的對話,其引入歷史信息相當于引入大量噪音。forget gate通過計算一個狀態值來控制是否引入歷史信息,公式如下:

通過sigmoid 函數產生一個0到1之間的值g,當g接近0,表示意圖識別不需要參考歷史信息;當g接近1,表示意圖識別需要參考當前信息。
多輪對話的意圖識別問題應看成是多標簽分類問題,深度學習在多標簽問題的解決方法上,已取得優異的成績。本系統參考BPMLL設計了一套符合本網絡的分類器,將對話向量u和歷史向量h結合進行分類。激活函數設置為sigmoid,使得預測概率限定在(0,1)之間,得到預測標簽向量o,其維度為標簽集合大小。公式如下:

該網絡系統的目標函數采用binary cross entropy,n表示樣本的總數,x表示樣本,yi表示目標標簽向量的第i維度,oi表示預測標簽向量的第i維度,目標標簽向量y和預測標簽向量o是維度為標簽集合大小的向量。公式如下所示:

本實驗采用的數據集來自微軟旗下Maluuba公司在2017年5月發布的多輪對話公開數據。該數據集包含1369個有關旅行規劃的對話片段,共有20000多個對話輪次。
本文在該數據集上進行了三個模型的意圖識別實驗,Encoder-classifier和Memory-classifier兩個模型作為本文設計的MemoryAndGate-classifier的對比實驗。Encoder-classifier將上下文信息通過雙層的LSTM模型編碼后和當前對話的LSTM編碼向量連接。Memory-classifier利用LSTM網絡和外部記憶網絡結合注意力機制編碼上下文信息后和當前對話的LSTM編碼向量連接。MemoryAndGate-classifier利用LSTM網絡和外部記憶網絡結合注意力機制編碼上下文信息后通過forget gate判斷是否和當前對話的LSTM編碼向量連接。

圖1:算法框架圖
實驗在準確率和召回率兩個評估測度上進行,表1是本文模型與對比方法的實驗結果,實驗結果表明針對多輪對話的意圖識別,采用外部記憶網絡結合注意力機制能夠更好的利用上下文信息輔助識別當前對話的意圖,Memory-classifier和MemoryAndGate-classifier在效果上分別比Encoder-classifier提高了6.8%和9.0%。
本文針對多輪對話的意圖識別設計基于記憶網絡的深度學習模型,從本實驗的解析結果中可以發現,改進后的模型在多輪對話的意圖識別上效果有所提升。但模型仍然有一些問題需要繼續研究,對上下文信息的抽取僅考慮了與意圖相近的信息,沒有考慮與意圖有依賴關系的信息。后續可以通過改進注意力機制從上下文信息中抽取這部分信息,提升意圖識別的效果。