Google:讓聊天機器人和你談笑風生

Google:讓聊天機器人和你談笑風生

原文來自Google AI Blog,作者Daniel Adiwardana

原文鏈接:https://ai.googleblog.com/2020/01/towards-conversational-agent-that-can.html?utm_source=Benedict%27s+Newsletter&utm_campaign=9fb8b1f9a9-Benedict%27s+Newsletter+321&utm_medium=email&utm_term=0_4999ca107f-9fb8b1f9a9-70979757&mc_cid=9fb8b1f9a9&mc_eid=0ac925b324

現代的聊天機器人往往非常專業,只要用戶的行為與預期相距不遠,它們的表現就會很好。為了更好地處理各種各樣的對話主題,開放領域的對話研究探索了一種補充方法,試圖開發一種聊天機器人,使之不專門針對聊天、但仍然可以與用戶聊任何內容。

這不僅是一個有趣的研究問題,而且還可以促進開發許多有趣的App,例如進一步人性化的計算機交互、改進外語練習,以及創作可關聯的交互式電影、視頻遊戲角色。

但是,當前的開放域聊天機器人有一個嚴重的缺陷:它們說的話通常沒有意義。有時,它們說話前後不一致,或者缺乏常識和關於世界的基本知識。此外,聊天機器人給的答案不是具體根據語境的回應。例如,“我不知道”可以用來回答任何問題,但並不具體。當前的聊天機器人這樣做的頻率比人高,因為對話過程有許多可能的用戶輸入。

在論文《邁向類似於人類的開放域聊天機器人》中,我們介紹了Meena,一個26億參數的端到端訓練的神經對話模型。我們證明,與現有的先進聊天機器人相比,Meena可以進行更合理、更具體的對話。我們針對開放域聊天機器人提出了一項新的人工評估指標,即合理度和具體度平均值(下稱SSA),能夠捕獲人類對話中基本但重要的屬性

值得注意的是,我們證明了困惑度(Perplexity)是一項自動指標,適用於任何神經對話模型,而且與SSA高度相關。

Google:讓聊天機器人和你談笑風生

Google:讓聊天機器人和你談笑風生

圖注:Meena(左)與某人(右)的聊天對話。

Meena

Meena是一種端到端的神經對話模型,可以學習根據特定語境做出明智回答。訓練的目標是最大程度地減少困惑度,即預測下一句的不確定性。在上文的例子中,指的是對話中的下一個詞。

它的核心在於Evolved Transformer(下稱ET)seq2seq架構,即一個由進化的神經架構搜索發現的transformer(語言模型)架構,用來降低困惑度。

具體而言,Meena具有單個ET編碼器模塊和13個ET解碼器模塊,如下圖所示。編碼器負責處理對話語境,以幫助Meena理解對話中已經說過的內容。然後,解碼器使用該信息來構成實際回答。通過調整超參數(hyper-parameters),我們發現功能強大的解碼器是提高對話質量的關鍵

Google:讓聊天機器人和你談笑風生

圖注:Meena的7句對話上下文和生成“下一代”回答,示例。

用於訓練的會話被組織為線索樹,其中每條線索中的每個答覆都被視為一個會話回合。我們提取每個會話訓練示例(具有七個上下文對話來回),作為線索樹的一條路徑。我們認為七個來回的對話是一個良好的平衡,一邊保證訓練的上下文長度足夠,一邊保證不超過內存限制,因為較長的上下文會佔用更多的內存。

Meena模型具有26億個參數,經過341 GB的文本訓練,這些文本是從公共社交媒體對話中過濾出來的。與現有的先進生成模型OpenAI GPT-2相比,Meena具有1.7倍的模型容量,並且受過8.5倍的數據訓練。

人工評估指標:SSA

現有的聊天機器人質量的人工評估指標往往很複雜,而且評估者之間沒有統一的指標。這促使我們設計了一種新的人工評估指標,即SSA,它捕獲了自然對話中的基本但重要的屬性。

為了計算SSA,我們與正在測試的聊天機器人進行了形式自由的對話。這些機器人包括Meena和其他著名的開放域聊天機器人,尤其是Mitsuku、Cleverbot、XiaoIce和DialoGPT。為了確保評估之間的一致性,每個對話都以相同的問候語“嗨!”開始。

對於每次講話,工作人員都會評估兩個問題:“回答有意義嗎?”和“回答是否具體?”。評估者需要用常識來判斷回答是否完全合理。如果出現任何問題,比如語義混亂、不合邏輯、脫離上下文或有事實性錯誤,則應將其回答評為“沒有意義”。

如果回答是有意義的,則需要評估回答是否符合給定的上下文。例如,如果A說“我愛網球”,而B回答“很好”,那麼回答應標記為“不具體”,因為這樣的答覆在許多不同的上下文中都可使用。但是,如果B回答:“我也是,我超愛費德勒!”,則回答被標記為“具體”,因為它與所討論的內容密切相關。

對於每個聊天機器人,我們通過大約100個對話收集了1,600至2,400個個人對話。每個模型的回答都由工作人員標記,以表明其是否合理和具體。聊天機器人的合理度是被標記為“合理”的回答,而具體度是被標記為“具體”的回答。這兩個的平均值是SSA分數。下面的結果表明,就SSA分數而言,Meena的表現大大優於現有的最先進的聊天機器人,並且正在縮小與人類表現的差距。

SSA

Google:讓聊天機器人和你談笑風生

圖注:與人類、Mitsuku、Cleverbot、XiaoIce和DialoGPT相比,Meena的合理度和具體度平均值(SSA)。

自動指標:困惑度

長期以來,研究人員一直在尋找一種自動評估指標,該指標與更準確的人工評估相關。這樣可以更快地開發對話模型,但是迄今為止,找到這樣的自動衡量標準一直是一個挑戰。出乎意料的是,在工作中,我們發現

困惑度是一種易於用在任何神經seq2seq模型的自動度衡量指標,它與人工評估(如SSA值)具有很強的相關性。困惑度用於衡量語言模型的不確定性。困惑度越低,模型就越有信心生成下一個標記,如字符、子單詞或單詞。從概念上講,困惑度表示在生成下一句時,模型試圖從中進行選擇的數量。

在開發過程中,我們對具有不同超參數和架構的八個不同模型版本進行了基準測試,例如層數、關注數、總訓練步驟、是否使用ET或常規Transformer,以及是否使用硬標籤或蒸餾(即知識提取)來訓練。如下圖所示,困惑度越低,模型的SSA評分越好,相關係數也很強(R2 = 0.93)。

Google:讓聊天機器人和你談笑風生

圖注:互動SSA與困惑度的比較。每個藍點代表Meena模型的不同版本。繪製出的迴歸線表示SSA和困惑度的強關聯。點線代表人類、其他模型、我們端到端訓練的模型Meena(base),以及具有過濾機制和優化解碼過的完整版Meena。

我們最好的端到端訓練的Meena模型稱為Meena(base),其困惑度為10.2(數字越小越好),轉化為SSA相當於72%。與其他聊天機器人的SSA相比,我們的SSA分數為72%,與普通人類86%的SSA相差不遠。完整版Meena具有過濾機制和優化解碼功能,可將SSA分數進一步提高到79%。

未來研究與挑戰

如先前所提倡的,我們將繼續通過改進算法、架構、數據和計算來降低神經對話模型的困惑度。

儘管我們只專注於合理度和具體度,但在後續工作中也會考慮其他屬性,例如個性和事實性。此外,解決模型中的安全性和偏差是我們關注的重點領域,鑑於與此相關的挑戰,我們目前尚未發佈外部研究演示。但是,我們正在評估與外部化模型檢查點相關的風險和收益,並可能選擇在未來幾個月中使用它,以幫助推進該領域的研究。

Google:讓聊天機器人和你談笑風生



分享到:


相關文章: