用Facebook Messenger上的Poncho Weather舉例,假設我下周一要去聖地亞哥參加一個會議并想知道屆時那邊的天氣怎麼樣,正如下圖所示,它很難理解我的聊天主題。
理解語言很難,開發者正研究适用于bot的技術來解決這一問題。那麼我們如何才能使這些會話能力有限的機器人變得更加智能呢?我想答案顯而易見:人工智能。
chatbot需要大量手動編程
經常無法理解用戶的要求
無記憶能力
無法理解後續問題以及上下文
脫離腳本時,bot無法自己決策、解決問題
使用無差異的語言模闆,bot總會提出重複問題
想象一下,你想要構建一個解決以上問題的聊天機器人,需要哪些組件? 首先,bot必須理解用戶所說的内容。 然後,bot需要學習在對話中如何持續理解對方并響應。 這分為四個階段:
自然語言理解:識别出用戶真正意圖
狀态追蹤:理解當下讨論的内容以及在這個對話中的讨論主題
對話管理:推理談話過程以決定接下來說什麼
自然語言生成:用自然語言進行回複
我們的bot如何學習
這裡我們會關注對話管理。這是由機器自主決策的模塊,通常無法人工操控。
訓練對話管理器
對話管理器是整個系統的大腦,它将決定如何根據之前發生的對話進行下一步對話。對話管理器的訓練可以通過兩步完成。整個概念來自于模拟人類如何學習來執行一個新的任務。
首先,我們要理解任務本身,并通過觀察其他人如何執行來了解成功完成的策略。 然後,我們嘗試執行任務,并根據自身已知的錯誤調整接下來的行為。 同理,對話管理器首先學習的是自然的對話。
以我們的零售機器人為例,人工客服和顧客之間對話文本可以用來進行這部分訓練。這是一個很好的開始,但對話管理器依然需要去适應其他未經學習的行為,可以通過模拟器進行對話然後再與真實用戶對話進行訓練。
這和人們如何學習新事物類似。當一個孩子學習棒球擊打時,她可能首先學習她爸爸如何擊球或者觀摩電視上的比賽。過了一段時間她爸爸教了她幾次如何揮棒,最終這個孩子開始自己揮棒并發揮得越來越好。
現在,大部分bot涉及大量人工設置,設定好較窄的行業領域、工作流和規則。當然,它們理解對話,但是做決策和自然語言生成還是完全由人工設定。Maluuba的技術通過學習決策進程領先于競争對手。在部署機器人和用戶交互之前,算法可從數據中習得。Maluuba能夠動态學習同時通過強化學習與真實用戶進行交互。這也是DeepMind如何教會AI玩Atari遊戲的方法,并讓AlphaGo學會下圍棋并打敗了人類世界冠軍。
第二階段深度學習
從技術角度來看,第一階段的訓練已經使bot通過人工客服與客戶的對話語料庫進行深度監督學習完成。在這個階段,學習中的機器人通過給定的聊天曆史記錄進行訓練,來預測對話行為。而對話行為體現了發言者意圖。如下圖:
第二階段的訓練通過強化學習實現。在強化學習的設置中,bot在未知環境中行動并據此獲得獎勵。bot的目标就是找到每個狀态下獲得最多獎勵的處理方法。
在這裡,bot的反應就是對話行為,獎勵就是用戶滿意度的預估,對話狀态就是聊天語料庫的體現。在這裡,未知環境指的是用戶行為:bot必須嘗試聊天語料庫中涉及的不同意圖并根據用戶滿意度的獎勵對行為做出調整。第二步深度學習重用了第一步的神經網絡,并且基于預估獎勵最大化的第二步神經網絡來調整映射。
Maluuba的研究已經論證相較于之前最先進的學習算法,使用這種二階段深度神經網絡方法提高了收斂速度并減少了人力投入。
Conversational Commerce 需要對話
聊天機器人在銷售、客戶服務和其他一些交互中有着巨大的潛能。客戶期待他們可以像與人交談一樣與chatbot互動。它們會問問題、做出表态、不時介入對話、改變想法以及轉換聊天話題。bot具有規模化的能力,不受約束,并且能夠持續學習的能力可以為企業和顧客都帶來諸多益處。也就是說,企業關注于bot的體驗不僅僅是滿足用戶需求,而且更希望bot以自身期望的方式去解決。
關注微信公衆号【BotDirIO】,查看更多企業級服務與bot領域有價值的信息。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!