對(duì)話式人工智能產(chǎn)品越來(lái)越常見(jiàn),從Siri到電話客服,不知不覺(jué)中它們已在你身邊尋覓了一個(gè)位置。筆者的產(chǎn)品是一款去年上線的客服機(jī)器人,簡(jiǎn)單聊聊從0到1的經(jīng)驗(yàn)。
從交互形式來(lái)劃分,智能客服包括純語(yǔ)音(如天貓精靈),純文本(如小冰),純可視化界面(如一些電商的客服,完全通過(guò)界面交互來(lái)完成對(duì)話),語(yǔ)音+可視化界面(如Siri等手機(jī)助手)。交互形式?jīng)]有好壞,這一點(diǎn)同非AI產(chǎn)品一樣,根據(jù)用戶使用場(chǎng)景選擇最合適的形式即可。
從產(chǎn)品定義出發(fā),智能客服類產(chǎn)品,最根本的價(jià)值在于以低成本取代人工客服工作中大量重復(fù)性的部分,再基于這個(gè)前提,去挖掘更多商業(yè)變現(xiàn)的可能性。人工客服的工作大致分為兩種,一種是咨詢類的,客服只需回答問(wèn)題;另一種是申請(qǐng)類的,客服要幫客戶完成一些業(yè)務(wù)辦理。
因此,從可實(shí)現(xiàn)的功能來(lái)劃分,智能客服可分為問(wèn)答式和業(yè)務(wù)辦理式,再細(xì)分為單輪/多輪問(wèn)答與單輪/多輪業(yè)務(wù)申請(qǐng)。首先什么叫單輪對(duì)話呢?
“吃了嗎您吶?”“吃了”
那么多輪對(duì)話的概念呢?
“吃了嗎您吶?”“吃了”“吃了什么呀”“老北京炸醬面”
多輪對(duì)話的另一個(gè)名字,叫作基于上下文關(guān)系的對(duì)話。單輪與多輪申請(qǐng)也是同理,一句話就能解決的為單輪,需要反復(fù)幾次的是為多輪。
無(wú)論是問(wèn)答還是申請(qǐng)業(yè)務(wù),作為一個(gè)智能客服,它就離不開(kāi)NLP,NLP就離不開(kāi)語(yǔ)料。在如上的例子中,通常的工作方法是,我們定義一個(gè)用戶意圖叫“吃了嗎”,然后把相似的語(yǔ)料(吃了么?吃飯了嗎?吃了沒(méi)?你有沒(méi)有吃飯?……)喂給機(jī)器人,之后寫一些用例來(lái)測(cè)試它識(shí)別的準(zhǔn)確率,如果識(shí)別率較低,就繼續(xù)喂它語(yǔ)料,直到我們對(duì)識(shí)別率滿意為止。用同樣的方法,我們就可以讓機(jī)器人學(xué)會(huì)理解很多種用戶意圖了。
多說(shuō)一嘴,其實(shí)這里就是機(jī)器學(xué)習(xí)中樣本集與測(cè)試集的概念。樣本集用來(lái)學(xué)習(xí),測(cè)試集用來(lái)測(cè)試學(xué)習(xí)的效果。另外由于機(jī)器學(xué)習(xí)的本質(zhì)還是數(shù)學(xué)與統(tǒng)計(jì),并沒(méi)有真正的理解,所以學(xué)習(xí)效果非常依賴語(yǔ)料的質(zhì)量。直觀的表現(xiàn)是,不同的意圖中,語(yǔ)料差異越大,識(shí)別的準(zhǔn)確率越高。比如,“吃了嗎”和“吃了沒(méi)”是相似的,“吃了嗎”和“看星星看月亮從詩(shī)詞歌賦談到人生哲學(xué)”是不相似的,那么后者作為兩種意圖去做識(shí)別,就是容易分開(kāi)的,而前者兩個(gè)說(shuō)法過(guò)于相近,可能會(huì)得到很差的識(shí)別結(jié)果。所以訓(xùn)練師需要了解基本的機(jī)器學(xué)習(xí)原理,才能夠檢查和調(diào)整樣本集的質(zhì)量。
現(xiàn)在我們的機(jī)器人已經(jīng)能夠聽(tīng)懂一些人話了,下一步只要定義好回復(fù)的內(nèi)容,比如給“吃了嗎”回復(fù)“吃了”,給“睡了嗎”回復(fù)“沒(méi)睡”,再把這些需求交給可愛(ài)的開(kāi)發(fā)同學(xué),一個(gè)支持單輪問(wèn)答的機(jī)器人就完成了!(好的這是做一個(gè)PM最愉快的時(shí)刻了)
多輪對(duì)話設(shè)計(jì)的本質(zhì),是定義場(chǎng)景和將多個(gè)單輪對(duì)話進(jìn)行組合。對(duì)于前面提到的例子來(lái)說(shuō),在“吃了”后面問(wèn)“吃了什么呀”是正常的結(jié)合語(yǔ)境的問(wèn)法,而脫離語(yǔ)境問(wèn)這一句的話,就會(huì)讓聽(tīng)者感到困惑。所以這部分的需求是這樣寫:
當(dāng)用戶表達(dá)“吃了嗎”的意圖,機(jī)器人應(yīng)回復(fù)“吃了”;當(dāng)用戶上一個(gè)表達(dá)是“吃了嗎”and機(jī)器人回復(fù)是“吃了”and用戶這一個(gè)表達(dá)是“吃了什么呀”,機(jī)器人應(yīng)回復(fù)“老北京炸醬面”;當(dāng)用戶上一個(gè)表達(dá)是“睡了嗎”and機(jī)器人回復(fù)是“沒(méi)睡”and用戶這一個(gè)表達(dá)是“吃了什么呀”,機(jī)器人應(yīng)回復(fù)“親您想問(wèn)什么呢?”
再次把需求交給開(kāi)發(fā),我們就得到了一個(gè)支持兩輪對(duì)話的機(jī)器人。如果需要增加輪次或新的場(chǎng)景,那么在此基礎(chǔ)上添加相應(yīng)的邏輯即可。
再說(shuō)到業(yè)務(wù)辦理,本質(zhì)是在問(wèn)答的基礎(chǔ)上增加與用戶相關(guān)的數(shù)據(jù)交互,比如當(dāng)用戶說(shuō)“幫我訂個(gè)車去人民廣場(chǎng)”,那么機(jī)器人應(yīng)該回復(fù)“好的”的同時(shí),拿用戶的手機(jī)號(hào)和“人民廣場(chǎng)”等信息去完成訂車這一操作。大部分時(shí)候,業(yè)務(wù)辦理和多輪對(duì)話是交叉的,比如訂車的場(chǎng)景下,機(jī)器人可能需要再問(wèn)一下什么時(shí)間出發(fā),對(duì)車輛是否有要求,那么這至少要用三輪對(duì)話來(lái)完成。
講完了基本框架,再說(shuō)說(shuō)落地。在實(shí)際的需求分析過(guò)程中,我們需要了解業(yè)務(wù)背景,了解業(yè)務(wù)規(guī)則下人工客服的工作內(nèi)容。從其中歸納出最終用戶一般有哪些需求,他們會(huì)問(wèn)什么,怎么問(wèn),抽取出用戶意圖,根據(jù)重復(fù)性高的對(duì)話流程做對(duì)應(yīng)的輪次設(shè)計(jì)。假設(shè)我們做的是信用卡客服機(jī)器人,那么用戶意圖很可能有“手續(xù)費(fèi)怎么算”“逾期了有什么影響”,下一句用戶則可能會(huì)繼續(xù)問(wèn),“那我還上了還影響嗎”。這其中需要思考的點(diǎn)很多,原則包括但不限于:
以及有一個(gè)格外需要注意的地方是,對(duì)話式智能產(chǎn)品與其他產(chǎn)品的不同在于,用戶的表達(dá)是不受限的。它不像普通的產(chǎn)品,一個(gè)頁(yè)面上如果只有一個(gè)按鈕,那么用戶就不可能有第二個(gè)操作。而對(duì)話中,用戶可能會(huì)講任何東西,例如我的小機(jī)器人已經(jīng)被問(wèn)了若干次,“你的爸爸媽媽是誰(shuí)呀”。所以在設(shè)計(jì)流程時(shí),需要考慮用戶不按正常流程走完的可能性,也要在設(shè)計(jì)回復(fù)時(shí),盡可能引導(dǎo)用戶往自己想要的方向去做表達(dá),根本原則是收斂而非發(fā)散。