筆者在最近的研究中發(fā)現(xiàn)了一篇非常好的有關對話系統(tǒng)的論文敲街,《A Survey on Dialogue Systems:Recent Advances and New Frontiers》团搞,論文來自于京東數(shù)據(jù)團隊,論文引用了近124篇論文聪富,是一篇綜合全面的介紹對話系統(tǒng)的文章莺丑,可謂是誠意滿滿著蟹,今天我們將其重點進行解讀墩蔓,以饗讀者。
前言1
擁有一個虛擬助理或一個擁有足夠智能的聊天伙伴系統(tǒng)似乎是虛幻的萧豆,而且可能只在科幻電影中存在很長一段時間奸披。近年來,人機對話因其潛在的潛力和誘人的商業(yè)價值而受到越來越多研究者的關注涮雷。
隨著大數(shù)據(jù)和深度學習技術的發(fā)展阵面,創(chuàng)建一個自動的人機對話系統(tǒng)作為我們的私人助理或聊天伙伴,將不再是一個幻想洪鸭。
當前样刷,對話系統(tǒng)在各個領域越來越引起人們的重視,深度學習技術的不斷進步極大地推動了對話系統(tǒng)的發(fā)展览爵。對于對話系統(tǒng)置鼻,深度學習技術可以利用大量的數(shù)據(jù)來學習特征表示和回復生成策略,這其中僅需要少量的手工操作蜓竹。
現(xiàn)如今箕母,我們可以很容易地訪問網絡上對話的“大數(shù)據(jù)”储藐,我們也許能夠學習如何回復,以及如何回復幾乎任何的輸入嘶是,這將極大地允許我們在人類和計算機之間建立數(shù)據(jù)驅動的钙勃、開放的對話系統(tǒng)。
另一方面聂喇,深度學習技術已經被證明是有效的辖源,可以在大數(shù)據(jù)中捕獲復雜的模式,并擁有大量的研究領域希太,如計算機視覺同木、自然語言處理和推薦系統(tǒng)等。在本文中跛十,作者從不同的角度對這些最近的關于對話系統(tǒng)的進展進行概述彤路,并討論了一些可能的研究方向。
具體來說芥映,對話系統(tǒng)大致可分為兩種:
(1)任務導向型(task-oriented)對話系統(tǒng)和
(2)非任務導向型(non-task-oriented)對話系統(tǒng)(也稱為聊天機器人)洲尊。
面向任務的系統(tǒng)旨在幫助用戶完成實際具體的任務,例如幫助用戶找尋商品奈偏,預訂酒店餐廳等坞嘀。
系統(tǒng)首先理解人類所傳達的信息惊来,將其作為一種內部狀態(tài)丽涩,然后根據(jù)對話狀態(tài)的策略采取一系列相應的行為,最后將動作轉化為自然語言的表現(xiàn)形式裁蚁。
雖然語言理解是通過統(tǒng)計模型來處理的矢渊,但是大多數(shù)已經部署的對話系統(tǒng)仍然使用手工的特性或手工制定的規(guī)則,用于狀態(tài)和動作空間表示枉证、意圖檢測和插槽填充矮男。
非任務導向的對話系統(tǒng)與人類交互,提供合理的回復和娛樂消遣功能室谚,通常情況下主要集中在開放的領域與人交談毡鉴。雖然非任務導向的系統(tǒng)似乎在進行聊天,但是它在許多實際應用程序中都發(fā)揮了作用秒赤。
數(shù)據(jù)顯示猪瞬,在網上購物場景中,近80%的話語是聊天信息入篮,處理這些問題的方式與用戶體驗密切相關陈瘦。
一般來說,對于非任務導向型對話系統(tǒng)崎弃,目前用的主要是兩種主要方法:
(1)生成方法甘晤,例如序列到序列模型(seq2seq)含潘,在對話過程中產生合適的回復,生成型聊天機器人目前是研究界的一個熱點线婚,和檢索型聊天機器人不同的是遏弱,它可以生成一種全新的回復,因此相對更為靈活塞弊,但它也有自身的缺點漱逸,比如有時候會出現(xiàn)語法錯誤,或者生成一些沒有意義的回復游沿;
-
(2)基于檢索的方法饰抒,從事先定義好的索引中進行搜索,學習從當前對話中選擇回復诀黍。檢索型方法的缺點在于它過于依賴數(shù)據(jù)質量袋坑,如果選用的數(shù)據(jù)質量欠佳,那就很有可能前功盡棄眯勾。
近年來枣宫,大數(shù)據(jù)和深度學習技術的迅猛發(fā)展,極大地促進了面向任務和面向非導向的對話系統(tǒng)的發(fā)展吃环。
在本篇論文中也颤,作者的目標是(1)對對話系統(tǒng)進行概述,特別是最近的深度學習的進展;(2)討論可能的研究方向郁轻。
任務導向型系統(tǒng)2
面向任務的對話系統(tǒng)是對話系統(tǒng)的一個重要分支翅娶。在這部分中,作者總結了面向任務的對話系統(tǒng)的管道方法和端到端方法好唯。
1. 管道(Pipeline)方法
任務導向型對話系統(tǒng)的典型結構在之前的圖中已經展示竭沫,它包括四個關鍵組成部分:
1)自然語言理解(Natural Language Understanding,NLU):它將用戶輸入解析為預定義的語義槽渠啊。
如果有一個話語输吏,自然語言理解將其映射為語義槽。插槽是根據(jù)不同的場景預先定義的替蛉。
上圖展示了一個自然語言表示的示例,其中“New York”是指定為slot值的位置拄氯,并且分別指定了域和意圖躲查。典型的,有兩種類型的表示译柏。一個是話語層次類別镣煮,如用戶的意圖和話語類別。另一個是字級信息提取鄙麦,如命名實體識別和槽填充典唇。對話意圖檢測是為了檢測用戶的意圖镊折。它將話語劃分為一個預先定義的意圖。
2)對話狀態(tài)跟蹤(Dialogue State Tracker介衔,DST)恨胚。對話狀態(tài)跟蹤是確保對話系統(tǒng)健壯性的核心組件。它在對話的每一輪次對用戶的目標進行預估炎咖,管理每個回合的輸入和對話歷史赃泡,輸出當前對話狀態(tài)。這種典型的狀態(tài)結構通常稱為槽填充或語義框架乘盼。傳統(tǒng)的方法已經在大多數(shù)商業(yè)實現(xiàn)中得到了廣泛的應用升熊,通常采用手工規(guī)則來選擇最有可能的輸出結果。然而绸栅,這些基于規(guī)則的系統(tǒng)容易出現(xiàn)頻繁的錯誤级野,因為最可能的結果并不總是理想的。
最近深度學習采用的方法是使用一個滑動窗口輸出任意數(shù)量的可能值的概率分布序列粹胯。雖然它在一個領域受過訓練勺阐,但它可以很容易地轉移到新的領域。此處運用較多的模型是矛双,multi-domain RNN dialog state tracking models和Neural Belief Tracker (NBT) 渊抽。
3)對話策略學習(Dialogue policy learning)。根據(jù)狀態(tài)跟蹤器的狀態(tài)表示议忽,策略學習是生成下一個可用的系統(tǒng)操作懒闷。無論是監(jiān)督學習還是強化學習都可以用來優(yōu)化政策學習。監(jiān)督學習是針對規(guī)則產生的行為進行的栈幸,在在線購物場景中愤估,如果對話狀態(tài)是“推薦”,那么觸發(fā)“推薦”操作速址,系統(tǒng)將從產品數(shù)據(jù)庫中檢索產品玩焰。強化學習方法的引入可以對對話策略進行進一步的訓練,以引導系統(tǒng)制定最終的策略芍锚。在實際實驗中昔园,強化學習方法的效果超過了基于規(guī)則和監(jiān)督的方法。
4)自然語言生成(Natural Language Generation并炮,NLG)默刚。它將選擇操作進行映射并生成回復。
一個好的生成器通常依賴于幾個因素:適當性逃魄、流暢性荤西、可讀性和變化性。傳統(tǒng)的NLG方法通常是執(zhí)行句子計劃。它將輸入語義符號映射到代表話語的中介形式邪锌,如樹狀或模板結構勉躺,然后通過表面實現(xiàn)將中間結構轉換為最終響應。深度學習比較成熟的方法是基于LSTM的encoder-decoder形式觅丰,將問題信息饵溅、語義槽值和對話行為類型結合起來生成正確的答案。同時利用了注意力機制來處理對解碼器當前解碼狀態(tài)的關鍵信息舶胀,根據(jù)不同的行為類型生成不同的回復概说。
2. 端到端(end-to-end) 方法
盡管傳統(tǒng)的面向任務的對話系統(tǒng)中有許多特定領域的手工制作,但它們很難適應新的領域嚣伐,近年來糖赔,隨著端到端神經生成模型的發(fā)展,為面向任務的對話系統(tǒng)構建了端到端的可訓練框架轩端。值得注意的是放典,當我們引入非面向任務的對話系統(tǒng)時,將討論關于神經生成模型的更多細節(jié)基茵。與傳統(tǒng)的管道模型不同奋构,端到端模型使用一個模塊,并與結構化的外部數(shù)據(jù)庫交互拱层。隨著強化學習研究的不斷深入,上圖的模型首先提出了一種端到端強化學習的方法桃笙,在對話管理中聯(lián)合訓練對話狀態(tài)跟蹤和對話策略學習氏堤,從而更有力地對系統(tǒng)的動作進行優(yōu)化。
非任務導向型系統(tǒng)2
不同于任務導向型對話系統(tǒng)搏明,它的目標是為用戶完成特定的任務鼠锈,而非任務導向的對話系統(tǒng)(也稱為聊天機器人)專注于在開放的領域與人交談。一般來說熏瞄,聊天機器人是通過生成方法或基于檢索的方法實現(xiàn)的脚祟。
生成模型能夠生成更合適的回復,而這些回復可能從來沒有出現(xiàn)在語料庫中强饮,而基于檢索的模型則具有信息充裕和響應流暢的優(yōu)勢。
1. 神經生成模型(Neural Generative Models)
深度學習在機器翻譯中的成功應用为黎,即神經機器翻譯邮丰,激發(fā)了人們對神經生成對話研究的熱情行您。目前神經生成模型的熱門研究課題大概有如下幾個方面。
1.1 Sequence-to-Sequence Models
給定包含個詞語的輸入序列(message))
和長度為T的目標序列(response)
模型最大化Y在X下的條件概率:
具體來說剪廉,Seq2Seq模型是在encoder-decoder結構中,下圖是這種結構的示意:
編碼器將X逐字讀入娃循,并通過遞歸神經網絡(RNN)將其表示為上下文向量c, 然后解碼器將c 作為輸入估計Y 的生成概率。
(1) Encoder
其中**f **是非線性函數(shù)捌斧,例如LSTM,GRU, h(t-1)是上一隱節(jié)點輸出,Xt是當前時刻的輸入泉沾。向量c 通常為RNN中的最后一個隱節(jié)點(h, Hidden state)捞蚂,或者是多個隱節(jié)點的加權和。
(2) Decoder
模型的decoder過程是使用另一個RNN通過當前隱狀態(tài)ht來預測當前的輸出符號yt跷究,這里的yt和ht都與其前一個隱狀態(tài)和輸出有關,Seq2Seq的目標函數(shù)定義為:
1.2. 對話上下文(Dialogue Context)
考慮對話的上下文信息的是構建對話系統(tǒng)的關鍵所在姓迅,它可以使對話保持連貫和增進用戶體驗。使用層次化的RNN模型俊马,捕捉個體語句的意義丁存,然后將其整合為完整的對話。
同時柴我,分別用字級別和句子級別的注意力方法擴展層次化的結構解寝。
試驗證明:
(1)層次化 RNNs的表現(xiàn)通常優(yōu)于非層次化的RNNs;
(2)在考慮上下文相關的信息后艘儒,神經網絡趨向于產生更長的聋伦、更有意義和多樣性的回復。
在上圖中彤悔,作者通過代表整個對話歷史(包括當前的信息)嘉抓,用連續(xù)的表示或嵌入單詞和短語來解決上下文敏感回復生成的這一難題。
在上圖的結構中作者引入兩個層次的Attention機制晕窑,讓模型能夠自動的學到詞語與句子級別的重要度信息抑片,從而更好的生成新一輪的對話。
作者在句子級別的信息中杨赤,是反向學習的敞斋,即認為下一句的信息中更能夠包含上一句的信息,所以從總體上來看疾牲,其對于對話的學習是逆向使用每一輪對話的內容的植捎。
1.3 回復多樣性(Response Diversity)
在當前Seq2Seq對話系統(tǒng)中,一個具有挑戰(zhàn)性的問題是阳柔,它們傾向于產生無關緊要的或不明確的焰枢、普通的、幾乎沒有意義的回復,而這些回復常常涉及到一些諸如“I don't know”济锄,“I am OK”這樣的無意義回復暑椰。
解決這類問題的一個很有效的方法是找到并設置一個更好的目標函數(shù)。除此之外荐绝,解決此類問題的一個方法是增加模型的復雜度一汽。下圖這篇論文《Building End-To-End Dialogue Systems
1.4 主題和個性化(Topic and Personality)
明確對話的內在屬性是提高對話多樣性和保證一致性的另一種方法低滩。在不同的屬性中召夹,主題和個性被廣泛地進行研究探討。
在下圖的模型中恕沫,作者注意到人們經常把他們的對話與主題相關的概念聯(lián)系起來监憎,并根據(jù)這些概念做出他們的回復。他們使用Twitter LDA模型來獲取輸入的主題昏兆,將主題信息和輸入表示輸入到一個聯(lián)合注意模塊中枫虏,并生成與主題相關的響應。
1.5 外部知識庫(Outside Knowledge Base)
人類對話與對話系統(tǒng)之間的一個重要區(qū)別是它是否與現(xiàn)實相結合死讹。結合外部知識庫(KB)是一種很有前途的方法,可以彌補背景知識之間的差距曲梗,即對話系統(tǒng)和人之間的差距赞警。
記憶網絡(Memory Network)是一種以知識庫處理問題的經典方法。因此虏两,它非常直接的別用于在對話生成中愧旦。實際研究表明,所提出的模型能夠通過參考知識庫中的事實來生成對問題的自然和正確答案定罢。
上圖是作者提出的完全數(shù)據(jù)驅動的帶有知識的對話模型笤虫。其中的 World Facts是一個集合,收集一些經過權威認證過的句子或者不準確的句子祖凫,作為知識庫琼蚯。
當個定一個輸入S和歷史,需要在 Fact 集合里面檢索相關的facts惠况,這里采用的IR引擎進行檢索遭庶,然后經過 Fact Encoder 進行 fact injection。
上圖的模型提出了一種全新的稠屠、完全由數(shù)據(jù)驅動的峦睡、基于知識的神經對話模型翎苫,目的是在沒有槽位的情況下產生更多的內容。作者歸納了廣泛使用的SEQ2SEQ方法赐俗,通過對會話歷史和外部“事實”的響應
1.6 評價
評價生成回復的質量是對話系統(tǒng)的一個重要方面拉队。任務導向型的對話系統(tǒng)可以基于人工生成的監(jiān)督信號進行評估弊知,例如任務完成測試或用戶滿意度評分等阻逮,
然而,由于高回復的多樣性秩彤,自動評估非任務導向的對話系統(tǒng)所產生的響應的質量仍然是一個懸而未決的問題叔扼。目前的方法有以下幾種:
1)計算 BLEU 值,也就是直接計算 word overlap漫雷、ground truth和你生成的回復瓜富。由于一句話可能存在多種回復,因此從某些方面來看降盹,BLEU 可能不太適用于對話評測与柑。
2)計算 embedding的距離,這類方法分三種情況:直接相加求平均蓄坏、先取絕對值再求平均和貪婪匹配价捧。
3)衡量多樣性,主要取決于 distinct-ngram 的數(shù)量和 entropy 值的大小涡戳。
4)進行圖靈測試结蟋,用 retrieval 的 discriminator 來評價回復生成。
基于檢索的方法3
基于檢索的方法從候選回復中選擇回復渔彰。檢索方法的關鍵是消息-回復匹配嵌屎,匹配算法必須克服消息和回復之間的語義鴻溝。
2.1 單輪回復匹配
檢索聊天機器人的早期研究主要集中在反應選擇單輪的談話,只有消息用于選擇一個合適的回復恍涂。
2.2 多輪回復匹配
近年來产园,基于檢索的多輪會話越來越受到人們的關注汞斧,在多輪回答選擇中,將當前的消息和先前的話語作為輸入什燕。
模型選擇一個自然的粘勒、與整個上下文相關的響應。重要的是要在之前的話語中找出重要的信息屎即,并恰當?shù)啬7略捳Z的關系庙睡,以確保談話的連貫性事富。
多輪對話的難點在于不僅要考慮當前的問題,也要考慮前幾輪的對話情景乘陪。多輪對話的難點主要有兩點:
1.如何明確上下文的關鍵信息(關鍵詞统台,關鍵短語或關鍵句);
2.在上下文中如何模擬多輪對話間的關系啡邑。
現(xiàn)有檢索模型的缺陷:在上下文中容易丟失重要信息贱勃,因為它們首先將整個上下文表示為向量,然后將該上下文向量與響應sentence向量進行匹配谤逼。
目前關于檢索模型的閑聊還停留在單輪對話中,下面這篇論文提出了基于檢索的多輪對話閑聊流部。論文提出了一個基于檢索的多輪閑聊架構戚绕,進一步改進了話語關系和上下文信息的利用,通過將上下文中的語句與卷積神經網絡的不同層級進行匹配枝冀,然后通過一個遞歸的神經網絡在時間序列中堆積這些向量舞丛,以建立對話之間的關系。
混合的方法(Hybrid methods)4
將生成和檢索方法結合起來能對系統(tǒng)性能起到顯著的提升作用果漾∶捅椋基于檢索的系統(tǒng)通常給出精確但是較為生硬的答案链烈,而基于生成的系統(tǒng)則傾向于給出流暢但卻是毫無意義的回答靖榕。
在集成模型中根吁,被抽取的候選對象和原始消息一起被輸入到基于RNN的回復生成器中。這種方法結合了檢索和生成模型的優(yōu)點端盆,這在性能上具備很大的優(yōu)勢怀骤。
未來的發(fā)展
深度學習已成為對話系統(tǒng)的一項基本技術。研究人員將神經網絡應用于傳統(tǒng)任務導向型對話系統(tǒng)的不同組成部分焕妙,包括自然語言理解蒋伦、自然語言生成、對話狀態(tài)跟蹤焚鹊。近年來痕届,端到端的框架不僅在非面向任務的聊天對話系統(tǒng)中流行,而且在面向任務的對話系統(tǒng)中逐步流行起來末患。
深度學習能夠利用大量的數(shù)據(jù)研叫,從而模糊了任務導向型對話系統(tǒng)和非任務導向型對話系統(tǒng)之間的界限。值得注意的是璧针,目前的端到端模型仍然遠非完美嚷炉。盡管取得了上述成就,但這些問題仍然具有挑戰(zhàn)性探橱。接下來申屹,我們將討論一些可能的研究方向绘证。
快速適應。雖然端到端模型越來越引起研究者的重視哗讥,我們仍然需要在實際工程中依靠傳統(tǒng)的管道(pipeline)方法嚷那,特別是在一些新的領域,特定領域對話數(shù)據(jù)的收集和對話系統(tǒng)的構建是比較困難的杆煞。未來的趨勢是對話模型有能力從與人的交互中主動去學習魏宽。
深度理解。現(xiàn)階段基于神經網絡的對話系統(tǒng)極大地依賴于大量標注好的數(shù)據(jù)索绪,結構化的知識庫以及對話語料數(shù)據(jù)湖员。在某種意義上產生的回復仍然缺乏多樣性,有時并沒有太多的意義瑞驱,因此對話系統(tǒng)必須能夠更加有效地深度理解語言和真實世界。
隱私保護窄坦。目前廣泛應用的對話系統(tǒng)服務于越來越多的人唤反。很有必要注意到的事實是我們使用的是同一個對話助手。通過互動鸭津、理解和推理的學習能力彤侍,對話助手可以無意中隱蔽地存儲一些較為敏感的信息。因此逆趋,在構建更好的對話機制時盏阶,保護用戶的隱私是非常重要的。