陳 鑫,周 強
(1. 大連交通大學 機械工程學院,遼寧 大連 116028;2. 清華大學 計算機科學與技術系 人工智能研究所,北京 100084)
近些年,學術界和工業(yè)界針對對話技術的研究越來越深入,深度學習相關方法已廣泛應用于對話技術研究。基于任務型對話已經涌現了一些工業(yè)級的產品,例如,微軟小冰、阿里小蜜及百度小度等均能夠實現多領域的任務型對話[1]。對于多輪開放型對話,由于其場景自身的特點,研究難度很大,仍是眾多研究者深入研究的方向,本文重點對開放型對話技術進行梳理。
本文的研究對象是開放型對話,首先將其形式化描述為: 在無限制主題及無明確對話目的的背景下,可基于檢索或生成的方法進行人機對話的交互。同時,對話系統(tǒng)可以分為單輪對話和多輪對話。單輪對話主要考慮基于問題的回答,而多輪對話則更加注重上下文的整體信息,輸出更加符合上下文語義的回復。
為更好地進行對話技術的研究與剖析,首先將對話系統(tǒng)從不同角度進行分類。
(1) 按照領域分類,可以分為開放型對話和任務型對話[2]。開放型對話,是指不局限話題的聊天,即對話不存在明確的對話目的,而任務型對話則會有明確的對話目的,用戶明確知道自己想要讓機器幫助自己完成的內容。但隨著小樣本、無樣本、無監(jiān)督、自監(jiān)督、遷移學習、域外檢測等系列研究問題的興起,進一步拓展了對話領域的研究視野。開放型和任務型對話的邊界愈加模糊。
(2) 按照回復方式分類,主要分為檢索式系統(tǒng)和生成式系統(tǒng)。檢索式系統(tǒng)使用預定義回復庫根據輸入和語境做出合適的回復。生成式系統(tǒng)在接收到用戶輸入后,采用生成模型來完成回復,這種方式不要求規(guī)模非常大和非常精準的回復語料庫,但生成的回復可能會出現語法錯誤、語句不通順或萬能回復等問題[3]。
(3) 按照場景分類,主要分為單輪對話和多輪對話。單輪對話只考慮當前的用戶輸入并產生相應的回答,每輪問答之間相互獨立,不存在關聯(lián)。而多輪對話存在問答之間的交互與依賴, 能夠構造上下文相關的會話過程,每輪問答之間存在一定的關聯(lián)性。
(4) 按照對話方式分類,通常分為主動對話和被動對話。目前對于任務型對話來說,機器主導對話更容易實現,也就是機器此時是“主動的”。但對于開放型對話來說,機器和人需要交替引導對話。因此,機器和人都應承擔主動引導話題的任務[4]。
開放型對話有著極大的應用價值。它已經不再是純粹的對話目標驅動的對話,包括閑聊、推薦、信息服務等。閑聊機器人主要解決人們情感方面的需求,一般分為傾聽式、反問式及交流式各方式的特點如下: ①傾聽式,機器主要承擔傾聽者的角色。②反問式,通過提問來推進交流的進程。③交流式,機器能夠準確分析上下文語義,聊天過程一般具有一定的深度和廣度。推薦和信息服務與任務型對話的技術路線相似,隨著開放型對話和任務型對話的邊界越來越模糊,閑聊、推薦及信息服務兼具是對話技術發(fā)展的一個大的趨勢。
理想的對話系統(tǒng)是機器與人流暢地交流并向擬人化的目標前進,能夠在對話中融入聊天過程中相關的背景知識甚至情感。開放型對話沒有明確的任務目標,可以用于閑聊或回答相關領域的問題,它的目的是生成有意義且相關的回復。
目前在對話技術中仍然存在很多問題和挑戰(zhàn),具體如下: ①語義表征: 機器需要通過上下文信息更準確地理解語義,進而實現符合場景的回復。②邏輯性: 機器需要在上下文聊天的過程中具有一定推理及判斷的能力,實現多領域聊天的遷移和泛化。③一致性: 機器需要在人機交互的過程中具備表達內容的前后一致性,這里的一致性主要包括語義一致性和邏輯一致性。④交互性: 在真實的對話過程中,理想的對話情形經常是由雙方共同把控的。
近年來,很多研究人員進行了對話技術發(fā)展狀況的研究與梳理,其由數據驅動結合統(tǒng)計機器學習模型向端對端的深度學習模型轉變。本文選取了近五年的幾篇對話系統(tǒng)研究綜述,進行簡要分析。
Serban等人[5]從對話系統(tǒng)的數據集研究角度切入,梳理了適用于對話生成系統(tǒng)的開源數據集,分析了它們各自的重要特征及相應的使用方法。通過對對話系統(tǒng)開源數據集的適用性研究,驗證了數據驅動方法的可行性。
Chen等人[6]從任務型對話的研究角度切入,介紹了對話系統(tǒng)的相應組成,梳理了基于對話系統(tǒng)的深度學習相關技術,并闡述了對話系統(tǒng)研究進程中面臨的一些挑戰(zhàn)。Chen等人[7]從開放型對話的研究角度切入,總結整理了對話過程中的關鍵問題及已有的解決方案,分析了開放域對話系統(tǒng)的評測指標,對未來研究趨勢進行了展望。Chen等人[8]從任務型對話和開放型對話兩個方向進行梳理和研究,其中面向任務的對話系統(tǒng)主要是針對管道以及端到端的方法,而面向非任務導向型對話系統(tǒng)主要是基于檢索和基于生成的兩種方法,最后總結了未來可能的研究方向和面臨的挑戰(zhàn)。
Jia等人[9]從理論模型、研究進展及可用性等角度剖析了現有的對話生成技術解決方案,重點分析了應用于自然語言生成的序列到序列(Sequence to Sequence,S2S)神經網絡結構及搭建原理,闡述了其中需要特殊考慮的關鍵問題,以及在應對這些問題時模型在編碼、目標函數和解碼部分的改進方案。Gao等人[10]從問答系統(tǒng)及機器閱讀理解、面向任務的對話系統(tǒng)、數據驅動的對話模型及社交機器人三個角度切入,進行了對話神經方法的梳理,通過案例分析展示了已取得的進展以及后續(xù)研究中仍面臨的挑戰(zhàn),以非常全面的視角調查了對話神經方法,并重點闡述它們與傳統(tǒng)方法之間的聯(lián)系。
與上述各項綜述的切入點不同,本文將對話系統(tǒng)的場景進行話輪拆分,將單輪對話到多輪對話的發(fā)展歷程作為全文的研究主線,通過兩者的對比分析更好地凸顯適用不同場景下的技術路線。在關鍵技術的梳理方面,與上述各個綜述中相關技術的切入角度也有所不同,整個關鍵技術的梳理緊貼S2S及其改良模型這個線索,研究相關技術的改進過程,并初步探索了相關技術針對多輪對話生成的可能改進方向,從引入外部知識、引入改寫機制及引入代理機制三個角度切入,進行多輪對話生成改進方向的研究。
早期,序列到序列模型應用在機器翻譯場景中取得了不錯的效果。后來,有研究者試圖將其遷移到對話的場景中,解決對話生成的問題。但生成回復比翻譯語言要困難得多。因為在對話場景中,輸入與輸出之間并沒有嚴格的短語對齊關系,并且允許有大量看似合理的回復同時存在,這就導致了即使采用各種方式進行序列到序列模型的改良,都很難達成模型與場景的“高度契合”?;诖?,近期出現了通過預訓練和微調來解決對話生成問題的新思路。如,Song等人[11]提出的屏蔽序列到序列預訓練方法(Masked Sequence to Sequence Pre-training, MASS),對句子隨機屏蔽一個長度為k的連續(xù)片段,以鼓勵解碼器從編碼器端提取信息來幫助連續(xù)片段的預測。該模型在不同的對話生成場景中,均取得了一定的效果。與MASS的思路不同,本文將從S2S以及改良模型之外的角度切入,進行針對多輪對話生成改進方向的相關研究探索。
本文的后續(xù)內容安排如下: 第1節(jié)以回復方式驅動對話技術為線索將對話技術的發(fā)展串聯(lián)在一起,按照檢索式方法及生成式方法兩個方向進行梳理,以便能清晰地呈現對話技術的發(fā)展進程。第2節(jié)重點探討開放型對話關鍵技術,包括單輪對話中的回復質量優(yōu)化技術、多輪對話中的屬性控制技術以及多輪對話中的話題延續(xù)變換控制技術。相關技術圍繞著S2S及其改良模型展開,很好地凸顯了不同應用場景下關鍵技術的運用。第3節(jié)從S2S及其改良模型以外的角度出發(fā),探索了相關技術針對多輪對話生成的可能改進方向,從引入外部知識、改寫機制及代理機制三個角度切入,進行多輪對話生成改進方向的探索與研究。最后的第4節(jié)是相關思考與展望。
本節(jié)從回復方式驅動對話技術發(fā)展的角度切入,按照基于檢索的方法、基于生成的方法及檢索和生成相結合的方法進行相關內容的梳理。
1.1.1 單輪檢索模型的發(fā)展
單輪檢索模型的核心是構建查詢-回復模式。Wang等人[12]比較早地關注到了回復選擇,他們設計的模型的執(zhí)行過程分為兩步: 第一步選擇出評論候選列表對,第二步在候選列表中進行排序。數據標注將評論分為兩類,即正例和負例。排序學習的目標是讓正例的分數比負例的分數大。根據匹配模型構造一系列的匹配特征,最終的匹配得分是各個特征之間的組合。該方法為單輪檢索模型的發(fā)展提供了基礎研究思路。
Hu等人[13]重點針對句子匹配問題進行進一步的研究與優(yōu)化。首先分別對兩個句子進行建模,得到兩個相同且固定長度的向量來表示句子特征,然后將這兩個向量作為一個多層感知機的輸入,計算匹配的分數。針對兩個句子在建模過程中完全獨立的處理缺陷,該研究工作又對其進行了改進,提升了句子間的交互作用。
1.1.2 多輪檢索模型的發(fā)展
Wu等人[15]認為構建問答歷史語句和候選回復的交互表示是重要的特征信息,因此借鑒語義匹配矩陣以及卷積神經網絡和門控制單元構造模型。通過使用卷積神經網絡在多個粒度級別的上下文中對每個話語進行匹配,改善了對語義關系和上下文信息的利用,通過時間順序累積向量模擬話語之間的關系。該方法很好地提升了多輪檢索過程中上下文關聯(lián)性的考量。
Zhang等人[16]提出了深度對話整合模型,主要解決多輪對話直接拼接作為上下文信息造成的噪聲和冗余等問題,顯著地降低了模型的時間復雜度和空間復雜度。該模型從對話和回復中采用注意力機制挖掘關鍵信息,凸顯關鍵信息,忽略冗余信息,最終獲得每輪對話問答的匹配得分。
Zhou等人[17]將自注意力機制和交叉注意力機制應用于多輪對話,來提取回答和上下文的特征。首先,通過注意力機制在不同粒度上構造文本片段的表示。然后,通過上下文響應來提取真正匹配的片段。該模型可以抽取文本的更多層次、更多粒度的信息,從而得到每輪問答之間潛在的語義關聯(lián)。注意力機制對于多輪檢索模型的發(fā)展提供了非常重要的研究思路,在控制模型復雜度的前提下,提高了上下文的關聯(lián)性。
Tao等人[18]提出了多表示融合網絡,考慮與多種粒度表征形式的上下文響應匹配來進行多輪響應選擇,將它們融合到一個深層的神經結構中進行匹配,并調查了多種表征各自對匹配的貢獻。通過設計各個粒度之間的層次關系以減少不必要的性能浪費,進一步降低多輪檢索模型的模型復雜度。
1.2.1 單輪生成模型的發(fā)展
Vinyals等人[19]提出了序列到序列的模型框架,將機器翻譯的模型框架遷移到對話生成系統(tǒng)的研究中,基于循環(huán)神經網絡的實現原理,通過記憶之前的信息來影響后面結點的輸出,在單輪對話生成中取得了不錯的應用效果,該模型為對話生成領域的發(fā)展提供了一個很好的思路,后續(xù)非常多的研究工作均基于該模型展開。
Shang等人[20]提出基于短文對話的神經反應機模型,能夠針對不同的回答動態(tài)選擇不同位置的單詞作為重要特征,最終綜合全局特征生成合適的回答。在注意力機制基礎上,增加了上下文信息,提升了對話生成的質量。
太河水庫位于淄博市淄河中上游的淄川區(qū)太河鄉(xiāng),距離中心城區(qū)約40 km,控制流域面積780 km2,主要用于農田灌溉、部分城鄉(xiāng)供水和大武水源地的補源。水庫總庫容1.833億m3,興利庫容1.128億m3。水庫灌區(qū)有一條總干渠及三條干渠,設計灌溉面積2.67萬hm2,其中總干渠直接控制灌溉面積0.2萬hm2。
針對單輪對話生成中的萬能回復問題,Li等人[21]采用對抗學習的思想,訓練生成器和判別器兩個模型。生成器基于序列到序列的生成式對話模型,判別器對生成的回復進行評估,最終訓練的目標是生成器生成語句無限接近于人工回復的語句,該思想為提升對話多樣性提供了一個很好的思路。
Xu等人[22]引入對抗生成網絡,運用近似嵌入層來代替解碼器中的采樣解碼結果,使整個模型連續(xù)可導,便于判別器將誤差反向傳播到生成器,為解決文本離散特性導致的梯度不可導問題,提供了很好的思路。
1.2.2 多輪生成模型的發(fā)展
Sordoni等人[23]提出基于神經語言模型的多輪對話生成模型,使用三元組模擬多輪對話語境,在解碼階段不斷地將上文的信息重新進行計算,保證每個時刻生成用到的輸入信息是不同的,但又與上文息息相關。采用三元組進行模擬,目標是構建對話語境,該方法在搭建上下文聯(lián)系上起到了很好的作用。
Serban等人[24]提出了層次循環(huán)編碼解碼模型(Hierarchical Recurrent Encoder-Decoder Model,HRED)的概念,編碼端RNN將對話映射為向量表示,而更高層次的上下文 RNN 不斷迭代地追蹤編碼端RNN信息的變化。在多輪對話之后,上下文RNN的隱狀態(tài)相當于對之前對話的總結。解碼端RNN則根據上下文RNN中的信息推導生成的句子,因此生成的語句考慮了上下文信息。
在此基礎上,Serban等人[25]又提出了變分層次循環(huán)編碼解碼模型(Variable Hierarchical Recurrent Encoder-Decoder Model,VHRED)模型。與HRED模型相比,這一模型多了一個隱式變量,與變分自編碼器VAE的核心思想類似。通過利用該隱式變量,模型能夠更好地追溯上下文信息,從而生成更加連貫的回復。層次化的思想對于多輪對話生成有著十分突出的作用,近些年,仍然有很多研究人員以HRED和VHRED模型作為基礎模型,進行層次化模型的探索與優(yōu)化。
Li等人[26]提出在多輪對話生成上使用強化學習框架,首先使用S2S模型預訓練一個基礎模型,然后根據作者提出的三種獎勵方法來計算每次生成對話的好壞,并使用策略網絡提升對話的多樣性和連貫性。通過自定義的獎勵方法來取代極大似然估計作為評價標準,可以使對話系統(tǒng)產生更好的回答。同時,強化學習思想的引入還可以起到提升多輪對話輪次的效果。強化學習思想在多輪對話上的應用仍然是一個持續(xù)的熱點。
檢索式和生成式對話各有各的優(yōu)缺點?;跈z索的對話的優(yōu)點是對話可控性較好,只要語料庫足夠大,就有可能找到信息量豐富、對用戶有幫助的回答;缺點是會受限于語料庫的豐富程度,而且找到的回答是相對固定的?;谏傻膶υ挼膬?yōu)點是自動生成回答,靈活性較強;缺點是容易生成一些萬能回復。如果將兩種模式結合起來,可以很好地吸收各自的優(yōu)點,提升整體的對話質量。
Song等人[27]提出了一種檢索和生成相結合的模型,包括檢索、生成和重排序3個模塊。檢索模塊通過現成的檢索系統(tǒng)檢索出k個最接近的問答對,生成模塊將這k個問答對的回答與用戶問題輸入到一個端到端的生成模型來生成回答,重排序模塊則對回答進行評分,選出最佳的回答。該方法構建了檢索式模型和生成式模型的可能組合方式,對后續(xù)兩種方式的結合研究起到了很好的啟發(fā)作用。
Zhu等人[28]提出了檢索增強的回復生成模型,使用檢索式方法得到的候選回復來提升生成式方法的生成質量,主要引入了檢索模塊、生成器及判別器。檢索模塊在訓練集中經過檢索和重排序,得到最優(yōu)的候選回復。生成器是一個S2S模型,它把輸入的消息和上一步產生的候選回復作為輸入,自動生成相應的回復。判別器本質上是一個二元分類器,用于判斷一個回復是人還是機器生成的。該模型很好地將檢索式和生成式方法融合在了一起,使得對話質量有較為明顯的提升。
本節(jié)主要針對開放型對話發(fā)展中的若干關鍵技術,從一個大維度和三個小維度進行梳理。大維度緊貼單輪到多輪對話發(fā)展這條主線。三個小維度緊貼S2S模型在對話生成場景關鍵技術改良這條主線,具體包括單輪對話中的回復質量優(yōu)化技術、多輪對話中的屬性控制技術及多輪對話中的話題延續(xù)變換控制技術。
多輪問答是單輪問答的功能性擴展, 因此單輪問答的所有功能均包含于多輪問答中。因此,單輪對話只需重點關注回復質量的優(yōu)化技術,而多輪對話則需要更多地關注屬性控制技術及多輪對話中的話題延續(xù)變換控制技術。
回復質量優(yōu)化可以從兩個方面展開,一是引入多樣性及個性化回復,二是引入復制機制。其中第一種方法側重于基于傳統(tǒng)模型優(yōu)化來實現回復質量的提升,第二種方法則側重于解決對話過程中常常遇到的“未登錄詞”的問題。兩種方法配合使用,能大大提升單輪對話中的回復質量。
2.1.1 引入多樣性及個性化回復以解決安全回答問題
最初的單輪對話模型較為簡單,大多基于S2S及其變種模型,其中關鍵的問題是解決萬能回復。因此,多樣性回復和個性化回復的相關技術在單輪對話中具有較高的適用性。
Li等人[29]提出一種基于最大互信息的優(yōu)化方法。傳統(tǒng)的S2S模型傾向于生成安全、普適性的回復,因為這種回復在訓練集中出現頻率較高,所以按照此方式生成的概率自然也較大,而相對有意義的回復生成概率要相對小一些。通過最大互信息計算輸入輸出之間的依賴性和相關性,可以減少模型生成安全回復的概率,進而提升回復的多樣性。該方法是提升對話多樣性非常有效的方式,但存在一定的瓶頸,很難產生一些跳躍式較大且合理的回復。
Song等人[30]提出了一種基于記憶機制的結構來建模個人信息,并結合了條件變分自編碼器中的隱變量來捕捉回復中的多樣性。變分自編碼器通過先驗網絡和識別網絡進行編碼來獲得隱變量Z的表示。通過采樣操作可以獲得不同的Z,從而在解碼器端生成不同的回復。該方法極大地提升對話過程中的多樣性和個性化回復,并有能力生成一些跳躍式較大且合理的回復。
Zheng等人[31]提出了一個新的基于預訓練方法的個性化對話生成模型,通過引入一個注意力路由機制,可以在模型訓練過程中更有效地利用個性化稀疏的對話數據。實驗結果表明,該模型可以生成更為流暢且符合說話者個性化特征的回復,并在解碼過程中控制是否在回復中展現說話者的個性化信息。該方法沒有從模型角度出發(fā),而是創(chuàng)新地從預訓練角度切入,引入了注意力路由機制,在對話的個性化提升方面展現了更好的效果。
2.1.2 引入復制機制以提升對話感通性
在對話生成中,未登錄詞通常很難通過模型自動生成。復制機制主要用來解決未登錄詞的問題,通過將上文的信息直接拷貝過來,從而提升對話的感通性。例如,在人們的日常對話中會出現“你好,我叫小陳?!?,然后另一方可能回答“很高興認識你,小陳?!蹦敲椿卮鹬械倪@個“小陳”就應該是在對話的過程中被“原封不動”地保留復制的。解決這個問題的主要難點,一是要判斷輸入端哪些信息是應該被“復制”的,二是要決定在輸出端的哪個地方“保留”這些信息。
Gu等人[32]率先提出了復制機制,該機制在傳統(tǒng)模型的解碼部分,做了兩點改進: ①在解碼過程中加入復制模型,可以將未登錄詞直接復制過來; ②將解碼部分的隱狀態(tài)計算變成了位置標定,可以讓模型明確“復制”信息所在的輸入端位置。該方法率先引入了復制機制,完成了傳統(tǒng)編碼解碼結構的改進,有效地解決了未登錄詞問題,但復制形式相對機械,缺少靈活性。
與復制機制相比,Gulcehre等人[33]提出的指針模型靈活性更高。該模型在傳統(tǒng)輸出層上附加了位置信息,能夠表示某個詞在輸入端的位置。通過對輸出層的選擇,可以自由地完成“復制”或“生成”的切換,更加適應多輪對話實際場景的需求。與傳統(tǒng)的復制機制相比,該模型的靈活性有了明顯地提升。
在上述模型的基礎上,See等人[34]進行了S2S模型和指針模型的融合,提出了指針生成網絡。通過指針模型提取未登錄詞,在預測的每一步動態(tài)地計算不同生成概率來完成兩者的融合,并設計覆蓋率機制來解決S2S模型生成句子中經常出現的重復片段現象。指針生成網絡在平衡復制及生成之間的關系上達到了很好的效果,通過動態(tài)地計算生成概率,與復制機制及指針模型相比,進一步提升了復制與生成的靈活性。
如何在對話過程中更好地承接上下文的語義信息,可以從兩個方面進行解析。第一是通過主題控制來調整聊天過程中的談論話題,使整個對話能夠圍繞著不同主題展開。第二是通過控制生成對話句式及情感因素等屬性,使得對話交流過程能夠執(zhí)行得更加流暢、順利。
主題控制大致可以分為兩個思路。一是用關鍵詞進行“顯性約束”,假設關鍵詞在生成文本中一定會出現,通過互信息進行預測,每次取與問題互信息最大的詞;二是用關鍵詞進行“隱性約束”,假設關鍵詞在生成文本中不一定會出現,通過每一步的狀態(tài)更新,利用設計的融合單元實現對主題的控制[35]?;陉P鍵詞的回復生成技術,有助于S2S框架下的模型生成內容上更為相關的回復。該方法為對話生成過程中主題控制方法的研究,提供了很好的思路。
Xing等人[36]提出了將主題模型與S2S結合的方法,該模型利用主題信息作為先驗知識并使用聯(lián)合注意力機制及生成概率來進行對話生成。每個單詞都通過聯(lián)合注意力機制,由輸入句子和主題信息共同影響生成,采用該方法生成的句子不僅與輸入有關,而且與主題高度相關,唯一的不足就是聯(lián)系上下文的能力有限,局部信息對回復的影響較大。
Dziri等人[37]提出了結合了上下文信息與主題信息的端到端對話生成模型,在模型設計時考慮了上下文信息,通過句子級別和詞語級別的注意力機制對上下文進行建模,再引入主題注意力機制,使生成的回復包含更多信息,提升了對話生成過程中主題控制的能力,降低了局部信息對回復的影響。
增加文本屬性信息,主要是通過對句式及情感信息捕捉來達到控制生成文本風格的目的,希望生成的回復更為可控,避免出現負面情感或疑問句式的回應。句子功能是一種重要的語言學特征,按句子功能可將語言劃分為疑問句、陳述句、祈使句等多個類別,該特征在對話中能夠體現說話者的目的。Ke等人[38]引入條件變分自編碼器,利用隱變量來建模和控制生成回復的功能特征。通過設計類別控制器,使得功能特征和內容信息能夠在生成的回復中有機結合,提升了對話生成的屬性控制能力。條件變分自編碼器的應用在對話的屬性控制中展現了不錯的性能,也為屬性控制的研究提供了基本思路,但控制的“顆粒度”不夠細,控制能力有待進一步提升。
Xu等人[39]提出使用元詞(Meta-Words)來表示輸入和回復間的關系,它代表了一組回復屬性。其處理關鍵是解決回復與輸入的相關性,以及如何預先定義元詞的問題。為此,作者提出了一個基于目標跟蹤記憶網絡的生成模型,可將目前的表達和最終表達的差距傳給解碼器,實現對話過程實時可控。該方法為對話的屬性控制提供了一個較新的思路,很好地明確了輸入和回復之間的關系,從詞源上優(yōu)化并結合記憶網絡,實現對話生成屬性控制能力的提升。
Tang等人[40]提出將對話引向一個特定的目標,以達到對話過程可控的目的。通過定義粗粒度的詞來對目標進行建模,并控制輸出內容,然后通過設定規(guī)則來接近最終的對話目標。為此,設計了一個分治算法來解決流暢遷移“度”問題,以目標為導向實現對話方向的控制。該方法細化了屬性控制上的“顆粒度”。與以往的模型相比,該模型進一步提升了屬性控制能力。但結合元詞是否能夠達到更好的效果,值得進一步研究。
話題延續(xù)和話題轉換是多輪對話生成的研究關鍵,提升對話連貫性、學會主動對話及引入情感因素是話題延續(xù)變換控制技術研究的三大落腳點。
2.3.1 提升對話連貫性以促進話題自然地延續(xù)與轉換
對話連貫性是影響話題延續(xù)和轉換的重要屬性。如果缺乏連貫性,往往會使對話陷入邏輯混亂,造成對話無法繼續(xù)。對話連貫性大致可以分為兩類,即語義連貫性和邏輯連貫性。語義連貫性側重于對話中話語之間語義上的相關性,關注句子間語義是否通順和形式是否銜接;邏輯連貫性側重于對話前后內容上的一致,要求邏輯不沖突。
Logeswaran等人[41]設計了一種基于RNN的連貫性建模和句子排序任務,利用S2S模型框架,輸入一組無序的句子集合,模型在集合中順序地選擇句子并對它們進行排序以生成連貫的文本。該模型很好地實現了語義連貫性,促進話題在語義上自然地延續(xù)與轉換。
Li等人[42]提出了兩種基于編碼器-解碼器模型的生成式方法,引入隱變量進行語篇生成和連貫性評估。第一個模型通過主題模型引入全局語篇信息;第二個模型使用馬爾可夫模型進行隱變量的端到端訓練。該模型很好地提升了語句之間的邏輯連貫性,促進話題在邏輯上自然地延續(xù)與轉換。
2.3.2 學會主動對話以提升話題轉換能力
在人機對話中,機器一般扮演被動的角色,它只需要根據人類提出的問題給出適當的回復即可。隨著對話技術的發(fā)展,研究者提出機器也應該具備主動引入新信息的能力[43],以打破時而出現的對話僵局,即機器需要具有捕捉上下文關鍵詞和引入額外線索詞的能力。
Mou等人[44]提出的前向后向序列模型就是以關鍵詞為基點,將回答語句劃分為兩個不同方向的序列,使用雙向控制機制確保關鍵詞可以出現在目標回答語句的任意位置之中,以控制輸出的流利度,進而提升主動對話的質量。該方法實現信息的雙向追溯,消除了信息感知的盲區(qū),與之前的序列到序列模型相比,極大地提升了主動對話的能力。
Xu等人[45]提出可以通過門控機制來修改神經網絡的神經元,為生成的對話添加額外的線索詞。這種線索詞分為顯性和隱性兩種,顯性線索詞會明確地出現在回復話語中,隱性的線索詞會蘊含在對話過程中。通過引入額外線索詞,對主動對話起到了很好的引導作用。該方法從引入額外線索詞的視角切入,通過顯性及隱性線索詞的提取,為話題轉換能力的提升提供了很好的思路。
2.3.3 引入情感因素以提升聊天過程中的情緒的實時感知
很多對話系統(tǒng)的回復都比較單調或中性,降低了對話體驗。情感的引入,可以使會話機器人能夠感知、識別、理解用戶的情感,并給出符合情緒的表達。對話中說話人的情緒本質上是分類問題,即從預定義好的情緒類別中,為對話中的每一句表達確定其情緒的類別。
Zhou等人[46]設計了一個情緒化的對話生成模型,該模型可以將情緒信息引入到對話生成模型中,根據情緒類別生成相應的回復語句。該模型采用了情感表達生成的新機制,不依賴任何語言工具和定制化參數,能建模對話之間的多種情感交互,提升了對話中情緒的表達能力,從而使得生成的對話更為恰當,但該模型的情感感知能力對情緒類別的建模優(yōu)劣的依賴性較大,穩(wěn)定性有待進一步研究。
Asghar等人[47]提出將傳統(tǒng)的詞向量和情緒向量結合在一起,作為編碼解碼模型的輸入。與S2S模型相比,該模型主要做了三點改進: 在詞嵌入上加入情感信息,優(yōu)化損失函數,在集束搜索時考慮情感。該模型在傳統(tǒng)序列到序列模型基礎上,進行了比較有針對性的優(yōu)化,在對話的情感感知能力上有了較大的提升。
Zhou等人[48]運用Twitter數據中的表情符號構建了一個大規(guī)模的數據集,旨在解決現有的情感數據集相對深度模型來說普遍太小且分類類別有限的問題,目標是教會機器生成有情緒的回答及控制回答的情感。該模型從數據集優(yōu)化的角度切入,為提升聊天過程中的情緒感知及表達提供了另外一個研究思路。
在以往對話生成領域的研究過程中,大多數研究者傾向于選擇S2S模型作為基礎模型,并在此基礎上進行改進和優(yōu)化。這類模型在單輪對話生成上表現尚可,但對于多輪對話的應用場景來說,大多存在著實現特點與應用場景不完全匹配的問題,主要原因在于S2S模型最早應用于機器翻譯問題,可以較好地適應單句翻譯中的同一語義空間的對應問題。而多輪對話生成的核心是兩個對話者的認知空間同步問題。Pickering等人[49]從心理學角度提出了交互式對齊的模型,該模型假設隨著對話的進行,對話者會自主調整他們在不同層次的語言表達,從語音到句法和語義。這種交互式對齊的過程是自動進行的,其目標是使會話雙方的認知空間內容同步,從而有效地促進連貫多輪會話過程的推進。這種會話雙方多層次認知空間的對齊過程,應該具有其獨特的生成模型支撐。因此,本節(jié)將從S2S以及改良模型之外的角度切入,進行針對多輪對話生成改進方向的相關研究探索。
3.1.1 引入知識庫及知識圖譜以提升聊天的深度和廣度
Wu等人[50]率先將知識庫引入對話系統(tǒng)中。在人機交互過程中,不僅要考慮用戶的對話狀態(tài),還要考慮數據庫的狀態(tài)。之后,Vougiouklis等人[51]提出,在生成某句回答時,需整合過去所出現的所有對話,使之作為一種知識儲備,而且每個對話者擁有屬于各自的知識系統(tǒng)。Dhingra等人[52]提出了KB-InfoBot,其使用數據庫操作,并考慮了可導性。Ghazvininejad等人[53]提出,在回復時,若吸收相關的額外信息,即使給出一個在訓練中沒有出現過的詞,也可以依賴相關的外部知識來生成一個適當的響應,從而在不用重新訓練整個模型的情況下通過外部知識來豐富對話系統(tǒng)。
Zhou等人[54]用注意力機制把對話生成模型和大規(guī)模知識圖譜技術結合起來,整個體系包括三個模塊: 編碼解碼模塊、知識解釋模塊和知識生成模塊,知識解釋模塊用靜態(tài)注意力機制,把詞向量和檢索到的知識圖譜結合起來;知識生成模塊用動態(tài)注意力機制,根據權重變化來讀取知識圖譜中影響選擇生成的詞。該方法通過引入靜態(tài)和動態(tài)注意力機制,很好地促進了對話生成模型和知識圖譜的融合。
Moon等人[55]提出了一種基于注意力機制的圖解碼器,通過從知識圖譜中尋找有效的推理路徑,將對話系統(tǒng)和知識圖譜進行有機結合。通過零樣本學習,利用之前對話語句和知識圖譜的上下文,對圖解碼器輸出的候選結果進行重新排序。圖解碼器的引入,優(yōu)化了對話生成模型與知識圖譜的結合方式,為后續(xù)兩者結合研究提供了很好的思路。
知識圖譜的引入,增強了詞語之間的聯(lián)系,為對話生成模型的發(fā)展起到了很好的促進作用,值得研究人員持續(xù)地研究與關注。
3.1.2 引入外部文檔以提升知識遷移的能力
Li等人[56]提出了一種文檔驅動的對話生成模型,該模型以給定文檔為依托進行對話生成。其核心思想是設計一種文檔閱讀器機制來定位與用戶問題相關內容的文檔,并在回答過程中運用復制機制來幫助對話的生成。該方法在對話生成的過程中更加關注對話的歷史信息,不僅能夠生成與文檔更相關的信息響應,而且能夠提升回答用戶問題的質量。
Li等人[57]在有文檔背景信息的多輪對話中,提出了基于翻譯思想的對話生成模型。其基本思路是當多輪對話內容與一個文檔集相關聯(lián)時,模型的目標就是輸出一個綜合了文檔知識的相關回復。因此,模型的輸入既有多輪對話的歷史,還有相關的文檔集。其核心技術主要用于解決兩個問題: 一是挖掘文檔集中與對話相關的部分,二是將多輪對話中的語句與文檔集中的相關部分進行統(tǒng)一表示。
引入外部文檔可以給生成模型帶來很強的移植性。它不需要基于受限的外部知識,所構造的模型也不依賴于相關領域,并且獲取外部知識的方式也十分便捷。在多輪對話中,可以很好地適應聊天過程中不同的話題和領域,提升對話生成的效果。
多輪對話是一個相對復雜的場景,需要克服多輪會話的指代消解和信息省略造成單句的信息量及可解釋性下降問題,通過改寫機制可以在一定程度上緩解或解決這些問題。
Su等人[58]通過語句改寫來解決多輪對話中信息省略和引用的問題。通常來說,在多輪對話中,后面的句子會和前面的句子存在部分指代的關系,因此后面的句子經常會省略前面句子的部分信息,使得機器很難去理解對話的真實意圖。因此,作者通過構建一個模型來生成補全信息后的句子,以解決指代消解或者信息省略帶來的問題。
Zhou等人[59]提出利用改寫的方法來幫助對上下文進行建模,將多輪對話輸入改寫為單輪對話輸入,使用多輪對話中的上下文信息來改寫最后一輪的句子,在壓縮了上下文信息的同時,也保留了有用的信息。
改寫機制為多輪對話生成研究提供了一個很好的操作和處理思路,其最大的貢獻就是提升了單句的信息量及可解釋性,為模型提供了相對豐富的信息支持,進而提升了多輪對話的生成質量。
從本質上說,多輪對話是一個會話者溝通合作的場景,而代理機制可以很好地將多輪對話進行拆分,并且實現各個拆分部分的信息傳遞,形成代理之間的溝通與合作。
He等人[60]設定了兩個代理場景,假定每個代理擁有自己的結構化知識庫,但會話雙方也有一些知識上的交集,要通過溝通對話來一起找出共同的那部分。這里的處理難點在于如何將非結構化的對話和結構化的知識結合。作者將對話的狀態(tài)用一個動態(tài)知識圖譜表示,然后基于知識圖譜生成回復來推動對話的進行。其核心是利用信息傳遞實現對話上下文的更新,這種思路和多輪對話的場景十分契合。
Celikyilmaz等人[61]提出的多代理機制的核心思想是將長文本拆分為若干個部分,每個部分由一個代理來處理,同時代理之間還會互相進行信息的傳遞,通過每個代理內部與代理之間的注意力機制綜合得到的結果,輸入到解碼器中,最終得到輸出單詞在詞典上的概率分布。雖然每個代理只負責一個部分,但在編碼理解的過程中,如果不能把握全局信息,就很難正確地理解各自部分中真正重要的信息。所以,只有通過多個代理之間相互溝通和合作,才能更好地完成整體的工作。多輪對話生成可以理解為多個問答對的有機融合,并且不同輪次的問答對之間存在著緊密的聯(lián)系,這與多代理機制的思想十分吻合,每個問答對相當于由一個代理負責,通過不同代理之間的溝通合作,共同引導多輪對話生成。
溝通合作最重要的就是信息傳遞。無論是動態(tài)知識圖譜還是層次化注意力機制,都在很大程度上提升了代理之間傳遞信息的能力,進而提升了代理之間的溝通與合作。與傳統(tǒng)序列到序列對話生成的思想相比,溝通合作的思想更加符合多輪對話的應用場景,應該可以以溝通合作的思想作為切入點,進一步思考開放型多輪對話的生成。
本文以單輪對話到多輪對話的發(fā)展為全文的研究主線,進行了三個方面研究工作的綜述。首先從回復方式驅動的角度切入進行對話技術發(fā)展的梳理。其次緊扣S2S及其改良模型在對話生成場景中的應用,對開放型對話的關鍵技術進行了探討和研究。為進一步探索對話技術的未來發(fā)展趨勢,在本文的最后從引入外部知識、改寫機制及代理機制三個角度切入,進行相關技術針對多輪對話生成改進方向的探索與研究。通過相關內容的梳理與分析,進一步思考展望如下:
檢索式和生成式算法作為對話生成模型的兩種主要方法,具有各自的優(yōu)缺點。檢索式模型的回復往往更加可控,并且流暢性也會更加突出,總體給人的感覺是“中規(guī)中矩”,缺乏語言的多樣性和個性化。生成式模型的回復多樣性較強,經常會給人“眼前一亮”的感覺,但也時常會冒出一些讓人摸不著頭腦的話語,可控性較差。如果能將這兩種對話生成方式有機結合起來,吸取各自算法上的優(yōu)勢,可以在一定程度上提升對話生成的質量。但如何尋找兩種生成方式的合適結合點,還需要進一步研究。
對話生成模型情感的引入對于對話質量的提升有著十分顯著的作用。對話系統(tǒng)作為一個直接與人對話的系統(tǒng),若能實現對用戶情緒的實時感知,會給人帶來極為舒適的對話體驗。如果將情感信息與強化學習相結合,可以進一步提升對話系統(tǒng)中情感引入的效果。強化學習時,需要機器能接受環(huán)境(Environment)的反饋來完成獎勵(Reward),從而產生相應的動作(Action),該方式可增強對情感信息的實時感知。因此,情感引入與強化學習的結合研究方向,值得持續(xù)關注。
在提問方式上,人們希望的是對話系統(tǒng)能夠找到適合自己的提問方式,有利于對話順利進行下去。機器可能不清楚提問質量的好壞,這個就涉及到了一個重要的因素“語義理解”,也就是說,機器要理解整句話在說什么,而不是局限于某個局部,這樣才能達到更好的提問效果。同時,在聊天過程中,說話者通常不是對上文中提到的東西進行提問,而是對與其相關的東西進行提問,這就要求模型在給定的話題下具有一定的知識遷移能力。外部知識的引用(基于知識庫、知識圖譜和文檔)可以幫助系統(tǒng)增加“話源”并提升相關內容的遷移能力,能夠 “觸類旁通”,靈活地進行話題的延續(xù)和轉換。所以在對話生成模型中引入外部知識就顯得十分重要。其中在引入外部知識的過程中,哪些技術的運用可以更好地提升對話生成的效果體驗,還需要進行深入探索。
不難發(fā)現,在對話生成領域,應用最廣的依然是S2S模型及其變種模型,S2S模型是機器翻譯領域的重要模型,遷移到單輪對話生成上表現尚可。因為單輪對話與傳統(tǒng)的問答系統(tǒng)相似,一般表現為一問一答的形式,用戶提出問題或發(fā)出請求,系統(tǒng)識別用戶意圖,做出回答或執(zhí)行特定操作,這個特點與機器翻譯的特點類似,有著較強的機械式對應關系。但是,多輪對話的場景則更加復雜,除了問答內容外,還有情感和場景表述,與上下文語義高度相關或不相關交錯出現,導致了多輪對話的高度復雜性。同時,對話本身所包含的信息也只占總傳遞信息量的一小部分,更多信息來源于說話人的身份、行為、當前的時間、地點等一系列的外部知識,所以多輪對話的信息獲取方式也不應當只局限于用戶所說的話。因此,傳統(tǒng)的S2S模型在多輪對話場景下就顯得比較“機械”和“被動”。如果能從心理認知的角度來思考多輪對話生成,探索如何使會話雙方的認知空間內容達成同步,或許能夠更加滿足該應用場景下的需求。