讓聊天機器人同你聊得更帶勁 - 對話策略學習
構建開放域聊天機器人的一個主要任務就是進行多輪對話,得到一個更好的多輪對話策略對於人機對話係統有著很多積極的意義。而目前的神經網絡對話生成模型在多輪對話過程中存在著容易產生萬能回複、沒有考慮多輪對話的整體走向之類的問題。
針對這些問題,本文引入了深度強化學習的 DQN(Deep Q-Network)算法進行開放域的多輪對話策略學習,該策略使得每一輪的回複都更加有利於多輪對話的進行,減少萬能回複的生成以及產生質量更高的多輪對話。
所謂的“萬能回複”,是指那些看似能夠回複任何輸入但卻沒有實際意義、不利於對話過程持續進行的句子。萬能回複跟訓練語料密切相關,通常出現頻率較高,典型的萬能回複比如英文 OpenSubtitles 語料上的“I don’t know”以及中文微博語料上的“哈哈哈哈”等。
對話生成任務中以 seq2seq 模型為代表的端到端生成方式基於極大似然估計,每次得到的回複都是生成概率最大的句子,這就導致了萬能回複非常容易被選中。
△ 圖1:生成萬能回複的例子
開放域多輪對話的一個重要目標就是盡可能聊得更久。開放域多輪對話中每一輪回複的選擇,不僅需要考慮是否能夠有效回複當前輸入,更需要考慮是否有利於對話過程的持續進行。
本文通過 DQN 對當前對話狀態下每一句回複進行評估,每次選擇具有最大累計價值而不僅僅是生成概率最高的句子,利用強化學習最大化未來累計獎勵的特點,建模多輪對話的過程,使得當前回複有利於對話過程的持續進行,以緩解多輪對話過程中容易出現的生成大量萬能回複以及很快陷入死循環的問題。
本文參考 Sutskever et al. (2014) [1] 以及 Vinyals et al. (2015) [2] 實現了 seq2seq 模型,同時在訓練過程中加入了注意力機製和 dropout 機製。在得到基礎的回複生成模型後,可以通過模擬對話的方式來檢驗該模型能否有效進行多輪對話。
此外,因為句子是變長和離散的,不利於進一步處理,所以本文借鑒自編碼的思想,使用自編碼器來獲得關於句子的固定維度向量表示。
接下來介紹使用強化學習模型建模多輪對話過程:
代理(Agent)的主要作用是根據環境更新的狀態s選擇動作a,這部分的主體是通過 DQN 算法訓練得到的深度價值網絡。深度價值網絡對於給定的狀態 s 和動作 a,估計出一個價值 Q ( s, a ),然後選擇價值最大的那個動作。
環境(Environment)的主要作用是接受代理選擇的動作 a(也就是句子),根據這個句子更新狀態 s,並根據獎勵函數計算這個動作得到的獎勵 r。環境的主體部分是訓練好的自編碼器,將輸入句子編碼為特征向量從而表示狀態s。
轉移概率在對話過程中不需要定義,因為狀態的轉移依賴於模擬對話過程。 獎勵函數(Reward)的作用是引導對話向輪數更多、信息更豐富、無聊回複更少的方向進行。從這個角度出發,獎勵定義為選擇一個動作後得到的即時獎勵,通過生成概率、互信息以及句子間餘弦相似度的方式進行定量計算。
△ 圖3:本文實驗的整體結構
DQN 係列算法提供了更新價值估計的有效方法,經過漫長的迭代計算後,通過深度價值網絡進行的估值漸漸逼近了真實價值。
實驗數據方麵,本文使用新浪微博對話語料 (Shang et al. 2015) [3],每一對對話數據分別來自微博的正文和這條微博下麵的評論,這樣一組博文-評論對就近似構成了一組對話對,該數據集總共有約 110 萬組這樣的對話對。
實驗結果方麵,下麵表 1、表 2 給出了一些直觀的結果展示。可以看到,通過 DQN 引入多輪對話策略後,模擬對話的質量有了明顯的提升。具體如下所示:
△ 表1:DQN和Baseline單輪對話對比
△ 表2:DQN和Baseline多輪對話對比
評價指標方麵,對於多輪對話的實驗結果,本文參考 Li et al. (2016) [4] 的方法,使用以下兩個客觀指標進行評價:1. 平均對話輪數。2. 多樣性。
本文還進行了主觀的對比評價:給定相同的輸入,本文的 DQN 模型和基礎模型獨立進行單輪回複生成以及進行模擬對話,然後由與實驗無關的評價者主觀對比二者的質量。對於多輪對話,總共收到 600 組對比打分。
主觀指標方麵,基於 DQN 的對話策略在多輪對話上優於基礎模型的比例達到了 68.3%。
客觀指標方麵,引入 DQN 學習多輪對話策略後,模擬對話的平均對話輪數由 2.51 輪提高到了 4.56 輪。
對話作者
我們的創新之處在於,將 DQN 應用於對話策略的學習過程中,使用獨立的深度神經網絡對每一句候選回複的未來收益進行評估,從而得到一個有利於多輪對話持續進行的對話策略。而實驗結果也表明,通過 DQN 方法得到的多輪對話策略有效提高了多輪對話的多樣性、平均輪數和對話質量。
我們的後續工作將著眼於將 DQN 用於 seq2seq 模型的訓練過程,使用深度價值網絡來估計訓練過程中的損失,使得訓練損失帶有更多的信息,從更細粒度上提高生成句子的質量。
此外,如何更加全麵的評價對話結果也是一個值得研究的問題。
原文發布時間為:2017-09-28
論文作者 | 宋皓宇,張偉男,劉挺
特約記者 | 曾愛玲(香港中文大學)
本文來自雲棲社區合作夥伴“PaperWeekly”,了解相關信息可以關注“PaperWeekly”微信公眾號
最後更新:2017-09-30 08:03:40