會話式人工智能公司MindMeld發布了《會話式人工智能手冊》,該手冊概述了開發會話式應用程序所面臨的挑戰和步驟。
最近,一些核心企業開發了用于編寫會話式應用程序的初始解決方案。研究人員、科幻小說和電影很久以前就預言,人們有一天終將能夠像與另一個人類交談一樣地與機器交談。Amazon Alexa、Apple Siri、Google Assistant、Microsoft Cortana以及其他解決方案都在努力實現這個目標,設計構建出應用程序和框架,使開發人員能夠編寫出能理解人類言語并回答基本問題的應用程序。
MindMeld公司提供了一個平臺,開發人員可以在該平臺上創建基于深度領域會話式人工智能的應用。他們寫了一本手冊,按步驟指導那些有興趣開發這類應用程序的人。這本指南涵蓋了他們在這一領域多年來制定的一些原則和最佳實踐經驗。
MindMeld公司概述了一些開發會話式應用程序的可行方法:
規則引擎。使用這種方法,開發人員需要創建大量的規則,以便為每個問題選擇適當的答案。它是速度最快但又最有局限性的解決方案:
由于基于規則的框架并不提供人工智能功能來解析或分類輸入信息,開發人員必須手動編寫所有必要的信息處理和交互邏輯。通常情況下即使是簡單的應用程序也需要數百條規則來處理典型會話界面中的不同對話狀態。
該指南列出了BotKit和Microsoft Bot Framework等會話式應用程序的規則引擎。
NLP服務。另一種方法是使用基于云計算的自然語言處理(NLP)服務。 提供自然語言解釋服務是開發會話式應用程序必不可少的一個步驟,同時,MindMeld公司也認為這項服務還有一個額外目的:
這些服務通常由大型消費者互聯網公司提供,以吸引開發者上傳他們的訓練數據,從而幫助服務提供者改進自己的會話式人工智能。
機器學習。依賴于機器學習的工具包代表了更復雜的解決方案。它們提供了用于解釋數據的高級深度學習算法。這本指南列出了一些開發會話式應用程序的可行方案,比如Apple GraphLab Create、Google TensorFlow和Microsoft Cognitive Toolkit。
會話式人工智能平臺。這是基于機器學習的平臺,但是針對會話式應用程序進行了優化。里面包括了一些用于“意圖分類、實體識別、實體解析、問答和對話管理”的工具。
與基于云計算的NLP服務不同,會話式人工智能平臺不要求將培訓數據上傳到共享的云基礎設施上。相反,它們提供了一個靈活和通用的平臺,確保可以在本地管理數據集和訓練模型,并始終保持應用程序開發人員的知識產權。
對于這種方法,MindMeld公司只以他們自己的解決方案為例。當被問及MindMeld公司的平臺與其它解決方案的不同之處時,他們回答說:
像wit.ai,api.ai和LUIS這樣的工具可以幫助沒有數據科學背景的工程師構建簡單的NLP模型。但是MindMeld是更先進的機器學習平臺,能夠幫助數據科學家創建更高級的會話接口。例如,MindMeld使我們的客戶能夠創建自定義知識圖譜,從而深入了解他們的產品內容或目錄。MindMeld還可用于構建先進的、經過數千或數百萬次訓練的NLP模型。MindMeld還提供了一個最先進的問答系統,適用于任何知識領域。目前沒有一個基于網絡的NLP服務(比如wit.ai、api.ai或LUIS)能夠提供這樣的功能。
這本手冊還有一個使用MindMeld的平臺編寫會話式應用程序的10步實施指南。其中一些步驟也適用于其他解決方案。下面簡要總結一下這10個步驟:
選擇正確的用例。并非所有的用例都適合于會話式應用程序。選擇用例時要考慮到它是否類似于真實世界的人類交互,是否節省用戶的時間并且是否方便用戶使用。
編寫理想的對話互動??紤]用戶如何使用該應用程序,可能的對話是什么,這些對話需要包含哪些邊界情況,例如提問超出了應用程序范圍。
定義域、意圖、實體和角色層次結構。確定需要解釋的自然語言的基本要素。
定義對話狀態處理程序。確定所要進行的對話步驟,從交互開始到交互結束,并提供必要的細節。
創建問題解答器知識庫。這是理解和解答問題所需的信息庫。
生成代表性訓練數據。創建機器學習算法所需的數據集,以更好地了解該領域和可能進行的對話。
訓練自然語言處理分類器。這涉及訓練NLP引擎以識別域、意圖、用戶提及的實體以及這些實體所起的作用。
使用語言解析器。此步驟涉及配置語言解析器以正確地標識實體之間的關系從而創建解析樹。
優化問題解答性能。調試問題解答器以尋求最佳解答。
將訓練模型應用到生產環境。先測試應用程序,然后將其應用到實際生產。
如果您需要有關開發會話式應用程序的10個步驟的更多詳細信息,我們建議您閱讀這本指南。
參考英文原文:MindMeld’s Guide to Building Conversational Apps