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