聊天机器人中的深度学习技术(引言)
譯者:劉翔宇 ?審核:趙屹華
責編:周建丁(zhoujd@csdn.net)
聊天機器人,又被稱為會話代理或者對話系統,它是一個熱門的話題。微軟在聊天機器人上下了 很大的成本 ,Facebook(M),蘋果公司(Siri),谷歌,微信,和Slack也是如此。聊天機器人在初創公司中掀起了一種新浪潮,他們試圖通過建立類似于 Operator 或 x.ai 這樣的應用程序,類似于 Chatfuel 這樣的平臺以及類似 Howdy’s Botkit 這樣的機器人庫來改變消費者與服務的交互。最近微軟發布了自己的 機器人開發者框架 。
許多公司都希望開發出有人類水準能夠進行自然對話的機器人,并且許多公司都聲稱使用自然語言處理和深度學習技術來實現。但是隨著AI被大肆炒作,很難將事實與虛幻區分開來。
在本系列中,我會介紹用于構建會話代理所用到的一些深度學習技術,首先我將闡述我們目前所處的階段,哪些可能實現,以及又有哪些,至少在短期內幾乎不可能實現。這篇文章將作為一個介紹,我們會在接下來的文章中深入講解實現細節。
模型分類法
基于檢索(Retrieval-Based)與生成模型(Generative Models)
基于檢索的模型(更容易)使用一套預定義的響應和一些啟發式方法,根據輸入和上下文來選擇適當響應。啟發式方法可以和基于規則表達式匹配一樣簡單,也可以和組合機器學習分類器一樣復雜。這些系統不產生任何新的文本,它們只是從固定的數據集中選擇響應。
生成模型(更困難)不依賴于預定義的響應。它們從頭開始生成新的響應。生成模型通常基于機器翻譯技術,只不過不是將一門語言翻譯成另一門語言,而是將一個輸入“翻譯”成一個輸出(響應)。
這兩種方法都有一些明顯的優點和缺點。由于有一套人工響應,基于檢索的方法不會犯語法錯誤。然而,它們可能無法處理未知情況下的數據,因為沒有合適的預定義的響應。出于同樣的原因,這些模型不能引用回上下文中實體的信息,比如前面會話中提到的人名。生成模型就“更聰明”了。它們可以引用到輸入中的實體,并讓你覺得你在與一個人在交談。然而,這些模型很難訓練,很容易犯語法錯誤(特別是語句比較長的時候),這些模型通常也需要大量的訓練數據。
深度學習技術可以同時用于基于檢索模型和生成模型,但是研究者似乎往生成模型方面研究。類似于 序列-序列 (Sequence to Sequence )的深度學習架構唯一適用于生成文本,研究人員希望在這一領域取得突破。但是,我們仍處于構建合理工作的生成模型的初級階段。目前來說生產系統更多的是使用基于檢索的模型。
長對話與短對話
對話越長,越難以自動化。短文本對話(更容易)的目標是創建一個針對一個輸入的響應。比如你收到一個用戶的提問然后回復一個合適的答案。長對話(更困難)需要轉多個彎,而且還要跟上對話的節奏。客戶支持對話通常是有很多提問的長對話。
開域(Open Domain )與閉域(Closed Domain)
在開域(更困難)中設定了用戶可以隨時隨地通話。不一定要有一個明確的目標或意圖。在諸如Twitter和Reddit這樣的社交媒體網站上的對話是開域的——它們可以是任何方面的。無限的主題和一定數量關于世界知識的必要性使得創造合理的響應比較困難。
在閉域(更容易)中設定了可能的輸入和輸出的有限空間,因為系統是為了實現某一特定目標。客戶技術支持和購物助手就是閉域的例子。這些系統不需要能夠談論政治,它們只需要盡可能高效地完成它們特定的任務。當然,用戶仍然可以在任何地方發起對話,但是系統并不要求能夠處理所有的情況——用戶也不指望它能這么做。
共同挑戰
構建對話代理的時候有一些明顯和不那么明顯的挑戰,其中大部分屬于活躍的研究領域。
結合上下文
要產生有意義的響應系統可能需要結合語境和物理環境。在長對話中,人們會記住說了什么以及交換了什么信息。這是語境的一個例子。最常見的方法是將對話 放到 一個向量中,但是在長對話中這么做是具有挑戰性的。 Building End-To-EndDialogue Systems Using Generative Hierarchical Neural Network Models 和 Attention with Intentionfor a Neural Network Conversation Model 中的實驗都屬于這方面。可能還需要加入其它上下文數據,比如日期/時間,地點,或者用戶信息。
相干個性(Coherent Personality)
代理在產生響應時,應當對語義相同的輸入產生一致的答案。比如,當你問“你多大了?”和“你年齡多少?”時,你想得到相同的答案。這聽起來很簡單,但是將這種固定的知識或“個性化”與模型結合還屬于研究課題。許多系統學習產生語義似乎合理的響應,但它們沒有被訓練來產生語義一致的響應。通常這是因為它們在來自于很多不同用戶數據上訓練而成。 A Persona-Based NeuralConversation Model 中的模型在明確建模個性化方向邁出了第一步。
模型評估
評估一個會話代理的理想方法是測試它是否履行了其任務,例如在一個給定的對話中解決客戶支持問題。但是這樣的標簽很難獲得,因為這需要人工判斷和評估。有時候沒有明確定義的目標,比如在開域模型的情況下。機器翻譯中常見的指標,比如 BLEU ,基于文本匹配的方法在這里并不合適,因為合理的響應可以包含完全不同的詞或短語。事實上,在 How NOT To Evaluate YourDialogue System: An Empirical Study of Unsupervised Evaluation Metrics forDialogue Response Generation 中,研究人員發現沒有一個常用的指標與人類判斷相符。
意圖和多樣性
生成系統的一個常見問題是它們往往會產生適用于許多輸入樣例的通用響應,比如“那太棒了!”或者“我不知道”。谷歌Smart Reply的早期版本 往往會對任何事情回復“我愛你” 。這可能是這些系統的訓練方式導致的,無論是在數據方面還是實際訓練的目標/算法上。? 一些研究人員試圖通過各種目標函數來人工促進多樣性 。然而,人類通常產生針對特定輸入以及帶有意圖的響應。因為生成系統(尤其是開域系統)并沒有被訓練有特定意圖,所以它們缺少這種多樣性。
它實際效果如何?
鑒于目前所有的尖端研究,我們處在哪個階段以及這些系統實際工作效果如何?讓我們再次考慮我們所說的分類。一個基于檢索的開域系統很明顯不可能實現,因為你不可能指定對于所有情況下足夠的響應。一個生成模型的開域系統幾乎就是強人工智能(AGI)了,因為它需要處理所有可能出現的情況。這同樣遙不可及(但是有大量的研究正在朝這方面努力)。
這就給我們帶來了這樣一個問題,生成模型和基于檢索的方法在閉域中都適用。對話越長,上下文越重要,那么問題也變的越復雜。
在最近的 一次采訪 中,百度首席科學家吳恩達這么說:
如今深度學習大多數的價值是在狹窄領域,你可以從中獲取大量數據。而下面這個例子是它做不到的:進行一場有意義的對話。如果你擇優挑選對話,你會覺得它看起來有意義,但是如果你自己進行這么一場對話的話,你就會發現不同了。許多公司將他們的對話外包給其他人,并且承諾一旦他們收集到足夠的數據他們可以將對話“自動化”。這只可能在狹窄領域的情況下實現——比如Uber聊天接口。任何開放一點的領域(比如銷售電子郵件)都超出了我們的能力范圍。但是,我們可以使用這些系統進行提議和修正響應來幫助人類。這就更加可行了。
生產系統中的語法錯誤代價是非常昂貴的,它可能會造成用戶流失。這就是為什么大多數系統還是選擇使用基于檢索的方法,這樣可以避免語法錯誤和無禮的響應。如果公司能夠得到海量的數據,那么生成模型的方式是可行的——但是它們需要 類似微軟的Tay 那樣使用其他技術來防止偏離主題。
未來章節和閱讀列表
在接下來的文章中,我們將講述使用深度學習實現基于檢索和生成會話模型的技術細節,如果你對一些研究感興趣,你可以閱讀下面這些論文來作為鋪墊:
- Neural Responding Machine for Short-Text Conversation (2015-03)
- A Neural Conversational Model (2015-06)
- A Neural Network Approach to Context-Sensitive Generation of Conversational Responses (2015-06)
- The Ubuntu Dialogue Corpus: A Large Dataset for Research in Unstructured Multi-Turn Dialogue Systems (2015-06)
- Building End-To-End Dialogue Systems Using Generative Hierarchical Neural Network Models (2015-07)
- A Diversity-Promoting Objective Function for Neural Conversation Models (2015-10)
- Attention with Intention for a Neural Network Conversation Model (2015-10)
- Improved Deep Learning Baselines for Ubuntu Corpus Dialogs (2015-10)
- A Survey of Available Corpora for Building Data-Driven Dialogue Systems (2015-12)
- Incorporating Copying Mechanism in Sequence-to-Sequence Learning (2016-03)
- A Persona-Based Neural Conversation Model (2016-03)
- How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation (2016-03)
總結
以上是生活随笔為你收集整理的聊天机器人中的深度学习技术(引言)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电商系统的高并发设计和挑战
- 下一篇: 卷积神经网络模型如何辨识裸体图片