了解人機(jī)對(duì)話—聊天、問答、多輪對(duì)話和推薦

[人工智能]

本文整編自:微軟亞洲研究院? 三角獸科技

作為人工智能的終極難題之一,一個(gè)完整的人機(jī)對(duì)話系統(tǒng)涉及到的技術(shù)極為廣泛,例如計(jì)算機(jī)科學(xué)中的語音技術(shù),自然語言處理,機(jī)器學(xué)習(xí),規(guī)劃與推理,知識(shí)工程,甚至語言學(xué)和認(rèn)知科學(xué)中的許多理論在人機(jī)對(duì)話中都有所應(yīng)用?;\統(tǒng)的講,人機(jī)對(duì)話可以分為以下四個(gè)子問題:自然語言聊天、任務(wù)驅(qū)動(dòng)的多輪對(duì)話、問答和推薦。

對(duì)最強(qiáng)大的計(jì)算機(jī)來說,理解人類語言并非易事——這便是自然語言理解的研究領(lǐng)域,所謂“自然語言理解”就是人與計(jì)算機(jī)可以進(jìn)行有效溝通,計(jì)算機(jī)能理解用戶的意圖,執(zhí)行命令或回答問題。

一. 自然語言聊天

顧名思義,就是不局限話題的聊天,即在用戶的 query 沒用明確的信息或服務(wù)獲取需求(如 social dialogue)時(shí)系統(tǒng)做出的回應(yīng)。自然語言聊天在現(xiàn)有的人機(jī)對(duì)話系統(tǒng)中,主要起到拉近距離,建立信任關(guān)系,情感陪伴,順滑對(duì)話過程(例如在任務(wù)類對(duì)話無法滿足用戶需求時(shí))和提高用戶粘性的作用。

二. 任務(wù)驅(qū)動(dòng)的多輪對(duì)話

用戶帶著明確的目的而來,希望得到滿足特定限制條件的信息或服務(wù),例如:訂餐,訂票,尋找音樂、電影或某種商品等。因?yàn)橛脩舻男枨罂梢员容^復(fù)雜,可能需要分多輪進(jìn)行陳述,用戶也可能在對(duì)話過程中不斷修改或完善自己的需求。此外,當(dāng)用戶的陳述的需求不夠具體或明確的時(shí)候,機(jī)器也可以通過詢問、澄清或確認(rèn)來幫助用戶找到滿意的結(jié)果。因此,任務(wù)驅(qū)動(dòng)的多輪對(duì)話不是一個(gè)簡單的自然語言理解加信息檢索的過程,而是一個(gè)決策過程,需要機(jī)器在對(duì)話過程中不斷根據(jù)當(dāng)前的狀態(tài)決策下一步應(yīng)該采取的最優(yōu)動(dòng)作(如:提供結(jié)果,詢問特定限制條件,澄清或確認(rèn)需求,等等)從而最有效的輔助用戶完成信息或服務(wù)獲取的任務(wù)。

三. 問答系統(tǒng)

側(cè)重于一問一答,即直接根據(jù)用戶的問題給出精準(zhǔn)的答案。問答更接近一個(gè)信息檢索的過程,雖然也可能涉及簡單的上下文處理,但通常是通過指代消解和 query 補(bǔ)全來完成的。問答系統(tǒng)和任務(wù)驅(qū)動(dòng)的多輪對(duì)話最根本的區(qū)別在于系統(tǒng)是否需要維護(hù)一個(gè)用戶目標(biāo)狀態(tài)的表示和是否需要一個(gè)決策過程來完成任務(wù)。由于人們使用語言的隨意性和多樣性,帶來了問題理解的困難。給定一個(gè)問題,電腦要理解問題的類型(事實(shí)類,定義類,選擇性,觀點(diǎn)類等)和答案的類型(人、地點(diǎn)、機(jī)構(gòu)、定義、電影名字,文字序列等等)。比如:

事實(shí)類問題:“誰是奧巴馬的夫人?”

定義類問題:“什么是操作系統(tǒng)?”

YES-NO類問題:“薩達(dá)姆還活著嗎?”

觀點(diǎn)類問題:“多數(shù)美國人對(duì)槍支管制的看法是什么?”

比較類問題:“諾基業(yè)手機(jī)和蘋果手機(jī)有什么區(qū)別?”

問答系統(tǒng)可以是針對(duì)某一個(gè)封閉領(lǐng)域的,也可以是無領(lǐng)域限定的, 而后者的難度更大。為了理解問題,計(jì)算機(jī)需要語義解析,把用戶輸入的問句轉(zhuǎn)換為一個(gè)有結(jié)構(gòu)的語義表達(dá)式,然后到相關(guān)數(shù)據(jù)和知識(shí)庫中尋找答案。 很多時(shí)候,可能會(huì)有多個(gè)看似可行的答案候選,問答系統(tǒng)需要根據(jù)一個(gè)基于機(jī)器學(xué)習(xí)獲得的排序系統(tǒng)進(jìn)行優(yōu)選。

問答系統(tǒng)的答案可以從結(jié)構(gòu)化的知識(shí)庫,或者非結(jié)構(gòu)化的自然語言文檔集合來獲得,如web,社會(huì)關(guān)系網(wǎng)絡(luò),新聞等。知識(shí)庫適合回答事實(shí)類的問題,而基于web的問答系統(tǒng),也就是把問題丟給搜索引擎,在搜索結(jié)果里面直接抽取答案,適合于回答時(shí)效性很強(qiáng)的問題,如新聞?lì)悊栴}或很復(fù)雜的問題。社會(huì)關(guān)系網(wǎng)絡(luò)適合回答主觀類的問題,譬如“如何考入哈佛大學(xué)”,“怎樣才能學(xué)好日語”等。由于這類問題在社區(qū)、社會(huì)關(guān)系網(wǎng)絡(luò)里面有很多的討論,經(jīng)過信息抽取和問題匹配之后,可以用來回答相同或者相似的問題。除了以上三種智能體之外,還可以考慮眾包智能,就是由系統(tǒng)把問題導(dǎo)引給該類問題的人(專家、附近的人、社會(huì)關(guān)系網(wǎng)絡(luò)的好友)來完成。如能巧妙利用多智能架構(gòu),即可大幅度提升問答系統(tǒng)的精確度和覆蓋面。

四. 推薦

前面的開放域聊天,任務(wù)驅(qū)動(dòng)的多輪對(duì)話和問答系統(tǒng)本質(zhì)上都是被動(dòng)的響應(yīng)用戶的 query,而推薦系統(tǒng)則是根據(jù)當(dāng)前的用戶 query 和歷史的用戶畫像主動(dòng)推薦用戶可能感興趣的信息或者服務(wù)。

對(duì)話系統(tǒng)是個(gè)龐雜的系統(tǒng)模塊,技術(shù)分解圖如下:底層是依賴的基礎(chǔ)技術(shù)系列,向上一層是利用基礎(chǔ)技術(shù)構(gòu)造的基礎(chǔ)技術(shù)模塊,中間是利用基礎(chǔ)技術(shù)模塊構(gòu)造的子系統(tǒng),上面兩層是將子系統(tǒng)進(jìn)行封裝對(duì)外提供打包服務(wù)api應(yīng)用層。

三角獸公司對(duì)話系統(tǒng)模塊

五. 中控決策模塊(意圖識(shí)別)

上述的四類系統(tǒng)各自要解決的問題不同,實(shí)現(xiàn)技術(shù)迥異,用一套系統(tǒng)實(shí)現(xiàn)所有功能是不現(xiàn)實(shí)的。通常要將上述功能整合在一個(gè)應(yīng)用中,我們還需要一個(gè)中控決策模塊。這個(gè)模塊不僅負(fù)責(zé)需求和問題的分類,還包括任務(wù)之間的澄清、確認(rèn)和跨領(lǐng)域的引導(dǎo),所以最理想的技術(shù)實(shí)現(xiàn)也應(yīng)該通過一個(gè)決策過程來完成。它相當(dāng)于大腦,基于對(duì)用戶對(duì)話的分析判斷,發(fā)現(xiàn)并滿足用戶的直接和潛在需求,判斷用哪個(gè)功能滿足用戶需求,同時(shí)在多次對(duì)話中,多維度建立用戶畫像,商業(yè)應(yīng)用的人機(jī)對(duì)話系統(tǒng)根據(jù)應(yīng)用的場景不同既可以是同時(shí)綜合上述四類問題的復(fù)雜系統(tǒng),也可以單純解決其中一類問題。例如大家熟知的蘋果 Siri、微軟 Cortana、百度度秘等語音助手類產(chǎn)品就是集合上述四類問題綜合系統(tǒng)(但是 Siri 和 Cortana 的聊天功能并不能算開放域,而是人工為高頻的 query 編輯了對(duì)應(yīng)的話術(shù),當(dāng)用戶的聊天 query 不在預(yù)先配置的范圍內(nèi)時(shí),系統(tǒng)則回復(fù)“我聽不懂”之類的固定答案。而度秘的開放域聊天則是應(yīng)用了更先進(jìn)的基于海量數(shù)據(jù)的檢索式聊天技術(shù))目前的智能客服類系統(tǒng)則多以解決問答和推薦類問題為主;微軟推出的“小冰”,包括后繼推出的同類型產(chǎn)品日文版 Rinna、英文版 Zo 和 Ruuh,主打的就是開放域聊天;而許多訂票,訂酒店類的對(duì)話系統(tǒng)則是任務(wù)驅(qū)動(dòng)的多輪對(duì)話的典型應(yīng)用。

人們?cè)诮涣鬟^程中,聊天、多輪對(duì)話、問答的技能是穿插進(jìn)行的。同時(shí),為了體現(xiàn)多樣性,答案所采用的句式,以及聊天的回復(fù)風(fēng)格要根據(jù)場景和用戶的特點(diǎn)發(fā)生變化。在微軟小冰中,除了需要建立問答系統(tǒng)和聊天系統(tǒng)之外,還要根據(jù)用戶輸入的句子,決定是進(jìn)入聊天還是進(jìn)入問答。比如:

人: 你都不理我了。(聊天)

小冰: 我怎么不理你。(聊天)

人: 榮耀6plus多少錢? (問答)

小冰: 京東大哥說過是2,899元哦。(問答)

人: 你知道的真多呀。(聊天)

小冰: 我應(yīng)該的呀。(聊天)

人: 你知道李敏鎬嗎 (問答)

小冰: 【一張李敏鎬的圖片】(問答)

而小冰的回復(fù)不僅僅要看當(dāng)前的句子,還要看聊天的歷史。比如另外一個(gè)例子:

人:請(qǐng)推薦一款手機(jī)。

小冰:你看看這款如何? 華為榮耀3X暢玩版,1099元。

人:我不要華為的,我要iPhone的。(系統(tǒng)需要知道產(chǎn)品類別沒變,但是品牌變化)

小冰:那你看看這款iPhone如何呢?iPhone6, 5988元,64GB,金色。

人:我要能支持128G存儲(chǔ)空間的。(系統(tǒng)要知道產(chǎn)品類別和品牌沒有變化)

小冰:我看看。那你看看這款?iPhone6, 6488元,128GB。

人:算了,我還是要華為的吧。(系統(tǒng)需要知道產(chǎn)品類別沒變,但是品牌變化)

小冰:那么這款華為P8,最新款,3800元。怎么樣?

這就是系統(tǒng)需要對(duì)用戶的輸入進(jìn)行理解以判斷用戶的意圖。比如:“給我推薦一款性價(jià)比高的手機(jī),要諾基亞的?!痹趯?duì)用戶意圖的理解基礎(chǔ)上,要進(jìn)行必要的對(duì)話,以便確認(rèn)所有必要的信息,來決定接下來的動(dòng)作,比如推薦,搜索,聊天還是問答。不過這個(gè)問題挑戰(zhàn)也很大,它是目前自然語言理解的最核心的問題。我們需要耐心地循序漸進(jìn)地推進(jìn)研究。


[科普]任務(wù)驅(qū)動(dòng)的多輪對(duì)話系統(tǒng)

任務(wù)驅(qū)動(dòng)的多輪對(duì)話系統(tǒng)的一個(gè)經(jīng)典框圖

自然語言理解:將自然語言的 query 識(shí)別成結(jié)構(gòu)化的語義表示。在對(duì)話系統(tǒng)中,這個(gè)結(jié)構(gòu)化的語義表示通常被稱作 dialogue act 由 communicative function 和 slot-value pairs 組成,其中 communicative function 表示 query 的類型(如:陳述需求,詢問屬性,否定,選擇疑問,等等)而每個(gè) slot-value pair 則表達(dá)一個(gè)限制條件(constraint),也可理解為用戶目標(biāo)的一個(gè)組成單元。

例如“我要西二旗附近的川菜”對(duì)應(yīng)的 dialogue act 可以表示為 inform(foodtype=川菜,location=西二旗)。這里“inform”就是 communicative function,表示陳述需求,“foodtype=川菜”和“l(fā)ocation=西二旗”是限制條件(slot-value pairs) 。常用的 communicative function 定義可以參考劍橋大學(xué)的對(duì)話系統(tǒng)中使用的集合[2],而語言學(xué)家 Harry Bunt 等人則總結(jié)出了一套 ISO-24617-2 標(biāo)準(zhǔn)包含56個(gè) communicative function 的定義,以及它的擴(kuò)展集 DIT++ 包含88種定義。但由于 ISO-24617-2 和 DIT++ 體系過于復(fù)雜,通常的任務(wù)驅(qū)動(dòng)類對(duì)話系統(tǒng)只用到其中很小一個(gè)子集就足夠滿足需求了,不過感興趣的讀者可以參考?DIT++ 網(wǎng)站(1)。

由于對(duì)話系統(tǒng)更關(guān)注口語處理,而且通常是處理經(jīng)過了語音識(shí)別后的口語,所以在這個(gè)領(lǐng)域,我們通常說 Spoken Language Understanding(SLU),以突出與廣義的自然語言理解的不同,并蘊(yùn)含了對(duì)非嚴(yán)謹(jǐn)語法和語音識(shí)別錯(cuò)誤魯棒的問題。

對(duì)話狀態(tài)跟蹤:英文中這個(gè)概念叫 Dialogue State Tracking(DST)。概括的說,對(duì)話狀態(tài)跟蹤就是根據(jù)多輪的對(duì)話來確定用戶當(dāng)前的目標(biāo)(user goal)到底是什么的過程。為了更好的理解這個(gè)過程,我們先來看看什么是對(duì)話狀態(tài)。一個(gè)對(duì)話狀態(tài)中,最主要的信息是用戶的目的,即 user goal。用戶目的的表示形式是一組 slot-value pairs 的組合。

概率分布,稱作置信狀態(tài)(belief state或者belief),對(duì)話狀態(tài)跟蹤有時(shí)也稱作置信狀態(tài)跟蹤(belief state tracking)。用戶的目的在一個(gè)置信狀態(tài)中的表示可以分為兩部分:首先每個(gè) slot 上都可以有多個(gè)可能的 value,每個(gè) value 對(duì)應(yīng)一個(gè)置信概率,這就形成了每個(gè) slot 上的邊緣置信狀態(tài)(marginal belief);然后這些可能的 slot-value pairs 的組合的概率分布就形成的聯(lián)合置信狀態(tài)(joint be仍以圖1中3-6行的對(duì)話為例,當(dāng)對(duì)話進(jìn)行到第3行時(shí),用戶的目的是“occasion=跑步”,到第5行時(shí),這個(gè)目的就變成了“occasion=跑步,language=英文”。對(duì)話狀態(tài)中還可以記錄完成對(duì)話任務(wù)所需的其他額外信息,例如用戶當(dāng)前詢問的屬性(requested slots),用戶的交互方式(communication method),和用戶或系統(tǒng)的歷史對(duì)話動(dòng)作(dialogue history)等等。

圖1中3-6行

此外,應(yīng)注意到無論 ASR 或者 SLU 都是典型的分類問題,既然是分類就會(huì)有誤差,于是這給任務(wù)驅(qū)動(dòng)的對(duì)話系統(tǒng)引入了一個(gè)在不確定性環(huán)境下決策的問題(planning under uncertainty)。雖然最終的決策是由下面要介紹的對(duì)話策略完成的,但是對(duì)話狀態(tài)需要為后面的決策提供依據(jù),也就是如何刻畫這個(gè)不確定性的問題。要解決這個(gè)問題,首先我們希望 ASR 或 SLU(或兩者)在輸出分類結(jié)果的同時(shí)輸出一個(gè)置信度打分,最好還能給出多個(gè)候選結(jié)果(n-best list)以更好的保證召回。然后對(duì)話狀態(tài)跟蹤模塊在上述置信度和 n-best list 的基礎(chǔ)上,不僅需要維護(hù)一個(gè)對(duì)話狀態(tài),而是估計(jì)所有可能的對(duì)話狀態(tài)的? belief),也就是用戶完整目的的概率分布。通常對(duì)話系統(tǒng)的決策過程需要參考這兩部分信息才能找到最優(yōu)的對(duì)話策略。

對(duì)話策略:即 policy,是根據(jù)上面介紹的置信狀態(tài)來決策的過程。對(duì)話策略的輸出是一個(gè)系統(tǒng)動(dòng)作(system action)。和用戶的 dialogue act 類似,系統(tǒng)動(dòng)作也是一個(gè)由 communicative function 和 slot-value pairs 組成的語義表示,表明系統(tǒng)要執(zhí)行的動(dòng)作的類型和操作參數(shù)?!懊看螞Q策的目標(biāo)不是當(dāng)前動(dòng)作的對(duì)與錯(cuò),而是當(dāng)前動(dòng)作的選擇會(huì)使未來收益的預(yù)期(expected long-term reward)最大化”。

自然語言生成:natural language generation(NLG)的任務(wù)是將對(duì)話策略輸出的語義表示轉(zhuǎn)化成自然語言的句子,反饋給用戶。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容