微軟研究院開源DialoGPT:你有什麼夢想?「讓世界充滿機器人」

dicksonjyl560101發表於2019-11-22
  2019-11-20 12:50:27

機器之心釋出
作者:Yizhe Zhang, Siqi Sun, Michel Galley等

自然語言對話生成是人工智慧社群面臨的一大難題,微軟研究院的一項新研究讓我們離解決這一難題又更近了一步。他們用 GPT-2 模型——DialoGPT,在大規模 reddit 資料上預訓練了一個對話系統,在多個對話資料集上取得了最佳結果。並且經過人類裁判的評測,在非互動的圖靈測試條件下,系統可以生成接近人類水平的對話。

微軟研究院開源DialoGPT:你有什麼夢想?「讓世界充滿機器人」

利用微軟 DialoGPT 生成的對話結果示例。

DialoGPT 是一種用於對話響應生成的可調節式千兆詞級神經網路模型,其訓練基於 Reddit 資料。該研究成果的原始碼已經開源,另外他們也釋出了一個大規模預訓練模型。

  • 論文:
  • 專案:
  • 程式碼:

近來,使用基於 transformer 的架構進行大規模預訓練方面進展頗豐(Radford et al., 2018; Devlin et al., 2019; Raffel et al., 2019),這些進展也在實踐中取得了巨大的成功。舉個例子,OpenAI 的 GPT-2(Radford et al., 2018)表明在大型資料集上訓練的 transformer 模型能夠捕獲文字資料中的長程依賴性,進而生成流暢、詞法多樣以及內容豐富的文字。這樣的模型有能力習得細粒度的文字資料,並得到能近似模仿人類所寫的真實世界文字的高解析度輸出。

DialoGPT 是對 GPT-2 的擴充套件,目標是解決對話神經響應生成中的挑戰性難題。神經響應生成是文字生成的一個子類。而文字生成任務的目標都是生成與提示有關聯的看起來自然的文字(同時又與任何訓練例項都不同)。但是,建模對話面臨著很多顯著的難題,因為人類對話中兩個參與者的目標可能是相互牴觸的,而且可能響應的範圍在本質上也更具多樣性。因此,對話生成中的一對多問題通常比神經機器翻譯、文字摘要和文字釋義等其它文字生成任務的問題更為困難。人類對話通常更加不正式、噪聲更多,而當以文字形式聊天時,通常還含有非正式的縮寫或句法/詞法錯誤。

類似於 GPT-2,DialoGPT 是以自迴歸語言模型的形式構建的,其模型架構使用了多層 transformer。但不同於 GPT-2,DialoGPT 的訓練使用了從 Reddit 討論鏈中提取出的大規模對話對/會話。作者猜想這應該能讓 DialoGPT 學到對話流中更細粒度的 P(Target, Source) 的聯合分佈。他們在實踐中也觀察到了這一現象:DialoGPT 生成的句子豐富多樣而且包含特定於源提示的資訊,類似於 GPT-2 為連續文字生成的結果。
作者在一個公開的基準資料集(DSTC-7)和一個新的從 Reddit 帖子中提取出的 6k 大小的多參照測試資料集上對新提出的預訓練模型進行了評估。結果表明,DialoGPT 在自動評估和人類評估方面都取得了當前最佳的表現,將對話生成結果的質量提升到了接近人類的水平。 作者已經公佈了本研究的原始碼與預訓練模型。作者表示,這種模型使用簡單,能夠輕鬆地適應新的對話資料集,尤其是訓練樣本較少的資料集。這個 DialoGPT 軟體包還包含一個開源的基於 Huggingface PyTorch transformer(HuggingFace, 2019)構建的訓練工作流程(資料提取/準備和模型訓練/評估)。

方法  模型架構 DialoGPT 模型基於 GPT-2 架構。它從 GPT-2 繼承了帶有層歸一化的 12 到 24 層 transformer、一種適用於經過作者修改的模型深度的初始化方案,用於 token 化器的位元組對編碼(Sennrich et al., 2016)。遵照 OpenAI 的 GPT-2 方法,作者將多輪對話會話建模為了長文字,將生成任務納入到了語言建模任務的框架中。 作者首先將一個對話會話中所有對話回合連線成一個長文字 x_1, · · · , x_N(N 為序列長度),並以「文字結束 token」結束。可將源句子(對話歷史)記為 S = x_1, · · · , x_m,將目標句子(基本真值響應)記為 T = x_{m+1}, · · · , x_N,則 P(T|S) 的條件分佈可以寫為一系列條件機率的積:

微軟研究院開源DialoGPT:你有什麼夢想?「讓世界充滿機器人」

對於多輪對話例項 T_1, · · · , T_K,(1)式可寫為 p(T_K, · · · , T_2|T_1),這本質上就是 p(T_i |T_1, · · · , T_{i−1}) 的條件機率的積。最終,對單個目標 p(T_K, · · · , T_2|T_1) 的最佳化可以被視為是最佳化所有的 p(T_i |T_1, · · · , T_{i−1}) 源-目標對。作者這裡的實現基於開源的 PyTorch-transformer 庫。
連結: 互資訊最大化 開放域文字生成模型有一個眾所周知的困難,即會生成枯燥的、沒有資訊的樣本。為了解決這個問題,作者實現了一個最大互資訊(MMI)評分函式(Li et al., 2016a; Zhang et al., 2018)。MMI 是利用一個預訓練的後向模型來預測給定響應的源句子,即 P(Source|target)。作者首先使用 top-K 取樣生成一組假設,然後使用 P(Source|Hypothesis) 的機率來對所有假設重新排序。直觀來看,最大化後向模型似然會對所有枯燥的假設施加懲罰,因為頻繁的和重複性的假設可能與很多可能的查詢有關,因此在任意特定查詢下得到的機率會更低。 作者也嘗試了使用策略梯度來最佳化獎勵

微軟研究院開源DialoGPT:你有什麼夢想?「讓世界充滿機器人」

,其中與 Zhang et al. (2018) 一樣使用了一種樣本平均的基線。這個驗證獎勵可以得到穩定提升,但不同於 RNN 框架下的訓練,作者觀察到強化學習訓練容易收斂到某個劣化的區域性最優解,這時的假設僅僅是對源句子的重複(即學舌模式),此時的互資訊是最大化的。作者猜想,由於 transformer 具有強大的模型表徵能力,所以它們很容易陷入區域性最優位置。但強化學習訓練規範化的相關工作還有待未來研究。

結果 作者將 DialoGPT 與另外兩個基準進行了比較:作者自己內部的基於 (Li et al., 2016a) 的序列到序列模型 PersonalityChat,這個模型是基於 Twitter 資料訓練的,已經在微軟 Azure 的 Cognitive Service 得到了實際應用。表 2 總結了自動化評估的結果。有 345M 個引數的 DialoGPT 以及波束搜尋在幾乎所有基準上都得到了最高的自動評估分數。

微軟研究院開源DialoGPT:你有什麼夢想?「讓世界充滿機器人」

表 2:DSTC 評估
作者進一步在一個有 6K 個樣本的多參照測試集上評估了 DialoGPT。結果見表 3。測試過程使用了兩種設定:從頭開始訓練以及使用 GPT-2 作為預訓練模型進行微調。在這兩種設定中,更大的模型都總是優於更小的模型。另外表 3 的倒數第二行總結了執行互資訊最大化的結果。

微軟研究院開源DialoGPT:你有什麼夢想?「讓世界充滿機器人」

表 3:6K Reddit 多參照評估

表 4(互動式聊天)和表 5(有使用者提示的自播放聊天)給出了一些生成對話的樣本。

微軟研究院開源DialoGPT:你有什麼夢想?「讓世界充滿機器人」

表 4:解決常識問題

微軟研究院開源DialoGPT:你有什麼夢想?「讓世界充滿機器人」

表 5:多輪對話的互動式示例

有趣的是,新提出的模型表現出了在一定程度上解決常識問題的能力,作者猜想這可能要歸功於 Reddit 資料中可以學習到的豐富資訊。在某些案例中,模型並不是給出「所需的」答案,而會生成另一個可替代的合理答案。作者觀察到,該系統能比 RNN 對話生成系統更好地處理多輪對話生成,而且往往在上下文方面更能保持一致(表 5)。 作者還透過眾包評估了從 Reddit 6K 測試資料集隨機取樣的 2000 個測試源。系統經過了配對,每一對系統的輸出都被隨機呈現給 3 位評判者,他們會根據相關性、資訊量和生成結果與人類結果的相似程度使用一個 3 分制的類 Likert 度量對這些結果進行排名。作者先要求這些評判者經過了一個資格測試,並採用了一種垃圾檢測制度。表 7 給出了評判者在相關性、資訊量和人類相似度方面的整體偏好,結果用原始數值與佔整體的百分比來表示。

微軟研究院開源DialoGPT:你有什麼夢想?「讓世界充滿機器人」

表 7:在相關性、資訊量和人類響應可能性方面的人類評估結果

表 7 還表明「單純」的 DialoGPT 基質模型可能就已經能達到與人類響應相近的質量了。





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2665331/,如需轉載,請註明出處,否則將追究法律責任。

相關文章