Categories
程式開發

谷歌打造神經對話模型Meena,模型容量為GPT-2的1.7倍


Chatbots(對話式機器人)往往具有高度專業性,只要回答與用戶的期望相差不遠,它們的性能就值得肯定。為了更好地處理不同的對話主題,開放域對話研究探索了一種新的方法,研究人員試圖開發一種非聊天專用機器人,雖然不以聊天為主要功能,但仍然可以滿足用戶的任何對話需求。

谷歌的研究人員認為:開放域對話研究除了是一個引人入勝的研究課題之外,這種對話機制還可以產生許多有趣的應用程序,例如進一步人性化的計算機交互、改進外語練習以及製作可關聯的交互式電影和遊戲角色。

但是,當前的開放域聊天機器人有一個嚴重的缺陷:它們通常沒有實用意義,比如對同一個問題的回答前後不一致,或者回答總是缺乏基本常識。此外,聊天機器人通常會給出並非特定於當前上下文的響應,例如,“我不知道”可以是對任何問題的回答,當前的聊天機器人比人類更經常這樣做,因為它涵蓋了許多可能的用戶輸入。

近日,在一篇名為《Towards a Human-like Open-Domain Chatbot》的論文中,谷歌的研究人員介紹了一個名為“Meena”的模型,它是一個包含了26億參數的端到端訓練型神經對話模型。

在論文中,研究人員表示:他們已經證明,與現有的最新聊天機器人相比,Meena可以進行更聰明、更具體的對話。他們針對開放域聊天機器人提出了一項新的人類評估指標,即敏感度和特異性平均值(SSA),該指標捕獲了人類對話的基本但重要的屬性。值得注意的是,研究人員證明了“困惑度”是一種易用於任何神經對話模型的自動指標,與SSA高度相關。

什麼是“Meena”

Meena是一種端到端的神經對話模型,可以學會對給定的對話環境做出更加聰明的反應。據介紹,Meena模型具有26億個參數,並經過341 GB的文本訓練,這些文本是從公共領域的社交媒體對話中過濾出來的,與現有的最新生成模型OpenAI GPT-2相比,Meena具有1.7倍的模型容量,並且受過8.5倍的數據訓練。

該模型訓練的目標是最大程度地減少“困惑度”,即預測下一個標記(會話中的下一個單詞)的不確定性。它的核心是Evolved Transformer seq2seq體系結構,這是一種通過進化神經體系結構搜索發現以改善困惑性的Transformer體系結構。

image

Meena(左)與人類的對話

具體而言,Meena具有單個Evolved Transformer編碼器塊和13個Evolved Transformer解碼器塊,如下所示。編碼器負責處理對話上下文,以幫助Meena理解對話中已經說過的內容,然後,解碼器使用該信息來製定響應。通過調整超參數,研究人員發現:功能更強大的解碼器是提高對話質量的關鍵。

image

用於訓練的對話被組織為樹線程,其中線程中的每個答复都被視為一個會話回合。研究人員提取了每個會話訓練示例(包含七次上下文轉換)作為通過樹線程的一條路徑,研究人員表示,選擇七次作為一個良好的平衡,是因為既要有足夠長的上下文來訓練會話模型,又要在內存約束內擬合模型(較長的上下文會佔用更多的內存)。

敏感性和特異性平均值(SSA)

現有的關於聊天機器人質量的人工評估指標往往很複雜,並且未在審閱者之間達成一致。這促使谷歌的研發人員設計了一種新的人類評估指標,即敏感度和特異度平均值(SSA),它捕獲了自然對話的基本但重要的屬性。

為了計算SSA,研究人員與參與測試的聊天機器人(Meena和其他知名的開放域聊天機器人共同參與測試,包括Mitsuku,Cleverbot,小冰和DialoGPT)進行了自由形式的對話眾包。

為了確保評估之間的一致性,每個對話都以相同的問候語“ 嗨!”開始,人類評估員會在對話過程中重點關注兩個問題:“回答是否有意義”以及“回答是否具體” ,每輪對話都要求評估者使用常識來判斷機器人的響應是否完全合理。如果出現任何問題,比如混淆,不合邏輯,脫離上下文或有事實性錯誤的,則應將其評定為“沒有意義”;如果響應是有意義的,則需要評估其回答以確定是否基於給定的上下文。

例如,如果A回答“ 我愛網球 ”,而B回答“ 很好 ”,那麼這段對話應標記為“不具體”,因為這樣的答复可以在許多不同的上下文中使用;但是如果B回應:“我也是,我太喜歡羅傑·費德勒了!”那麼就可以將其標記為“特定”,因為它的回答與前文所討論的內容密切相關。

對於每個聊天機器人,研究人員通過大約100個對話收集了1600至2400種個人對話,每個模型響應都由評估人員標記,以表明其回答是否合理和具體。聊天機器人的敏感度是標記為“敏感”的響應的一部分,而特異性是標記為“特定”的響應的一部分,這兩個數值的平均值是SSA分數。

下面的結果表明,就SSA分數而言,Meena的表現大大優於現有的最新聊天機器人,並且正在縮小與人類的差距。

image

自動評估度量:困惑度

研究人員長期以來一直在尋求一種與更準確的人工評估相關的自動評估度量,這樣做可以更快地開發對話模型,但是迄今為止,找到這樣的自動度量標準一直是一個挑戰。出乎意料的是,谷歌研究人員發現,在他們的工作中,“困惑度”似乎符合這一種自動度量標準,它可隨時用於任何神經seq2seq模型,表現出與人工評估(如SSA值)的強烈相關性。

谷歌研究人員關於“困惑度”的解釋是這樣的:困惑度用於衡量語言模型的不確定性,困惑度越低,模型就越有信心生成下一個標記(如字符、子詞或單詞)。從概念上講,困惑度表示模型在生成下一個回答時試圖選擇的選項數量。

在開發過程中,研發人員對具有不同超參數和體系結構的八個不同模型版本進行了基準測試,例如層數、關注頭(attention heads)、總訓練步驟、是否使用Evolved Transformer或常規Transformer以及是否使用硬標籤或“蒸餾”進行訓練。如下圖所示,困惑度越低,模型的SSA評分越好,相關係數也很強(R 2 = 0.93)。

編者註:知識蒸餾(有時也稱為師生學習)是一種壓縮技術,要求對小型模型進行訓練,以使其擁有類似於大型模型(或者模型集合)的行為特徵。

image

交互式SSA與困惑度。每個藍點都是Meena模型的不同版本,通過繪製一條回歸線,表明SSA和困惑之間存在很強的相關性。虛線分別對應人類、其他機器人、Meena(base)、端到端訓練模型的SSA性能,以及最終的具有過濾機制和已調諧解碼的完整Meena。

谷歌表示,他們研發的最好的端到端Meena模型(稱為Meena(base))的困惑度為10.2(越小越好),並且SSA分數轉換為72%,完整版的Meena具有過濾機制和經過解碼的解碼功能,可將SSA分數進一步提高到79%。

未來的研究與挑戰

對於未來的規劃,谷歌的研發人員表示將繼續通過改進算法,體系結構,數據和計算來降低神經對話模型的困惑度。雖然目前研發人員只專注於這項工作中的明智性和特殊性,但其他屬性(例如事實性等)在後續工作中也值得考慮。此外,解決模型中的安全性和偏差是谷歌關注的重點領域。

參考鏈接:

https://ai.googleblog.com/2020/01/towards-conversational-agent-that-c​​an.html

https://venturebeat.com/2020/01/28/meena-is-googles-attempt-at-making-true-conversational-ai/