秦沛聰,潘威華(通信作者),石寶源,鐘 健,劉 鑫
(1 廣州理工學(xué)院 計算機科學(xué)與工程學(xué)院 廣東 廣州 510540) (2 廣州方硅信息技術(shù)有限公司 廣東 廣州 510032) (3 深圳雷霆信息技術(shù)有限公司 廣東 深圳 518054)
隨著現(xiàn)代生活節(jié)奏的加快,人們面臨著越來越多的功能復(fù)雜的產(chǎn)品。為了更好地理解這些產(chǎn)品,產(chǎn)品說明書和對說明書的解答變得越來越必要?;谏疃葘W(xué)習(xí)的智能產(chǎn)品說明人工智能(artificial intelligence,AI)客服是一套關(guān)于產(chǎn)品說明書的自動化AI客服系統(tǒng),可以幫助大眾解決產(chǎn)品說明書中的問題。該系統(tǒng)采用友好的圖形系統(tǒng)、深度學(xué)習(xí)和語言規(guī)則生成系統(tǒng),實現(xiàn)了面向大眾的智能問答客服。與市面上大多數(shù)AI客服系統(tǒng)不同的是,基于深度學(xué)習(xí)的智能產(chǎn)品說明AI客服不僅面向開發(fā)者,也適用于非互聯(lián)網(wǎng)企業(yè),使用成本相對較低。因此,基于深度學(xué)習(xí)的智能產(chǎn)品說明AI客服應(yīng)時而生,成為幫助消費者更好地理解產(chǎn)品的有效工具。
AI客服是一種基于人工智能技術(shù)的客服系統(tǒng),它可以智能化地處理用戶的問題并提供滿意的解決方案。目前,AI客服系統(tǒng)已經(jīng)成為越來越多企業(yè)的必備工具。自然語言處理技術(shù)是AI客服的關(guān)鍵技術(shù)。近年來,自然語言處理技術(shù)取得了長足的進(jìn)步,如能夠識別多種語言的機器翻譯技術(shù)、語音識別技術(shù)等,這使得AI客服系統(tǒng)的語音和文字處理能力得到了大幅提升。
近些年來,國外的研究者們憑借深度學(xué)習(xí)、自然語言處理等技術(shù),在對話設(shè)計及自然語言處理領(lǐng)域取得了一系列的研究成果[1]。其中首推谷歌的智能助手Google Assistant、蘋果的Siri和亞馬遜的Alexa。這些系統(tǒng)基于自然語言處理技術(shù)、深度學(xué)習(xí)模型和智能推薦技術(shù)等,能夠有效地處理用戶問題并提供個性化的建議和服務(wù)。同時,國外的研究機構(gòu)和企業(yè)也在探索如何實現(xiàn)更加自然、流暢的語音交互和多模態(tài)交互,在AI客服領(lǐng)域展現(xiàn)出了極高的創(chuàng)新能力。AI客服系統(tǒng)必須能夠像人類一樣基于語音和文字進(jìn)行交互,并且在交互過程中能夠準(zhǔn)確把握用戶的需要,進(jìn)行高質(zhì)量、智能化的響應(yīng)。國外學(xué)者們在語種識別、機器翻譯、人工智能跨語言交流等方面做了大量的探索,為AI客服系統(tǒng)在跨語言和跨文化領(lǐng)域的應(yīng)用提供了廣闊的空間。
國內(nèi)對AI客服的研究也緊跟發(fā)展,多家大型企業(yè)和研究機構(gòu)都開展了相關(guān)研究,如百度宣布推出AI客服“度小美”,使用深度學(xué)習(xí)和自然語言處理技術(shù),提供自然語言交互,能夠識別語音和文字輸入,快速響應(yīng)客戶問題;阿里巴巴旗下的AI客服機器人“阿里小蜜”也獲得了廣泛的應(yīng)用和好評,它可以根據(jù)用戶的語音和輸入分析問題,提供精準(zhǔn)的解答和服務(wù)。這些AI客服系統(tǒng)的問答能力、智能化程度和用戶體驗等方面均得到了廣泛的認(rèn)可和好評,大幅提升了服務(wù)效率和用戶滿意度。此外,國內(nèi)的一些科研機構(gòu)和企業(yè)也在AI客服領(lǐng)域取得了一些重要的研究成果。例如,中國科學(xué)院計算技術(shù)研究所推出的“中科聲韻AI客服”利用語音識別、自然語言處理等技術(shù)自動回答顧客問題,并不斷學(xué)習(xí)用戶喜好、實現(xiàn)更智能的服務(wù);深圳市聯(lián)合創(chuàng)新研究院還推出了“聯(lián)想智客”AI客服系統(tǒng),該系統(tǒng)可以對話聊天、語音識別、文字處理等方面達(dá)到較高水平,為客戶提供個性化、智能化的服務(wù)。
產(chǎn)品說明AI客服是人工智能技術(shù)在客戶服務(wù)領(lǐng)域的應(yīng)用,它是一種基于人工智能技術(shù)的新型客服服務(wù)形態(tài),可以通過自然語言處理、語音識別、機器學(xué)習(xí)等技術(shù),模擬人類進(jìn)行溝通和交流,為客戶提供高效、便捷、個性化的服務(wù)。相較于傳統(tǒng)的人工客服,產(chǎn)品說明AI客服具有以下優(yōu)勢。
(1)提高服務(wù)效率:AI客服應(yīng)用可以實現(xiàn)24 h不間斷的服務(wù),不受地域和時間限制,從而大大提高了服務(wù)效率和響應(yīng)速度??梢钥焖偬幚泶罅肯嗨频膯栴},讓客戶更快速地得到滿意的回答。
(2)降低運營成本:采用AI客服可以極大地降低企業(yè)的客服成本。AI客服只需要一定的初期投入和后期維護(hù)費用,為企業(yè)節(jié)省了大量人力資源。
(3)實現(xiàn)個性化服務(wù):AI客服可以根據(jù)用戶上傳的文檔生成專屬客服,通過學(xué)習(xí)和分析用戶的交互記錄,不斷優(yōu)化自身,提高服務(wù)質(zhì)量。
(4)便捷性:AI客服通過語音識別和自然語言處理技術(shù)實現(xiàn)了與用戶的自然交互,無需用戶下載APP或登錄網(wǎng)站即可獲取所需的服務(wù)。
綜上所述,產(chǎn)品說明AI客服具有較多的優(yōu)勢。因此,越來越多的企業(yè)正開始花大量資金和人力將AI客服技術(shù)應(yīng)用于客戶服務(wù)領(lǐng)域。未來,隨著人工智能技術(shù)不斷進(jìn)步,AI客服技術(shù)將會取得更加廣泛的應(yīng)用和發(fā)展[2]。
本系統(tǒng)通過采用Spring Boot框架和Mybatis框架進(jìn)行開發(fā),為WEB管理端、微信小程序和APP提供后臺服務(wù)?;陧椖康男枨?使用nginx作為高效的中轉(zhuǎn)服務(wù)器,采用AlibabaDruid作為為數(shù)據(jù)庫的連接池管理鏈接,使用Redis作為系統(tǒng)日志系統(tǒng)以及高效緩存的中間件。除此之外,在MVC分層思想下,使用wepy通過數(shù)據(jù)調(diào)用,設(shè)計視圖,實現(xiàn)微信小程序前端和使用Vue實現(xiàn)后臺管理系統(tǒng)。
問題的問答主要分以下兩個功能。
第一是通過規(guī)則生成問答:(1)通過jieba分詞庫將后臺管理輸入的產(chǎn)品說明書進(jìn)行分詞,根據(jù)詞語權(quán)重分出問答;(2)再將每個詞語摘出,通過說明書中問答的權(quán)重對詞語進(jìn)行重新排列組合形成問答句子;(3)最后使用已有的句子到互聯(lián)網(wǎng)中進(jìn)行知識爬取,再次獲取到問答。
第二是通過深度學(xué)習(xí)生成問答:使用深度學(xué)習(xí)庫Keras構(gòu)造Char-RNN模型和深度學(xué)習(xí)庫Pytorch構(gòu)造seq2seq模型同時進(jìn)行對抗訓(xùn)練,不斷重構(gòu)loss,訓(xùn)練數(shù)據(jù)來源后臺管理輸入的產(chǎn)品說明書和用戶在使用過程中產(chǎn)生的一系列非結(jié)構(gòu)化數(shù)據(jù),例如查找記錄、頁面停留時長等信息。最后通過兩個模型的對抗預(yù)測生成問答。
通過使用規(guī)則和深度學(xué)習(xí)生成的問答做遞歸預(yù)測,以確保數(shù)據(jù)的準(zhǔn)確。同時使用Elasticsearch 作為QA的搜索引擎,生成的問答將會存入到Elasticsearch數(shù)據(jù)庫中 ,系統(tǒng)也會提問的問題在Elasticsearch在進(jìn)行全文的檢索,以便快速準(zhǔn)備的返回搜索結(jié)果。
深度學(xué)習(xí)端使用“TensorFlow+Keras+Pytorch+Pandas”架構(gòu)關(guān)系,通過利用現(xiàn)有深度學(xué)習(xí)框架的特點,創(chuàng)新性地實現(xiàn)了在seq2seq模型下的靜態(tài)圖模型和動態(tài)圖模型做對抗訓(xùn)練,重構(gòu)loss,極大提高準(zhǔn)確性。同時初始化時每一個文檔都同時生成一個基于TensorFlow的靜態(tài)圖seq2seq模型和基于Pytorch的seq2seq動態(tài)圖模型,當(dāng)兩個模型生成完成后,使用Pandas進(jìn)行數(shù)據(jù)處理,得出模型對抗訓(xùn)練的數(shù)據(jù)。調(diào)起兩端模型預(yù)測,將預(yù)測結(jié)果再導(dǎo)入Keras進(jìn)行訓(xùn)練,從而重構(gòu)loss生成第三個seq2seq模型,深度學(xué)習(xí)技術(shù)架構(gòu)如圖1所示。

圖1 深度學(xué)習(xí)技術(shù)架構(gòu)圖
客戶端使用“React Native + wepy + Vue.js”,APP開發(fā)使用React Native作為跨平臺開發(fā),微信小程序使用wepy作為組件化開發(fā),后臺管理客戶端使用Vue.js開發(fā),用戶端技術(shù)架構(gòu)如圖2所示。

圖2 用戶端技術(shù)架構(gòu)圖
服務(wù)端使用“Spring boot + MyBatis”架構(gòu),關(guān)系數(shù)據(jù)庫采用MySql數(shù)據(jù)庫,數(shù)據(jù)庫ORM映射中間件使用MyBatis,Redis 提供高效日志、緩存以及搜索服務(wù),RabbitMQ作為消息隊列持久性服務(wù),MongoDB負(fù)責(zé)記錄用戶產(chǎn)生的非結(jié)構(gòu)化數(shù)據(jù),同步產(chǎn)品文檔信息。客戶端調(diào)用接口均遵循REST API接口規(guī)范,通信協(xié)議使用HTTP,服務(wù)端技術(shù)架構(gòu)如圖3所示。

圖3 服務(wù)端技術(shù)架構(gòu)圖
整個系統(tǒng)應(yīng)用劃分為四個相對分離的邏輯層,每一層都是相互獨立的。
3.4.1 API接口層
服務(wù)端第一層為API接口層,該層提供了提供API網(wǎng)關(guān)和負(fù)載均衡兩個功能。API網(wǎng)關(guān)通過對外暴露API接口,提供前端需求的請求接口,對后端服務(wù)的統(tǒng)一管理和保護(hù);負(fù)載均衡通過對請求進(jìn)行分發(fā),超時服務(wù)中斷,將請求壓力分散到多個服務(wù)容器上,提高系統(tǒng)的穩(wěn)定性。
在API接口層中,服務(wù)端提供前端的請求接口,用戶進(jìn)行操作使得前端對服務(wù)端發(fā)送請求,這些請求會首先進(jìn)入nginx流量網(wǎng)關(guān),nginx會對請求進(jìn)行篩選,隨后將通過篩選過濾的請求轉(zhuǎn)發(fā)到gateway業(yè)務(wù)網(wǎng)關(guān),對請求做統(tǒng)一的處理,其中包括了統(tǒng)一認(rèn)證,統(tǒng)一鑒權(quán),請求限流,最后經(jīng)由注冊中心,直到目標(biāo)服務(wù)完成路由轉(zhuǎn)發(fā)。該層中的負(fù)載均衡,采用CDN來做負(fù)載均衡,通過發(fā)布機制將內(nèi)容同步到大量的緩存節(jié)點,并在DNS服務(wù)器上進(jìn)行擴展,找到離用戶最近的緩存節(jié)點作為服務(wù)提供節(jié)點。出于性價比,可靠性,穩(wěn)定性的考慮,該系統(tǒng)選擇阿里云的CDN服務(wù)實現(xiàn)。
3.4.2 業(yè)務(wù)服務(wù)層
服務(wù)端第二層為業(yè)務(wù)服務(wù)層,該層是整個系統(tǒng)中實現(xiàn)具體業(yè)務(wù)邏輯的核心部分,包含了Web后臺管理系統(tǒng)、分類管理、文檔管理、QA對管理、關(guān)鍵字管理、文檔上傳等管理功能,以及基于框架開發(fā)的業(yè)務(wù)模塊。
Web后臺管理系統(tǒng)通過模板渲染實現(xiàn)后臺管理功能,對系統(tǒng)進(jìn)行維護(hù)和管理;分類、文檔、關(guān)鍵字等管理功能則提供了對數(shù)據(jù)的管理和查詢;QA對管理則提供了對問題和答案的管理和校對。其中,系統(tǒng)核心功能是基于深度學(xué)習(xí)生成QA對服務(wù),該功能在第四節(jié)進(jìn)行詳述。
3.4.3 基礎(chǔ)服務(wù)層
服務(wù)端第三層為基礎(chǔ)服務(wù)層,該層的基礎(chǔ)服務(wù)能夠輔助構(gòu)建系統(tǒng),提供開發(fā)使用的工具類,實現(xiàn)業(yè)務(wù)邏輯和基礎(chǔ)服務(wù)的解耦,提高功能的拓展性和重用性。
在基礎(chǔ)服務(wù)層中,服務(wù)端封裝了研發(fā)人員和其他層需要用到的工具類和服務(wù),如:API接口層中API網(wǎng)關(guān)中的身份認(rèn)證、權(quán)限管理服務(wù)、基于Axios的REST API接口服務(wù);業(yè)務(wù)服務(wù)層中文檔上傳工具類,基礎(chǔ)增刪改查數(shù)據(jù)服務(wù)類;數(shù)據(jù)層中訪問不同數(shù)據(jù)庫的工具類;以及自定義服務(wù)類和工具類:等等。
3.4.4 數(shù)據(jù)層
服務(wù)端第四層為數(shù)據(jù)層,該層通過Dao持久層間接存儲數(shù)據(jù)和訪問數(shù)據(jù)庫,系統(tǒng)采用了MySQL、Elasticsearch和Redis三種數(shù)據(jù)庫來支持?jǐn)?shù)據(jù)的處理和存儲。
Redis數(shù)據(jù)庫用于保存用戶登錄狀態(tài),用戶登錄后,提高用戶體驗和安全性。具體實現(xiàn)流程:用戶登錄時,前端攜帶用戶信息請求登錄接口,服務(wù)器端將Token存進(jìn)Redis并返回給用戶Token,客戶端攜帶token后端查詢Redis是否存在,實現(xiàn)單點登錄。
MySQL數(shù)據(jù)庫作為系統(tǒng)主要的數(shù)據(jù)存儲方式,通過使用ORM對象關(guān)系映射進(jìn)行面向?qū)ο蟮恼{(diào)用而不直接SQL語句,保障代碼的可讀性,同時避免SQL注入等風(fēng)險[3],為系統(tǒng)的基礎(chǔ)數(shù)據(jù)存儲和管理做保障。
Elasticsearch主要用于文本數(shù)據(jù)的全文搜索、聚合分析、實時查詢等場景,支持對大量的非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)的索引、搜索和分析。系統(tǒng)可以將基于深度學(xué)習(xí)生成的問答QA對以json格式存儲在Elasticsearch數(shù)據(jù)庫中,并對用戶輸入的提問,在Elasticsearch庫中進(jìn)行全文索引。
設(shè)計原理概述:將已經(jīng)有的產(chǎn)品說明書作為數(shù)據(jù)基礎(chǔ),通過規(guī)則生成和深度學(xué)習(xí)生成,實現(xiàn)AI問答數(shù)據(jù)。
實現(xiàn)目的:實現(xiàn)盡可能準(zhǔn)確的回答和盡可能多的回答。能夠回答出導(dǎo)入說明書所沒有的答案。
自然語言處理規(guī)則生成原理:
(1)文檔結(jié)構(gòu)樹,主題/段落/語句分割。
(2)實體提取、關(guān)鍵詞提取、語義特征提取。
(3)語句結(jié)構(gòu)分析:同位語結(jié)構(gòu)、動詞修飾名詞結(jié)構(gòu)、句型分析。
(4)摘要提取、語句壓縮和融合。
(5)問題模式分類。
(6)問題生成(語義模板法、ML生成法、深度學(xué)習(xí))。
(7)問句泛化:關(guān)鍵詞替換。
(8)句法轉(zhuǎn)化:WH移動、主謂倒置等將陳述句轉(zhuǎn)換為問句。
(9)問題語義完成度分析。
深度學(xué)習(xí)生成原理:
(1)構(gòu)建基于TensorFlow的循環(huán)神經(jīng)網(wǎng)絡(luò),訓(xùn)練seq2seq模型,生成靜態(tài)圖模型。
(2)構(gòu)建基于Pytorch的循環(huán)神經(jīng)網(wǎng)絡(luò),訓(xùn)練seq2seq模型,生成動態(tài)圖模型。
(3)在開發(fā)過程中,創(chuàng)新地探索出:利用靜態(tài)圖和動態(tài)圖各自的特點,使用靜態(tài)圖模型和動態(tài)圖模型做對抗預(yù)測,過程中不斷重構(gòu)loss,效果準(zhǔn)確率極高,但對抗訓(xùn)練消耗時間稍長。
該系統(tǒng)設(shè)計參考了ApplyingDeepLearningToAnswerSelection:AStudyAndAnOpenTask的論文[4],從文中論述的網(wǎng)絡(luò)結(jié)構(gòu)中,選擇了效果相對較好的其中一個來實現(xiàn),網(wǎng)絡(luò)描述如圖4所示。

圖4 網(wǎng)絡(luò)描述圖
圖4的邏輯描述如下。
Q&A:共用一個網(wǎng)絡(luò),網(wǎng)絡(luò)中包括HL,CNN,P+T和Cosine_Similarity,HL是一個g(W*X+b)的非線性變換,CNN是卷積神經(jīng)網(wǎng)絡(luò),P是max_pooling,T是激活函數(shù)Tanh,最后的Cosine_Similarity表示將Q&A輸出的語義表示向量進(jìn)行相似度計算。
詳細(xì)描述下從輸入到輸出的矩陣變換過程:
Qp:[batch_size, sequence_len],Qp是Q之前的一個表示(在上圖中沒有畫出)。所有句子需要截斷或padding到一個固定長度(因為后面的CNN一般是處理固定長度的矩陣),例如句子包含3個字ABC,選擇固定長度sequence_len為100,則需要將這個句子padding成ABC...(100個字),其中的就是添加的專門用于padding的無意義的符號。訓(xùn)練時都是做mini-batch的,所以這里是一個batch_size行的矩陣,每行是一個句子。
Q:[batch_size, sequence_len, embedding_size]。句子中的每個字都需要轉(zhuǎn)換成對應(yīng)的字向量,字向量的維度大小是embedding_size,這樣Qp就從一個2維的矩陣變成了3維的Q
HL層輸出:[batch_size, embedding_size, hl_size]。HL層:[embedding_size, hl_size],Q中的每個句子會通過和HL層的點積進(jìn)行變換,相當(dāng)于將每個字的字向量從embedding_size大小變換到hl_size大小。
CNN+P+T輸出:[batch_size, num_filters_total]。CNN的filter大小是[filter_size, hl_size],列大小是hl_size,這個和字向量的大小是一樣的,所以對每個句子而言,每個filter出來的結(jié)果是一個列向量(而不是矩陣),列向量再取max-pooling就變成了一個數(shù)字,每個filter輸出一個數(shù)字,num_filters_total個filter出來的結(jié)果當(dāng)然就是[num_filters_total]大小的向量,這樣就得到了一個句子的語義表示向量。T就是在輸出結(jié)果上加上Tanh激活函數(shù)[5]。
Cosine_Similarity:[batch_size]。最后的一層并不是通常的分類或者回歸的方法,而是采用了計算兩個向量(Q&A)夾角的方法[6]。如網(wǎng)絡(luò)損失函數(shù)所示,m是需要設(shè)定的參數(shù)margin,VQ、VA+、VA-分別是問題、正向答案、負(fù)向答案對應(yīng)的語義表示向量。損失函數(shù)的意義就是:讓正向答案和問題之間的向量cosine值要大于負(fù)向答案和問題的向量cosine值[7],大多少,就是margin這個參數(shù)來定義的。cosine值越大,兩個向量越相近,所以通俗地說這個Loss就是要讓正向的答案和問題愈來愈相似,讓負(fù)向的答案和問題越來越不相似。
網(wǎng)絡(luò)損失函數(shù):
L=max{0,m-cos(VQ,VA+)+cos(VQ,VA-)}
(1)
總體而言,隨著人工智能技術(shù)的不斷發(fā)展,AI客服系統(tǒng)將會越來越廣泛地應(yīng)用于各行各業(yè)?;谏疃葘W(xué)習(xí)的智能產(chǎn)品說明AI客服系統(tǒng)作為其中的一種創(chuàng)新型AI客服系統(tǒng),其用途和價值也引起了廣泛的關(guān)注。通過提供自動化的AI模型和深度學(xué)習(xí)技術(shù),基于深度學(xué)習(xí)的智能產(chǎn)品說明AI客服系統(tǒng)在滿足用戶問答需求的同時,也減少了企業(yè)的人力和成本,實現(xiàn)了雙贏的局面。此外,該系統(tǒng)的友好圖形界面和面向大眾的智能問答模式,也為許多用戶帶來了便利和快捷的體驗。隨著AI技術(shù)的不斷進(jìn)步,相信未來基于深度學(xué)習(xí)的智能產(chǎn)品說明AI客服系統(tǒng)將為更多企業(yè)提供更加高效、智能、易用的AI客服服務(wù),推動企業(yè)發(fā)展和提升用戶滿意度。