?

面向任務口語對話系統中不含槽信息話語的端到端對話控制

2019-01-22 08:33黃鏘嘉黃沛杰李楊輝杜澤峰
中文信息學報 2018年12期
關鍵詞:話語卷積特征

黃鏘嘉,黃沛杰,李楊輝,杜澤峰

(華南農業大學 數學與信息學院,廣東 廣州 510642)

0 引言

面向任務(task-oriented)的限定領域口語對話系統(spoken dialogue system,SDS)是自然語言理解領域內的研究熱點之一。它有著廣泛的應用場景,如信息咨詢[1-4]、商品導購[5]、旅游虛擬助理[6]、導航系統[7-8]等自然語言智能助理。近年來,一系列端到端(end-to-end)SDS模型[2-4,9-11]取得了超過傳統的管道式SDS模型的性能,從某種意義上歸功于它們能有效避免傳統的管道式設計存在的錯誤傳遞和錯誤累積問題。然而,經典的end-to-end訓練方式比較適合面向非任務(non-task-oriented)SDS[9-11]。通過大量數據,能夠訓練有效的聊天機器人類型的SDS。對于面向任務(task-oriented)的SDS,則需要進一步解決如何有效捕捉任務領域的信息,并融入到動作策略的選擇及應答[12]中。

最近的研究已經開始轉向嘗試以end-to-end方式訓練面向任務的SDS[2-4]。通過采用記憶網絡的推理方法來建模對話[2],以及將命名實體識別、數據庫查詢結果等語義特征結合到基于神經網絡的end-to-end模型中[3-4],可在一定程度上實現含有領域語義槽信息的用戶話語的系統應答動作策略的end-to-end學習。然而,面向任務SDS中表達多樣的不含槽信息的話語,既不能像面向聊天SDS那樣處理,又缺乏含有槽信息話語中的領域語義信息,其有效對話控制仍然是一個挑戰。

本文在應用卷積神經網絡(convolutional neural network, CNN)對“顯式”話語序列提取得到的特征表達的基礎上,通過構造和捕獲對話序列中“隱式”的系統后臺上下文信息,進一步豐富了處理不含槽信息話語的end-to-end系統動作分類模型的特征表達。本文的主要貢獻包括:

(1) 提出一種融合“顯式”話語特征和“隱式”上下文信息的end-to-end混合編碼網絡處理不含槽信息話語的對話控制?!帮@式”的話語序列的特征學習有助于捕捉不含槽信息話語的對話行為,“隱式”的系統后臺上下文信息支持面向任務的對話策略學習。

(2) 在中文限定領域的面向任務SDS數據集的評估表明,在不含槽信息話語處理方面,與傳統的管道式SDS模型和經典的end-to-end 模型相比,本文的方案能更好地捕捉對話上下文信息,在單回合處理以及對話段整體性能上都得到了顯著的提升。

本文組織結構安排如下: 第1節介紹相關工作,第2節介紹本文提出的方法,第3節為測試結果及分析,第4節總結本文的工作并做簡要的展望。

1 相關工作

1.1 管道式的SDS

傳統的管道式SDS由一系列有關聯的模塊組成,一般包括自動語音識別(automatic speech recognition,ASR)、口語語言理解(spoken language understanding,SLU)、對話管理(dialogue management,DM)、自然語言生成(natural language generation,NLG)、以及語音合成(text-to-speech,TTS)等五大模塊[13-14]。管道式設計的局限性一方面在于其模塊一般是獨立訓練的,本質上很難將系統適應到新任務領域。例如,當其中一個模塊采用新數據進行訓練或者在設計上進行了改動,與之相關聯的模塊也需要重新訓練或者設計,但這樣的做法需要耗費大量的精力。此外,模塊間的錯誤傳遞會導致錯誤累積,并且前序模塊的錯誤會向后續模塊傳播,不容易追蹤和確定錯誤的來源[15]。

1.2 面向非任務的end-to-end SDS

面向非任務(non-task-oriented)的end-to-end SDS[9-11]主要受到序列到序列(sequence to sequence)學習[16]的啟發,將對話當作是從源到目標的序列轉換問題,采用編碼器(encoder)網絡[17]將用戶話語編碼為表示其語義的分布式向量,然后通過解碼器(decoder)網絡生成系統應答。這些模型通常需要大量的數據來訓練。它們適合創建有效的聊天機器人類型的SDS,但缺乏完成特定領域任務的能力,例如,與數據庫交互[12]并將有用的信息融入到應答中。

1.3 面向任務的end-to-end SDS

近年來,研究者們開始研究適合面向任務SDS的end-to-end可訓練模型。Wen等[4]提出了一種模塊化連接的基于神經網絡的end-to-end可訓練模型。該模型分離了意圖估計、狀態確認、策略學習和響應生成等模塊。Bordes和Weston[2]提出了一種使用end-to-end記憶網絡的推理方法來建模對話。他們的模型直接從響應列表中選擇系統響應,而沒有經過狀態追蹤模塊。Williams等[3]將命名實體識別、數據庫查詢結果等語義特征結合到基于神經網絡的end-to-end模型中,優化了系統動作策略學習的性能。

表1是一個面向手機導購的SDS示例。在目前研究進展中,對于攜帶任務領域語義信息(槽信息)的用戶話語(表1對話話語中的(4)、(6)、(8)、(12)、(16)),采用已有的研究方法,可有效地實現從用戶話語到系統動作的end-to-end學習,無需通過管道式設計的槽信息填充、對話行為識別和對話策略等模塊化的獨立學習過程。具體例如,若是“陳述句”,模型輸出“主動引導”的系統動作,記錄下用戶提供的信息,并引導用戶進一步提供更多必要信息;若是疑問句,模型輸出“查詢并回復”的系統動作,結合話語相應的問句類型(如(8)的“特指問”、(12)的“選擇問”)查詢數據庫并回復。

表 1 面向任務的SDS示例 (None表示不含槽信息)

然而,對于不含槽信息的用戶話語(表1對話話語中的(2)、(10)、(14)、(18)),其表述更像面向聊天的用戶話語,但又不能像面向聊天SDS那樣處理話語。因為,會脫離所面向的任務的流程,不利于任務的完成。另外,相對比于含有槽信息的話語,不含槽信息話語,因缺乏領域語義信息,且此類話語表達多樣,其有效對話控制仍然是一個挑戰。

本文在應用卷積神經網絡(convolutional neural network, CNN)對“顯式”話語序列提取得到的特征表達的基礎上,通過構造和捕獲對話序列中“隱式”的系統后臺上下文信息,進一步豐富了end-to-end系統動作學習模型的特征表達,實現了不含槽信息話語的end-to-end對話控制。

2 結合“隱式”上下文信息的end-to-end模型

2.1 總體技術框架

圖1是本文提出的處理不含槽信息話語的融合“顯式”話語特征和“隱式”上下文信息的end-to-end混合編碼網絡模型結構圖。

(1) “顯式”的話語特征??谡Z話語是一種典型的短文本,故本文采用了在短文本理解中廣泛采用的CNN提取話語的特征表達。用戶句子首先通過句子特征表達完成從自然語言到低維實數向量的映射,完成句子特征的表達。通過CNN不同的卷積窗口大小對輸入特征進行卷積操作,提取不同粒度的特征組合,池化層實現對卷積特征的聚合統計,在保留重要特征的同時對特征起到降維作用。在池化層后面是dense層(隱藏層),dense層能夠對卷積層和池化層提取到的多粒度詞語特征進行權衡,并選擇出最有價值的特征,而dropout機制能夠有效防止模型過擬合。

(2) “隱式”的后臺系統上下文特征。后臺系統上下文信息主要包括兩個方面的作用。一方面是更準確地“捕捉”對話上下文的概要信息。比如用戶“連續不含槽信息的回合數”、“上回合討論對象”(具體商品還只是某一商品屬性,或是商品無關)、“是否已推薦商品”,單純依靠對話話語序列輸入的end-to-end模型, 很難直接通過對話序列“獲取”這些信息;另一方面,是提供直接從對話序列無法獲取的信息。比如“候選商品數量”是系統內部掌握的信息,可由系統根據當前的對話上下文已確定的商品槽信息查詢數據庫得到。值得注意的是,對于含有槽信息的話語的處理,當前的主流模型,不論是管道式SDS還是end-to-end SDS,都帶了商品槽信息獲取。

圖1 融合“顯式”話語特征和“隱式”上下文信息的end-to-end混合編碼網絡模型結構(以商品導購SDS為例)

最后,將“顯式”的話語特征和“隱式”的后臺系統上下文特征進行拼接,并連接softmax分類層,輸出對不同系統動作預測的概率分布。

2.2 卷積神經網絡模型

卷積神經網絡(convolutional neural network, CNN)在短文本理解方面取得較好的應用效果[18-19]。本文采用了Kim[18]提出的卷積神經網絡結構模型,該模型采用了多種核尺寸實現對句子進行不同粒度特征的提取,不同粒度的特征對實驗結果有改善的作用。

在原始的全連接神經網絡中,假設第l隱藏層有ml個節點,第(l-1)隱藏層有nl-1個節點,這時連接第l層與第(l-1)層的參數個數將達到nl-1×ml個。當nl-1和ml都很大的時候,參數空間會很大,也意味著計算量加大,從而導致訓練過程也會特別慢。因此, 采用卷積神經網絡可以很好地解決這

個問題,卷積神經網絡第l層的神經元只與第(l-1)層的局部相連接,這時連接第l層與第(l-1)層的參數個數為(nl-1-ml+1)。

其中,hl表示第W(l)層的輸出,W(l)表示連接第(l-1)層和l層的濾波器,?代表卷積運算,b(l)為偏置,f為激活函數。

卷積操作的應用雖然使得連接層與層之間的權重參數空間大大減少,但卷積操作后輸出的神經元個數與全連接的神經網絡相比并沒有多大改變。若此時在卷積結果后接一個softmax分類層,則其參數空間仍然相當龐大。因此,通常的做法是在卷積操作之后執行一個采樣操作,也稱為池化(pooling)。池化操作不僅能進一步減少參數的個數,還能降低特征的維度,從而避免了過擬合現象[20],如式(2)所示。

其中,pool表示池化操作,常見的有最大池化和平均池化,本文采用最大池化(max-pooling)作為采樣函數。

2.3 “隱式”的后臺系統上下文信息

本文提出的方案中,從對話信息流中持續采集的“隱式”的后臺系統上下文信息如表2所示。本文

表2 “隱式”系統上下文特征

期望通過增加這4類后臺系統上下文信息,可有助于捕捉對話流程的“隱式”上下文(相比于“理解”用戶話語的文本信息得到的“顯式”特征),有效地實現不含槽信息話語的end-to-end對話控制。

(1) 連續不含槽信息回合數。該特征記錄了用戶連續沒有主動提供商品相關信息(槽信息)的回合數。一般而言,出現這種情況或者是用戶缺乏主動主導對話的習慣,或者是用戶進入了連續閑聊的狀態。加入這個特征有助于增加模型選擇“主動引導”動作的概率,將對話“帶回”導購流程。

(2) 是否已推薦商品。該特征用于標識“推薦商品”這個系統動作是否出現過。系統是否已經向用戶推薦過商品,潛在有助于對用戶的一些對話行為,例如,“表態肯定”、“表態否定”等做出正確的系統動作選擇。

(3) 上回合討論對象。該特征不容易直接通過模型從對話序列上下文直接“理解”得到,但系統卻能做出較為準確的記錄。上回合討論的對象的不同,也會影響系統做出不同的系統動作選擇。

(4) 候選商品數量。該特征結合系統當前的對話上下文已確定的商品槽信息查詢數據庫得到。一般而言,在候選商品依然較多時宜繼續引導用戶表達特定商品屬性的需求,而在候選商品較少時則可能適時推薦會更合適。尤其是候選為空時,需要及時告知用戶。

3 實驗

3.1 數據集

實驗數據采用中文手機導購領域的對話語料庫。訓練數據從多年的系統日志中整理得到,選取了516段對話過程沒出現系統錯誤,并且包含有不含槽信息話語的對話段,用于模型訓練及模型超參數調節。在訓練集中,用戶話語4 938句,不含槽信息的話語為1 180句,占語料庫的23.89%。

測試數據采用13名測試人員測試產生的對話過程沒出現系統錯誤,且包含不含槽信息話語的對話段(共159段),用于本文提出方法與研究進展方法的評估和對比。訓練和測試數據的總體統計結果如表3所示。

本文用于訓練Word2Vector模型的數據是由中國中文信息學會社會媒體專委會提供的SMP2015微博數據集(SMP 2015 Weibo DataSet)。本文只使用了該數據集的一個子集(1.5G),該子集超過1 000萬條微博數據,詞匯表的詞語數為519 734個。

表3 數據集的統計結果

3.2 系統動作

系統動作是系統根據當前的上下文情況以及與用戶交互過程中可采用的對話行為,也是本文的end-to-end對話控制的輸出。系統確定了系統動作之后,再結合一些來自數據庫的信息生成完整的系統應答。

在當前實驗的中文手機導購SDS中,共有12種系統動作(表4)。其中包括社交動作的設計,使得用戶對系統應答的體驗更加自然,如“問候語”、“閑聊結束語”等。而任務相關動作設計的目的在于協助用戶進行導購,如“主動引導”、“推薦候選手機”等動作。

表4 系統動作(實驗采用的手機導購SDS)

3.3 實驗設置

本文實驗包括了CNN的特征選擇以及研究進展方法的對比,實驗中模型訓練的參數調節均采用k-折(本文采用5折)交叉驗證。

本文方法,融合“顯式”話語特征和“隱式”上下文信息的end-to-end混合編碼網絡(explicit and implicit context hybrid code network,EIC-HCN),對比的三種研究進展方法如下:

(1) DA+DM: 該方法作為對比的傳統的管道式SDS方法,對話行為(DA)識別采用了Wang等人提出CNN-RF混合模型[21],對話管理(DM)采用POMDP進行建模[14]。

(2) MemN2N: 采用了Bordes和Weston[2]提出的記憶網絡對SDS進行建模,實現了SDS以end-to-end的方式進行學習。

(3) CNN(BOC(N_utterances)): 采用了Severyn和Moschitti[19]的方法作為經典的end-to-end模型的另一個代表,將原始的序列對話中的近N個用戶話語作為輸入,并最終輸出系統動作的預測。在本文實驗中,經過5折的交叉驗證,該對比方法選擇了N=3。

測試采用了Bordes和Weston[2]實驗中的評估方法,對單回合和對話段兩個層面進行評估。

3.4 評價方法

目前針對口語對話系統性能的評價沒有一個統一標準[22]。有直接以人工標準(Gold-standard)作為評判[23],較為客觀。但由于特定用戶話語潛在存在不止一個合適的系統應答動作,所以偏向“嚴格”。也有采用主觀的評價。例如,人工對系統的預測結果進行滿意度的評分[24-25],但這樣的做法容易受主觀性影響。也有其他研究工作為每一個用戶的請求定義了一個候選集[2, 26],若系統預測結果在候選集合里,則認為是正確的,但人工定義這樣的候選集需要耗費較多的人力資源。綜合已有的評價標準,本文基于中文手機導購系統為背景,采用了以下的評判方法。

(1) 客觀評價

對測試集中每一句不含槽信息的用戶話語對應的系統應答的系統動作進行人工檢查確認,然后以人工標準(Gold-standard)作為評判,模型輸出和Gold-standard一致時為正確,不一致時為錯誤。

(2) 主觀評價

對于不同方法預測的系統動作,人工對系統的預測結果進行滿意度的評價。滿意判為正確,不滿意的判為錯誤。本文對以下三種情況判為不滿意(也即是錯誤)。

① 答非所問。系統回答與用戶詢問存在邏輯或語義的錯誤。如系統選擇“閑聊結束語”去應答用戶的問候等。

② 違反上下文。系統應答動作與當前用戶的歷史上下文相矛盾。如在“未推薦手機”的情況下,執行“成交結束語”、“購買確認”、“選擇其它手機”等動作。

③ 態度消極。系統在應對導購任務進程采取消極的應對動作。具體表現如,在 “已推薦手機”的情況下沒有積極地向用戶做出“購買確認”動作;在滿足向用戶推薦手機的條件下未向用戶做出“推薦候選手機”動作;或在導購任務未完成的條件下,多次持續地與用戶進行任務無關的交談。

3.5 實驗結果及分析

3.5.1 客觀評價

(1) 原始特征選擇

本文對比字袋(BOC)、詞袋(BOW)、Word2Vector(W2V)、position encoding(PE)[12]等不同CNN原始特征表達的效果。結果如表5所示。w2v特征表達中對句子字數的句子編碼進行驗證。

從表 5 可看出,BOC和BOW的特征表達均優于W2V和 PE 的特征表達。而字相比詞在 SDS領域中能夠更好地對句子特征進行表達,這也體現了 SDS 中話語口語化的特點。

表 5 不同原始特征識別效果

(2) 研究進展方法對比(客觀評價)

本文提出的方法與研究進展方法對比結果如表6 所示。本文的方法選用了字作為原始特征,采用了字袋的向量表達方式(BOC)。MemN2N模型和CNN(BOC(N_utterances))模型采用原始的對話序列作為上下文。

表6 本文提出方法與研究進展方法的對比(采用客觀評價)

續表

從表6測試結果表明,本文提出的方法比傳統管道式模型(DA+DM)、記憶網絡模型MemN2N、以及經典的end-to-end CNN模型CNN(BOC(N_utterances))在單回合正確率分別提高了27.40%、23.46%和16.78%;在對話段評估上,本文提出的方法比三者正確率分別提高了33.33%、34.59%和24.53%。這表明本文的方案能夠較好地解決不含槽信息話語end-to-end對話控制的挑戰。此外,雖然經典的end-to-end模型在非任務領域有優異的表現,但在任務領域的性能并沒有顯著地超過管道式SDS模型。本文融入模型的“隱式”上下文信息有效地彌補了經典end-to-end SDS在用戶對話上下文刻畫方面的不足。

3.5.2 主觀評價

(1) 研究進展方法對比(主觀評價)

我們進一步以主觀評價為標準,對比了本文提出的方法EIC-HCN與研究進展方法,結果如表7所示。

表7 本文提出方法與研究進展方法的對比(采用主觀評價)

從表7可以看到,從主觀評價角度,所有模型的正確率(人工評價的系統動作的滿意率)都得到一定程度的提升。尤其是管道式SDS取得了和兩個經典end-to-end模型相當的單回合正確率。我們的模型取得了優于對比方法的性能,正確率達到了接近90%。

(2) 細分錯誤類別分析

表8給出了不同方法的單回合動作預測錯誤(也即是人工評價中的不滿意)分類,為了方便不同方法之間的橫向比較,統計數據采用了每種錯誤類型的回合數占總回合數的比例。在具體的分析中,存在著同時滿足兩個或兩個以上錯誤分類的例子,所以不同錯誤分類的占比總和會略大于總錯誤率。

表8不同方法的單回合錯誤分類(比例為全部測試樣例的百分比)

方法答非所問/%違反上下文/%態度消極/%總錯誤率/%DA+DM18.3211.997.7128.42MemN2N22.7716.614.1131.68CNN(BOC(N_utterances))19.0116.783.0826.20EIC-HCN(BOC)7.020.865.4812.33

從表8可以看出,在不同方法的錯誤分類中,“答非所問”和“違反上下文”是錯誤分類的主要組成部分。同時,相比研究進展方法,本文提出的方法在“答非所問”和“違反上下文”的錯誤率得到明顯的減少,而“態度消極”需在系統任務和用戶體驗感之間做出權衡,相比研究進展方法,本文方法在該錯誤分類中并沒有得到明顯的改善。

具體錯誤分析如下:

(1) 答非所問。造成“答非所問”錯誤的主要原因在于對用戶話語的語義理解失誤。MemN2N方案采用的記憶網絡并不能較好的結合用戶話語中字或詞之間的聯系,錯誤最多。而CNN能夠通過卷積操作實現對用戶話語語義的有效提取,實驗結果得到一定的改善。本文提出方案EIC-HCN(BOC)顯著地將該分類的錯誤率降低到7.02%。

(2) 違反上下文。MemN2N和CNN(BOC(N_utterances))方案采用經典的end-to-end模型通過原始對話序列去捕獲對話的上下文信息。兩個方案在該錯誤分類占比分別為16.61%和17.78%,這說明記憶網絡和單純依靠“顯示”話語特征的CNN并不適應長距離的對話任務。傳統管道式SDS(DA+DM)和本文方法EIC-HCN(BOC)都采用了一些構造性的上下文特征,能夠有效的克服上下文信息難以捕獲的問題。本文的方法則還避免了管道式模型的錯誤傳遞。在該錯誤分類中,本文方案將錯誤率降低到0.86%。

(3) 態度消極。本文著重對“答非所問”和“違反上下文”錯誤分類進行研究和分析,這是因為大部分錯誤是由這兩類錯誤引起的。在“態度消極”這個分類上,本文方法與研究進展方法的實驗結果并沒有顯著的差別,未來的工作會對該類別進行研究。

4 結束語

為了有效地處理面向任務SDS中不含槽信息話語,本文提出了一種融合“顯式”話語特征和“隱式”上下文信息的end-to-end混合編碼網絡模型。在應用CNN對“顯式”話語序列提取得到的特征表達的基礎上,通過構造和捕獲對話序列中“隱式”的系統后臺上下文信息,進一步豐富了系統動作分類模型的特征表達。在中文手機導購領域SDS的測試表明,本文的方法取得了優于研究進展中管道式SDS、經典的記憶網絡和CNN訓練的end-to-end模型的應用效果。在客觀評價和主觀評價兩方面,都取得了單回合準確率和對話段準確率的顯著性能提升。未來工作主要是完善“態度消極”錯誤分類的改進探索,進一步豐富后臺系統上下文特征的構造,以及采用AMT (amazon mechanical turk) 服務[27]進行更大規模的測試。

猜你喜歡
話語卷積特征
根據方程特征選解法
離散型隨機變量的分布列與數字特征
基于3D-Winograd的快速卷積算法設計及FPGA實現
現代美術批評及其話語表達
卷積神經網絡的分析與設計
從濾波器理解卷積
不忠誠的四個特征
基于傅里葉域卷積表示的目標跟蹤算法
話語新聞
話語新聞
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合