人機對話
出自 MBA智库百科(https://wiki.mbalib.com/)
人機對話(Human-Machine Conversation)
目錄 |
人機對話是指讓機器理解和運用自然語言實現人機通信的技術。通過人機對話交互,用戶可以查詢信息;用戶也可以和機器進行聊天;用戶還可以獲取特定服務,如獲取電影票預定服務。
人機對話是人工智慧的重要挑戰,最近幾年隨著人工智慧的興起,人機對話的研究也越來越火熱。圖2是NLP頂級會議ACL和EMNLP自2010年以來對話相關論文的數量,可以看出從2016年開始對話論文的數量增長迅猛,2018年相比於2010年對話論文數量有數倍的增長。對話相關技術的逐步成熟也引發了工業界研發對話產品的熱潮,產品類型主要包括語音助手、智能音箱和閑聊軟體。
1、語音助手是指在硬體設備或APP軟體上植入人機對話程式輔助用戶通過語音方式使用宿主設備或程式上的功能,如內容搜索、信息查詢、音樂播放、鬧鈴設定以及餐館和票務的預定等功能,該類型的產品有百度小度、蘋果Siri、Google Now、微軟小娜、阿裡小蜜;
2、智能音箱是為對話系統獨立設計的音箱產品,和語音助手的區別是,智能音箱獨立設計了一套語音輸入輸出系統,用於實現遠場語音控制,即遠距離的語音對話交互,如家居環境下家電設備的控制,該類型的產品有百度小度音箱和小度在家、亞馬遜Echo、Google Home、阿裡天貓精靈、小米小愛等;
3、閑聊軟體主要是藉助情感計算技術和用戶進行情感交流,如微軟小冰。
人機對話技術的研究最早可以追溯到上世紀六十年代,自阿蘭·圖靈提出通過圖靈測試來檢驗機器是否具有人類智能的設想以來,研究人員就開始致力於人機對話系統的研究。1966年MIT的電腦科學家Joseph Weizenbaum開發了Eliza聊天系統,用於模擬心理治療師對精神病患者進行心理治療。1972年精神病醫生Kenneth Colby基於Eliza的原理開發了Parry聊天系統,只不過模擬的不是心理治療師,而是精神病患者。1998年CMU的Randy Pausch開發的Alice被認為是最像人類的聊天機器人,還獲得了三屆人工智慧競賽大獎-羅布納獎(2000年、2001年和2004年),同時孕育了用於開發聊天機器人的AIML語言。
隨著深度學習技術的興起,以對話語料為基礎使用神經網路模型進行對話學習是近幾年人機對話的主流研究方法。人機對話根據功能不同可以分為任務完成、問答和聊天三種類型,不同類型採用的技術手段和評價方法也不同。下麵我們對這三種類型對話進行簡單的介紹:
1、任務完成類型
用於完成用戶的特定任務需求,比如電影票預訂、機票預定、音樂播放等,以任務完成的成功率作為評價標準。這類對話的特點是用戶需求明確,往往需要通過多輪方式解決,主流的解決方案是2013年Steve Young提出的POMDP框架,涉及語言理解、對話狀態跟蹤、回覆決策、語言生成等技術。
(1)語言理解(Natural Language Understanding),理解用戶輸入中的語義和語用信息。語義信息通常由意圖和槽位信息構成,一個意圖表示一個用戶需求,每個任務有多種類型的意圖,每個意圖有多個槽位信息。在電影票預定中,意圖類型有電影票預定、取消預定、修改預定等意圖,槽位有影院、日期、人數等;語用信息主要是指交際功能(Dialogue Act),如詢問、回答、陳述等,語言學家Harry Bunt 等人設計了一套通用的交際功能分類標準,共有88類,一般選用其中的幾類即可。
(2)對話狀態跟蹤(Dialogue State Tracking),一個用戶需求會包含一個意圖和多個槽位信息,而一次對話交互只能提供其中的一部分信息,因此對話狀態跟蹤是根據每輪對話信息完善用戶的完整需求信息。
(3)回覆決策(Policy Modeling),根據DST輸出的結果決策當前的回覆動作,如槽位詢問、槽位澄清或結果輸出等,每個回覆動作由一個交際功能和幾個槽位構成。
(4)語言生成(Natural Language Generation),根據Policy輸出的動作生成一個自然語言句子。
系統實現上分為Pipeline方式和End2End方式。Pipeline方式指每個技術模塊單獨實現,然後以管道形式連接成整個系統。End2End方式是指一個模型同時實現各個技術模塊的功能,使模塊之間進行充分的信息共用。
2、問答類型
用於解決用戶的信息查詢需求,主要是一問一答的對話形式,如“美國總統是誰”,以回覆答案的準確率作為評價標準。和NLP傳統Question Answering (QA)任務不同的是對話中的問答會涉及上下文的成分補全和指代消解技術。
3、聊天類型
用於解決用戶的情感傾訴需求以及其它類型對話之間的銜接需求。和前兩種對話類型的區別是該類型對話是開放性對話,用戶的輸入是開放的,用戶可以輸入任何合理的自然語言句子;系統的輸出也是開放的,比如圖1示例中用戶輸入“看來今天不適合出門啊”,系統可以回覆“是啊,還是呆在家好”,也可以回覆“可以去電影院看電影”,甚至可以回覆“知足吧,至少你有機會出門,我沒腳只能天天呆機房”等等。由於對話的開放性,其技術難度和挑戰性要遠高於其它類型對話,目前的解決方案主要是檢索和生成兩種。
(1)檢索方案
檢索方案採用的是信息檢索的技術,分為候選回覆召回和候選回覆排序兩個階段,如圖4所示。召回階段先離線對對話語料建立倒排索引庫,線上對話時根據用戶輸入從索引庫中檢索候選回覆。排序階段根據對話上下文進一步計算候選回覆的相關性,以選出最佳候選作為系統輸出,2016年Zhou等人提出在字粒度和句子粒度級別分別計算對話上下文和候選回覆的相關性然後進一步融合,有效改善了排序效果,提升回覆質量。
檢索方案從百億級的語料庫中檢索回覆,可以有效解決聊天類型對話的開放性問題,而且檢索出的回覆語義豐富度和流暢性都很好,在單輪對話中表現很好,但在多輪對話中,檢索方案就問題重重了。對話具有很強語境關聯性,多輪對話確立的語境在語料庫中基本不存在,使用檢索方案從語料庫中選出的回覆很難適用於當前的語境,會存在多輪邏輯衝突、語義相關性差等問題,這是檢索方案的致命缺陷。
(2)生成方案
生成方案不是從語料庫中選出歷史回覆,而是生成全新的回覆,語料庫只用於對話邏輯的學習,是目前學術界的一個研究熱點。生成方案主要採用機器翻譯的Seq2Seq對話框架,對話的上文作為模型輸入,下文作為模型輸出,使用Encoder表示輸入,Decoder預測輸出,如圖5所示。除了Seq2Seq框架,有不少研究人員也開展了基於GAN和強化學習的對話框架,GAN模型中generator模型用於生成回覆,discriminator模型用於判斷輸入回覆是標準回覆還是預測回覆;強化學習模型中reward為語義相關性、句子流暢性等,action為生成的回覆句子。
生成方案訓練時從對話語料中學習對話邏輯,預測時根據用戶輸入預測和上下文相關的回覆輸出。目前生成模型還存在安全回覆、機器個性化和效果評估等幾個挑戰性問題。
由於聊天型對話的開放性特點,對話模型的效果評估上具有很大的挑戰性,常見的評估方法——預測結果和標準結果的匹配程度,難以準確的衡量聊天型對話的效果,目前可靠的評估方法依然是人工評估,2017年Bengio團隊提出用模型擬合人工評估的方式探索自動評估的解決方案。閑聊對話系統可以通過和用戶交互的輪次來自動衡量系統的效果,交互輪次越多說明用戶對聊天效果越滿意,也可以間接說明聊天系統效果越好。這和任務完成類型的評估是截然相反的,任務完成類型在成功完成任務的前提下對話輪次越少說明模型的效果越好。
人機對話經過半個世紀的發展有了長足的進步,不過現在的技術水平還處於初級階段,將來在以下幾個方面需要進一步攻剋:
(1)通用語言理解和語言生成技術:目前任務完成類型對話每個任務都有各自的語言理解和語言生成模型,領域遷移困難,通用的語言理解和語言生成技術是解決這一問題的關鍵。
(2)深度融合知識和常識信息:對話中話語背後蘊含了豐富的知識和常識等語境信息,話語的理解和生成與知識和常識信息密不可分。
(3)記憶機制:通過記憶機制記住、提煉並整合歷史對話內容,對話時結合記憶信息輔助對話決策模型(Policy Model)進行下一步決策。
(4)多模態的對話技術:人類對話中不僅有語言交互,還有視頻、圖像等信息的交互,如對話中的手勢、說話時的情緒等信息,語言理解時融合多模態信息可以使得機器掌握更完整的語境信息,語言生成時融合多模態信息可以使對話更加生動形象。
- 一文看懂人機對話.百度NLP.2019-04-01