AI產品經理必知的兩類ChatBot詳解
編輯導語:對話機器人(ChatBot)目前已應用在眾多領域,但還有一些AI產品經理對其概念沒有一個系統化的認知。作者在文中對兩類ChatBot進行了詳解,與你分享。
對話機器人(ChatBot),以自然語言的方式和用戶進行交互,從而完成咨詢、客服、助理、娛樂等用戶訴求,目前已經應用在很多領域。
本文主要介紹兩類應用最廣的ChatBot:FAQChatBot和多輪對話ChatBot,包括這兩類ChatBot的適用場景和構造模塊。
第一類:FAQChatBot
FAQ(Frequently Asked Questions) ChatBot,從英文全稱可以看出來,是將一些頻繁用到的問題和答案對整理好,形成知識庫。
當用戶提問時,將用戶的問題和知識庫的眾多問題進行匹配,匹配完成后,將匹配到的知識庫問題對應的答案,返回給用戶,如下圖所示:
為了匹配更精準,在構建知識庫時,可以多設置幾個擴展問題,如下表所示,在疫情期間,為了快速構建一個FAQ ChatBot,提高問題匹配精準度,可以這樣構建知識庫:
當我們的目標是快速構建一個基于常用知識的咨詢時,就可以用FAQ ChatBot,例如打造一個公司內部的入職咨詢、報銷指南。
總結一下,FAQ ChatBot 的目的是:將企業的各種知識有效管理起來,采取一問一答的單輪對話方式,為用戶提供咨詢服務。
該方法的優點是建設快,質量可控、準確率高,其缺點是泛化能力比較弱。隨著不斷迭代,知識庫的更新很大程度依賴于人工,不能自主提升自己的泛化能力。
第二類:多輪對話ChatBot
當面臨更加復雜的問題時,例如用戶想要完成訂餐、訂票等任務,需要進行多輪陳述,才能完成用戶的訴求。
一方面,用戶在對話過程中可以不斷修改或完善自己的需求;另一方面,當用戶的陳述的需求不夠具體或明確的時候,機器也可以通過詢問、澄清或確認來幫助用戶找到滿意的結果。
對于這樣的多輪對話,ChatBot架構如下:
下面,我們配合下面這個預訂會議室的例子,來理解多輪對話ChatBot架構的各個模塊:
1. NLU(Natural Language Understanding)
NLU的目的是,完成對用戶指令的理解。
所以NLU模塊的輸入是用戶指令,輸出主要采用DIS的表示結構,D代表Domain(領域), I代表Intent(意圖),S代表Slot(槽位)。
(有些情況下沒有Domain,直接輸出為Intent)
Domain、Intent和Slot都是產品經理根據需求預先定義好的。不同的業務場景會定義不同的DIS。
對于這個預訂會議室的例子,可以定義DIS如下:
2. DM(Dialog Management)
對話管理DM控制著人機對話的過程,是ChatBot的核心。
在對話過程中,對話機器人系統會不斷根據當前的對話狀態和用戶行為,決定下一步應該采取的最優動作,從而完成整個對話任務。
因此,在這個過程中,DM主要完成以下兩個任務:
(1)維護&更新對話狀態(dialog state tracking, DST)
根據之前的狀態和用戶的輸入,維護一份最新的對話狀態。
(2)產生系統決策(dialog strategy)
根據DST中的對話狀態做出系統決策,決定下一步做什么。
如上圖,對于當前的會議室預訂實例,當用戶表達了想預訂906會議室,當前的最新對話狀態為:
此時,系統做出決策:對話補全。因此,系統繼續追問用戶:您想預約什么時間段?
用戶對此反饋:明天上午9點到11點。
系統根據此時最新的反饋和剛才的對話狀態狀態,產生新的系統決策,并更新狀態。
更新后的狀態為:
在這個案例里,DM的輸入輸出如下圖:
在產生系統決策時,DM一般會利用以下兩種策略:
(1)意圖重入:當從當前的用戶行為中分析不出意圖時,會將上一輪的意圖重入。
例如“我還想定一個下午兩點到四點的”,單憑這一句話,無法得出用戶的意圖,則將上一輪查詢的“會議室預訂”意圖進行重入。
(2)領域重入:當意圖重入匹配度較低,則會采用領域重入。
3. NLG(Natural LanguageGeneration)
當DM做出和用戶交互相關的系統決策時,需要NLG模塊配合,生成自然語言,和用戶完成交互。
當用戶預訂會議室成功后,DM模塊將預訂成功的信息傳給NLG模塊:
NLG模塊則根據預設的模版或其他生成算法,以自然語言方式反饋給用戶結果:
總結一下,多輪對話與單輪對話的不同在于,攜帶前幾輪對話的上下文信息,可以完成更復雜的任務,也使得對話過程更加智能。
本文由 @躺平看星星 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash,基于 CC0 協議
大佬方便加個v嘛。我是ai領域的小渣渣,v:lele150661