賀峰
(四川大學(xué)計算機學(xué)院,成都610065)
隨著人工智能浪潮的興起,因為有著重大的研究價值和應(yīng)用前景,對話系統(tǒng)逐漸成了研究的熱門領(lǐng)域。學(xué)者們迫切的希望,機器可以理解人類語言,可以和人類對話,并成為人類的幫手。
近些年來,深度學(xué)習(xí)在很多領(lǐng)域中取得了越來越多的進步,例如圖像識別[1]、自然語言處理[2]等。深度學(xué)習(xí)是機器學(xué)習(xí)中的一個分支,它通過構(gòu)造一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),加上大量的數(shù)據(jù)來訓(xùn)練、學(xué)習(xí)這個結(jié)構(gòu)。
在大數(shù)據(jù)的時代,數(shù)據(jù)量和算力的增加使得基于深度學(xué)習(xí)的方法逐漸成為了對話系統(tǒng)研究的主流方法。雖然學(xué)者們在對話系統(tǒng)領(lǐng)域中取得了越來越多的進步和成就,但是對話系統(tǒng)也有不少的缺點和不足。例如,數(shù)據(jù)驅(qū)動的算法表現(xiàn)受數(shù)據(jù)自身影響較大,并且,機器無法像人類一樣,能夠通過對話策略主動進行對話。
最近,Wu 等人[3]提出了一種新型的主動對話系統(tǒng),發(fā)布了基線模型,并且給出了全新的主動對話數(shù)據(jù)集。文中通過引入顯式的對話目標和對話背景知識圖譜,賦予了對話系統(tǒng)主動對話的能力,讓機器可以學(xué)習(xí)到人類主動對話的策略。
本文針對主動對話這一全新的任務(wù),對算法進行了以下幾個創(chuàng)新:
(1)針對對話上下文和知識表示的編碼,使用全局門控進行了增強。本文在使用GRU[4]編碼上下文和背景知識的同時,使用了一種全局的門控機制對編碼后的信息進行過濾,進一步增強了編碼的效果。
(2)針對對話上下文和知識表示編碼后的融合,引入了雙向注意力機制。對于主動對話這個任務(wù)來講,如何對兩種信息進行融合之后再解碼是一個比較關(guān)鍵的問題。本文使用了一種雙向的注意力機制對兩種信息進行高效的融合,增強了信息融合的能力。
最后,我們通過實驗來驗證這兩種方法的有效性。
隨著技術(shù)的進步和發(fā)展,構(gòu)建一個更加智能的對話系統(tǒng)成為了自然語言處理領(lǐng)域里一個越來越受關(guān)注的話題,越來越多的新方法被學(xué)者們提出。但是現(xiàn)有的方法有一個缺點是只能被動的和人類進行對話,機器沒辦法去主動的進行對話,更無法去引導(dǎo)整個對話的進行。
為了解決這個問題,Wu 等人創(chuàng)建了一個全新的數(shù)據(jù)集,將一些額外的信息引入整個對話體系。更具體來講,有兩個額外的信息被引入到對話的過程之中:
(1)對話的背景知識。對話的背景知識是由一個知識圖譜表示的,它由知識三元組構(gòu)成,例如[‘范冰冰’,‘年齡’,‘38’]或者[‘范冰冰’,‘代表作’,‘還珠格格’]。對話的背景知識是對話進行的基礎(chǔ),在構(gòu)建數(shù)據(jù)集時,標注者需要利用知識圖譜的內(nèi)容去完成一組對話。
(2)顯式的對話目標。對話的目標是由對話背景知識圖譜里的兩個實體節(jié)點來表示的,例如“[開始]->[范冰冰]->[還珠格格]”,表示對話是從范冰冰這個主題開始到還珠格格這個主題結(jié)束。在構(gòu)建數(shù)據(jù)集時,標注者需要通過對話目標來規(guī)劃自己的對話策略,然后通過背景知識來構(gòu)建回復(fù)。
以上兩個方面構(gòu)成了一組對話開始的前提,在標注數(shù)據(jù)的時候,需要依照上面兩個部分的信息來生成對話。在構(gòu)建數(shù)據(jù)集時,會有兩位標注者分別充當對話的領(lǐng)導(dǎo)者和追隨者。其中,領(lǐng)導(dǎo)者的角色就是根據(jù)對話目標和對話背景知識來引導(dǎo)整個對話,完成最終的對話目標。追隨者只需要根據(jù)上下文對領(lǐng)導(dǎo)者的話進行回復(fù)。和以往的方法不同的是,在訓(xùn)練模型的時候機器模擬的不是追隨者,而是模仿的領(lǐng)導(dǎo)者,也就是去主動對話的那個角色。
我們將在2.1 小節(jié)中具體介紹此方法的基線模型,分析其不足之處,并且在2.2 小節(jié)中提出針對性的改進。
基線模型由上下文編碼器、知識編碼器、知識選擇器和解碼器四個部分構(gòu)成。他們的作用分別是編碼上下文信息、編碼知識、選擇知識和解碼出最后的回答。其結(jié)構(gòu)如圖1[3]所示。
首先上下文編碼器和知識編碼器分別使用了雙向GRU 對各自的信息進行編碼,得到了編碼后的向量。接著,在解碼的時候,通過注意力機制去選擇與對話相關(guān)的知識。為了加強模型的知識選擇能力,文中引入了知識的先驗分布和后驗分布。其中,先驗分布是模型得出的知識選擇的概率分布,而后驗分布是人類推測的知識的真實選擇,通過引入KLDivLoss 和BOWLoss 來強迫機器去模擬人類選擇知識的行為,增強了模型的表現(xiàn)。最后,通過選擇的知識和對話上下文信息解碼得到了最終的句子。
可以看到模型中大概可以分為兩個關(guān)鍵部分:信息編碼與知識選擇。
編碼就是單獨對上下文信息和背景知識信息進行編碼,這是整個模型的基礎(chǔ)。編碼后的信息將用于之后的知識選擇和解碼。知識選擇就是通過上述的信息,選擇相應(yīng)的知識來作為生成回復(fù)的依據(jù),知識選的好壞也將直接決定模型的表現(xiàn)如何。

圖1
所以,我們提出的模型改進也將從這兩方面入手。
通過對主動對話模型的分析,本文提出的改進主要聚焦于兩個關(guān)鍵的部分:信息編碼與知識選擇。
(1)信息編碼方面:
本文使用了全局的門控機制對編碼后的信息進行過濾。門控機制被廣泛的應(yīng)用于NLP 的模型中,例如GRU 中的輸入門和輸出門。一般來講門的作用是對編碼之后的信息進行篩選和控制。針對主動對話的任務(wù),引入全局的門控制機制的目的是更好地對上下文信息和背景知識進行編碼。
門控具體的計算方式如下:

首先,我們使用GRU 編碼句子,得到了句子的語義表示x。之后我們使用了自注意力機制[5]計算得到了句子的壓縮編碼xGlobal,它代表了句子的全局信息,我們希望通過這個全局信息來對句子進行進一步的信息過濾和控制。然后,我們通過全局的句子壓縮編碼和句子表示算出了每個時刻的門,而這個門的作用是對句子的表示來進行信息過濾。最后我們通過門和句子表示的按位乘法,得到了最終的句子表示。
(2)知識選擇方面:
本文使用了雙向注意力機制讓對話上下文和背景知識的信息充分的進行融合。雙向注意力機制是Seo等人[6]第一次在深度問答領(lǐng)域提出的一個結(jié)構(gòu),使用這個結(jié)構(gòu)最終得到了一個問題感知的上下文表征。更進一步的講,雙向注意力機制提供了一個問題和文章交互編碼的途徑,得到了一種我中有你你中有我的交互的信息編碼,一定程度上解決了深度問答中問題和文章的交互問題,這對于閱讀理解模型的性能很關(guān)鍵。
在主動對話的任務(wù)中,我們使用這個結(jié)構(gòu)去讓對話上下文和背景知識進行交互。具體的計算方式如下:

其中semanticx和knowledgex分別是對話上下文和背景知識的信息編碼,BiAtt 代表的雙向注意力機制。xsk和xks分別代表兩個方向的注意力,一個是上下文關(guān)于背景知識的,另一個是背景知識關(guān)于上下文的。最后通過信息的拼接,我們得到了信息融合之后的編碼表示和。 在基線模型中semanticx和knowledgex是用于解碼的語義和知識信息,在我們提出改進后這兩部分被替換為融合之后的信息也就是和。
為了和基線模型保持一致,我們在這里沿用了BELU 作為評價指標。BLEU 是采用一種N-Gram 匹配規(guī)則的相似度計算算法,被用來評估句子與句子之間的相似度,得分越高我們認為兩個句子之間越相似。具體的,我們使用BLEU-1 和BLEU-2 來評價,分別是BLEU 的1-Gram 版本和2-Gram 版本。
在不改變基線模型原本參數(shù)的條件下,本文對提出的兩種方法做了消融實驗,得到的結(jié)果如表1 所示。

表1
實驗結(jié)果驗證了我們之前的分析,通過增強全局編碼和信息融合這兩種方法,均可以有效提升主動對話模型的表現(xiàn)。
本文通過分析主動對話模型的特點,從信息編碼和知識選擇兩個方面,提升了模型的性能。針對這兩個方面,本文提出了兩種結(jié)構(gòu):①全局信息增強的信息編碼;②基于雙向注意力機制的知識選擇。最終,我們在主動對話的數(shù)據(jù)集中驗證了我們提出的這兩種結(jié)構(gòu),證明了它們的有效性。
在下一步的工作中,我們將嘗試引入圖神經(jīng)網(wǎng)絡(luò)去編碼對話的背景知識。因為背景知識天然的是知識圖譜的結(jié)構(gòu),而在文中我們卻使用了GRU 來進行編碼。嘗試引入圖神經(jīng)網(wǎng)絡(luò)這一為圖而生的結(jié)構(gòu),或許可以帶來更大的提升。