龐淵源,田 然,朱曉鴻,王 鑫,陳 鑫
(國網江蘇省電力有限公司信息通訊分公司,江蘇南京 210000)
隨著我國電力系統的大規模發展,電力客服系統的重要性日益凸顯。僅以廣東電網為例,高峰時期日均客服人員為320 人,人均處理客服業務兩萬宗。但基于人工的電網客服系統受到技術水平的限制,普遍存在客戶滿意度低,客戶數據不能及時、有效地反饋等問題[1]。
基于信息檢索與模板規則的聊天機器人已有較長的歷史,在未有特定上下文的情況下,聊天機器人通過學習客服問題數據庫,自動回答用戶有關產品或服務的信息性問題。受到聊天機器人工作原理的啟發,該文設計了一款基于動態路由膠囊架構[2]的電網客服應答系統。基于電網服務熱線的數據庫,使用深度學習與動態路由膠囊架構的新技術對客服工作進行優化改善,精準解決客戶需求。
用戶與電網客戶服務系統之間的對話,可理解為請求的一個單詞序列映射到響應的一個單詞序列,如圖1 所示。深度學習技術可以應用于學習從序列到序列的映射,以建立更加符合用戶需求的問答系統。

圖1 用于對話的深度學習模型
該系統由兩個LSTM 神經網絡[3]組成,一個用于將輸入序列映射到固定長度向量的編碼器,另一個用于將向量映射到可變長度輸出序列的解碼器。LSTM 神經網絡可以在較長時間內,存儲語言序列信息[4]并根據優先級學習阻止或傳遞信息,從而學習從語言序列到語言序列的映射。
用戶請求的字詞不能直接用作LSTM 的輸入,每個單詞轉換為固定長度的特征向量。傳統的基于詞典方法,可以將用戶語言轉換為特征向量[5]。但用戶語言中存在大量語句,無法在詞典中找到映射關系。在詞典映射法中將單詞視為離散元素,并產生高維向量。因此必須學習大量參數,而這將會導致數據稀疏,降低模型的識別精度。
本次系統采用單詞嵌入方法Word2vec 神經網絡語言模型,以無監督的方式從客戶與客服對話中學習語言的分布式進行表示[6]。每個嵌入維度代表單詞的潛在特征,捕獲有用的句法與語義屬性。例如,在一個離散的空間中,“抱歉”、“道歉”與“高興”之類的詞互相等距。Word2vec 可以在連續的空間中表示這些單詞,“對不起”與“道歉”之間的距離比“對不起”與“高興”之間的距離短,從而增強了模型的識別精度[7]。
基 于“in_reply_to_status_id”和“in_reply_to_user_id”字段將每個回復與其請求進行匹配,重建數據庫中的對話。在收集的超過260 萬個用戶請求中[8],有40.4%收到答復,87.6%的對話僅得到一次答復。對問答數據進行整理分類,建立深度學習的語言訓練算法,如圖2 所示。

圖2 深度學習算法流程
圖2中,建立的深度學習框架訓練問答系統如下:
1)清理數據[9]。刪除了非目標語言的對話與帶有圖像的請求。
2)標記數據[10]。在對話數據庫中建立最頻繁的10 萬個詞組詞匯表。
3)產生Word2vec 功能[11]。使用收集的詞組詞匯表訓練Word2vec 模型,詞匯表中的每個單詞均被轉換為640 維向量。
4)訓練LSTM 網絡[12]。LSTM 的輸入與輸出是單詞序列的向量,而一個向量對應編碼或解碼一個單詞。考慮到在客戶的請求序列到任務序列中,深LSTM 較淺LSTM 具有明顯的優勢,因此使用隨機梯度下降與梯度裁剪技術訓練深LSTM[13]。
在基于LSTM 訓練的客服系統語句的映射關系基礎上,使用MIML 框架。對于客服系統分析需求構建系統,設計動態路由膠囊架構的客服系統。
MIML 架構用于單個或多個實體對的文本語句集,由X={x1,x2,…,xn}進行表示[14]。假設有E個預定義關系(包括未知關系)要提取,對于每個關系r,預測目標由進行表示。
為規范客服系統的輸入,對于每個句子x1,使用預訓練的單詞嵌入將每個單詞標記投影到dw維空間上[15]。使用位置特征作為從當前單詞到M個實體的相對距離組合,并將這些距離編碼為M個dp維向量。對于單實體語句的對應關系提取時,令M=2;對多個實體語句對應關系提取時,令M=4(即兩個實體對)。當兩個元組有一個公共實體時,客服語句中有3 個實體,因此將到缺失實體的相對距離設置為較大數量。最終將每個請求句子轉換成矩陣,如式(1)所示。

式中,L是規范化步長,V=dw+dp*M。
在此基礎上,使用LSTM 網絡來深度學習句子的語義。從兩個方向將LSTM 的當前存儲單元隱藏狀態向量ht相結合,得出在時間t處的輸出向量,其中B表示LSTM 網絡的維數。
為了提高對客戶請求的重點詞組理解,引入詞級注意機制,導入句子中幾個與所表達關系相關的詞。在每次迭代中選擇表達含義可能性最高的詞組訓練模型,以提高模型的理解能力。
將膠囊的實例化參數集定義為Ui∈Rd,其中d是膠囊的尺寸[16]。定義跨不同窗口共享的濾波器為wb∈R2×2B,此時存在一個窗口以步長為1 的速度遍歷語言序列,產生膠囊列表U∈R(L+1)×C×L,共C×d個濾波器,膠囊列表的元素,可由式(2)表示。

式(2)中,其中0<i<C×d,0 <j<L+1,,b1是偏差項。對于所有C×d濾波器,將生成的膠囊特征圖重新排列為U={u1,u2,…,u(L+1)×C},其中共(L+1)×C個d維向量被收集為膠囊。
生成對子向量的預測矩陣,如式(3)所示,同時,文中進一步研究了轉換矩陣的計算方法。

本次設計的動態路由方案可轉換為非線性映射圖譜,如式(4)所示。

在映射圖譜的基礎上,使用父代膠囊的存在概率迭代修改膠囊間的連接強度,每個單獨連接k的邊際損失Lk,如式(5)所示。

其中,若連接k存在,則Yk=1,m+=0.9,m-=0.1,λ=0.5。膠囊網絡的總損失LTotal可以表示為
動態路由架構中使用到的相對關系特征提取可分為:單實體關系與多實體關系。對于單實體對關系提取時,通過計算代表每個關系的概率向量uj的長度實現。對于多個實體對的關系提取時,選擇前兩個概率大于閾值的膠囊連接關系。最終,可以得到預測關系r。對于一對實體(e1,e2),為了選擇膠囊元組所屬的關系,計算實體與膠囊關系的預訓練嵌入系數rk=arg min|t-h-rk|。其中,t、h分別是實體e1與e2的關系系數,rk是實體間關系比重。
為驗證本次基于動態路由膠囊架構的系統,使用混合CBR-ANN 方法對其性能進行評估。該方法基于LVQ3 神經網絡執行CBR 循環任務,綜合評價系統的性能。基于k近鄰(KNN)的傳統CBR 系統需要調用含有所有案例數據庫,以執行準確的檢索。通過訓練對數據庫知識泛化,CBR-ANN 方法較大地減少了搜索空間。

圖3 驗證平臺
如圖3 所示,驗證平臺基于333 MHz 奔騰II 的Windows NT 操作系統,RAM 為128 MB。網頁服務器Netscape Enterprise Server 3.0 用作超文本傳輸協議(HTTP)服務器。故障診斷引擎采用Microsoft Visual C ++鏈接到Web 服務器的通用網關接口(CGI)程序實現。Microsoft Access 數據庫管理系統用于存儲客戶服務數據。
首先,進行客服系統神經網絡的檢索效率實驗,通過記錄網絡預訓練時間、總訓練時間與平均在線檢索時間來衡量檢索效率。在數據庫中存在9 392例有效客服需求案例,關鍵字列表中可查的關鍵字數量為2 173。在Wordnet 詞典中檢索的單詞數為121 962,用戶輸入的最大關鍵字數為20。實驗統計結果,如表1 所示。

表1 算法檢索效率測試結果
表1 中,盡管總的訓練時間較長,但由于系統僅需在離線模式下進行一次訓練,因此系統的實例化成本仍較低。另外,平均在線檢索時間僅為1.9 s,可做到實時反饋。
檢索精度取決于客服系統的預處理設計精度,添加新關鍵字的頻率、膠囊架構的辨錯率及用戶請求表達的準確度。對本動態路由膠囊系統設計實驗,測量正確辨別客戶需求的次數,以及所需的檢索迭代次數來檢驗系統的檢索精度。若用戶輸入由眾多新關鍵字組成,則這些關鍵字不屬于關鍵字數據庫,且準確性會受到影響。因此系統通過繼續學習,以提高檢測的準確性。

圖4 3種度量下的模型訓練
圖4 所示為距離度量和訓練時期對準確性的影響。歐幾里得距離度量標準的錯誤率最高,而標準化歐幾里得距離方法的錯誤率最低。在神經網絡收斂之前所需的訓練時期,錯誤計數是指在訓練集中的70 137 條記錄中,由神經網絡計算出的不正確輸出的數量。

表2 系統檢測精度結果
如表2 所示,使用3 種方法度量系統的檢測精度可知,歐幾里得距離度量的錯誤率最高,而歸一化歐幾里得距離法的錯誤率最低。
在該節中將基于動態路由膠囊架構的客服檢索技術與傳統基于CBR 系統中的KNN 檢索技術進行比較,分別對比基于服務記錄的測試集,與基于用戶故障描述的實驗性能,結果如表3 所示。

表3 技術參數實驗測試結果
實驗的第一部分中,使用了15 850 條測試服務記錄的測試集,動態路由膠囊架構技術在速度與準確性上均優于KNN 方法的兩種變體。在使用歐幾里得距離法進行匹配的KNN 技術中,KNN 架構始終為各個關鍵字分配相等的權重,且檢索進度大幅下降。在使用模糊三元組匹配的KNN2 技術中,KNN網絡為匹配的3 個字母每個序列分配不同的比重,盡管提高了對關鍵詞的容錯能力。但與動態路由膠囊架構相比,檢索精度仍較低。
實驗的第二部分中,為了檢驗系統在客戶輸入無法準確描述故障條件下系統的檢測精度,采集了共50 個不準確的故障描述。分析表3 可發現,所用3 種檢索技術的準確性均較低。動態路由膠囊架構的準確性為88%,KNN1 技術的準確度為72%,而KNN2 技術的準確度為76%。KNN2 使用的模糊三字匹配法較KNN1 技術使用的歐幾里得距離匹配具有更優的性能,能夠處理用戶輸入中的拼寫錯誤與語法變化。但由于其未像動態路由膠囊架構那樣考慮客戶輸入語句的同義詞形式,因此其準確性低于動態路由膠囊架構。
該文基于對現有人工客服系統的分析,通過與聊天機器人的技術原理進行比較,設計了一款基于動態路由膠囊技術的客服系統。對客戶語言使用基于深度學習的技術進行語言預處理,基于現有數據庫,設計形成多種語言、深層次的智能化客服系統并實時采集數據。通過人工智能技術不斷完善服務水平,以增強系統對客戶意圖需求的理解能力,提高了電網客服的工作效率與自動化程度,進一步提高了服務水平。