UNIT劃重點(diǎn)—快速掌握對(duì)話系統(tǒng)技術(shù)原理
人工智能時(shí)代的交互特色用一個(gè)詞來概括就是“對(duì)話”,用人類最自然的交互方式,或者是語音或者是文字,給機(jī)器發(fā)送指令,與機(jī)器進(jìn)行交互。當(dāng)然,人機(jī)對(duì)話系統(tǒng)早在傳統(tǒng)計(jì)算機(jī)時(shí)代就已經(jīng)出現(xiàn)了,只是在人工智能時(shí)代,特別是由于各種機(jī)器學(xué)習(xí)技術(shù)尤其是深度學(xué)習(xí)技術(shù)的出現(xiàn),使我們的系統(tǒng)實(shí)用性取得了質(zhì)的飛躍。
對(duì)話系統(tǒng)種類繁多,劃分方式多種多樣??筛鶕?jù)用途分為任務(wù)型、問答型、閑聊型對(duì)話系統(tǒng);也可根據(jù)場(chǎng)景分為封閉域、開放域?qū)υ捪到y(tǒng);還可根據(jù)使用方法分為檢索式、生成式對(duì)話系統(tǒng)。UINT平臺(tái)能夠幫助大家方便地構(gòu)建任務(wù)型多輪對(duì)話系統(tǒng)。我們重點(diǎn)看任務(wù)型多輪對(duì)話系統(tǒng)。
任務(wù)型人機(jī)對(duì)話系統(tǒng)
在對(duì)話過程中,機(jī)器人需執(zhí)行的操作分為口語理解、對(duì)話管理、執(zhí)行命令、語言生成四個(gè)過程。如下圖所示對(duì)話系統(tǒng)的基本操作流程:
首先,對(duì)話系統(tǒng)需理解用戶的自然語言請(qǐng)求,根據(jù)用戶給出的查詢輸入先后經(jīng)過口語理解、對(duì)話管理,然后決定進(jìn)行語言生成還是指令執(zhí)行,***給出系統(tǒng)答復(fù)。其中,核心模塊為口語理解和對(duì)話管理。
口語理解
口語理解的功能為理解用戶請(qǐng)求所包含的語義信息,用于信息查詢或指令執(zhí)行。其任務(wù)難點(diǎn)為自然語言的歧義性,表達(dá)方法的多樣性及敘述風(fēng)格的口語化。那么該如何攻破口語理解的任務(wù)難點(diǎn)呢?
UNIT平臺(tái)提供兩種經(jīng)典模式解決:基于語義解析的口語理解模式,基于語義匹配的口語理解模式。
基于語義解析的口語理解模式,是將用戶請(qǐng)求解析為所包含語義信息的結(jié)構(gòu)化表達(dá)。其中,最典型的結(jié)構(gòu)化表達(dá)是意圖(描述用戶的核心訴求)+ 詞槽(描述意圖的關(guān)鍵信息)的模式。常用方法有基于知識(shí)規(guī)則的方法,基于機(jī)器學(xué)習(xí)的方法,以及基于融合策略的方法。
基于語義匹配的口語理解模式,不需要解析出具體的語義格式化信息,而是需要尋找與其具有***語義匹配程度的問答對(duì)。
對(duì)話管理
對(duì)話管理的功能為基于對(duì)話狀態(tài)實(shí)施對(duì)話策略,從而實(shí)現(xiàn)多輪對(duì)話邏輯。其任務(wù)難點(diǎn)為狀態(tài)計(jì)算的不確定性及不確定環(huán)境下的策略選擇。相應(yīng)的,對(duì)話管理存在兩大核心任務(wù):對(duì)話狀態(tài)跟蹤、對(duì)話策略選擇。如下圖為對(duì)話管理在整個(gè)對(duì)話流程中的位置,及狀態(tài)位置和對(duì)話管理之間相互配合的關(guān)系。
對(duì)話狀態(tài)跟蹤,即根據(jù)對(duì)話歷史計(jì)算當(dāng)前對(duì)話狀態(tài),管理并更新對(duì)話歷史。其常用方法為:基于人工規(guī)則的方法,基于機(jī)器學(xué)習(xí)的方法。通過建立映射,輸入會(huì)話歷史,然后輸出當(dāng)前對(duì)話狀態(tài)。
對(duì)話策略選擇,即根據(jù)當(dāng)前對(duì)話狀態(tài),選擇接下來最恰當(dāng)?shù)牟僮?。其常用方法為:基于人工?guī)則的方法,基于機(jī)器學(xué)習(xí)的方法,以及基于強(qiáng)化學(xué)習(xí)的方法。同樣是通過建模映射的過程,輸入當(dāng)前對(duì)話狀態(tài),輸出系統(tǒng)回復(fù)和指令執(zhí)行。
對(duì)話系統(tǒng)如何搭建
簡(jiǎn)單介紹一下系統(tǒng)搭建的流程,以及每個(gè)流程當(dāng)中開發(fā)者需要做什么,以及UINT平臺(tái)為大家提供了什么。搭建流程如下:
1)首先定義對(duì)話系統(tǒng)。就是說這個(gè)對(duì)話系統(tǒng)包含哪些意圖,這個(gè)意圖的關(guān)鍵信息是什么。
2)富集數(shù)據(jù)資源。就是收集、標(biāo)注、擴(kuò)充數(shù)據(jù)資源,包括需要哪些詞典,標(biāo)注哪些規(guī)則,需要寫多少模板,需要標(biāo)注多少樣本。
3)配置對(duì)話邏輯。這個(gè)過程可以很方便的用UINT進(jìn)行搭建,只要把這個(gè)對(duì)話系統(tǒng)按照UINT提供的方式配置到UINT平臺(tái)中,把富集的數(shù)據(jù)資源輸入到UINT中,點(diǎn)幾個(gè)按鈕就可以進(jìn)行系統(tǒng)的搭建訓(xùn)練了。
4)訓(xùn)練模型,效果優(yōu)化??梢栽赨NIT平臺(tái)進(jìn)行對(duì)話效果的調(diào)優(yōu)。之后可以不斷的重復(fù)一個(gè)小的循環(huán)過程。上線之后,大量的用戶進(jìn)來使用對(duì)話機(jī)器人,貢獻(xiàn)了更多數(shù)據(jù)的樣本,拿到這些樣本之后,根據(jù)這些樣本所產(chǎn)生的錯(cuò)誤等等情況進(jìn)行分析,再一次富集我們的資源對(duì)系統(tǒng)進(jìn)行改進(jìn),使得效果不斷變好。
在這個(gè)搭建的過程中,UNIT平臺(tái)提供了很多能力,為開發(fā)者降低了開發(fā)成本。
- 預(yù)置技能:分析用戶需求,定義對(duì)話系統(tǒng)階段,UNIT平臺(tái)直接推出多個(gè)場(chǎng)景的預(yù)置技能,也有富含資源的技能,開發(fā)者可以一鍵獲取,不需再進(jìn)行富集數(shù)據(jù)和模型訓(xùn)練的工作。
- 系統(tǒng)詞槽:UNIT平臺(tái)預(yù)置的詞槽,包括人名、地名、時(shí)間、地點(diǎn)等22個(gè)大類的詞槽詞典值,開發(fā)者可以直接勾選復(fù)用,不需富集人名表、地名表和時(shí)間等等這些信息。
- 模板配置:UNIT提供了一套科學(xué)的對(duì)話理解模板的編撰機(jī)制,通過這種對(duì)話模板,可以快速實(shí)現(xiàn)對(duì)話的泛化效果。
- 推薦樣本:UNIT平臺(tái)提供了大量的推薦樣本,減少開發(fā)者樣本富集的工作,根據(jù)開發(fā)者提供的樣本,能夠推薦出一些相似的、可以復(fù)用的樣本出來。
- 日志分析:UINT提供了數(shù)據(jù)回流的機(jī)制,數(shù)據(jù)存儲(chǔ)的機(jī)制,數(shù)據(jù)服務(wù)加工的機(jī)制等,以及日志分析工具,幫助開發(fā)者優(yōu)化對(duì)話效果。
系統(tǒng)評(píng)估
評(píng)估方法分為兩大類:
1. 對(duì)單個(gè)系統(tǒng)的精度給出量化的指標(biāo)數(shù)據(jù),用于單個(gè)系統(tǒng)的精度評(píng)估
由于口語理解精度直接影響對(duì)話管理運(yùn)行,進(jìn)而影響對(duì)話系統(tǒng)效果,因此可以通過評(píng)估口語理解來評(píng)估對(duì)話系統(tǒng)。其中有三個(gè)指標(biāo):準(zhǔn)確率(Precision),召回率(Recall),F(xiàn) 值(F-measure)
準(zhǔn)確率 = 預(yù)測(cè)結(jié)果中正確的數(shù)量 / 預(yù)測(cè)結(jié)果中總的數(shù)量
召回率 = 預(yù)測(cè)結(jié)果中正確的數(shù)量 / 測(cè)試集中應(yīng)該被識(shí)別的數(shù)量
2. 對(duì)兩個(gè)系統(tǒng)的精度對(duì)比給出量化的指標(biāo)數(shù)據(jù),用于系統(tǒng)迭代時(shí)給出精度對(duì)比。
針對(duì)系統(tǒng)迭代需求,比較基線系統(tǒng) X 和對(duì)比系統(tǒng) Y 的優(yōu)勢(shì)。其中兩個(gè)系統(tǒng)的定量對(duì)比涉及的指標(biāo):
- Diff 面:同一條 query 解析結(jié)果不一致的情況在抽樣集合中的占比
- G(變好):針對(duì)同一條 query,Y 的結(jié)果比 X 好
- S(相同):針對(duì)同一條 query,Y 的結(jié)果與 X 差不多
- B(變差):針對(duì)同一條 query,Y 的結(jié)果比 X 差
如果 Y 要替換 X,至少 G>B;同時(shí)如果 Diff 面過大,則還需要考慮用戶體驗(yàn)的波動(dòng)。