對話系統綜述

CopperDong發表於2018-04-25

在人工智慧領域,模仿人類交談能力的嘗試可以追溯到人工智慧的早期階段。在1950年,艾倫·圖靈(Alan Turing)提出了一種方法來測試一臺機器的智慧水平,這個機器被普遍稱為圖靈測試或模仿遊戲。在圖靈測試中,一臺機器被要求與人交談。機器的智慧水平取決於機器如何能夠欺騙人類評估者,使其相信機器是基於文字響應的人類。如果人類的評估者無法區分機器和人類的區別,那麼就說機器已經通過了圖靈測試,這意味著人工智慧的高度智慧化。詳見圖靈測試wiki百科強圖靈測試與弱圖靈測試

自從提出圖靈測試的想法以來,已經提出了各種嘗試來通過測試,但是還沒有通過測試。本文主要參考李紀為博士的博士論文。在這篇文章中,簡要回顧幾十年來提出的對話系統,並且討論已經成功應用的案例,利弊,以及為什麼仍然無法通過圖靈測試。

1.1 已有對話系統的簡要回顧

具體來說,目前主要有以下三種對話系統:

The Chit-chat Style System(閒聊系統)

The Frame-based Dialogue Systems(基於框架的目標導向系統)

The Question-Answering (QA) Based Dialogue System(互動式問答系統(QA))

本論文的重點是如何改進閒聊系統和互動式問答系統(QA)。

1.1.1 The Chit-chat Style System

現有的閒聊系統主要分為以下三個子類:

  1. The Rule-based Systems(基於規則的系統)

    使用規則是產生對話的最有效方法之一。通常,訊息輸入會經過一組預定義的規則(例如,關鍵詞查詢字典,if-else條件或更復雜的機器學習分類器)來對輸入進行處理。在評估完輸入之後,將執行相關的動作,比如輸出儲存器中的入局,改變輸入訊息或選擇一些相關的歷史上下文進行輸出。最著名的例子是ELIZA

  2. The IR-based Systems(基於IR的系統)

    基於IR的方法依賴於資訊檢索或最近鄰技術。假設輸入為s1,輸出為s2,IR-based的規則為R,那麼基於規則的對話系統的模式為s1,s2——>R,即s1和s2符合一定的規則。通常生成的響應與對話存在語義相關性(VSM、TF-IDF、page-Rank、推薦等排序方法)。該方式優點是比生成模型簡單,直接從訓練集中選擇答案,且可以新增自定義規則干預排序函式較為靈活;缺點是無法應對自然語言的多變性、語境解構、連貫性等,對語義的細微差別也無法識別,並且無法生成新的回答,因此也無法對未訓練的問題作出回答。

    在本專欄中,簡單實現了一個基於檢索的聊天機器人的實現,可以簡單看一下實現過程。

  3. The Generation-based Systems (基於生成的系統)

    基於生成的系統通過一個詞一個詞地生成句子,而不是複製來自訓練集的response。假設輸入為s1,輸出為s2,那麼基於生成的對話系統的模式為s1——>s2,即s1生成s2。在給定歷史對話的訓練集的情況下,系統需要輸出連貫且有意義的單詞序列。

    基於生成的對話系統最早使用統計機器翻譯(statistical machine translation)的方式。但是基於MT的系統的缺點不僅在於MT模型的複雜性,單獨建立了許多不同的元件,而且MT模型在處理input and response pairs之間的隱式語義和句法關係時的固有不靈活性。由於這個原因,基於MT的系統僅僅善於處理少數情況。

    近年來神經網路的發展,神經模型提供了隱式地學習input and response pairs之間的語義和語法關係的能力,並以常規SMT-based和IR-based都不可能的方式捕獲上下文相關性。由於這些優點,神經生成模型能夠產生更具體,一致和有意義的對話反應。但是,還有一些重要的問題仍然沒有解決:現在的系統往往會產生簡單而遲鈍的反應,比如

    “我不知道你在說什麼”,這明顯阻礙了談話繼續進行;
    
    很難保持對話系統一致的身份或角色元素(背景事實或使用者簡介),語言行為或互動風格;
    
    目前的系統往往只關注單輪對話,或者最多兩次,因為很難賦予系統長期的計劃能力,進行流暢,連貫,有意義的多回合對話。
    
    該博士論文將在以後幾章解決這些問題,我也會在我的[對話系統專欄](http://blog.csdn.net/column/details/18405.html)詳細分析解決方法。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

1.1.2 The Frame-based Dialogue Systems

基於框架的對話系統常用方法是有限狀態機,它根據框架向使用者提出一系列預定義的問題,如果客戶提供答案,則轉向下一個問題;如果客戶提供的不是答案,則忽略客戶的任何事情。更復雜的體系結構允許系統和使用者之間的對話的主動性在各個點上移動。

基於框架的系統已經成功地用於各種應用,例如預訂機票,預訂餐館等等,其中一些已經在我們的日常生活中被使用。基於框架的系統最大的優點是系統的目標是明確定義的,預定義的框架對對話應該如何進行給出了非常明確的指導。但是另一方面,它的侷限性很明顯:基於框架的系統嚴重依賴複雜的手工模式或規則,而這些規則是昂貴的;當系統適應新的領域或舊的領域變化時,規則必須被重建,使得系統難以擴充套件。更廣泛地說,它並沒有觸及人類交談中涉及的複雜的語言特徵,例如語境連貫性,詞語使用(包括語義和句法),個性化,因此不能捕捉人類交談的複雜性和本質。

基於框架的對話系統並不是本文研究的重點。

1.1.3 The Question-Answering (QA) Based Dialogue System

第三種對話系統是基於QA的對話系統,它與開發自動化的個人助理系統(如蘋果的Siri)密切相關。對話代理需要回答客戶關於不同主題的問題,例如天氣狀況,交通堵塞,新聞,股價,使用者時間表,零售價格等。

在現有文獻中缺乏開發互動式QA機器人如何從線上反饋中學習:在犯錯的時候調整自己的模型;在得到的反饋是積極的時候強化模型。機器人最初是在一個特定領域的資料集上,以監督的方式進行訓練的,因此在釋出之前將機器人暴露在不同的環境中(例如,更多樣化的自然語言與真人交談時的話語使用,以及各種特殊情況等)。目前沒有任何文獻討論如何通過包含各種反饋訊號來有效地從線上反饋中改善問答系統的狀況。本文試圖解決這些問題。

1.2 本文解決的問題

1.2.1 開放領域的對話生成

該博士論文解決的問題:

  1. 無聊的對話
  2. 對話系統一致的身份
  3. 長期對話的生成
  4. 對話生成的對抗性學習

無聊的對話

一個實用的對話生成系統,應該能夠輸出多樣和有趣的語法和連貫的反應。然而,在實踐中,神經交談模型表現出傾向於產生沉悶,瑣碎或無聊的反應,通常涉及高頻短語,”I don’t know.” 或者 “I’m OK”。這是因為在實際的資料集中”I don’t know.” 或者 “I’m OK”這樣的短語與其他的回答相比出現的更頻繁,然後通過模型的訓練,這樣的短語會被認為是更安全的回答。那麼要怎樣對模型進行改變,來消除無聊的對話的生成?

直觀地說,我們不僅需要捕獲response對query的依賴,還需要反過來,捕獲query對response的依賴。即對於大多數query,”I don’t know.”這樣的序列回答的可能性很高,但是反過來卻不一樣,因為給定”I don’t know.”卻很難猜測原始的輸入query。

所以,建議通過使用最大互資訊(MMI)來實現這個直觀的想法,作為衡量輸入和輸出之間相互依賴性的優化目標,而不是從傳統MLE目標函式中的源到目標的單向依賴。我們提出了使用MMI作為目標函式的神經生成模型的實際訓練和解碼策略。這在第三章將會被重點講到。

對話系統一致的身份

當前對話系統的另一個問題是缺乏對話系統身份的一致性:如果一個人向機器人提出幾個問題,那麼不能保證機器人的答案在身份,性格和語氣等方面是一致的。因為目前的對話系統響應是根據預先訓練的模型分配的概率來選擇的,因此模型沒有身份一致性的能力。

作者基於Seq-to-Seq模型提出了兩種角色模型,一個是單bot的Spearker Model,另一個是雙bot的Spearker-Addressee Model。這部分內容可以參考博士論文的第四章以及他在2016年發表在ACL的論文“ A persona-based neural conversation model”。

長期對話

當前的對話生成模型一般是單輪對話的會話語境。但是,這並不能模仿我們人類的說話方式。在人類的日常交談中,每個人類對話事件都包含數十次,甚至數百次對話,而不僅僅是一次。因此我們需要一個對話方塊架,能夠(1)描述開發者定義的獎勵,更好地模仿chatbot開發的真正目標(2)在持續的對話中模擬生成的響應的長期影響。因此作者採用已經在MDP和POMDP對話系統中廣泛應用的強化學習的方法,優化對話系統中的長期獎勵。並且提出了三種獎勵的公式:forward-looking、informative、coherent,最後使用policy gradient的方法進行訓練。這部分內容請參考博士論文的第五章進行詳細介紹,或者參考其在2016年發表在EMNLP的文章“Deep Reinforcement Learning for Dialogue Generation”

對話生成的對抗性學習

開放領域的生成對話旨在根據輸入產生有意義和一致的對話響應。目前的系統使用模仿學習或模仿學習的變種來逼近這樣一個目標:根據對話歷史預測人類對話中的下一個對話話語。儘管取得了成功,但由於這個過於簡化的培訓目標而出現了許多問題:答覆非常單調乏味,重複性和短視。一個好的對話系統應該產生與人類對話無法區分的回答,即通過圖靈測試。

因此,作者使用了計算機視覺領域的對抗訓練的方法,使用兩個模型,一個生成器(SEQ2SEQ模型的形式)定義生成序列的概率;一個鑑別器,將對話標記為人類生成或者機器生成。這個鑑別器類似於圖靈測試中的評估器。模型產生的回答的質量是通過使鑑別器相信它是一個人類的話語來衡量的。鑑別器的輸出被用作對生成器的reword,推動模型產生與人類生成的對話不可區分的話語。

實驗結果表明,對抗性學習的方法比使用MLE目標函式訓練的標準SEQ2SEQ模型產生更多的互動式,有趣和非重複性響應。這部分內容會在第六章進行介紹,或者參考其在2017年發表在EMNLP上的文章“Adversarial learning for neural dialogue generation”。

1.2.2 互動式QA對話機器人

接下來討論模型如何通過online學習完善自己,使得互動性更強。要求其可以:

  1. 學會向人類提問,何時何處問什麼
  2. 從online學習,根據錯誤改進自己

通過提問進行互動學習

目前問答系統遇到自己回答不了的問題時(沒見過的表達形式,自己不知道的東西等情況),往往會做出很差的回應或者重定向到其他資源(展示搜尋網頁的結果)。但我們更希望機器人在遇到這種問題時可以通過向對方提問的方式來進行互動式問答進而解決該問題。可以通過離線學習或者線上強化學習的方式進行訓練。這部分內容將會在第七章進行介紹,也可以參考其在2017年發表在ICLR上的論文“Learning through dialogue interactions by asking questions”。

Human-in-the-Loop的對話學習

目前的對話機器人大都使用固定的資料集提前訓練好之後就開始使用,但很多情況下我們需要機器人上線之後不斷地根據具體環境改善自己,也就是要進行線上學習,根據對方的反饋來不斷地調整自己。所以作者使用一個teacher-student的對話資料集並結合強化學習進行訓練。這部分工作將在第八章進行介紹,也可以參考其2017年發表在ICLR上的文章“Dialogue learning with human-in-the-loop”。

第二章 背景知識

第二章主要介紹論文中會使用的數學知識,主要包括seq2seq、記憶網路和策略梯度方法。如果都看過的同學可以略過該章節。

2.1 seq2seq生成

SEQ2SEQ 模型可以被視為一個用輸入內容生成目標句的基礎框架,適用於多種自然語言生成任務,例如利用給定的英文句子生成法語句子的機器翻譯;通過生成響應功能在接收到源資訊時生成響應;在問答任務中針對問題做出回答;或是對一段文件生成總結性短句等等。

該節介紹了語言模型基礎,迴圈神經網路和長短期記憶網路(LSTM),它們被視為SEQ2SEQ 模型的基礎。隨後,詳細解讀 SEQ2SEQ 模型的基礎。最後,討論不同 SEQ2SEQ 模型的演算法,如注意力 (attention) 機制。

2.2 記憶網路

記憶網路是一類神經網路模型,可以通過操作記憶體中的內容(儲存、取回、過濾和重用)來進行自然語言推理。記憶網路中的儲存器部分可以嵌入長期記憶(例如,關於真實世界的常識)和短期上下文(例如,最近的幾段對話)。記憶網路已被成功地應用於很多自然語言任務中了,例如問答系統,語言建模以及對話。

2.3 策略梯度方法

策略梯度法是一類強化學習模型,通過使用梯度下降預測獎勵的引數化策略來學習引數。與其他強化學習模型(如 Q 學習模型)比較而言,策略梯度方法不會受到如缺乏價值函式等方面的問題(因為它不需要明確估算價值函式),或由於高維空間連續狀態或動作導致難以控制。

第三章及以後

第三章以後,作者就開始分別介紹在博士期間發表的論文,詳細的解析會陸續發表在該專欄。

相關文章