讀懂智能對(duì)話系統(tǒng)(2)聊天機(jī)器人

京東數(shù)據(jù)團(tuán)隊(duì)曾經(jīng)出了一片關(guān)于對(duì)話系統(tǒng)的論文《A Survey on Dialogue Systems:Recent Advances and New Frontiers(智能對(duì)話系統(tǒng)調(diào)查:前沿與進(jìn)展)》,全文引用了124篇論文,是一篇綜合全面的介紹對(duì)話系統(tǒng)的文章。

論文原文地址:

https://www.kdd.org/exploration_files/19-2-Article3.pdf

公眾號(hào)“機(jī)器學(xué)習(xí)算法全棧工程師”對(duì)這篇論文的內(nèi)容進(jìn)行了解讀,主要概述了對(duì)話系統(tǒng),尤其是對(duì)話系統(tǒng)在深度學(xué)習(xí)方面的進(jìn)展,還討論了可能的研究方向。以下是主要架構(gòu):

奇點(diǎn)機(jī)智對(duì)這篇文章進(jìn)行了進(jìn)一步的拆解,分成四篇文章來介紹智能對(duì)話系統(tǒng)。

讀懂智能對(duì)話系統(tǒng)(1)任務(wù)導(dǎo)向型對(duì)話系統(tǒng)

讀懂智能對(duì)話系統(tǒng)(2)聊天機(jī)器人

讀懂智能對(duì)話系統(tǒng)(3)對(duì)話系統(tǒng)的未來發(fā)展

非任務(wù)導(dǎo)向系統(tǒng)(chatbot,聊天機(jī)器人)

不同于任務(wù)導(dǎo)向型對(duì)話系統(tǒng),它的目標(biāo)是為用戶完成特定的任務(wù),而非任務(wù)導(dǎo)向的對(duì)話系統(tǒng)(也稱為聊天機(jī)器人)專注于在開放的領(lǐng)域與人交談。一般來說,聊天機(jī)器人是通過生成方法或基于檢索的方法實(shí)現(xiàn)的。

生成模型能夠生成更合適的回復(fù),而這些回復(fù)可能從來沒有出現(xiàn)在語料庫(kù)中,而基于檢索的模型則具有信息充裕和響應(yīng)流暢的優(yōu)勢(shì)。

1. 神經(jīng)生成模型(Neural Generative Models)

深度學(xué)習(xí)在機(jī)器翻譯中的成功應(yīng)用,即神經(jīng)機(jī)器翻譯,激發(fā)了人們對(duì)神經(jīng)生成對(duì)話研究的熱情。目前神經(jīng)生成模型的熱門研究課題大概有如下幾個(gè)方面。

1.1 Sequence-to-Sequence Models

給定包含 個(gè)詞語的輸入序列(message)

和長(zhǎng)度為T的目標(biāo)序列(response)

模型最大化Y在X下的條件概率:

具體來說,Seq2Seq模型是在encoder-decoder結(jié)構(gòu)中,下圖是這種結(jié)構(gòu)的示意:

編碼器將X逐字讀入,并通過遞歸神經(jīng)網(wǎng)絡(luò)(RNN)將其表示為上下文向量c, 然后解碼器將c 作為輸入估計(jì)Y 的生成概率。

Encoder :

Encoder過程很簡(jiǎn)單,直接使用RNN(一般用LSTM)進(jìn)行語義向量生成:

其中f 是非線性函數(shù),例如LSTM,GRU,h_{t-1}是上一隱節(jié)點(diǎn)輸出,x_t
是當(dāng)前時(shí)刻的輸入。向量c 通常為RNN中的最后一個(gè)隱節(jié)點(diǎn)
(h, Hidden state),或者是多個(gè)隱節(jié)點(diǎn)的加權(quán)和。

Decoder :模型的decoder過程是使用另一個(gè)RNN通過當(dāng)前隱狀態(tài)h_t來預(yù)測(cè)當(dāng)前的輸出符號(hào)y_t,這里的y_th_t都與其前一個(gè)隱狀態(tài)和輸出有關(guān),Seq2Seq的目標(biāo)函數(shù)定義為:

1.2. 對(duì)話上下文(Dialogue Context)

考慮對(duì)話的上下文信息的是構(gòu)建對(duì)話系統(tǒng)的關(guān)鍵所在,它可以使對(duì)話保持連貫和增進(jìn)用戶體驗(yàn)。使用層次化的RNN模型,捕捉個(gè)體語句的意義,然后將其整合為完整的對(duì)話。

同時(shí),分別用字級(jí)別和句子級(jí)別的注意力方法擴(kuò)展層次化的結(jié)構(gòu)。

試驗(yàn)證明:

  • 層次化 RNNs的表現(xiàn)通常優(yōu)于非層次化的RNNs;

  • 在考慮上下文相關(guān)的信息后,神經(jīng)網(wǎng)絡(luò)趨向于產(chǎn)生更長(zhǎng)的、更有意義和多樣性的回復(fù)。

640?wx_fmt=png

在上圖中,作者通過代表整個(gè)對(duì)話歷史(包括當(dāng)前的信息),用連續(xù)的表示或嵌入單詞和短語來解決上下文敏感回復(fù)生成的這一難題。

640?wx_fmt=png

在上圖的結(jié)構(gòu)中作者引入兩個(gè)層次的Attention機(jī)制,讓模型能夠自動(dòng)的學(xué)到詞語與句子級(jí)別的重要度信息,從而更好的生成新一輪的對(duì)話。

作者在句子級(jí)別的信息中,是反向?qū)W習(xí)的,即認(rèn)為下一句的信息中更能夠包含上一句的信息,所以從總體上來看,其對(duì)于對(duì)話的學(xué)習(xí)是逆向使用每一輪對(duì)話的內(nèi)容的。

1.3 回復(fù)多樣性(Response Diversity)

在當(dāng)前Seq2Seq對(duì)話系統(tǒng)中,一個(gè)具有挑戰(zhàn)性的問題是,它們傾向于產(chǎn)生無關(guān)緊要的或不明確的、普通的、幾乎沒有意義的回復(fù),而這些回復(fù)常常涉及到一些諸如“I don't know”,“I am OK”這樣的無意義回復(fù)。

解決這類問題的一個(gè)很有效的方法是找到并設(shè)置一個(gè)更好的目標(biāo)函數(shù)。除此之外,解決此類問題的一個(gè)方法是增加模型的復(fù)雜度。下圖這篇論文《Building End-To-End Dialogue Systems
Using Generative Hierarchical Neural Network Models》使用了 latent variable 來解決無意義回復(fù)這個(gè)問題。

640?wx_fmt=png

1.4 主題和個(gè)性化(Topic and Personality)

明確對(duì)話的內(nèi)在屬性是提高對(duì)話多樣性和保證一致性的另一種方法。在不同的屬性中,主題和個(gè)性被廣泛地進(jìn)行研究探討。
在下圖的模型中,作者注意到人們經(jīng)常把他們的對(duì)話與主題相關(guān)的概念聯(lián)系起來,并根據(jù)這些概念做出他們的回復(fù)。他們使用Twitter LDA模型來獲取輸入的主題,將主題信息和輸入表示輸入到一個(gè)聯(lián)合注意模塊中,并生成與主題相關(guān)的響應(yīng)。

640?wx_fmt=png

下圖的模型提出了一種兩階段的訓(xùn)練方法,使用大規(guī)模數(shù)據(jù)對(duì)模型進(jìn)行初始化,然后對(duì)模型進(jìn)行微調(diào),生成個(gè)性化響應(yīng)。

640?wx_fmt=png

1.5 外部知識(shí)庫(kù)(Outside Knowledge Base)

人類對(duì)話與對(duì)話系統(tǒng)之間的一個(gè)重要區(qū)別是它是否與現(xiàn)實(shí)相結(jié)合。結(jié)合外部知識(shí)庫(kù)(KB)是一種很有前途的方法,可以彌補(bǔ)背景知識(shí)之間的差距,即對(duì)話系統(tǒng)和人之間的差距。

記憶網(wǎng)絡(luò)(Memory Network)是一種以知識(shí)庫(kù)處理問題的經(jīng)典方法。因此,它非常直接的別用于在對(duì)話生成中。實(shí)際研究表明,所提出的模型能夠通過參考知識(shí)庫(kù)中的事實(shí)來生成對(duì)問題的自然和正確答案。

640?wx_fmt=png

上圖是作者提出的完全數(shù)據(jù)驅(qū)動(dòng)的帶有知識(shí)的對(duì)話模型。其中的 World Facts是一個(gè)集合,收集一些經(jīng)過權(quán)威認(rèn)證過的句子或者不準(zhǔn)確的句子,作為知識(shí)庫(kù)。

當(dāng)個(gè)定一個(gè)輸入S和歷史,需要在 Fact 集合里面檢索相關(guān)的facts,這里采用的IR引擎進(jìn)行檢索,然后經(jīng)過 Fact Encoder 進(jìn)行 fact injection。

上圖的模型提出了一種全新的、完全由數(shù)據(jù)驅(qū)動(dòng)的、基于知識(shí)的神經(jīng)對(duì)話模型,目的是在沒有槽位的情況下產(chǎn)生更多的內(nèi)容。作者歸納了廣泛使用的SEQ2SEQ方法,通過對(duì)會(huì)話歷史和外部“事實(shí)”的響應(yīng)

1.6 評(píng)價(jià) **評(píng)價(jià)生成回復(fù)的質(zhì)量是對(duì)話系統(tǒng)的一個(gè)重要方面。任務(wù)導(dǎo)向型的對(duì)話系統(tǒng)可以基于人工生成的監(jiān)督信號(hào)進(jìn)行評(píng)估,例如任務(wù)完成測(cè)試或用戶滿意度評(píng)分等,

然而,由于高回復(fù)的多樣性,自動(dòng)評(píng)估非任務(wù)導(dǎo)向的對(duì)話系統(tǒng)所產(chǎn)生的響應(yīng)的質(zhì)量仍然是一個(gè)懸而未決的問題。目前的方法有以下幾種:

  • 計(jì)算 BLEU 值,也就是直接計(jì)算 word overlap、ground truth和你生成的回復(fù)。由于一句話可能存在多種回復(fù),因此從某些方面來看,BLEU 可能不太適用于對(duì)話評(píng)測(cè)。

  • 計(jì)算 embedding的距離,這類方法分三種情況:直接相加求平均、先取絕對(duì)值再求平均和貪婪匹配。

  • 衡量多樣性,主要取決于 distinct-ngram 的數(shù)量和 entropy 值的大小。

  • 進(jìn)行圖靈測(cè)試,用 retrieval 的 discriminator 來評(píng)價(jià)回復(fù)生成。

2. 基于檢索的方法

基于檢索的方法從候選回復(fù)中選擇回復(fù)。檢索方法的關(guān)鍵是消息-回復(fù)匹配,匹配算法必須克服消息和回復(fù)之間的語義鴻溝。

2.1 單輪回復(fù)匹配

檢索聊天機(jī)器人的早期研究主要集中在反應(yīng)選擇單輪的談話,只有消息用于選擇一個(gè)合適的回復(fù)。
目前比較新的方法如下圖,利用深度卷積神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)改進(jìn)模型,學(xué)習(xí)消息和響應(yīng)的表示,或直接學(xué)習(xí)兩個(gè)句子的相互作用表示,然后用多層感知器來計(jì)算匹配的分?jǐn)?shù)。

640?wx_fmt=png

2.2 多輪回復(fù)匹配 **近年來,基于檢索的多輪會(huì)話越來越受到人們的關(guān)注,在多輪回答選擇中,將當(dāng)前的消息和先前的話語作為輸入。

模型選擇一個(gè)自然的、與整個(gè)上下文相關(guān)的響應(yīng)。重要的是要在之前的話語中找出重要的信息,并恰當(dāng)?shù)啬7略捳Z的關(guān)系,以確保談話的連貫性。
多輪對(duì)話的難點(diǎn)在于不僅要考慮當(dāng)前的問題,也要考慮前幾輪的對(duì)話情景。多輪對(duì)話的難點(diǎn)主要有兩點(diǎn):

  • 如何明確上下文的關(guān)鍵信息(關(guān)鍵詞,關(guān)鍵短語或關(guān)鍵句);

  • 在上下文中如何模擬多輪對(duì)話間的關(guān)系。

現(xiàn)有檢索模型的缺陷:在上下文中容易丟失重要信息,因?yàn)樗鼈兪紫葘⒄麄€(gè)上下文表示為向量,然后將該上下文向量與響應(yīng)sentence向量進(jìn)行匹配。

下圖的方法通過RNN/LSTM的結(jié)構(gòu)將上下文(所有之前的話語和當(dāng)前消息的連接)和候選響應(yīng)分別編碼到上下文向量和回復(fù)向量中,然后根據(jù)這兩個(gè)向量計(jì)算出匹配度分?jǐn)?shù)。

640?wx_fmt=png

目前關(guān)于檢索模型的閑聊還停留在單輪對(duì)話中,下面這篇論文提出了基于檢索的多輪對(duì)話閑聊。論文提出了一個(gè)基于檢索的多輪閑聊架構(gòu),進(jìn)一步改進(jìn)了話語關(guān)系和上下文信息的利用,通過將上下文中的語句與卷積神經(jīng)網(wǎng)絡(luò)的不同層級(jí)進(jìn)行匹配,然后通過一個(gè)遞歸的神經(jīng)網(wǎng)絡(luò)在時(shí)間序列中堆積這些向量,以建立對(duì)話之間的關(guān)系。

640?wx_fmt=png

2.3 混合的方法(Hybrid Methods)

將生成和檢索方法結(jié)合起來能對(duì)系統(tǒng)性能起到顯著的提升作用。基于檢索的系統(tǒng)通常給出精確但是較為生硬的答案,而基于生成的系統(tǒng)則傾向于給出流暢但卻是毫無意義的回答。

將生成和檢索方法結(jié)合起來能對(duì)系統(tǒng)性能起到顯著的提升作用?;跈z索的系統(tǒng)通常給出精確但是較為生硬的答案,而基于生成的系統(tǒng)則傾向于給出流暢但卻是毫無意義的回答。

在集成模型中,被抽取的候選對(duì)象和原始消息一起被輸入到基于RNN的回復(fù)生成器中。這種方法結(jié)合了檢索和生成模型的優(yōu)點(diǎn),這在性能上具備很大的優(yōu)勢(shì)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容