京東數(shù)據(jù)團隊曾經(jīng)出了一片關于對話系統(tǒng)的論文《A Survey on Dialogue Systems:Recent Advances and New Frontiers(智能對話系統(tǒng)調(diào)查:前沿與進展)》绵载,全文引用了124篇論文婆跑,是一篇綜合全面的介紹對話系統(tǒng)的文章娇豫。
論文原文地址:
https://www.kdd.org/exploration_files/19-2-Article3.pdf
公眾號“機器學習算法全棧工程師”對這篇論文的內(nèi)容進行了解讀,主要概述了對話系統(tǒng),尤其是對話系統(tǒng)在深度學習方面的進展浊服,還討論了可能的研究方向攘轩。以下是主要架構:
奇點機智對這篇文章進行了進一步的拆解,分成四篇文章來介紹智能對話系統(tǒng)阎曹。
讀懂智能對話系統(tǒng)(1)任務導向型對話系統(tǒng)
讀懂智能對話系統(tǒng)(2)聊天機器人
讀懂智能對話系統(tǒng)(3)對話系統(tǒng)的未來發(fā)展
非任務導向系統(tǒng)(chatbot,聊天機器人)
不同于任務導向型對話系統(tǒng),它的目標是為用戶完成特定的任務处嫌,而非任務導向的對話系統(tǒng)(也稱為聊天機器人)專注于在開放的領域與人交談栅贴。一般來說,聊天機器人是通過生成方法或基于檢索的方法實現(xiàn)的熏迹。
生成模型能夠生成更合適的回復檐薯,而這些回復可能從來沒有出現(xiàn)在語料庫中,而基于檢索的模型則具有信息充裕和響應流暢的優(yōu)勢注暗。
1. 神經(jīng)生成模型(Neural Generative Models)
深度學習在機器翻譯中的成功應用坛缕,即神經(jīng)機器翻譯,激發(fā)了人們對神經(jīng)生成對話研究的熱情。目前神經(jīng)生成模型的熱門研究課題大概有如下幾個方面。
1.1 Sequence-to-Sequence Models
給定包含 個詞語的輸入序列(message)
和長度為T的目標序列(response)
模型最大化Y在X下的條件概率:
具體來說悯蝉,Seq2Seq模型是在encoder-decoder結(jié)構中,下圖是這種結(jié)構的示意:
編碼器將X逐字讀入,并通過遞歸神經(jīng)網(wǎng)絡(RNN)將其表示為上下文向量c, 然后解碼器將c 作為輸入估計Y 的生成概率宠页。
Encoder :
Encoder過程很簡單,直接使用RNN(一般用LSTM)進行語義向量生成:
其中f 是非線性函數(shù)膨俐,例如LSTM,GRU勇皇,是上一隱節(jié)點輸出,
是當前時刻的輸入。向量c 通常為RNN中的最后一個隱節(jié)點
(h, Hidden state)焚刺,或者是多個隱節(jié)點的加權和敛摘。
Decoder :模型的decoder過程是使用另一個RNN通過當前隱狀態(tài)來預測當前的輸出符號
,這里的
和
都與其前一個隱狀態(tài)和輸出有關,Seq2Seq的目標函數(shù)定義為:
1.2. 對話上下文(Dialogue Context)
考慮對話的上下文信息的是構建對話系統(tǒng)的關鍵所在乳愉,它可以使對話保持連貫和增進用戶體驗兄淫。使用層次化的RNN模型,捕捉個體語句的意義蔓姚,然后將其整合為完整的對話捕虽。
同時,分別用字級別和句子級別的注意力方法擴展層次化的結(jié)構坡脐。
試驗證明:
層次化 RNNs的表現(xiàn)通常優(yōu)于非層次化的RNNs泄私;
在考慮上下文相關的信息后,神經(jīng)網(wǎng)絡趨向于產(chǎn)生更長的备闲、更有意義和多樣性的回復晌端。
在上圖中,作者通過代表整個對話歷史(包括當前的信息)恬砂,用連續(xù)的表示或嵌入單詞和短語來解決上下文敏感回復生成的這一難題咧纠。
在上圖的結(jié)構中作者引入兩個層次的Attention機制,讓模型能夠自動的學到詞語與句子級別的重要度信息泻骤,從而更好的生成新一輪的對話漆羔。
作者在句子級別的信息中梧奢,是反向?qū)W習的,即認為下一句的信息中更能夠包含上一句的信息演痒,所以從總體上來看亲轨,其對于對話的學習是逆向使用每一輪對話的內(nèi)容的。
1.3 回復多樣性(Response Diversity)
在當前Seq2Seq對話系統(tǒng)中嫡霞,一個具有挑戰(zhàn)性的問題是瓶埋,它們傾向于產(chǎn)生無關緊要的或不明確的希柿、普通的诊沪、幾乎沒有意義的回復,而這些回復常常涉及到一些諸如“I don't know”曾撤,“I am OK”這樣的無意義回復端姚。
解決這類問題的一個很有效的方法是找到并設置一個更好的目標函數(shù)。除此之外挤悉,解決此類問題的一個方法是增加模型的復雜度渐裸。下圖這篇論文《Building End-To-End Dialogue Systems
Using Generative Hierarchical Neural Network Models》使用了 latent variable 來解決無意義回復這個問題。
1.4 主題和個性化(Topic and Personality)
明確對話的內(nèi)在屬性是提高對話多樣性和保證一致性的另一種方法装悲。在不同的屬性中昏鹃,主題和個性被廣泛地進行研究探討。
在下圖的模型中诀诊,作者注意到人們經(jīng)常把他們的對話與主題相關的概念聯(lián)系起來洞渤,并根據(jù)這些概念做出他們的回復。他們使用Twitter LDA模型來獲取輸入的主題属瓣,將主題信息和輸入表示輸入到一個聯(lián)合注意模塊中载迄,并生成與主題相關的響應。
下圖的模型提出了一種兩階段的訓練方法抡蛙,使用大規(guī)模數(shù)據(jù)對模型進行初始化护昧,然后對模型進行微調(diào),生成個性化響應粗截。
1.5 外部知識庫(Outside Knowledge Base)
人類對話與對話系統(tǒng)之間的一個重要區(qū)別是它是否與現(xiàn)實相結(jié)合惋耙。結(jié)合外部知識庫(KB)是一種很有前途的方法,可以彌補背景知識之間的差距熊昌,即對話系統(tǒng)和人之間的差距绽榛。
記憶網(wǎng)絡(Memory Network)是一種以知識庫處理問題的經(jīng)典方法。因此浴捆,它非常直接的別用于在對話生成中蒜田。實際研究表明,所提出的模型能夠通過參考知識庫中的事實來生成對問題的自然和正確答案选泻。
上圖是作者提出的完全數(shù)據(jù)驅(qū)動的帶有知識的對話模型冲粤。其中的 World Facts是一個集合美莫,收集一些經(jīng)過權威認證過的句子或者不準確的句子,作為知識庫梯捕。
當個定一個輸入S和歷史厢呵,需要在 Fact 集合里面檢索相關的facts,這里采用的IR引擎進行檢索傀顾,然后經(jīng)過 Fact Encoder 進行 fact injection襟铭。
上圖的模型提出了一種全新的、完全由數(shù)據(jù)驅(qū)動的短曾、基于知識的神經(jīng)對話模型寒砖,目的是在沒有槽位的情況下產(chǎn)生更多的內(nèi)容。作者歸納了廣泛使用的SEQ2SEQ方法嫉拐,通過對會話歷史和外部“事實”的響應
1.6 評價 **評價生成回復的質(zhì)量是對話系統(tǒng)的一個重要方面哩都。任務導向型的對話系統(tǒng)可以基于人工生成的監(jiān)督信號進行評估,例如任務完成測試或用戶滿意度評分等婉徘,
然而漠嵌,由于高回復的多樣性,自動評估非任務導向的對話系統(tǒng)所產(chǎn)生的響應的質(zhì)量仍然是一個懸而未決的問題盖呼。目前的方法有以下幾種:
計算 BLEU 值儒鹿,也就是直接計算 word overlap、ground truth和你生成的回復几晤。由于一句話可能存在多種回復约炎,因此從某些方面來看,BLEU 可能不太適用于對話評測锌仅。
計算 embedding的距離章钾,這類方法分三種情況:直接相加求平均、先取絕對值再求平均和貪婪匹配热芹。
衡量多樣性贱傀,主要取決于 distinct-ngram 的數(shù)量和 entropy 值的大小。
進行圖靈測試伊脓,用 retrieval 的 discriminator 來評價回復生成府寒。
2. 基于檢索的方法
基于檢索的方法從候選回復中選擇回復。檢索方法的關鍵是消息-回復匹配报腔,匹配算法必須克服消息和回復之間的語義鴻溝株搔。
2.1 單輪回復匹配
檢索聊天機器人的早期研究主要集中在反應選擇單輪的談話,只有消息用于選擇一個合適的回復。
目前比較新的方法如下圖纯蛾,利用深度卷積神經(jīng)網(wǎng)絡體系結(jié)構改進模型纤房,學習消息和響應的表示,或直接學習兩個句子的相互作用表示翻诉,然后用多層感知器來計算匹配的分數(shù)炮姨。
2.2 多輪回復匹配 **近年來捌刮,基于檢索的多輪會話越來越受到人們的關注,在多輪回答選擇中舒岸,將當前的消息和先前的話語作為輸入绅作。
模型選擇一個自然的、與整個上下文相關的響應蛾派。重要的是要在之前的話語中找出重要的信息俄认,并恰當?shù)啬7略捳Z的關系,以確保談話的連貫性洪乍。
多輪對話的難點在于不僅要考慮當前的問題眯杏,也要考慮前幾輪的對話情景。多輪對話的難點主要有兩點:
如何明確上下文的關鍵信息(關鍵詞典尾,關鍵短語或關鍵句)役拴;
在上下文中如何模擬多輪對話間的關系糊探。
現(xiàn)有檢索模型的缺陷:在上下文中容易丟失重要信息钾埂,因為它們首先將整個上下文表示為向量,然后將該上下文向量與響應sentence向量進行匹配科平。
下圖的方法通過RNN/LSTM的結(jié)構將上下文(所有之前的話語和當前消息的連接)和候選響應分別編碼到上下文向量和回復向量中褥紫,然后根據(jù)這兩個向量計算出匹配度分數(shù)。
目前關于檢索模型的閑聊還停留在單輪對話中瞪慧,下面這篇論文提出了基于檢索的多輪對話閑聊髓考。論文提出了一個基于檢索的多輪閑聊架構,進一步改進了話語關系和上下文信息的利用弃酌,通過將上下文中的語句與卷積神經(jīng)網(wǎng)絡的不同層級進行匹配氨菇,然后通過一個遞歸的神經(jīng)網(wǎng)絡在時間序列中堆積這些向量,以建立對話之間的關系妓湘。
2.3 混合的方法(Hybrid Methods)
將生成和檢索方法結(jié)合起來能對系統(tǒng)性能起到顯著的提升作用查蓉。基于檢索的系統(tǒng)通常給出精確但是較為生硬的答案榜贴,而基于生成的系統(tǒng)則傾向于給出流暢但卻是毫無意義的回答豌研。
將生成和檢索方法結(jié)合起來能對系統(tǒng)性能起到顯著的提升作用』5常基于檢索的系統(tǒng)通常給出精確但是較為生硬的答案鹃共,而基于生成的系統(tǒng)則傾向于給出流暢但卻是毫無意義的回答。
在集成模型中驶拱,被抽取的候選對象和原始消息一起被輸入到基于RNN的回復生成器中霜浴。這種方法結(jié)合了檢索和生成模型的優(yōu)點,這在性能上具備很大的優(yōu)勢蓝纲。