黃巍 李紀奇 劉國華
摘要:信息技術(shù)領域的客服系統(tǒng)存在人力資源的運用效率低等問題,這給企業(yè)帶來了大量的維護成本,對企業(yè)創(chuàng)新帶來了一定的阻礙。因此本文提出一種新型的基于Web的對話應用設計系統(tǒng),不僅提供了基于分支、循環(huán)、順序等設計對話的基礎流程控制單元,還包含大量垂直領域內(nèi)的話題通用組件以輔助在短時間內(nèi)設計出快速響應、容錯率高的場景對話機器人,并提供了深度學習服務用于對話的匹配以及用于提高識別精度的再訓練機制,使得對話系統(tǒng)能持續(xù)升級和提高對話的效率。本系統(tǒng)使用了先進的開源技術(shù)實現(xiàn),能夠快速生成腳本整合進其他現(xiàn)有應用,改善企業(yè)客服系統(tǒng)運作效率。
關鍵詞:對話應用設計;對話系統(tǒng);深度神經(jīng)網(wǎng)絡;Web應用
【Abstract】Thecustomerservicesysteminthefieldofinformationtechnologyhasproblemssuchaslowefficiencyintheuseofhumanresources,whichbringsalotofmaintenancecoststoenterprises,andbringscertainobstaclestoenterpriseinnovation.Therefore,thispaperproposesanewWeb-baseddialogueapplicationdesignsystem,whichnotonlyprovidesbasicprocesscontrolunitsfordesigningdialoguesbasedonbranches,loops,andsequences,butalsocontainsalargenumberoftopicalcommoncomponentsintheverticalfieldtoassistinthedesigninashorttime.Ascenedialoguerobotwithfastresponseandhighfaulttoleranceisprovided,andadeeplearningserviceisprovidedfordialoguematchingandaretrainingmechanismtoimprovetherecognitionaccuracy,sothatthedialoguesystemcancontinuetoupgradeandimprovetheefficiencyofdialogue.Thissystemisimplementedusingadvancedopensourcetechnology,whichcanquicklygeneratescriptsandintegratethemintootherexistingapplicationstoimprovetheoperationalefficiencyofenterprisecustomerservicesystems.
【Keywords】dialogueapplicationdesign;dialoguesystem;deepNeuralNetwork;Webapplication
作者簡介:黃巍(1996-),男,碩士研究生,主要研究方向:自然語言處理、對話系統(tǒng);李紀奇(1998-),男,碩士研究生,主要研究方向:Web開發(fā)、工業(yè)互聯(lián)網(wǎng);劉國華(1966-),男,博士,教授,主要研究方向:外包數(shù)據(jù)庫、隱私保護、文檔復制檢測等。
收稿日期:2020-11-27
0引言
信息技術(shù)的發(fā)展為企業(yè)帶來了新的發(fā)展機遇,更快的設備和更強大的計算能力驅(qū)動企業(yè)創(chuàng)造新的產(chǎn)品體驗和獲取更多的用戶,隨著產(chǎn)品變得龐雜,對用戶使用產(chǎn)品進行引導和解決問題的客服機制也逐漸引起了學界的興趣。然而客服行業(yè)存在的重復率高、響應需求快等特點與人工處理帶來的體驗產(chǎn)生了沖突。得益于數(shù)據(jù)量激增以及GPU等為圖形計算而生的設備的出現(xiàn)為深度學習[1-2]在智能對話領域注入了新的想象力,使得智能對話系統(tǒng)能有效地提高客服領域的運作效率??头I域分支眾多,所以提供能夠快速根據(jù)需求搭建領域特定的對話系統(tǒng)變得日益重要。
目前,主流的對話系統(tǒng)搭建方式主要有使用提供搭建對話機器人的服務平臺如Google的Dialogflow、外包給設計對話機器人的公司或自行研發(fā)。分析可知,第一種主要存在定制化能力不強、不易與企業(yè)內(nèi)部系統(tǒng)整合等問題,第二種會存在大量的溝通問題且維護費用也比較可觀,第三種的研發(fā)成本卻十分高昂。
基于此,本文設計并實現(xiàn)了基于Web的對話應用設計系統(tǒng)。該系統(tǒng)具備以下特點:提供基于可視化流程圖的對話過程設計(如圖1所示),方便設計和修改對話流程以適應各種客服場景,還提供即時的對話應用測試功能;在初始的深度學習模型上,自動收集與預期情況不符合的答案進行再訓練、提供給用戶添加額外定義的實體和屬性等信息進行訓練,持續(xù)改進對話效果,讓對話更加準確。
1系統(tǒng)設計
1.1架構(gòu)設計
系統(tǒng)的整體架構(gòu)如圖2所示。本系統(tǒng)使用前后端分離的B/S架構(gòu)[3]進行設計,前端基于Web平臺,服務器端提供RESTfulAPI供前端訪問,同時前端還會訪問機器學習服務來進行對話過程中的實體、屬性的抽取以及對話的匹配等。對此擬展開研究闡述如下。
(1)客戶端的選擇??蛻舳耸褂肳eb平臺,主要基于Web平臺具有無平臺屬性,即在任意系統(tǒng)上如MacOS、Linux或Windows上都可以獲得一致的訪問體驗,且Web平臺技術(shù)發(fā)展迅速、開發(fā)效率高、性能表現(xiàn)良好。
(2)服務器端的選擇。服務器端選擇了基于Node.js的Koa框架,這是新一代的Web服務器端開發(fā)框架,開發(fā)效率高,數(shù)據(jù)庫使用MySQL,同時選用SequelizeORM框架來簡化后端與數(shù)據(jù)庫的交互。
(3)機器學習服務的選擇。機器學習服務使用注意力機制將對話模型與大規(guī)模知識圖譜技術(shù)相結(jié)合,主要包含3個模塊:編碼器-解碼器模塊、知識解釋模塊和知識生成模塊。其中,知識解釋模塊采用基于靜態(tài)的注意力機制[4],將詞向量和檢索到的知識圖譜圖形[5]向量連接起來。知識生成模塊采用動態(tài)的注意力機制,根據(jù)關注權(quán)重來讀取圖中影響選擇生成的詞語。
(4)數(shù)據(jù)通信方式選擇。數(shù)據(jù)的通信使用HTTP協(xié)議,數(shù)據(jù)的交互主要使用JSON格式[6],這是一種通用的數(shù)據(jù)交互格式,能被大多數(shù)語言所支持。后端和機器學習服務通過Koa框架提供RESTfulAPI的形式調(diào)取使用MXNet深度學習框架訓練的模型供前端進行訪問。
1.2對話匹配算法設計
在設計對話應用過程中,主要通過與用戶交互的場景來預設一系列問題和答案,當用戶輸入的文字與預設的問題匹配,則會選擇對應問題的答案返回給用戶。為此,本系統(tǒng)設計了一套對話匹配算法??梢赃x擇使用ML機器學習的匹配或關鍵詞的匹配,匹配命中的結(jié)果主要根據(jù)一套優(yōu)先級規(guī)則來確定。算法描述詳見如下。
算法1對話匹配算法
即最小化交叉熵損失函數(shù)等價于最大化訓練數(shù)據(jù)集所有標簽類別的聯(lián)合預測概率。
訓練使用的是Adam優(yōu)化算法來進行處理,重點是基于訓練迭代地更新神經(jīng)網(wǎng)絡權(quán)重,適合解決大規(guī)模數(shù)據(jù)和參數(shù)的優(yōu)化問題。
當定義了用戶在輸入面板中對應的匹配內(nèi)容后,在對話任務進行過程中,會抽取用戶對話中的實體、屬性關系等,接著去定義的輸入面板內(nèi)容中進行檢索,并匹配相關度高的內(nèi)容,再對相關度高的內(nèi)容進行重排序,選擇最終的結(jié)果來進行后續(xù)響應動作的觸發(fā)。
2系統(tǒng)實現(xiàn)
本系統(tǒng)采用目前最先進的開源技術(shù)進行研發(fā),包括前后端及深度學習框架等,同時應用了業(yè)界較為熱門的數(shù)據(jù)集和知識庫。對此研究中擬做闡析分述如下。
2.1前端實現(xiàn)
前端使用螞蟻集團開源的插件化的企業(yè)級前端應用框架UmiJS來實現(xiàn),其主要的特點是開箱即用,內(nèi)置路由、構(gòu)建、部署、測試等完整的開發(fā)生命周期。
在前端開發(fā)中,先要設計一系列路由界面,將邏輯分發(fā)到不同的界面里,以完成需要的功能,UmiJS內(nèi)置了ReactRouter路由體系,使得開發(fā)者只需專注于路由路徑及組件邏輯的編寫。ReactRouter擁有簡單的API與強大的功能,例如代碼緩沖加載、動態(tài)路由匹配、以及建立正確的位置過渡處理。在編寫路由的時候,可通過管理應用的URL,實現(xiàn)組件的切換和狀態(tài)的變化,會大量應用在復雜前端應用的開發(fā)中,同時也是React官方唯一維護的路由框架,社區(qū)活躍,新功能迭代快速。
本系統(tǒng)根據(jù)具體的場景,設計了包含故事面板頁、模板頁、故事頁、用戶輸入頁、響應用戶動作、測試對話系統(tǒng)的運行狀態(tài)等6類頁面,前端路由設置詳見表1。
前端在開發(fā)過程中使用了AntDesign組件庫來加速開發(fā),開發(fā)中主要涉及的就是可視化故事搭建面板的實現(xiàn)和測試故事任務面板的實現(xiàn)。文中對此將給出詳述如下。
(1)故事搭建面板的實現(xiàn)。故事搭建面板是一個樹狀圖示,在每個分支的末端可以通過一個加號來擴展對話流程中的響應動作,核心主體采用了D3.js[8]來進行流程的可視化展示,其中用到的按鈕圖標調(diào)取自Iconfont圖標庫,內(nèi)部的核心是維護了一個JavaScript數(shù)組,通過該數(shù)組來記錄這個樹狀流程的關系以及屬性等,又通過D3.js的樹狀形狀初始化函數(shù)來讀取這個數(shù)組,接著分配對應的屬性來進行渲染。研發(fā)得到的故事搭建面板則如圖3所示。
(2)動作面板的實現(xiàn)。動作面板主要包含2個部分,即:用戶輸入的匹配和動作的響應。對這兩部分的研發(fā)探討具體如下。
①用戶輸入的匹配。如圖4所示。主要是一系列選項,以及針對每個選項有一個下拉框,這個下拉框可以是機器學習式的匹配或者是關鍵詞的匹配,選項列表與下拉框均使用AntDesign提供的組件庫。機器學習匹配與關鍵字匹配具體的匹配算法參見前文算法1。
②動作響應面板。如圖5所示。響應的動作是一個順序流程,先是響應延遲,即在用戶輸入多久之后回復用戶,接著可以添加一系列回復內(nèi)容,如文本、圖片、卡片、輪播圖等,還能詢問用戶問題以獲取更多的上下文信息,在點擊左方的按鈕后,右方會自動添加一個新的虛線以及對應的響應,同樣,當用戶的輸入匹配到了這個動作,在響應中就會額外回復最近添加的一個新的響應動作。
動作響應面板中可以添加額外的人工支持,當機器人無法回答用戶的問題時,可以提醒用戶進行流轉(zhuǎn)人工操作,獲得用戶同意后,機器人服務提供方的人工客服會介入處理用戶的問題,提升機器人的使用體驗。
其中,按鈕、流程的展示使用AntDesign組件庫,圖標使用了Iconfont圖標庫。
(3)對話面板的實現(xiàn)。通過可視化流程圖構(gòu)建了對話機器人的必要元素后,就可以通過聊天面板測試機器人的運行狀況,見圖6。對話面板中,先會觸發(fā)歡迎動作,發(fā)送歡迎語,接著根據(jù)用戶的選擇和回復進行匹配以觸發(fā)后續(xù)的流程,對話面板使用aurora-imui來進行方便的搭建,只需傳輸聊天數(shù)據(jù)的JavaScript數(shù)組信息就能夠可視化地渲染最終的聊天結(jié)果。
2.2后端的實現(xiàn)
后端服務使用Koa2實現(xiàn)。Koa2是Express原班人馬打造的一個Web框架,使用ES7的Async/Await函數(shù)的方式來處理路由操作,相比Express而言要更為輕量、健壯,能加速Web應用的編碼。
數(shù)據(jù)庫使用MySQL,搭配SequelizeORM框架可以高效地操作數(shù)據(jù)庫。MySQL是一款優(yōu)秀的數(shù)據(jù)庫,并且隨著技術(shù)演變,也在不斷地吸納新的特性以改善使用體驗,而Sequelize是JavaScript的ORM框架,開發(fā)的友好性使得開發(fā)者可以隔離繁瑣的原生SQL語句操作細節(jié),專注于應用的高效開發(fā)。
后端根據(jù)以上路由列表編寫對應的API,前端使用FetchAPI發(fā)起HTTP請求訪問后端的路由端口,進行數(shù)據(jù)的交互。
2.3深度學習服務的實現(xiàn)
深度學習服務使用亞馬遜開源的MXNet深度學習框架,并使用Node.js的Koa2框架來提供模型的訪問。MXNet是可擴展的、可以進行快速的模型訓練,并靈活支持多種語言,如C++、Python、Julia、JavaScript和Go,MXNet[9]還可以方便擴展到多個GPU來進行訓練,也是亞馬遜AWS的深度學習框架。
模型使用了有2層GRU結(jié)構(gòu)的編碼器-解碼器,每一層有512個隱藏單元。詞嵌入的大小設置為300,詞匯量限制在10000或30000,使用TransE來獲取實體和關系的表示,實體和關系的嵌入大小設置為100。模型使用以100為一個批量的小批量的Adam優(yōu)化器[10],學習率設置為0.0015,模型訓練的輪次設置為15輪次。
通過與領域內(nèi)3個基準模型做比較來驗證模型的優(yōu)勢,由此得到:
(1)Seq2Seq[11]模型.這是一個廣泛用于開放領域的對話系統(tǒng)模型。
(2)改編自Ghazvininejad等人[2]的知識基礎模型MemNet。存儲單元存儲TransE的知識三元組嵌入。
(3)CioyNet模型[12]。從知識三元組中復制一個單詞或者從詞匯表里面生成一個單詞。
在模型開發(fā)結(jié)束后,利用常識知識庫[4]和常識對話數(shù)據(jù)集來進行模型的訓練和測試。模型的評價定義了2個指標:內(nèi)容級別的合適性ppx(回答在語法、主題和邏輯層面是否合適);在給定知識水平下提供的信息性ent(回答相比已經(jīng)生成的內(nèi)容是否提供了更多的信息和知識)。
模型的結(jié)果見表3。表3中,分數(shù)是模型(CCM)超過其他基準模型的百分比。
3結(jié)束語
本文主要解決針對信息技術(shù)客服領域重復勞動率高、人力資源的運用效率低等問題,設計并實現(xiàn)了一個基于Web的對話應用設計系統(tǒng)。此系統(tǒng)提供可視化的對話流程設計,以及通過用戶輸入-對話響應等形式獲得高效的對話體驗,并且通過深度學習模型來進行用戶話語的識別和匹配,提升對話任務的準確性和效率。企業(yè)在引進了本文靈活設計對話機器人的系統(tǒng)后,即可提升客服領域解決問題的效率,為企業(yè)的發(fā)展提供有益的助力。
參考文獻
[1]LECUNY,BENGIOY,HINTONG.Deeplearning[J].Nature,2015,521(7553):436.
[2]GHAZVININEJADM,BROCKETTC,CHANGMingwei,etal.Aknowledge-groundedneuralconversationmodel[C]//ProceedingsoftheThirty-SecondAAAIConferenceonArtificialIntelligence(AAAI-18).NewOrleans,Louisiana,USA:AAAI,2018:1-9.
[3]HUANGSuping,GUOXiaojun,LIUAijun,etal.ApplicationofB/SstructuredesigntothemanagementsystemforexaminingconstructiondrawingsbasedonInternet[J].JournalofChemicalandPharmaceuticalResearch,2014,6(7):510-520.
[4]ZHOUHao,YOUNGT,HUANGMinlie,etal.Commonsenseknowledgeawareconversationgenerationwithgraphattention[C]//InternationalJointConferenceonArtificialIntelligence(IJCAI-18).Stockholm,Sweden:ArtificialIntelligenceOrganization,2018:4623-4629.
[5]DUANNan.OverviewoftheNLPCC-ICCPOL2015sharedtask:OpendomainChinesequestionanswering[M]//LIJ,JIH,ZHAOD,etal.NaturalLanguageProcessingandChineseComputing.NLPCC2015.LectureNotesinComputerScience.Cham:Springer,2015,9362:562-570.
[6]LVTeng,YANPing,HEWeimin.SurveyonJSONDataModelling[J].JournalofPhysicsConferenceSeries,2018,1069(1):012101.
[7]HOY,WOOKEYS.Thereal-world-weightcross-entropylossfunction:Modelingthecostsofmislabeling[J].IEEEAccess,2019,8:4806-4813.
[8]BostockM.d3js.D3.js[EB/OL].[2020].https://github.com/d3/d3.
[9]GUOJian,HEHe,HETong,etal.GluonCVandGluonNLP:Deeplearningincomputervisionandnaturallanguageprocessing[J].JournalofMachineLearningResearch,2020,21:23:1-23:7.
[10]KINGMAD,BAJ.Adam:Amethodforstochasticoptimization[J].arXivpreprintarXiv:1412.6980v8,2017.
[11]SUTSKEVERI,VINYALSO,LEQV.SequencetoSequencelearningwithneuralnetworks[C]//Proceedingsofthe27thInternationalConferenceonNeuralInformationProcessingSystems.Quebec,Canada:dblp,2014,2:3104-3112.
[12]ZHUXun,LYUChen,JIDonghong.KeyphrasegenerationwithCopyNetandsemanticWeb[J].IEEEAccess,2020,8:44202-44210.
[13]LIXiang,TAHERIA,TULifu,etal.Commonsenseknowledgebasecompletion[C]//Proceedingsofthe54thAnnunalMeetingoftheAssociationforComputationalLinguistics.Berlin,Germany:ACL,2016:14451455.