0
本文作者: 黃善清 | 2018-09-06 09:36 |
雷鋒網(wǎng)AI研習(xí)社按:現(xiàn)如今,諸如小冰這類閑聊機(jī)器人逐漸進(jìn)入了大眾的視野,甚至成為了一部分人打發(fā)閑暇時(shí)光的伴侶。然而,現(xiàn)在的閑聊機(jī)器人在對(duì)話的互動(dòng)性、一致性以及邏輯性上都還存在著一些亟待解決的缺陷。
近日的 AI 研習(xí)社大講堂上,來自清華大學(xué)的王延森分享了一篇收錄于ACL2018的論文,嘗試著利用提問來解決閑聊機(jī)器人互動(dòng)性不足的問題。
分享嘉賓:
王延森,清華大學(xué)計(jì)算機(jī)系本科生,現(xiàn)于清華大學(xué)計(jì)算機(jī)系人工智能實(shí)驗(yàn)室交互式人工智能課題組,師從黃民烈教授從事科研工作,主要研究方向?yàn)閷?duì)話系統(tǒng)、文本生成、邏輯信息處理等。
公開課回放地址:
分享主題:如何利用提問增強(qiáng)開放領(lǐng)域?qū)υ捪到y(tǒng)互動(dòng)性
分享提綱:
開放領(lǐng)域?qū)υ捪到y(tǒng)的發(fā)展現(xiàn)狀,存在的問題
利用提問解決開放領(lǐng)域?qū)υ捪到y(tǒng)中存在的互動(dòng)性問題的可行性與核心思路
如何利用分類型解碼器(typed decoder)在對(duì)話系統(tǒng)中提出恰當(dāng)而有意義的問題
模型在數(shù)據(jù)集上結(jié)果分析以及仍然存在的問題
雷鋒網(wǎng)AI研習(xí)社將其分享內(nèi)容整理如下:
今天很榮幸可以和大家分享這篇論文,我們把類型解碼器運(yùn)用到開放式對(duì)話系統(tǒng)的提問中,來增強(qiáng)系統(tǒng)和人的互動(dòng)性。
我會(huì)先給大家介紹開放式對(duì)話系統(tǒng),以及該領(lǐng)域目前依然存在哪些問題,從而引出我們?yōu)槭裁匆趯?duì)話系統(tǒng)中引入提問環(huán)節(jié),再與現(xiàn)有的工作進(jìn)行對(duì)比,接著會(huì)講解我們的類型解碼器,最后給大家介紹我們的數(shù)據(jù)集。
對(duì)話系統(tǒng)聽起來似乎很高大上,說白了就是人與計(jì)算機(jī)的交互。
從種類上來說,可以分為閑聊系統(tǒng)和任務(wù)型系統(tǒng)。關(guān)于閑聊系統(tǒng),我舉幾個(gè)例子大家可能就會(huì)明白:Siri 和小冰,當(dāng)你和閑聊系統(tǒng)聊天時(shí),它能夠像朋友一樣跟你聊天。任務(wù)型任務(wù)典型的例子是銀行的機(jī)器人客服系統(tǒng),你給它提業(yè)務(wù)上的一些問題,可以立馬獲得解答。
從解決方法上來說,對(duì)話系統(tǒng)又可以分為:基于規(guī)則、基于檢索和基于生成?;谝?guī)則的特點(diǎn)在于會(huì)提前設(shè)好模式(pattern),需要的時(shí)候會(huì)根據(jù)模式進(jìn)行回復(fù);基于檢索則是通過模型訓(xùn)練或者模型學(xué)習(xí),從已有的樣本中挑出最好的回復(fù);基于生成指的是通過深度學(xué)習(xí)或者機(jī)器學(xué)習(xí)的方式,讓訓(xùn)練樣本可以針對(duì)不同輸入而給出不同的回復(fù)。
今天我們主要談的是基于生成的閑聊系統(tǒng),先來看一些比較新的研究成果。
這是利用深度學(xué)習(xí)模型所訓(xùn)練出的一些比較好的結(jié)果。可以看出,機(jī)器學(xué)習(xí)生成方式具有一個(gè)很好的優(yōu)點(diǎn),就是具有一定的創(chuàng)新性的,不再局限于訓(xùn)練數(shù)據(jù)中的結(jié)果,而是基于生成模型來生成回復(fù),因此回復(fù)往往富有創(chuàng)造力。
不過模型也存在局限性,在理解上文邏輯這塊做得還是比較薄弱。
從更高層面來看,我們還發(fā)現(xiàn)了語義理解、上下文理解、個(gè)性身份一致性的問題。很多人在使用閑聊系統(tǒng)過程中發(fā)現(xiàn),很多時(shí)候聊到一半便進(jìn)行不下去,是因?yàn)闄C(jī)器人自己先把天聊死了。
有些甚至還涉及到道德層面的問題,一旦機(jī)器人沒法理解人類話語中的意圖,就會(huì)容易造成誤解。
上圖展示了一名用戶在情緒抑郁時(shí)對(duì)機(jī)器人說的話,以第二條為例,用戶表示隔天自己不想活了,結(jié)果機(jī)器人很自然地接了一句:好的,我會(huì)提醒你。
簡(jiǎn)單總結(jié)一下,機(jī)器系統(tǒng)在句義理解、上下文一致性和交互性上存在不同程度的問題,而這些問題主要體現(xiàn)在內(nèi)容、AI 個(gè)性化、AI 情感以及聊天策略上,目前已有一些工作在努力解決這一個(gè)問題。
比如這 3 篇文章分別從情感交互、提問以及控制句式入手,試圖解決機(jī)器的交互性問題;針對(duì)上下文一致性的問題,這幾篇文章強(qiáng)調(diào)賦予機(jī)器人獨(dú)立人格,這樣機(jī)器人才不會(huì)問答過程中迷失自我;至于如何讓機(jī)器人變得機(jī)靈,這篇文章建議可以從外部引入常識(shí)信息庫,避免出現(xiàn)一些牛頭不對(duì)馬嘴的回答。
我們今天來談?wù)勅绾瓮ㄟ^提問來增強(qiáng)機(jī)器人的互動(dòng)性。
機(jī)器可能不清楚什么是好的提問,這個(gè)涉及一個(gè)重要的因素:場(chǎng)景理解,也就是說,機(jī)器要理解整句話在說什么,而不是局限于某個(gè)局部,這樣才能達(dá)到最好的提問效果。
過往的研究表明,提問是一種更加主動(dòng)的行為方式,有利于對(duì)話順利開展下去。過去所做的工作更多是讓系統(tǒng)及時(shí)定位到文章里的關(guān)鍵信息所在,并據(jù)此作出提問,這也意味著,提問無助于提高文章整體的信息增量,而是基于上文內(nèi)容的一個(gè)重復(fù)提問,這樣并不適合直接運(yùn)用到對(duì)話系統(tǒng)中。
我們的探索與前人的工作主要存在幾個(gè)不同之處:
一、我們希望增強(qiáng)互動(dòng)性和持續(xù)性,讓聊天有效進(jìn)行下去,而過去的工作更像是一種信息檢索;
二、在提問的種類上,過去的工作給定答案之后,問題的形式就被定死了,而我們的提問希望由對(duì)話系統(tǒng)自己找到合適的提問方式;
三、在大多數(shù)情況下,我們并不是對(duì)上文中的東西進(jìn)行提問,而是對(duì)與其相關(guān)的東西進(jìn)行提問,這就要求模型在給定的話題下進(jìn)行一定程度的遷移。
通過簡(jiǎn)單的觀察后我們發(fā)現(xiàn),一個(gè)好的問題應(yīng)該由疑問詞、話題詞以及普通詞組成——疑問詞決定提問模式,話題詞則給模型提供了話題遷移的能力。
于是我們提出了一種新型的生成模型——類型解碼器,將句式的生成分為兩個(gè)步驟,首先是定位好類型,再按照類型找到對(duì)應(yīng)的詞。根據(jù)對(duì)于詞類型的劃分程度,我們將我們的類型化解碼器分為了強(qiáng)類型化解碼器和弱類型化解碼器兩種,分別用 HTD 與 STD 表示。
我們首先看弱類型化解碼器 STD,對(duì)于當(dāng)前的解碼狀態(tài),我們會(huì)通過一個(gè)信息層估計(jì)每一種詞(疑問詞/話題詞/普通詞)并據(jù)此生成概率分布。我們假設(shè)每一個(gè)詞都有能力充當(dāng)某種類型的詞,所以會(huì)維護(hù)三個(gè)內(nèi)容相同的類型詞表。每一種類型的解碼會(huì)先預(yù)測(cè)這個(gè)詞表中每個(gè)詞出現(xiàn)的概率,再對(duì)當(dāng)前解碼位所需要的詞語類型概率進(jìn)行一個(gè)預(yù)測(cè),最后將二者結(jié)合起來得到最終的詞表概率分布,取其合縱最大的一個(gè)作為生成詞。在同一個(gè)詞表中使用不同的分布,每個(gè)分布都會(huì)有對(duì)應(yīng)的類型,于是我們使用一個(gè)混合策略,將這些概率分布混合起來。
下面是全概率公式在這個(gè)問題中的運(yùn)用:每個(gè)位置的概率=當(dāng)前需要每種類型的概率乘上這個(gè)詞在當(dāng)前位置作為這種類型的概率。
計(jì)算概率的方式很簡(jiǎn)單,就是在最終的狀態(tài)上加入不同的線性層即可。
軟類型解碼器有一個(gè)明顯的問題,就是明明有些詞壓不太可能作為一個(gè)特定類型的詞出現(xiàn),我們卻認(rèn)為它都有可能,讓模型去學(xué)這種可能性,聽起來有些荒誕。
對(duì)于強(qiáng)類型解碼器來說,我們希望能夠人為控制這些本不應(yīng)當(dāng)學(xué)習(xí)的部分,這個(gè)「強(qiáng)」主要體現(xiàn)在兩個(gè)部分:
第一,有些詞的詞性我們需要實(shí)現(xiàn)確定
第二,對(duì)于每個(gè)位置具體選擇哪種類型的詞,要有一個(gè)明確的判斷
讓我們來看一下模型的框架。
在強(qiáng)類型解碼器中,只存在一個(gè)詞表,詞表被分為 3 個(gè)部分,每個(gè)部分對(duì)應(yīng)不同的類型。我們先預(yù)測(cè)某個(gè)類型上的概率分布,再利用 gumbel-softmax 做銳化,使其起到類似 gate 的作用,最后利用 gate 去調(diào)適整個(gè)詞表上的概率。
讓我們來看一下公式。
具體如何做參數(shù)調(diào)制,再看一組例子。
調(diào)制我們可不可以考慮使用 argmax 呢?首先,argmax 的函數(shù)是不可導(dǎo)的,也就是說模型在訓(xùn)練的過程中梯度回傳可能會(huì)帶來一些問題。另外,一旦詞類預(yù)測(cè)錯(cuò)誤,無論詞表的預(yù)測(cè)多么正確,都沒有挽回的余地,這也是我們最終沒有使用 argmax 的原因,而是選擇使用一個(gè)叫 gumble-softmax 的機(jī)制。
gumble-softmax 機(jī)制遵循 gumble distribution 的分布,引入了隨機(jī)化因素,方便訓(xùn)練模型來抹平一些不必要的銳化。
其中,Tau 表明的是 gumble-softmax 的銳化程度,是一個(gè)重要的超參數(shù),它決定了模型的銳化程度。如果 Tau 是 1 意味著銳化程度保持不變,趨于 0 就會(huì)退化成 argmax,趨于正無窮就會(huì)形成均勻分布。簡(jiǎn)而言之,Tau 越小,銳化的作用越明顯,Tau 越大,模糊的作用越明顯。我們希望通過銳化方式來控制類型的生成,所以在實(shí)際使用中一般會(huì)取小于 1 的 Tau 值。
在解決了強(qiáng)制控制類型的問題以后,我們來看如何決定詞類分布的問題,也就是如何決定每個(gè)詞對(duì)應(yīng)的類型。
疑問詞比較好確定,因?yàn)橐还簿湍敲磶追N提問方式;話題詞的確定要稍微麻煩一點(diǎn),在訓(xùn)練中,我們會(huì)將 response 里的所有名詞和動(dòng)詞作為話題詞訓(xùn)練,也就是將回復(fù)中的名詞和動(dòng)詞所在對(duì)應(yīng)詞表的位置都標(biāo)記為話題詞。
然而在實(shí)際使用中,回復(fù)不可能事先給定好,所以會(huì)稍稍麻煩一些。為了更好的進(jìn)行預(yù)測(cè),我們引入了點(diǎn)互信息 PMI 這么一個(gè)概念,用于衡量 post 中出現(xiàn)的詞與在 response 中出現(xiàn)的詞之間的關(guān)聯(lián)程度。
在實(shí)際運(yùn)用中,我們會(huì)把 post 中的每個(gè)詞與詞表中詞 ki 的 PMI 利用這樣一個(gè)公式結(jié)合起來,就得到了詞表中的詞 ki 與上文的相關(guān)程度。
排名前 20 個(gè)(超參數(shù))的成為話題詞,話題詞或疑問詞以外的被歸類為普通詞。
至于在損失函數(shù)這塊,我們除了像一般的模型一樣在詞表的概率分布上做出了損失函數(shù),同時(shí)也在詞類的 gate 上加了監(jiān)督,并且利用 lambda 這樣一個(gè)超參數(shù)將兩部分進(jìn)行調(diào)和。
說完了模型,讓我們來看一下實(shí)驗(yàn)的部分。
伴隨著工作出現(xiàn)了一個(gè)全新的數(shù)據(jù)集——對(duì)話生成中的對(duì)話數(shù)據(jù)集,是我們從微博數(shù)據(jù)集中篩選出來的,大概有九百萬條,后來過濾了一些不太重要的回復(fù)。
這是一些自動(dòng)評(píng)價(jià)的指標(biāo)。
困惑度描述的是語法性問題,而 distinct-1 和 distinct-2 描述的是詞匯的豐富性,至于 TRR 則是我們自己提出的指標(biāo),它表示話題詞占到總回復(fù)的比例??偟膩砜矗覀兊哪P驮谶@些指標(biāo)上都取得了很好的結(jié)果。
接下來看一看人工評(píng)價(jià)結(jié)果。
我們主要通過兩兩對(duì)比的方式進(jìn)行評(píng)測(cè),評(píng)價(jià)主要由以下三個(gè)指標(biāo)組成:合適性、豐富性、回復(fù)意愿。在這個(gè)環(huán)節(jié)上我們的模型也取得顯著的結(jié)果,其中強(qiáng)類型解碼器要優(yōu)于弱類型解碼器。
這里也給出了一些生成的例子。
過往的模型只能給出類似「什么」、「什么情況」這樣一些通用回復(fù),并不具備從上文抓取話題詞做話題遷移的能力,而我們的提問模型就比較豐富,只是在常識(shí)問題這塊還有待改善。
從類型控制的結(jié)果可以看出,這個(gè) gate 的作用非常明顯,針對(duì)在特定位置的類型可以把控得較好,從而生成對(duì)應(yīng)類型的詞。
我們的模型常見的錯(cuò)誤主要體現(xiàn)在沒有話題詞、生成錯(cuò)誤的話題詞、類型預(yù)測(cè)錯(cuò)誤,三者各自所占的比例都比較相近。
做個(gè)簡(jiǎn)單的總結(jié),我們希望通過控制問題中不同類型的詞語來生成問題,為此我們提出了強(qiáng)類型和弱類型的兩種解碼模型。這篇文章給大家提出了新問題、新數(shù)據(jù)集、新模型,以及存在的一些問題,比如類型與詞表框架錯(cuò)位導(dǎo)致的語法問題。
以上就是本期嘉賓的全部分享內(nèi)容。更多公開課視頻請(qǐng)到雷鋒網(wǎng)AI研習(xí)社社區(qū)(https://club.leiphone.com/)觀看。關(guān)注微信公眾號(hào):AI 研習(xí)社(okweiwu),可獲取最新公開課直播時(shí)間預(yù)告。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。