聊天機器人為人們帶來一種智慧的感覺,但實現真正的智能還有很長的路要走。
歡迎來到智能聊天機器人的世界:智能伴侶和會話代理將讓人們的生活更加智慧。一篇人工智能行業的研究論文甚至指出,到2020年,人類與機器人的交流甚至比其配偶交流還要多。所以,人們需要為接受這種新生活做好準備。
第一個人形機器人Sofia得到行業媒體的廣泛關注,并使用類似人類的對話進行采訪。Sofia與人類相比如何?事實超出了人們的想像。Sofia聊天機器人只提供了理解對話的假象,但是當記者提出比較復雜的問題時,開始意識到Sofia只能回答一組固定的問題。
那么到現在為止,人們需要對聊天機器人有更加清晰的認識。
企業是否應該投資具有這些限制因素的聊天機器人?每種聊天機器人技術都有其缺陷,但需要了解現在可以構建的內容、需要避免的內容,以及如何突破這些限制。
許多企業嘗試使用行業領先的聊天機器人供應商和云計算技術來構建復雜的聊天機器人,并進行了大量投資,卻遇到了一些障礙。如果企業是根據計劃的內容實施項目并開始構建的話,很快就會認識到這些限制。然而,大多數供應商都聲稱構建聊天機器人很容易,但實際上,在構建真正的會話代理時,所有這些技術都不盡如人意。
通過聊天機器人的當前實現,人們采用的可能是第一代人工智能聊天機器人,它們通過編寫腳本來回答針對性的問題。這里所說的“腳本化”是指聊天機器人經過訓練,能夠理解一般詞匯、實體、隱喻、同義詞等。聊天機器人使用一組固定的數據流來理解場景。對于特定于領域的用例,需要進行額外的訓練,并且需要對特定領域術語和單詞之間的關系進行訓練。例如,如果企業正在建立一個購物顧問聊天機器人,“黑白相間的連衣裙”意味著“黑白”作為顏色和服裝的類別。人們可能會期望顏色“黑白”是相當通用的,應該很容易被人工智能系統識別出來,但事實并非如此,將在本文中介紹這一點。
本文的目的是幫助人們就如何使用現有的聊天機器人實現設計人工智能聊天機器人和解決方案做出明智的決定。
什么是聊天機器人?
聊天機器人是機器人與人類進行對話的軟件程序。這種對話可以通過文本方法、語音,甚至通過識別人類表達來實現。
聊天機器人的互動范圍從簡單的答案到諸如“外部溫度是多少”等問題,以及需要進行一系列對話以獲得結果的復雜用例,例如使用聊天機器人預訂假期旅行或提供財務建議。
用于構建聊天機器人的技術是什么?
聊天機器人并不是一個新概念。早期的技術使用來自用戶的一組固定輸入來驅動對話或掃描輸入消息,以從數據庫中查找關鍵字和查找信息/響應。這些都是基于規則和關鍵字驅動的,而無需機器人理解輸入消息的場景和含義。基于輸入,將提供預定義的編程響應。
隨著人工智能的出現,聊天機器人使用自然語言處理等技術來理解輸入消息中的語言和意圖,并采取糾正措施。當人工智能系統試圖理解人類語言,而以多種方式問相同的問題時,人工智能系統能夠理解總體意圖。一旦確定了意圖,就可以從輸入中提取感興趣的主題。
例如,“找到從美國到英國的最便宜的航班”,其意思類似于“找到從美國到英國的價格最低機票”。其意圖是最便宜或價格最低的航班,而位置是從美國到英國的航班。
人工智能開源軟件包或人工智能的自然語言處理(NLP)云服務可以用來開發聊天機器人,人們將其稱之為“聊天機器人實現”,以備將來參考。在本文中,將詳細討論聊天機器人的實現。
開發人工智能聊天機器人應該記住什么?
當人工智能系統很好地理解域時,聊天機器人工作得很好。
由于人工智能聊天機器人依賴于自然學習處理(NLP)來理解輸入消息的語義,除非在域上訓練自然學習處理(NLP)解析器,否則識別感興趣的意圖和主題的準確性將是非常低或不可接受的。
以購物聊天機器人為例,它根據最新的流行趨勢為用戶提供購買建議。
考慮以下來自用戶的3個查詢。
查詢1-“展示黑白顏色的流行趨勢,適用于中等規模的圣誕派對的禮服。”
查詢2-“展示白色3英寸高跟鞋。”
查詢3-“找一件2000美元以下的黑白花卉連衣裙。”
在這里,聊天機器人需要了解以下內容:
•購物語言。
•作為購物查詢的意圖
•域作為服裝和鞋子的購物查詢。(即可以有多個域,例如雜貨、電子產品、書籍等)
•服裝購物類別和術語:
o類別-連衣裙、高跟鞋等
o變量- 尺寸(中/大等),顏色(各種顏色和組合,如黑色和白色),鞋跟尺寸(3英寸)等。
o價格和范圍 - 2000美元-3000美元
o品牌– 例如AND、耐克等
任何聊天機器人實現都不會理解域。開發者需要在自定義域上訓練聊天機器人以識別場景和語言。
例如,現有的自然學習處理(NLP)解析器不會將“AND”識別為品牌。那么來看看一些領先的Cloud AI NLP服務如何識別這句話,“找一件2000美元以下的黑白花卉連衣裙。”
這是Watson NLP實現的快照
Watson NLP的概念
來自Watson NLP的部分結果
正如人們所看到的,Watson NLP將“白色花卉連衣裙”視為關鍵詞,將“黑色”視為概念。理想情況下,它應該將“黑白”識別為一個概念,因為正在尋找這些顏色的組合。
這件衣服也可以是一個概念,因為它非常通用。花卉可以是其服裝的關鍵字。以正確的方式識別所有事實很重要,因為根據事實,可以將其轉換為搜索查詢,以從數據存儲(或從相應的搜索索引)獲取所需的詳細信息。
例如,上述內容應分解為:
顏色=“黑與白”
類別 =“連衣裙”
性別=“女性”
價格<2000美元
圖案=“floral”或類別中的關鍵字=“floral”
(顏色、類別、性別、價格、圖案是人們要搜索的所有列或索引)
Watson NLP解析器不會將“AND”識別為一種品牌,而將“AND”識別為“和”這個連詞,這并不奇怪,因為它沒有接受此輸入的訓練。
那么來看看Google NLP如何對這句話進行分類。以下是Google NLP的快照。
來自Google NLP的實體分類
Google NLP部分展示結果
從上圖中可以看出,Google NLP將實體識別為“服裝”,但不識別“黑白”的顏色。對于品牌標記的部分,它就像Watson NLP識別“AND”一樣,認為它是一個連詞而不是品牌。
以上情況適用于任何可用的自然學習處理(NLP)實現,它無法理解句子的正確場景。其用例非常簡單。即使在這些示例中訓練自然學習處理(NLP)實現,它也會失敗,因為開發者需要為這些條件插入特定的自然學習處理(NLP)規則以獲得所需的結果。隨著需要推斷的復雜性和場景的增加,進行訓練也無濟于事,因為開發者永遠無法為此類條件提出通用模型。如果只依賴目前的自然學習處理(NLP)實現的話,這將成為開發聊天機器人的最大限制。
根據行業專家在構建復雜的購物個性化顧問方面的經驗,所有現成的人工智能自然學習處理(NLP)實施都不符合要求。這三個短語中有一個簡單的場景:“黑白連衣裙”,“黑色連衣裙”和“藍色牛仔褲和白色襯衫”。在所有3個例子中,“AND”這個詞的使用有一個不同的意思。在第一種情況下,它表示顏色“黑白”的組合,在第二種情況下,“AND”代表品牌,而在第三種情況下,AND是兩種查詢的連接(也就是“和”)。即使有必要的訓練,任何可用的解決方案都無法實現推廣模型。這些只是需要強調的眾多例子中的一小部分。想象一下處理醫學文獻時的復雜性。在這個案例中,最終構建了針對所有此類場景的特定于域的自然學習處理(NLP)實現。
一般來說,在設計聊天機器人解決方案時,從一個封閉的域開始,以及聊天機器人需要回答什么樣的問題。不要從一開始就構建通用聊天機器人,因為很難獲得所需的準確性。其次,如果開發者使用的是云計算供應商或第三方實現,請確保其用例可以通過默認實現,或者需要構建組件來解決它。
構建聊天機器人的典型用例是什么?
在當今的數字時代,客戶正在尋找即時信息和快速解決所有問題的方法。
聊天機器人提供了一種有效的方式,可以直接與終端客戶保持聯系,并提供信息——無論是通過消息聊天應用程序,還是通過Alexa或Google Home等支持語音的服務。
下面列出了一些典型的用例:
•了解客戶并通過各種渠道直接與客戶互動的能力,如零售品牌直接與最終客戶聯系。
•提高客戶參與度、互動性,并提供快速解決方案。
•通過全天候向客戶提供相關信息來擴展客戶服務運營。
•更好地了解客戶及其偏好,以提供超個性化服務,如個人助理。
•提供以自然直觀的方式與智能家居等互聯設備進行交互的能力。
•提供專家指導,如提供投資建議的財務助理的聊天機器人。
構建人工智能聊天機器人的高級步驟是什么?
以下是構建人工智能聊天機器人的高級步驟:
•定義構建聊天機器人的業務用例和最終目標。
•定義對話接口
o定義需要回答的問題類型
o定義關于用戶如何進行各種交互的對話/對話流程。例如,預訂航班是一個對話流程,預訂酒店是另一個對話流程等。而在對話流程中,與用戶的交互流程是什么?
o定義如何捕獲用戶關于所提供答案的反饋。反饋可以是明確的,例如用戶對答案進行評級,或者是隱式的,比如用戶花費多少時間查看答案以及后續活動。
•問題/答案探索
o確定問題的現有來源(如果有),例如網站常見問題解答、呼叫中心日志等。
o創建將要詢問的問題的表示。
o創造不同的問題來訓練聊天機器人理解語言并能很好地概括。
o確定答案來源-是程序化響應還是來自內部知識來源和文檔(如解決設備相關問題的可用技術手冊)
•采用技術方法
在此步驟中,開發者將決定如何實現聊天機器人。有兩種方法:使用可用的框架(如TensorFlow、NLP實施的NLP實現)和自定義組件或使用現有的平臺服務(如Google NLP、Amazon Lex或Azure Bot服務)構建開發者自己的聊天機器人實例。
在這兩種方法中,開發者都需要訓練聊天機器人實例以識別問題意圖、域和語言。現有平臺服務通過提供使創建聊天機器人更容易的必需實用程序簡化了此過程。
•選擇交付渠道
在此步驟中,開發者將決定如何通過所需通道向最終用戶公開聊天機器人。該頻道可以是網絡、移動或語音設備。
聊天實例通常會公開API(提出問題并獲得響應),這可以通過渠道實施來調用。開發者還可以通過Facebook Messenger等第三方服務或Amazon Alexa等語音服務發布開發者的聊天機器人實施。
•發布、監控和反饋
聊天機器人發布之后,開發者通常會存儲所有用戶交互,以幫助其更好地分析用戶行為及其偏好。反過來,用戶和行為數據將用于提供更個性化的服務。如何使用此新用戶信息取決于開發者的用例。例如,如果旅行聊天機器人推薦新的假期旅行,它可以根據其上次的旅行互動建議選項。開發者需要構建一個推薦系統,該系統會查看過去用戶交互的歷史記錄并建議選項。
另一個重點是定期捕獲用戶的反饋,以了解聊天機器人是否提供了正確的信息。捕獲的反饋將用于改進聊天機器人實施,這可以導致使用新信息訓練聊天機器人實施。例如,開發者的聊天機器人可能未接受過識別某些實體和概念的培訓,因此,其答案可能不合適。開發者需要根據反饋計劃構建和發布增量模型。
如何將聊天機器人與第三方服務集成?
作為聊天機器人技術實施的一部分,聊天機器人實例通常會公開API(提出問題并獲得響應),這可以通過渠道實施來調用。
頻道可以是網絡、移動或語音設備。如果開發者已經有一個移動應用程序,可以將其作為移動應用程序的一部分嵌入。
開發者還可以通過第三方聊天啟用的服務(如Facebook消息傳遞應用程序)或通過支持語音的服務(如Amazon Alexa)作為技能發布其聊天機器人實例。
所有這些啟用聊天的服務都提供了一個框架來插入開發者的實例。該框架提供了用于攔截聊天消息的代碼攔截器。開發者需要擴展其框架并插入自己的實例。例如,如果用戶在Facebook Messenger上詢問問題,則問題將通過預定義的代碼攔截器傳遞給開發者的聊天實例。將處理該消息并將響應發回,這將被發送回用戶。
同樣,如果開發者需要通過Alexa使聊天機器人可用,需要使用Alexa技能套件界面將其包裝為Alexa技能。用戶在Alexa中啟用開發者的技能后,其技能將截獲任何語音消息,可以根據聊天機器人提供所需的實施和響應。
如何使用聊天機器人平臺構建聊天機器人?
聊天機器人平臺為開發者提供了一組設計、開發和部署聊天機器人的服務。它們為開發者提供了框架和指導實用程序來構建聊天機器人。
AWS、Azure、IBM、Google Cloud等云計算提供商為開發者提供了一組服務,可以幫助其生成對話,使用自然語言處理(NLP)技術了解對話語言,創建代碼攔截器以采取必要的操作,并通過API提供解決方案。
每個提供商采用的基本方法是相同的。它們允許開發者:
•使用云計算提供商提供的一些可視界面或工具設計對話流程。
•通過這些會話流程,開發者可以:
o提出一系列問題和多種方式,可以提出相同的問題。
o定義問題的意圖。例如,對于“查找從美國到英國的最便宜航班”的問題,意圖是找到最低的機票價格。
o找出要從意圖中提取的感興趣的實體。聊天機器人提供商需要了解這些實體。在上面的示例中,實體是國家/地區列表:英國,美國等。這些實體可以是通用的,由云計算提供商自動識別,或者云計算提供商提供可以提供或培訓這些實體的機制(包括同義詞、隱喻等)。
o使用提取的實體執行意圖所需的操作。例如,在上面的示例中,調用提供英國和美國作為“從”和“到”位置的航班API服務。
o提供響應。
•通過端點測試并公開聊天機器人
o云計算供應商通常提供通過端點(如REST API)公開聊天機器人功能的功能。
上述技術適用于簡單到中等復雜的流程,例如常見問題解答,針對客戶查詢的復雜問題和答案,固定的步驟(預訂出租車)等。任何需要復雜處理查詢的東西,例如購物顧問示例,需要使用自然語言處理(NLP)和其他技術定制開發。
微軟公司提供了一個問題和解答服務,可讓開發者通過問題和解答創建機器人。
聊天機器人不是真實的嗎?
當前一代聊天機器人可以被認為是通過自然語言處理(NLP)和固定會話流等技術驅動的智能對話系統。
聊天機器人不了解任何域名。開發者需要訓練聊天機器人以了解域名。此外,根據域的復雜性,將逐步訓練和添加子域。例如,幫助客戶預訂出租車的聊天機器人是一個固定域名的示例,而幫助醫生進行癌癥治療的聊天機器人將逐步接受各種類型的癌癥培訓。
現在看看圍繞人工智能聊天機器人的一些營銷噱頭:
•掌握并了解所有聊天機器人——這些聊天機器人正在銷售,用戶可以在其中攝取數百萬份文檔,如醫學文獻,并可以提出問題,這些問題可以提供疾病診斷等專家協助。除非經過適當的訓練,否則這類系統永遠不會提供所需的準確性。適當是指訓練這些系統可能需要數年時間。這些系統的根本問題在于它們仍然無法理解域的完整語言和復雜性。用戶通常最終會使用自定義域名和無限語言規則,從長遠來看,這絕對不夠智能。這種系統的預測通常不準確。
•自我學習聊天機器人。人們以前是否聽過這個術語?這又是一個誤解,據說聊天機器人可以自己學習。開發者必須訓練聊天機器人需要學習的東西。通常,用戶可以通過與聊天機器人應用程序的交互來捕獲用戶行為詳細信息。這將包括捕獲用戶分析信息,例如通過顯式或隱式方式以某種方式捕獲信息。顯式信息可以是產品的用戶評級,隱含的可以是用戶花在查看響應上的時間。
一旦很好地了解用戶并獲得了他們的數據,就會對開發者要向用戶推薦的內容產生推薦問題。因此,開發者最終會構建推薦算法來推薦一些東西。例如,對于金融科技應用程序,這意味著根據他定期查看的股票或其投資組合推薦類似股票。
不同的域和用例需要不同的推薦算法,并且需要作為聊天機器人的一部分進行開發。然而,學習是封閉的。例如,如果開發者有一個可以幫助用戶預訂餐廳的聊天機器人,它可以推薦類似的餐館,但它不能推薦住宿的地方,因為它只知道用戶喜歡的口味。有人可以建立一個推薦系統,跟蹤用戶食宿問題,然后嘗試提出一個提供推薦的相關性,正如系統現在所知,“用戶吃XYZ很可能是冒險的。所以,推薦一個徒步旅行的地方。再次,在這種情況下,建議是根據用戶知道的和想要推薦的內容。不知道是否存在任何此類假設,只能通過可以推斷出的數據和反饋。關鍵是,所有這些假設、數據和反饋都需要設計和開發,并說聊天機器人自己學習是非常誤導的。”
•通用的、可生成聊天機器人能夠從頭學習新概念,并提供人類響應的聊天機器人。當它從開放領域學習時,聊天機器人的行為將類似于著名的Microsoft Tay聊天機器人,而它在發布日被迫中止發布,因為它開始從推文中學習不需要的細節,并開始發布煽動性和令人反感的推文。其生成的聊天機器人根據單詞的概率制定響應,并創建一個語法正確的句子,而不理解其真正的意義。
正如以前提到的,第一個重點應該是正確地使用特定于域的聊天機器人,并且使用當前的技術,但遠遠沒有實現愿景。
聊天機器人會讓人工坐席過時嗎?
為了回答這個問題,需要了解聊天機器人目前提供的功能。
當前的聊天機器人實例現可以很好地處理與用戶、重復任務和客戶服務任務的某些初始方面的固定對話框。只要有一組固定的流程和流程可以實現自動化,聊天機器人就可以用來為任何查詢提供全天候支持。如果使用人類專業知識來回答基本的問題集,并且答案很容易獲得,那么它最終將被替換。
但在現實生活中,大多數對話通常不遵循固定的流程范式。但是,如果會話從基本問題轉移到需要進一步分析的問題,或者會話主題發生變化,那么用戶需要一個復雜的聊天機器人實例來處理各種會話流,識別場景切換,識別用戶的聊天機器人可能沒有的意圖,注意并創建查詢以從其知識源中查找該信息。用戶現在正在從一組固定的流程轉移到需要由聊天機器人解釋的更動態的流程。構建這樣復雜的聊天機器人實例需要使用機器學習技術和自定義解決方案進行復雜的特定領域。而現有的聊天機器人服務無法構建這樣的聊天機器人實例。
即使擁有世界上所有數據,使用當前技術和研究時的無限處理和計算能力,開發者也永遠無法建立一個可以與該領域的專家競爭的系統。從現在開始,即使是5年的時間,也不可能開發出如此高水平的智能聊天機器人。
例如,聊天機器人或助手可以幫助醫生準確而一致地推薦癌癥治療嗎?答案是否定的。
聊天機器人提供的信息可以幫助醫生從提供的答案中獲取線索,這可能是對或錯。用戶永遠不能證明這一點。聊天機器人總是可以幫助專家完成一些工作。最終,這些系統基于一些概率拋出了大量答案。其答案僅限于用戶輸入系統的內容,無法動態推斷新知識或將人類專家等信息關聯起來得出任何結論。
雖然有研究試圖確定使用深層神經網絡進行會話流的能力,但離構建真正的會話接口(能夠理解語言和領域的本質)還很遠。此外,所提供的答案必須是可解釋的,并且,除非用戶有一種方法來回溯為什么提供了一個特定的答案,否則這種深層次的神經系統不能用于需要可審計性和可解釋性的用例。
聊天機器人給人們帶來一種智慧的感覺,但達到真正的智能還有很長的路要走。
人工智能能否對問題產生動態響應?
開發者可以使用深度學習來構建聊天機器人。各種深度學習架構可用于解決特定的各種用例。例如,對于計算機視覺(即圖像識別),用戶將使用卷積神經網絡技術作為起點。對于語言翻譯或文本生成,可以使用循環神經網絡等。
為了理解聊天對話,用戶將從一個循環神經網絡的變體開始。將構建序列到序列模型。簡單來說,序列到序列模型由兩個組件組成,第一個組件(編碼器)試圖通過其隱藏層理解輸入句子的場景,第二個組件(解碼器)接收來自編碼器的輸出并生成響應。
上述技術要求開發者擁有大量的訓練數據,其中包含問題和答案。該技術在封閉域中工作,但由于響應本質上是動態的,因此將其直接放到最終用戶可能會有點風險。其次,當開發者想要解釋輸入句子以提取信息并自己制定響應時,這些技術不起作用,例如以前討論過的購物顧問查詢用例。
在開放式域名的情況下,聊天機器人的行為類似于之前給出的Microsoft Tay聊天機器人示例。
對于循環神經網絡(RNN),響應/答案取決于其先前的狀態(或更早的狀態)。因此,對于需要提供場景的深層會話用例,循環神經網絡(RNN)不起作用。用戶需要在循環神經網絡(RNN)上使用名為長期短期記憶網絡(LSTM)的變體。該領域正在進行大量研究。
總結
當前的聊天機器人是一種弱形式的人工智能,它提供了理解輸入消息/問題意圖的能力。為了讓聊天機器人系統了解其意圖,需要對其進行相應領域的培訓。用戶可以用多種方式問同一個問題,聊天機器人實例仍然可以推斷出其意圖。
對于對話框,當前的技術提供了定義固定會話流的功能,因此交互是封閉和有限的。
聊天機器人可以很好地管理生產力和客戶服務任務的某些方面。但是,隨著域的復雜性增加,當前的技術不足,即使經過足夠的訓練,用戶也無法達到所需的準確度。用戶需要依賴其他機器語言技術和解決方案(如規則、推理和自定義域元數據)的組合來提供解決方案。這些成為一次性解決方案,難以概括。在某些情況下,即使是一次性解決方案也會非常復雜,比如建立一個顧問來準確一致地推薦癌癥治療方法。
雖然有關于使用深度神經網絡的研究,但仍然遠遠沒有建立一個能夠理解語言和領域本質的真正的會話聊天機器人。此外,所提供的答案需要解釋,除非有辦法回溯為什么提供特定答案,否則這種深度神經系統不能用于需要可審計性和可解釋性的用例。