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