智能對話機器人是一種極度類人的人與物的溝通媒介,它可以幫助個體通過類人的溝通方式達到自己的目的。你知道智能對話機器人產品主流程框架是如何設計的嗎?本文作者對此進行了詳細介紹,與大家分享。
開篇(《智能對話機器人產品設計——開篇》)裏我們已經簡單介紹了智能對話機器人的產生背景以及當下的現狀(並非理想中的智能),AI產品經理應該如何做好充足的準備以便於設計出一款在當下技術邊界內有較好用户體驗的對話機器人產品。
從功能實現層面對智能對話機器人的做了五個類別區分,如果從對話機器人實際解決的問題範圍來看,也可以將其分為兩個大類:封閉域對話機器人和開放域對話機器人。不難從字面上就很容易理解,封閉域即為在限定的領域內完成對話,而這些領域是由設計產品的人進行人為限定的;而開放域則沒有限制,一般支持的會話是廣泛領域內的公共範疇。
但就目前的最終效果來看,開放域對話機器人很難做好用户體驗,一旦給用户設定什麼問題都可以問什麼話都可以聊,那用户就一定會問出bug…實際大多數的產品設計目前都聚焦於一個或幾個特定領域內(開放域僅作為分支補充功能),便於為目標用户提供更好的產品體驗。
智能對話機器人的主體框架:
通常來説如上圖所示,智能對話機器人整個框架分為7個模塊,但也可根據實際設計的產品功能進行增減,增減的部分主要聚焦在輸入/輸出的部分,後面會進行具體解釋。
對話機器人,那對話就是一個核心的交互方式,那麼基於具體的產品是軟件or硬件,硬件裏面是有屏or無屏,其實都會在輸入輸出的交互方面產生細微的差異。
語音輸入當然是便捷的,它突破了用手打字的部分侷限,從而擴展了智能化產品的使用場景,比如開車時的語音地圖導航,比如臨睡前的語音關燈等等。
另一方面,我們必須意識到,語音輸入自身存在的侷限性:
而語音輸出的侷限性也顯而易見,一旦機器人的回答話術比較長,那麼對於用户來説等待機器人輸出完整的語音所花費的時間絕對比通過視覺獲取同等信息高出很多倍,所謂“一目十行”即是這個道理。畢竟人類已經掌握了通過視覺快速從大量文字圖片信息中獲取關鍵信息的技巧。
因此,如果你的產品有讓用户可以進行操作的屏幕,那麼在輸入/輸出端,最好支持多模態,比如語音、文字、以及觸覺(通過屏幕點擊、完成部分對話場景的信息交互)等適應用户複雜的使用場景,提升用户使用效率。
當然,在信息輸出的部分,目前也有多款純軟件類產品僅支持文字圖片等結果輸出,不支持語音輸出,究其原因大概有以下3個方面:
綜上:在輸入輸出方面,可依據自己的產品場景進行合適的選擇。
一般的智能對話機器人產品目前直接使用主流廠商提供的功能即可,包括:訊飛、百度、騰訊等。業內總體語音識別準確率在量級上相差不是很大,一般分免費和付費兩種,用户體量小一般免費即可夠用,稍大點的產品需要對比各家不同的資費進行選擇即可。
在語音識別方面目前可能存在的問題是:大廠的語音識別語料基於更廣泛的場景,而一旦你的產品屬於垂直領域,即有一些特殊行業的詞彙時,就會出現通用識別能力識別不準的情況,從而造成整個流程識別錯誤最終反饋給用户錯誤的結果。
當然,大廠也是可以做定製的,目前也支持用户進行詞庫的導入,從而在一定程度上解決這個問題。同時,多數廠商也有語音識別糾錯的功能,總體體驗都還可以。此處不再贅述,相關信息可自行查詢。
這個模塊即為機器人理解用户輸入信息的核心模塊,即讓機器人“理解”用户。主要分為2個部分:意圖識別(intent)和槽位填充(slot filling)。
意圖識別需要由產品所需要支持的功能進行圈定,可以識別單個意圖也可以識別多個。比如,你是一個單純的查天氣的機器人,那麼你的意圖識別領域就是需要界定出用户輸入的信息是否是“查天氣”,又比如你是一個出行領域的機器人,那麼你的意圖識別就需要確定是“訂機票”還是“訂火車票”“訂汽車票”等等。
意圖識別目前涉及到的技術主要分兩大類:基於規則、基於算法。而意圖識別的難點就在於每一種意圖都有多種多樣的表達,比如用户要“訂機票”,可能存在的表達如下:
僅僅基於規則很難準確識別用户的多種表達方式,所以目前主流做法是【少量規則 算法模型】,而比較主流的算法模型包括:CNN、LSTM等。
槽位填充即是想要達成目標意圖所需要的必備或者識別等關鍵內容。比如意圖識別為“查天氣”那麼所需要填充的槽位就是“地點”,機器人需要回答天氣,必須是指定城市或區縣的天氣,這個“地點”即為必填的【槽位】。而如果是“訂機票”的場景,那麼需要的槽位就包括“出發地”“到達地”“出行日期”,而用户如果説了機票業務場景內的“公務艙”則可以作為非必填但需要識別的實體信息。
一般多輪對話機器人均需要做對話管理,因為對話是持續進行的,所以每次機器人進行答覆時需要針對當前的會話狀態給出合適的回覆。對話管理分為兩個模塊:狀態跟蹤(DST)、策略優化(DPO)。
狀態跟蹤就是表示:t 1 時刻的對話狀態,依賴於之前時刻 t 的狀態,和之前時刻 t 的系統行為,以及當前時刻 t 1 對應的用户行為。因此確認當前意圖和槽位信息是狀態跟蹤的核心,需要明確當下的對話狀態進展到哪一步。
策略優化則是根據狀態跟蹤的結果給出機器人應該在當前對話狀態下需要給出的正確回覆。
舉例來説在“訂機票”這個對話過程中,需要根據用户當前不同的對話狀態節點給出不同的回覆,如下兩種狀態:
場景一:
場景二:
從以上兩種場景可以看出,機器人給出的回覆需要判斷用户之前信息給出的狀態,如果設定的必填【槽位】全部滿足則給出最終結果,否則需要根據設定的順序依次進行詢問。當然,這裏面還有一種情況是,用户在對話過程中跳出了當前的意圖,比如訂機票的過程中詢問目的地的天氣,那麼機器人需要根據已有的設定給出新的意圖所需要回答的話術。
自然語言生成即是通過對話管理之後確認需要給用户的答覆內容的過程。目前,多數產品的NLG模塊仍是採用傳統的基於規則的方法加上新的基於模型算法的生成式對話。
基於傳統規則,如上文舉例的“訂機票”的場景,即可簡單的通過規則的方式實現。但是,如果在開放域進行對話聊天,那就很難基於規則去完成會話設計,同時基於規則的回覆會讓用户感覺機器人死板,無趣。而通過模型生成的語言回覆,則更加多樣,也會在產品層面體現出機器人的情感態度等等。
當然,自然語言生成在其他應用場景有更為廣泛的應用,比如寫詩詞、寫春聯、寫文章、生成文本摘要等等,此處就不再展開講了。
以上為智能對話機器人產品主流程框架設計的詳細介紹,希望對你有所幫助~
本文作者:丸子妹,微信公眾號:丸子筆記
本文由 @丸子筆記 原創發佈於人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基於CC0協議