[譯]在聊天機器人系統中應用深度學習技術,第一章:介紹

[譯]Deep Learning for Chatbots, Part 1 – Introduction原文地址
聊天機器人(chatbots),又稱為對話系統(Conversational Agents or Dialog Systems),是實下很熱門的一個議題。微軟就在這個領域下了很大的賭注,而且類似微軟的還包括有臉書(推出了虛擬助手M)、蘋果(有廣為人知的Siri)、谷歌、微信和Slack。一大波新興初創公司想要通過這個技術改變客戶與服務提供商的交互方式,如APPOperatorx.ai,如聊天框架chatfuel,又比如聊天開發庫Howdy's Botkit。微軟最近發布了它們自己的機器人開發框架
很多公司都希望研發一個機器人能夠擁有與人類對話相近的效果,而且它們還聲稱要用NLP(Natural Language Process自然語言處理)和DL(Deep Learning深度學習)技術來實現它。但是所有關于AI的宣傳都很難使它們所設想的成為現實。
在這個系列文章中,我想要重溫一些用于構建對話系統的深度學習技術,從我們目前的技術水平開始,來聊一聊什么是能夠做到的,什么是在短時間內不可能實現的。這篇文章將作為一個介紹,并且在接下來的文章中深入實現細節。


一、模型的研究方向分類

1. 基于答案抽取的模型VS生成模型

基于答案抽取的模型(屬于較為簡單的方式),使用一個預定義好答案的知識庫基于輸入和文本啟發式的選擇一個最合適的回答。這個啟發式方法可以是基于表達式規則的匹配,或者更復雜的基于機器學習的分類器。這些系統并不會生成新文本,它們只是從固定的集合中選擇一個作為響應。
生成模型(復雜而艱難的方式),它并不依賴于預定義答案庫。它能從無到有生成新的響應。生成模型通常用在機器翻譯技術上,而這里的‘翻譯‘則并不是從一種語言到另一種語言,取而代之的是從輸入到輸出。


Neural Conversational Model
Neural Conversational Model

兩種方法各有優缺點。由于是手工的響應,所以基于答案抽取的模型不會發生語法上的錯誤。但它無法處理沒有合適的預定義響應的實例。同樣的,這種模型不能在對話中聯系上下文信息,比如之前提到的名字等。生成模型則更‘智能‘,它能提到之前輸入的實體信息讓人們感覺在和一個真人聊天一樣。然而,這種模型很難訓練,并且很容易產生語法錯誤,而且還需要海量的訓練數據。
深度學習技術在兩種模型上都能應用,但是研究者似乎更傾向于生成模型的方向。seq2seq是目前最合適的文本生成模型,研究者希望在這個領域快速取得突破。然而我們在設計一個工作良好的生成模型的目標上還處于一個非常早期的階段。目前工業界的生產系統上也多半是基于抽取的模型。

2. 短對話VS長對話

更長的對話顯然自動化處理起來更加困難。一方面是短文本只要為單一的輸入創建單一的輸出,比如,你從用戶那收到一個特定的問題然后你響應一個合適的答案。而長對話則需要你在多輪對話之后還保持之前對話的信息。客戶向導對話就是一個典型有多個問題的長對話。

3. 開放域VS限定域

開放域要求用戶可以在任何領域開始一段對話。在有明確意圖和目標的情況下這不是必須的。在社交媒體如Twitter和Reddit上的對話就是一個典型的開放域對話--對話主題可以在任意方向上展開。需要無數的主題和事實知識才能創建合理的響應讓它變得異常的困難。
限定域的輸入空間和輸出空間都被限定在一個量級內,因為系統只要實現一個具體的目標。技術支持和購物向導就是一個典型的限定域問題。這些系統不需要與你討論政治,它們只需要盡可能的有效的完成指定的任務即可。當然,用戶仍然可以在任意想要的領域展開一段對話,但是,系統并不需要一定處理這些實例,用戶也不會期望得到一個很好的響應。

二、挑戰

在構建對話模型的工作中,有很多活躍的研究領域,其中有些明顯的也有一些不那么常見的挑戰。

1. 上下文結合(incorporating context)

要生成一個合理的響應,系統需要結合語義上下文和環境上下文。在長對話中,人們要要記住雙方說過什么又和對方交換過什么信息。這就是一個語境的例子。最常見的方法是用詞向量技術把對話轉變為向量表示,但是在長對話中使用這種技術也是一個挑戰。論文Building End-To-End Dialogue Systems Using Generative Hierarchical Neural Network ModelsAttention with Intention for a Neural Network Conversation Model都是在這個方向上進行了嘗試。其中一個需要結合一些其它語境數據如時間、地點、或者用戶信息。

2. 個人相干性(coherent personality)

在生成響應的時候系統必須對語義相同的輸入生成一致的回答。比如,你想要在‘你多大了?’和‘你幾歲了?’這兩個問題上得到一樣的回復。這聽起來很簡單,但是要把這些特定的知識和個人相干的信息放到模型當中是一個非常難的研究課題。很多系統經過學習能生成一些似是而非的回答,但是它們都沒有能訓練出一個能生成確定語義信息的模型出來。通常認為這是因為訓練的數據來自于不同的用戶。論文A Persona-Based Neural Conversation Model在明確的個人模型這個方向上走出了第一步。

Example of incoherent responses of Neural Conversational Model
Example of incoherent responses of Neural Conversational Model

3. 模型評估

評估對話系統的一個思路是計量這個系統是否能令人滿意的完成一個任務,比如在對話中解決用戶向導的問題。但是這個方法的代價很大,因為這需要人工的判斷和評估。在開放域中有些情況甚至沒有一個能明確定義的目標結果。在機器翻譯領域常見的一個指標BLEU,它是基于文本匹配的,所以也不適合用在對話模型中評估響應的結果,因為它可能包含完全不同的單詞和短語。事實上,在論文How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation的研究中發現沒有任何一個通用的指標與人的判斷有關。

4. 意圖和多樣性

一個常見的問題是生成模型傾向于產生通用的回答,比如‘真叼!’或者‘我不懂。’之類的東西,它在面對很多輸入實例時都管用。谷歌早期的智能回復系統就往往不管你輸入什么都回答你‘我喜歡你喲’這樣的話來。這大部分原因是受這個系統所用的訓練語料和算法的影響。Some researchers have tried to artificially promote diversity through various objective functions一些研究者也嘗試了通過增加目標函數來人工的提高響應的多樣性。然而,人們一般根據指定的輸入和意圖來生成不同的回答,而由于生成模型訓練并沒有說攜帶指定的意圖所以它們都卡在了這個多樣性上。

三、它究竟效果如何?

以現有的尖端研究來看,我們究竟走到了哪,這個系統的效果如何?讓我們回過頭來再看看兩個實現方向,基于答案抽取的系統在開放域是明顯行不通的,因為你手工編纂的答案不可能覆蓋所有的情況,而一個開放域的生成模型則差不多就是一個‘強智能’了,因為它要處理所有的場景,我們離這個目標還有很長的路要走(當然很多研究者正在這條路上前行)。
這也給我們留下了一個問題,雖然在限定域這兩種模型都是適用的,但是對話越長、上下文越重要,這個問題就越難以解決。
在最近的一個采訪中,百度首席科學家吳恩達指出:

'深度學習現如今最大的價值在那些你能夠獲得足夠的數據量的子領域,而一個它無法做到的例子就是:實現一段有意義的對話。有一些演示,如果你挑一些對話片段出來,它看上去貌似一段有意義的對話,但其實如果你真的自己來嘗試一番,你會發現它很快就脫軌了。'

很多初創公司對外提供對話模型的接口并聲稱保證它們能夠自動化,因為它們已經獲取了足夠的數據,那只有一種可能,就是它們是在一個很狹窄的領域--比如在聊天中打車。任何一個稍微大一點的領域中(比如銷售的電子郵件)就超越了我們目前能做的極限。然而,我們還是可以用這個系統發出和修正回答來幫助人工,這是目前切實可行的。
在生產系統中出現語法錯誤是代價非常高的問題,用戶很可能就因此離去。這也是為何目前大部分的系統都采用基于答案抽取的模型的原因,這個模型不會有語法上的錯誤和冒犯性的語句。如果一個公司能獲取這樣一個手工的大數據庫那這個生成模型就是可行的--但是它們需要通過一些其它的技術來防止發生類似微軟Tay犯下的錯誤。

四、接下來要寫的和一些值得一看的文章列表

在下一章中,我們將深入聊天機器人這一技術的細節,并基于深度學習實現一個基于答案抽取的模型和一個生成模型,但如果你有興趣的話你也可以通過下面這些論文來了解相關的研究進展,這會是一個很好的開始:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,157評論 2 375

推薦閱讀更多精彩內容