智能對話機(jī)器人如何設(shè)計產(chǎn)品主流程框架?
智能對話機(jī)器人是一種極度類人的人與物的溝通媒介,它可以幫助個體通過類人的溝通方式達(dá)到自己的目的。你知道智能對話機(jī)器人產(chǎn)品主流程框架是如何設(shè)計的嗎?本文作者對此進(jìn)行了詳細(xì)介紹,與大家分享。
開篇(《智能對話機(jī)器人產(chǎn)品設(shè)計——開篇》)里我們已經(jīng)簡單介紹了智能對話機(jī)器人的產(chǎn)生背景以及當(dāng)下的現(xiàn)狀(并非理想中的智能),AI產(chǎn)品經(jīng)理應(yīng)該如何做好充足的準(zhǔn)備以便于設(shè)計出一款在當(dāng)下技術(shù)邊界內(nèi)有較好用戶體驗的對話機(jī)器人產(chǎn)品。
從功能實現(xiàn)層面對智能對話機(jī)器人的做了五個類別區(qū)分,如果從對話機(jī)器人實際解決的問題范圍來看,也可以將其分為兩個大類:封閉域?qū)υ挋C(jī)器人和開放域?qū)υ挋C(jī)器人。不難從字面上就很容易理解,封閉域即為在限定的領(lǐng)域內(nèi)完成對話,而這些領(lǐng)域是由設(shè)計產(chǎn)品的人進(jìn)行人為限定的;而開放域則沒有限制,一般支持的會話是廣泛領(lǐng)域內(nèi)的公共范疇。
但就目前的最終效果來看,開放域?qū)υ挋C(jī)器人很難做好用戶體驗,一旦給用戶設(shè)定什么問題都可以問什么話都可以聊,那用戶就一定會問出bug…實際大多數(shù)的產(chǎn)品設(shè)計目前都聚焦于一個或幾個特定領(lǐng)域內(nèi)(開放域僅作為分支補(bǔ)充功能),便于為目標(biāo)用戶提供更好的產(chǎn)品體驗。
智能對話機(jī)器人的主體框架:
通常來說如上圖所示,智能對話機(jī)器人整個框架分為7個模塊,但也可根據(jù)實際設(shè)計的產(chǎn)品功能進(jìn)行增減,增減的部分主要聚焦在輸入/輸出的部分,后面會進(jìn)行具體解釋。
01 輸入/輸出
對話機(jī)器人,那對話就是一個核心的交互方式,那么基于具體的產(chǎn)品是軟件or硬件,硬件里面是有屏or無屏,其實都會在輸入輸出的交互方面產(chǎn)生細(xì)微的差異。
語音輸入當(dāng)然是便捷的,它突破了用手打字的部分局限,從而擴(kuò)展了智能化產(chǎn)品的使用場景,比如開車時的語音地圖導(dǎo)航,比如臨睡前的語音關(guān)燈等等。
另一方面,我們必須意識到,語音輸入自身存在的局限性:
- 語音輸入因為有后面一步語音識別的技術(shù)瓶頸(一方面是遠(yuǎn)場語音識別的準(zhǔn)確率,一方面是各類方言的識別準(zhǔn)確率),會有一定的識別錯誤導(dǎo)致最終結(jié)果翻車,影響用戶體驗,給用戶造成“智障機(jī)器人”的感覺;
- 語音輸入需要一定的使用條件,并不是所有用戶在何時何地都可以進(jìn)行語音這種交互方式的輸入,用戶有需要保護(hù)隱私的使用場景;
而語音輸出的局限性也顯而易見,一旦機(jī)器人的回答話術(shù)比較長,那么對于用戶來說等待機(jī)器人輸出完整的語音所花費(fèi)的時間絕對比通過視覺獲取同等信息高出很多倍,所謂“一目十行”即是這個道理。畢竟人類已經(jīng)掌握了通過視覺快速從大量文字圖片信息中獲取關(guān)鍵信息的技巧。
因此,如果你的產(chǎn)品有讓用戶可以進(jìn)行操作的屏幕,那么在輸入/輸出端,最好支持多模態(tài),比如語音、文字、以及觸覺(通過屏幕點(diǎn)擊、完成部分對話場景的信息交互)等適應(yīng)用戶復(fù)雜的使用場景,提升用戶使用效率。
當(dāng)然,在信息輸出的部分,目前也有多款純軟件類產(chǎn)品僅支持文字圖片等結(jié)果輸出,不支持語音輸出,究其原因大概有以下3個方面:
- 信息輸出效率低;
- 基于第一點(diǎn),部分產(chǎn)品場景不適合使用語音輸出,比如任務(wù)型對話機(jī)器人結(jié)果較為復(fù)雜時;
- 產(chǎn)品實現(xiàn)復(fù)雜度增加,進(jìn)行語音輸出過程中是否支持打斷,打斷后是否需要重新喚醒,上次對話結(jié)果是否保留等等;
綜上:在輸入輸出方面,可依據(jù)自己的產(chǎn)品場景進(jìn)行合適的選擇。
02 語音識別(ASR)/ 語音合成(TTS)
一般的智能對話機(jī)器人產(chǎn)品目前直接使用主流廠商提供的功能即可,包括:訊飛、百度、騰訊等。業(yè)內(nèi)總體語音識別準(zhǔn)確率在量級上相差不是很大,一般分免費(fèi)和付費(fèi)兩種,用戶體量小一般免費(fèi)即可夠用,稍大點(diǎn)的產(chǎn)品需要對比各家不同的資費(fèi)進(jìn)行選擇即可。
在語音識別方面目前可能存在的問題是:大廠的語音識別語料基于更廣泛的場景,而一旦你的產(chǎn)品屬于垂直領(lǐng)域,即有一些特殊行業(yè)的詞匯時,就會出現(xiàn)通用識別能力識別不準(zhǔn)的情況,從而造成整個流程識別錯誤最終反饋給用戶錯誤的結(jié)果。
當(dāng)然,大廠也是可以做定制的,目前也支持用戶進(jìn)行詞庫的導(dǎo)入,從而在一定程度上解決這個問題。同時,多數(shù)廠商也有語音識別糾錯的功能,總體體驗都還可以。此處不再贅述,相關(guān)信息可自行查詢。
03 自然語言理解(NLU)
這個模塊即為機(jī)器人理解用戶輸入信息的核心模塊,即讓機(jī)器人“理解”用戶。主要分為2個部分:意圖識別(intent)和槽位填充(slot filling)。
意圖識別需要由產(chǎn)品所需要支持的功能進(jìn)行圈定,可以識別單個意圖也可以識別多個。比如,你是一個單純的查天氣的機(jī)器人,那么你的意圖識別領(lǐng)域就是需要界定出用戶輸入的信息是否是“查天氣”,又比如你是一個出行領(lǐng)域的機(jī)器人,那么你的意圖識別就需要確定是“訂機(jī)票”還是“訂火車票”“訂汽車票”等等。
意圖識別目前涉及到的技術(shù)主要分兩大類:基于規(guī)則、基于算法。而意圖識別的難點(diǎn)就在于每一種意圖都有多種多樣的表達(dá),比如用戶要“訂機(jī)票”,可能存在的表達(dá)如下:
- 我要訂機(jī)票
- 幫我查一下從北京飛上海多少錢
- 我下周要出差,查下航班
- 查一下五一飛廈門的頭等艙
僅僅基于規(guī)則很難準(zhǔn)確識別用戶的多種表達(dá)方式,所以目前主流做法是【少量規(guī)則+算法模型】,而比較主流的算法模型包括:CNN、LSTM等。
槽位填充即是想要達(dá)成目標(biāo)意圖所需要的必備或者識別等關(guān)鍵內(nèi)容。比如意圖識別為“查天氣”那么所需要填充的槽位就是“地點(diǎn)”,機(jī)器人需要回答天氣,必須是指定城市或區(qū)縣的天氣,這個“地點(diǎn)”即為必填的【槽位】。而如果是“訂機(jī)票”的場景,那么需要的槽位就包括“出發(fā)地”“到達(dá)地”“出行日期”,而用戶如果說了機(jī)票業(yè)務(wù)場景內(nèi)的“公務(wù)艙”則可以作為非必填但需要識別的實體信息。
04 對話管理(DM)
一般多輪對話機(jī)器人均需要做對話管理,因為對話是持續(xù)進(jìn)行的,所以每次機(jī)器人進(jìn)行答復(fù)時需要針對當(dāng)前的會話狀態(tài)給出合適的回復(fù)。對話管理分為兩個模塊:狀態(tài)跟蹤(DST)、策略優(yōu)化(DPO)。
狀態(tài)跟蹤就是表示:t+1 時刻的對話狀態(tài),依賴于之前時刻 t 的狀態(tài),和之前時刻 t 的系統(tǒng)行為,以及當(dāng)前時刻 t+1 對應(yīng)的用戶行為。因此確認(rèn)當(dāng)前意圖和槽位信息是狀態(tài)跟蹤的核心,需要明確當(dāng)下的對話狀態(tài)進(jìn)展到哪一步。
策略優(yōu)化則是根據(jù)狀態(tài)跟蹤的結(jié)果給出機(jī)器人應(yīng)該在當(dāng)前對話狀態(tài)下需要給出的正確回復(fù)。
舉例來說在“訂機(jī)票”這個對話過程中,需要根據(jù)用戶當(dāng)前不同的對話狀態(tài)節(jié)點(diǎn)給出不同的回復(fù),如下兩種狀態(tài):
場景一:
- 用戶:訂機(jī)票
- 機(jī)器人:請問您要訂去哪里的機(jī)票呀?
- 用戶:去北京
- 機(jī)器人:請問您從哪個城市出發(fā)?
- 用戶:上海
- 機(jī)器人:請問您打算什么時候出發(fā)?
- 用戶:下周一
- 機(jī)器人:給出具體的機(jī)票信息結(jié)果
場景二:
- 用戶:我要訂從上海飛北京的機(jī)票
- 機(jī)器人:請問您打算什么時候出發(fā)?
- 用戶:下周一
- 機(jī)器人:給出具體的機(jī)票信息結(jié)果
從以上兩種場景可以看出,機(jī)器人給出的回復(fù)需要判斷用戶之前信息給出的狀態(tài),如果設(shè)定的必填【槽位】全部滿足則給出最終結(jié)果,否則需要根據(jù)設(shè)定的順序依次進(jìn)行詢問。當(dāng)然,這里面還有一種情況是,用戶在對話過程中跳出了當(dāng)前的意圖,比如訂機(jī)票的過程中詢問目的地的天氣,那么機(jī)器人需要根據(jù)已有的設(shè)定給出新的意圖所需要回答的話術(shù)。
05 自然語言生成(NLG)
自然語言生成即是通過對話管理之后確認(rèn)需要給用戶的答復(fù)內(nèi)容的過程。目前,多數(shù)產(chǎn)品的NLG模塊仍是采用傳統(tǒng)的基于規(guī)則的方法加上新的基于模型算法的生成式對話。
基于傳統(tǒng)規(guī)則,如上文舉例的“訂機(jī)票”的場景,即可簡單的通過規(guī)則的方式實現(xiàn)。但是,如果在開放域進(jìn)行對話聊天,那就很難基于規(guī)則去完成會話設(shè)計,同時基于規(guī)則的回復(fù)會讓用戶感覺機(jī)器人死板,無趣。而通過模型生成的語言回復(fù),則更加多樣,也會在產(chǎn)品層面體現(xiàn)出機(jī)器人的情感態(tài)度等等。
當(dāng)然,自然語言生成在其他應(yīng)用場景有更為廣泛的應(yīng)用,比如寫詩詞、寫春聯(lián)、寫文章、生成文本摘要等等,此處就不再展開講了。
以上為智能對話機(jī)器人產(chǎn)品主流程框架設(shè)計的詳細(xì)介紹,希望對你有所幫助~
本文作者:丸子妹,微信公眾號:丸子筆記
本文由 @丸子筆記 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
目前的打斷機(jī)制,你也是跟根據(jù)關(guān)鍵詞來設(shè)置的嗎?
如果是指對話過程被打斷,那么打斷機(jī)制其實包含兩個方面問題:
1.如何判定打斷;
2.如何恢復(fù)對話;
針對問題1,需要通過主導(dǎo)者制定規(guī)則給到機(jī)器人,比如重新喚醒、接打電話等;
針對問題2,則是包含2個層面的機(jī)制:a.記錄用戶的對話歷史;b.主動(指定中斷時間)/被動(等用戶重新對話)重新啟動對話;
對話過程中,對話被主動打斷,打斷后,機(jī)器人是恢復(fù)對話是重復(fù)前面說的那句話,還是執(zhí)行下個流程;
結(jié)論:任務(wù)型對話機(jī)器人如沒有走到流程結(jié)束,那么采用的是恢復(fù)之前的對話,依照保存的會話的最新對話狀態(tài)節(jié)點(diǎn)告知用戶,進(jìn)行顯性確認(rèn)。否則,可執(zhí)行下一個流程。
原因:產(chǎn)品設(shè)計的核心是滿足用戶當(dāng)前情景下的需求,對話被打斷且流程未到最終結(jié)果,那我們認(rèn)為用戶需求并沒有被滿足,基于產(chǎn)品效率(快速進(jìn)入之前流程)和用戶體驗(因?qū)υ捴袛鄬?dǎo)致用戶不知道機(jī)器人已經(jīng)收集到哪些信息,需要重新確認(rèn)),應(yīng)在會話恢復(fù)時將保存的最新對話節(jié)點(diǎn)狀態(tài)告知用戶,并需要用戶進(jìn)行顯性確認(rèn),確認(rèn)是否繼續(xù),如用戶給予肯定確認(rèn)則按照當(dāng)前意圖繼續(xù)進(jìn)行,否則進(jìn)入下一個流程。
明白,怎么聯(lián)系,加你好友,交流一下
自然語言生成是靠什么實現(xiàn)的呀?會有對應(yīng)的語料庫嗎?
NLG也是需要根據(jù)機(jī)器人所覆蓋的領(lǐng)域儲備相應(yīng)的語料庫,否則生成的內(nèi)容就不可控了~
但目前因NLG在實際對話生成過程中的應(yīng)用瓶頸:采用神經(jīng)網(wǎng)絡(luò)的高級NLG(更貼合人類自然語言)會出現(xiàn)不可控的風(fēng)險,因此多數(shù)采用的仍然是模板化的NLG,除非是開放域的閑聊機(jī)器人~
寫的真好,通俗易懂~
感謝認(rèn)同~ ??