任務驅動型人機對話系統(tǒng)設計
編輯導讀:Apple Siri、天貓精靈等智能對話產品如今越來越多出現在大眾視野,也獲得了人們的喜愛,其對話系統(tǒng)也引起了人們的注意。本文將圍繞任務驅動型人機對話系統(tǒng),對其設計展開六方面的分析,希望對你有幫助。
近年來,隨著NLP技術的進一步發(fā)展,越來越多的智能對話產品走進大眾的視野。如Apple Siri、亞馬遜Echo、Google Home、天貓精靈等,在便捷我們生活的同時,對話系統(tǒng)也開始逐漸引起人們的注意。
本文筆者將會結合工作實踐,對目前主流的對話系統(tǒng)進行相關介紹,包括對話系統(tǒng)構成、設計原理、應用實踐及其重難點問題。
一、對話機器人類型及應用
對話機器人目前從應用場景和功能功能來看,主要可以分為三種類型:問答機器人、任務機器人、閑聊機器人。
問答機器人:問答機器人主要依托于強大的知識庫,可對用戶提出的問題給出特定回復。對回復內容的準確性要求高,但僅限于一問一答的單輪對話交互,對上下文信息不作處理,目前多用于客服領域。
任務機器人:機器人通過多輪對話交互滿足用戶某一特定任務需求。對任務完成度要求高,其中機器人主要通過對話狀態(tài)追蹤、問槽、澄清等理解用戶意圖,然后進行回復或調用API等形式完成用戶任務需求,如訂票、訂餐等任務。
閑聊機器人:機器人與用戶互動比較開放,用戶沒有明確目的,機器人回復也沒有標準答案。對回復內容的準確度不做要求,主要以趣味性和個性化的回復滿足用戶情感需求。
而對綜合類型對話機器人而言,往往是以上對話類型的組合,可以同時滿足用戶問答、任務或閑聊等多種需求,如上文提到的天貓精靈,百度小度等智能音箱產品。
下面筆者將著重就任務機器人核心對話系統(tǒng)的設計做詳細闡述。
二、任務機器人對話系統(tǒng)實現方式
任務型對話系統(tǒng)目前主要有兩種實現技術,一種是基于流水線(pipeline)的實現方式,另一種是基于端到端(end-to-end)的實現方式。
2.1 流水線(pipeline)
上圖是基于流水線(pipeline)實現的對話系統(tǒng)的經典結構圖,又稱規(guī)則對話系統(tǒng)。
整個系統(tǒng)有四大核心模塊,分別由NLU、DST、DPL和NLG依次串聯構成的一條流水線,各模塊可獨立設計,模塊間協(xié)作完成任務型對話。
- 自然語言理解(NLU):主要對人機交互過程中產生的對話進行語義理解;
- 對話狀態(tài)跟蹤器(DST):管理每一輪對話狀態(tài),包括歷史狀態(tài)記錄及當前狀態(tài)輸出;
- 對話策略(DPL):基于當前對話狀態(tài)執(zhí)行的下一步系統(tǒng)回應策略;
- 自然語言生成(NLG):將對話策略輸出的語義轉化成自然語言。
2.2 端到端(end-to-end)
端到端(end-to-end)的對話系統(tǒng),主要是結合深度學習技術。采用數據模型驅動,通過海量數據訓練,挖掘出從用戶自然語言輸入到系統(tǒng)自然語言輸出的整體映射關系,而忽略中間過程的一種方法。
就目前工業(yè)界整體應用而言,雖然端到端(end-to-end)的方法靈活性和可拓展性較高,但其對數據的質量和數量要求也很高,同時還存在不可控性和不可解釋性等問題,因此工業(yè)界的對話系統(tǒng)目前大多采用的還是基于規(guī)則的流水線(pipeline)實現方式。
下面筆者結合自己工作實踐,著重將為大家分析下基于規(guī)則的對話系統(tǒng)是如何設計與運作的。
三、基于規(guī)則的對話系統(tǒng)設計
上圖為基于規(guī)則的對話系統(tǒng)架構,主要由語音識別(ASR)、自然語言理解(NLU)、對話管理(DM)、自然語言生成(NLG)、語言合成(TTS)五大模塊構成。各模塊間相互協(xié)同,共同完成對話任務。
其中ASR和TTS主要在語音機器人中有所運用,目前國內這塊的技術已較為純熟,一般可直接采用阿里云、科大訊飛等供應商的服務,下面將重點針對NLU、DM、NLG三個核心模塊做詳細解析。
3.1 自然語言理解模塊(NLU)
自然語言理解(NLU)模塊主要是通過意圖識別和槽識別(信息抽?。﹣砝斫鈱υ捴杏脩粽Z句的語義。
意圖識別(Intent Prediction):目的是理解用戶所表達的意圖,核心其實是處理一個分類問題,將用戶的話分類到事先預定義好的意圖類別中去。目前主要基于深度學習的方法,使用CNN(卷積神經網絡)對query進行特征提取和意圖分類,類似的方法同樣適用于領域的分類。
槽填充(Slot Filling):提取對話中關鍵信息,本質是將句子中的詞打上語義標簽(如上圖Slots日期、地點),具體方法有CRF(條件隨機場)、Deep Brief Network(深度信念網絡)以及RNN(循環(huán)神經網絡)等。
NLU的結果(intent和slot)會作為用戶狀態(tài)輸入到對話管理模塊,應用于對話狀態(tài)的更新和維護。
3.2 對話管理模塊(DM)
對話系統(tǒng)中對話管理(DM)模塊由對話狀態(tài)跟蹤器(DST)和對話策略(DPL)構成,此模塊就相當于任務型機器人的大腦,是很重要的決策模塊。
常見的DM實現方式有多種:基于規(guī)則的有限狀態(tài)機,基于統(tǒng)計的方法,基于神經網絡的方法。
幾種方法各有利弊,但基于通用性、可控性和數據成本等考量,目前工業(yè)應用還是以有限狀態(tài)機為主流,根據多維狀態(tài)的組合輸出對應策略,規(guī)則簡單也比較適用于冷啟動。
對話狀態(tài)追蹤(DST):每一輪對話中估計用戶的目標,常用的狀態(tài)結構是槽填充(slot filling)或語義框架(semantic frame)。參照上圖,對每一輪對話進行狀態(tài)的記錄和更新,主要通過記錄歷史狀態(tài)、用戶狀態(tài)(槽位&意圖等信息)和系統(tǒng)狀態(tài)(初始信息&配置信息),來更新當前對話狀態(tài)。
對話策略學習(DPL):根據當前對話的狀態(tài),產生系統(tǒng)下一步執(zhí)行動作(回答、澄清、動作執(zhí)行等),對話策略的設計也與任務場景強相關。可以使用監(jiān)督學習和強化學習的方法,不過目前工業(yè)上多采用規(guī)則的方法,事先定義好state對應的action。
3.3 自然語言生成模塊(NLG)
自然語言生成主要是將策略模塊生成的抽象系統(tǒng)動作轉化為自然語言形式的淺層表達,輸出到用戶端。目前有三種方法:基于話術模版、基于知識庫檢索、基于深度模型。模版與知識庫主要是基于規(guī)則的策略,深度模型可以用如LSTM,seq2seq等網絡生成自然語言。
基于規(guī)則的方法雖簡單易用,但適應不了更開放的場景,當場景復雜動作較多時,策略規(guī)則的制定也會耗費大量的精力。一旦規(guī)則確定,回復基本固定,靈活性較差,多樣性不足,造成體驗感不高。
而好的NLG需具備4個特性:恰當、流暢、易讀、靈活,即回復的自然語言不僅要精確表達出策略動作的語義,還要具備一定的“類人性”,讓人機對話盡可能靠近人與人之間的對話,這也是后續(xù)NLG模塊需要持續(xù)探索與改良的核心關鍵點。
四、應用案例
我們以58一個二手車回訪真實場景的人機語音交互對話為例,闡述下對話系統(tǒng)各模塊間是如何協(xié)同運作的。
我們從第四輪對話開始切入:當機器人第一次執(zhí)行問槽策略時,槽位名稱”需求了解“,執(zhí)行話術“請問新車和二手車是否都在您的考慮范圍內?”
4.1 語言理解
此刻當用戶回復”只考慮二手車“時,用戶的話會做前處理經ASR轉譯成文本,后將文本輸入到語言理解(NLU)模塊。
- 意圖識別:NLU模塊一般會優(yōu)先匹配預設QA,若無QA能匹配上,則進入深度意圖模型進行意圖識別,此刻識別意圖為”提供信息“。
- 槽識別:同時進行NLU模塊的另一任務”槽識別“,我們也稱這一過程為填槽(Slot Filling),本輪“需求了解”的槽值(Slot Value)識別為“二手車”。
4.2 對話管理
- 對話狀態(tài):然后NLU模塊的意圖和槽位信息作為用戶狀態(tài)輸入DM狀態(tài)模塊,狀態(tài)模塊結合系統(tǒng)狀態(tài)、用戶狀態(tài)、歷史狀態(tài),更新當前狀態(tài):當前匹配QA:“None”;當前意圖:“提供信息”;當前槽位名稱&槽值:“需求了解”&“二手車”;是否還有需要詢問的槽位;
- 對話策略:根據當前對話狀態(tài),設計好的策略中系統(tǒng)應執(zhí)行的下步策略:繼續(xù)詢問“車型了解”槽位,更精準定位用戶需求。
4.3 自然語言生成
隨后在自然語言合成模塊(NLG)根據設定好的策略規(guī)則確定輸出話術,機器人執(zhí)行問槽回復“那您最近在關注哪款車呢?我們可以將最新的降價信息推送給您?!?/p>
至此,對話系統(tǒng)從用戶輸入到機器人輸出,完成了一輪完整的對話流程。后續(xù)就是進行重復的對話流程循環(huán),由此對話持續(xù)一輪一輪進行下去,直到機器人任務主動或被動結束。
五、任務型對話機器人難點問題
要想任務型對話機器人在應用中真正表現出色,體驗感好,各個模塊也都有自己需解決的重難點問題。
如意圖模塊,如何降低ASR誤差帶來的影響,解決語言的多樣性和歧義性問題,槽位模塊中如何提高抽取模型的復用性,解決實體消歧問題。整體上看自然語言處理(NLP)領域,還存在上下文理解、語義推理、場景可移植性等亟需研究突破的問題。
以上基于規(guī)則的任務對話系統(tǒng),雖然簡單易用,但其缺點也是顯而易見的:對話管理模塊中狀態(tài)策略的定義與規(guī)則都高度依賴于人工設計,復雜的場景下狀態(tài)和策略維度多起來的時候,就會耗費大量的設計與維護成本。同時用戶的反饋數據難以傳給模型再學習,各模塊間的依賴和影響也比較高。
如何在簡單任務下,提高DM模塊的可復用性,降低機器人生產和更新成本,是快速商業(yè)化落地的關鍵點。目前業(yè)內很多公司已自行開發(fā)機器人工廠,將機器人生產的各環(huán)節(jié)模塊化、抽樣化、流程化、提升其通用性和兼容性,在盡可能多的任務場景下,實現機器人快速復制、設計、生產、上線的能力。
六、結語
對話機器人的能力成長依賴于NLP領域的技術進步,目前更多的應用落地還只是在特定場景下的簡單任務。由此,對話機器人未來的發(fā)展也必定會傾向于更大的知識體系 ,更強的自然語言理解能力、邏輯推理能力及情緒交互能力,實現Bot進一步的智能化和人性化。
以上內容基于筆者結合學習和工作實踐的思考,若有理解不到位之處,還望大家指正,更希望通過這篇文章能與各位多多交流。
本文由 @岑為 原創(chuàng)發(fā)布于人人都是產品經理,未經許可,禁止轉載
題圖來自?Unsplash,基于 CC0 協(xié)議
- 目前還沒評論,等你發(fā)揮!