
科技大廠(chǎng)紛紛投入開(kāi)發(fā)Chatbot技術(shù)和應用,Amazon Echo在市場(chǎng)上廣受歡迎,終于在今年4月正式釋出數位助理Alexa背后Chatbot引擎Lex。圖片來(lái)源/AWS
去年通訊平臺臉書(shū)、Line、Skype,以及企業(yè)協(xié)作平臺Slack都相繼推出Chatbot開(kāi)發(fā)平臺,提供企業(yè)開(kāi)發(fā)自家Chatbot,Chatbo從2016年開(kāi)始爆紅,帶動(dòng)企業(yè)開(kāi)發(fā)Chatbot的風(fēng)潮。
市調機構Gartner今年初的一項研究報告中預估,到了2020年,30%的網(wǎng)頁(yè)瀏覽工作,將不再需要透過(guò)熒幕就能完成,80%的人使用App的數量將會(huì )減至現在的一半,消費者與企業(yè)之間的互動(dòng)模式將會(huì )由虛擬個(gè)人語(yǔ)音助理(Virtual Personal Assistant,VPA)為中心,串聯(lián)APP、API、ChatBot等應用,像是Amazon推出的語(yǔ)音個(gè)人助理Alexa、Google Assistant等,就不再需要透過(guò)熒幕,能夠直接讓使用者透過(guò)語(yǔ)音指令與Chatbot互動(dòng)。
從Chatbot的通路端來(lái)看,臉書(shū)去年4月釋出Messenger API,才經(jīng)過(guò)3個(gè)月就已經(jīng)有超過(guò)1.1萬(wàn)的Bot,而到了今年4月,每個(gè)月在Messenger平臺上的活躍Bot竟然暴增到了10萬(wàn)個(gè)以上,臉書(shū)甚至更進(jìn)一步,在Messenger的智慧搜尋Discover中,開(kāi)始支援搜尋Bot的功能,讓使用者可以在Messenger上依照類(lèi)別瀏覽和搜尋企業(yè)自家開(kāi)發(fā)的Bot。
另一個(gè)在臺灣廣受歡迎的Chatbot通路則是Line,在臺擁有1,800萬(wàn)用戶(hù),像是玉山銀行的理財機器人和臺灣房屋的地產(chǎn)機器人都選擇在Line的通路上,瞄準對話(huà)式商務(wù)的機會(huì ),開(kāi)創(chuàng )Chatbot與消費者互動(dòng)。
Line也追隨臉書(shū)的腳步,不只作為Chatbot通路,在今年的世界通訊大展(MWC)上宣布,推出自家語(yǔ)音助理Clova(Cloud Virtual Assistant),Clova結合了Line的聊天技術(shù),以及韓國最大入口網(wǎng)站Naver的搜尋與內容技術(shù),首波將提供新聞?dòng)嵪ⅰ⑻鞖赓Y訊、播放音樂(lè )等功能。
除此之外,Line也計劃釋出支援Clova語(yǔ)音助理的智慧喇叭Wave,類(lèi)似Amazon Echo、Google Home等設備,并將與第三方廠(chǎng)商合作,共同開(kāi)發(fā)Clova硬體的相關(guān)服務(wù)。
從Chatbot的開(kāi)發(fā)平臺端來(lái)看,目前較為成熟的為Amazon的Lex、IBM Watson Conversation服務(wù)和微軟的Bot Framework,Lex和Conversation服務(wù)都已經(jīng)是正式版,微軟的Bot Framework目前還是預覽版。
AWS挾Alexa氣勢正式推出Lex
AWS今年4月將Alexa核心引擎正式釋出,推出了企業(yè)級Chatbot引擎Lex正式版本,Lex能介接到對話(huà)介面的通訊平臺,并提供開(kāi)發(fā)人員深度學(xué)習的技術(shù),像是自然語(yǔ)言理解技術(shù)和自動(dòng)語(yǔ)音辨識等功能,開(kāi)發(fā)人員使用Lex的服務(wù)建立Chatbot的過(guò)程中,不需要自行建立機器學(xué)習的模型,可直接使用Lex自動(dòng)產(chǎn)生的機器學(xué)習模型。
Lex與Lambda無(wú)伺服器運算服務(wù)整合,開(kāi)發(fā)人員將程式碼上傳后,AWS即自動(dòng)調派AWSEC2運算服務(wù),建立Lambda程式執行環(huán)境,開(kāi)發(fā)人員能將Chatbot部署到通訊平臺、行動(dòng)用戶(hù)端和IoT裝置。
若開(kāi)發(fā)人員想將Chatbot部署到行動(dòng)裝置上,Lex也提供開(kāi)發(fā)人員可用iOS和Android的SDK介接。
若是要部署到通訊平臺,Lex整合了Facebook Messenger、Slack和Twilio SMS這3項對話(huà)通道,可以在Lex的介面上選擇要部署的通道,在提供Token之后,Lex會(huì )給予CallbackURL,開(kāi)發(fā)人員即可將Chatbot發(fā)布到對話(huà)通道上執行。
Lex的介面也提供了監控介面(Monitoring Dashboard),Lex可以顯示遺漏訊息、回應延遲時(shí)間和使用流量等相關(guān)資訊,也能檢視未被辨識語(yǔ)句。
Lex將Chatbot語(yǔ)意分析分為意圖(Intent)、例句(Utterance)和Slot,與微軟和IBM不一樣的是,Lex將例句設定為意圖的平行項目,也就是,Lex的例句能夠用在不同意圖中,省去在不同意圖下建立一樣例句的步驟。
Slot則是要滿(mǎn)足執行意圖的條件所輸入的參數,與微軟和IBM的Entity不同,Slot能夠記錄此參數觸發(fā)程式的狀態(tài)(Statement),Lex遇到類(lèi)似的意圖,像是訂飯店或是訂機票,就會(huì )保留Slot的資訊,供不同意圖使用。
其中,Slot又可以依照對應的意圖,分為不同的條件詞匯類(lèi)別(SlotType),像是訂機票意圖的條件詞匯又可分為出發(fā)地、目的地、時(shí)間、班機編號等類(lèi)別,此外,還提供了一些基本的意圖,像是查詢(xún)天氣、電影時(shí)刻表等。
開(kāi)發(fā)人員建立完語(yǔ)意分析的資料后,就可以開(kāi)始建置訊息管理,Lex訊息的管理上,采用提示(Prompt)來(lái)獲得足夠的Slot資訊,例如,開(kāi)發(fā)人員可以設定在接收到訂機票的意圖后,建立「請問(wèn)您要到哪里?」的提示語(yǔ)句。Lex也有提供對話(huà)管理的機制,Lex采用的是Session Timeout與Cross-intentInformation Sharing的機制來(lái)管理對話(huà)。
Session Timeout提供開(kāi)發(fā)人員設定一段時(shí)間,讓Lex保留對話(huà)的資訊,讓使用者在有效的時(shí)間內,可延續對話(huà),不需要每次都重新輸入資訊,若使用者提供了相關(guān)的條件詞匯資訊,但尚未完成訂購,Lex會(huì )預設將使用者提供的資訊記錄保留5分鐘,若使用者在時(shí)效內回到對話(huà),即可繼續訂購的對話(huà),開(kāi)發(fā)人員可以自由設定時(shí)效的時(shí)間。
Cross-intentInformation Sharing則是讓Chatbot在執行不同的意圖時(shí),可以同時(shí)使用對話(huà)內容的資訊,例如,在訂購機票的Chatbot中,若使用者已完成訂購機票的意圖,想轉移到查詢(xún)訂購狀況的意圖,Lex透過(guò)詢(xún)問(wèn)訂購編號和日期,將兩項不同意圖資訊串在一起,訂購資訊就可以同時(shí)被不同意圖使用,不需要再重新詢(xún)問(wèn)一次使用者,訂購的相關(guān)資訊。
Lex還提供意圖鏈(Intent Chain)機制來(lái)管理上下文,根據使用者表達的語(yǔ)句,動(dòng)態(tài)地轉移意圖,能夠讓開(kāi)發(fā)人員將對話(huà)分成多個(gè)元件,這項機制簡(jiǎn)化了復雜的對話(huà)過(guò)程。
另外,Lex還提供2個(gè)版本管理的功能,分別是Versioning和Alias,Versioning是在開(kāi)發(fā)人員第一次發(fā)布Chatbot后,Lex會(huì )自動(dòng)記錄并產(chǎn)生一個(gè)版本,之后每次發(fā)布都會(huì )產(chǎn)生新版本。
Alias則是提供開(kāi)發(fā)人員指定特定版本的Chatbot,每個(gè)開(kāi)發(fā)和執行階段都可以指定不同版本的Chatbot,甚至,開(kāi)發(fā)人員可以在使用者使用Chatbot時(shí)更新版本。除此之外,Lex的服務(wù)還能提供企業(yè)的開(kāi)發(fā)人員一同參與設計Chatbot的過(guò)程,能允許多個(gè)開(kāi)發(fā)人員在Lex服務(wù)中開(kāi)發(fā)、測試。
IBM Chatbot開(kāi)發(fā)平臺Watson Conversation服務(wù)
IBM的WatsonConversation服務(wù)是另一個(gè)已推出正式版本的Chatbot平臺。IBM在Watson Developer Cloud平臺上,提供開(kāi)發(fā)人員許多API和工具,透過(guò)簡(jiǎn)單的視覺(jué)化設計介面,讓開(kāi)發(fā)人員可以不需要撰寫(xiě)程式,就能打造出企業(yè)自家功能型的Chatbot。
Watson Conversation服務(wù)設計了Workspace的工作區來(lái)存放同一個(gè)Chatbot所有的參數設定和資料,必須包含意圖、實(shí)體概念、對話(huà)(Dialog),此外,開(kāi)發(fā)人員若更新Workspace中的資料,并不需要手動(dòng)訓練資料,系統將會(huì )自動(dòng)更新內部的參數和資料。
Watson Conversation服務(wù)在語(yǔ)意分析上,采用3層式向下包含的語(yǔ)意結構,將每個(gè)Entity細分為多個(gè)特值(Value),每個(gè)Value又可以再細分出許多廣義的同義詞(Synonym),以行事歷機器人為例,Entity若是星期,Value則是Monday、Tuesday、Friday等,而Friday又可以衍生出許多同義詞,像是F、Fri,這樣3層式的語(yǔ)意結構機制可以讓機器人接收到錯字、不完整的表達或是縮寫(xiě)時(shí),也能正確地辨認詞匯。
在對話(huà)管理方面,則是提供開(kāi)發(fā)人員視覺(jué)化介面設計對話(huà)流程,運用節點(diǎn)樹(shù)的概念,讓設計對話(huà)的流程更為彈性,開(kāi)發(fā)人員可自由地在原有的對話(huà)流程中,增加與根節點(diǎn)(Root Conversation Node)同層的對話(huà)節點(diǎn),也可以加入不同層的子節點(diǎn)(ChildNode),來(lái)創(chuàng )造分支對話(huà)。
微軟Chatbot開(kāi)發(fā)引擎LUIS和開(kāi)發(fā)框架Bot Framework
微軟早在2015年5月就推出自然語(yǔ)言理解服務(wù)LUIS(Language Understanding Intelligence Service),去年3月Build大會(huì )釋出Chatbot開(kāi)發(fā)框架Bot Framework,提供企業(yè)透過(guò)LUIS分析語(yǔ)意,再用Bot Framework部署Chatbot,不過(guò)目前這兩項服務(wù)都還沒(méi)推出正式版。
微軟今年Build大會(huì )上,更新了Bot Framework多項功能,不但新增了3個(gè)能部署Chatbot的對話(huà)通道,還提供開(kāi)發(fā)人員打造任何對話(huà)場(chǎng)景都適用的通用卡(Adaptive Cards),能夠用單一的架構套用在不同的平臺,另外,LUIS服務(wù)也有不少更新。
微軟增加了3個(gè)部署Chatbot的對話(huà)通道,提供Chatbot開(kāi)發(fā)人員透過(guò)Bot Framework,將Chatbot部署到語(yǔ)音助理Cortana、搜尋引擎Bing和商用Skype。微軟為了能創(chuàng )造Cortana的生態(tài)圈,還推出Cortana Skills Kit讓開(kāi)發(fā)人員可以為Cortana增加新技能。
微軟提供開(kāi)發(fā)人員打造任何對話(huà)場(chǎng)景都適用的通用卡(Adaptive Cards),能夠讓開(kāi)發(fā)人員用JSON的格式設計介面模組、與使用者的互動(dòng)模式等,透過(guò)單一架構就能套用在不同平臺上,例如Microsoft Teams、Skype、Android、iOS等平臺。除此之外,微軟還新增了支付請求(PaymentRequest)API,讓開(kāi)發(fā)人員可以將自家Chatbot,加上購物付款的功能。
因應許多開(kāi)發(fā)人員要求,LUIS的意圖上限終于從20個(gè)變?yōu)?0個(gè),Entity則是從原本10個(gè)增加到30個(gè),支援的語(yǔ)言也新增韓文、荷蘭文和法文、西班牙文語(yǔ)系,并改善內建支援西班牙文、英文和中文的日期和數字Entity,甚至還將這兩個(gè)內建Entity開(kāi)源,讓更多的開(kāi)發(fā)人員可以使用和貢獻功能。
語(yǔ)意的部分,微軟則是新增了一系列的語(yǔ)言特性(Language Features)功能,例如,清單、混合的Entity、語(yǔ)意建議(Semantic Suggestions)和拼字檢查(Spell Checking)等功能。
除此之外,微軟也在LUIS的系統開(kāi)發(fā)生命周期工具上著(zhù)墨,像是版本管理(Versioning)、階段Slots(Production/Stagingslots)、批次測試(Batch Testing)和程式共享(Application sharing)等功能,其中,程式共享功能改變了以往LUIS不利團隊開(kāi)發(fā)的劣勢,讓開(kāi)發(fā)團隊可以一起開(kāi)發(fā)同一個(gè)Chatbot。
另外,LUIS還新增語(yǔ)音辨識功能,Chatbot開(kāi)發(fā)人員可以不用再呼叫外部的語(yǔ)音轉文字API,能夠直接在LUIS內建立語(yǔ)音的語(yǔ)意理解模型,進(jìn)而提升語(yǔ)音辨識效果,甚至還提供語(yǔ)音辨識自動(dòng)除錯的功能,使用者現在不只可以透過(guò)點(diǎn)選、打字的方式與Chatbot互動(dòng),還多了直接用講的對話(huà)模式。微軟也藉由Azure Application Insights提供Chatbot開(kāi)發(fā)人員一系列的數據分析服務(wù)。