一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

案例 | 基于NLP及微服務(wù)架構(gòu)的投訴工單智能分類的實現(xiàn)

 樂納己 2020-05-10

文 / 華夏銀行信息科技部 關(guān)杏元 李大偉 古偉

案例 | 基于NLP及微服務(wù)架構(gòu)的投訴工單智能分類的實現(xiàn)

NLP是人工智能異?;钴S且非常重要的一個領(lǐng)域。文本分類作為NLP(自然語言處理)的一個重要分支,應(yīng)用非常廣泛,比如:語義理解、新聞分類、商品評論信息的情感分類等等。它的核心方法是首先提取數(shù)據(jù)的特征,然后建立并訓(xùn)練得到模型,再利用模型選擇最優(yōu)的匹配,從而實現(xiàn)分類。本文介紹了采用NLP有關(guān)算法實現(xiàn)投訴工單智能分類的思路和具體過程,同時介紹了采用微服務(wù)架構(gòu)部署服務(wù)的實現(xiàn)方法,供大家作為NLP應(yīng)用(特別是文本分類)的實踐參考。

一、問題背景

根據(jù)人民銀行及銀保監(jiān)會對金融消費者投訴分類標準的有關(guān)要求,商業(yè)銀行需要詳細記錄客服投訴工單內(nèi)容,并按照業(yè)務(wù)辦理渠道、投訴業(yè)務(wù)類別、投訴原因等幾個維度分別、準確分類,定期報送。

長期以來,華夏銀行座席代表在填寫投訴工單時,均通過手工選擇投訴業(yè)務(wù)辦理渠道、投訴業(yè)務(wù)類別、投訴原因三個子項的細分項目。由于細分項目涉及較多(多達70多項),占用了坐席代表過多時長,影響接聽效率。若多個代表同時記錄投訴工單,會影響客服中心整體服務(wù)水平。

為了解決上述問題,我們考慮借助AI的NLP有關(guān)技術(shù)建立分類模型,依靠模型對眾多的細分項目進行實時智能分類,能夠根據(jù)最新的投訴工單數(shù)據(jù)再次訓(xùn)練,不斷更新迭代生成新的模型。同時考慮進一步提升客服體驗,盡可能減少不必要的技術(shù)環(huán)節(jié)和人工干預(yù),實現(xiàn)模型的自動學(xué)習(xí)迭代、自動上線部署,讓客服操作簡單方便、直觀。

二、系統(tǒng)邏輯架構(gòu)設(shè)計

根據(jù)實際需求,設(shè)計了邏輯架構(gòu),如下圖所示:

案例 | 基于NLP及微服務(wù)架構(gòu)的投訴工單智能分類的實現(xiàn)

圖1:系統(tǒng)邏輯架構(gòu)

邏輯架構(gòu)共分四層:

(一)基礎(chǔ)層

為保證訓(xùn)練模型的效果,必須積累足夠多的高質(zhì)量的數(shù)據(jù)資源,采用hadoop分布式計算存儲數(shù)據(jù)。為縮短模型訓(xùn)練時間,同時提高實時預(yù)測的速度,我們安裝了GPU。

(二)平臺層

平臺層的主要功能是支持服務(wù)部署。我們采用docker將應(yīng)用程序(又稱服務(wù))及其依賴打包成一個可移植的鏡像,然后將鏡像發(fā)布到任何安裝docker引擎的linux服務(wù)器上,利用k8s完成應(yīng)用的部署,并獲得隔離、一致的運行效果。

(三)技術(shù)層

技術(shù)層主要涉及開發(fā)過程所采用的具體技術(shù)棧。NLP通用技術(shù)如停用詞過濾、詞干提取、詞袋模型、TF-IDF、Word2Vec、分詞技術(shù)等。開發(fā)語言選用當(dāng)前熱門的python語言。在算法上,考慮分別采用經(jīng)典的TextCNN和新近的fasttext以及BERT進行建模,并對模型效果進行比較分析,最后選擇適合的算法?;谌斯ぶ悄艿膽?yīng)用開發(fā),通常會選擇使用主流的框架,比如TensorFlow、caffe、keras、pytorch等。也可以考慮不使用這些主流框架,而采用python、java開發(fā),采用flask框架進行部署。

(四)應(yīng)用層

在應(yīng)用層,需要考慮為了支撐該文本分類的需求所應(yīng)開發(fā)實現(xiàn)的具體功能,通過需求分析,確定具體功能大致分三類:一是投訴工單智能分類實時預(yù)測,二是投訴工單智能分類模型更新迭代,三是有關(guān)的查詢功能。

三、算法實驗

為了選擇適合的算法,我們嘗試了以下三種,下面分別介紹。

(一)TextCNN算法建模過程

首先去除停用詞,然后進行中文分詞,中文分詞的工具非常多,本次實驗使用Python版的jieba分詞工具包來執(zhí)行分詞操作。如圖2所示,第一個紅框內(nèi)的內(nèi)容是分詞前的一條記錄,第二個紅框內(nèi)的內(nèi)容是分詞后的記錄。

案例 | 基于NLP及微服務(wù)架構(gòu)的投訴工單智能分類的實現(xiàn)

圖2:分詞效果

(1) 文本向量化

為了讓計算機能夠理解詞匯和便于進行深度學(xué)習(xí),需要將詞匯信息映射到一個數(shù)值化的語義空間中,這個語義空間我們可以稱之為詞向量空間(詞向量模型)。文本向量化的方式有很多種,例如:TF-IDF、BOW、One-Hot、分布式的表示方式(word2vec、Glove)等。

(2) 建立訓(xùn)練網(wǎng)絡(luò)

使用tensorflow框架建立訓(xùn)練網(wǎng)絡(luò),設(shè)置網(wǎng)絡(luò)的重要參數(shù),如訓(xùn)練輪數(shù)、每一批次訓(xùn)練數(shù)據(jù)的數(shù)量、存儲模型有關(guān)設(shè)置、句子最大長度、嵌入的維度、詞匯表的大小、卷積核的尺寸、卷積核的個數(shù),定義卷積過程和池化過程等等。還要定義損失函數(shù)和計算準確率的方法。

(3) 訓(xùn)練

設(shè)置訓(xùn)練迭代200輪,大約經(jīng)過70分鐘時間完成訓(xùn)練,生成了基于tensorflow的模型。該模型在訓(xùn)練集上的準確率達到了96%,但是在驗證集上的準確率僅達到了75%,如下圖所示。

案例 | 基于NLP及微服務(wù)架構(gòu)的投訴工單智能分類的實現(xiàn)

圖3:模型在訓(xùn)練集和驗證集上的準確率

(二)Fasttext建模過程

使用fasttext訓(xùn)練建模的過程與TextCNN相比,有很多相似,比如它也要經(jīng)過去停用詞(還包括去數(shù)字、去空格)、分詞、添加標簽、合并文件、打亂數(shù)據(jù)順序等,他們主要的不同在于訓(xùn)練網(wǎng)絡(luò)結(jié)構(gòu)的差異,TextCNN采用詞向量生成(Embedding)、卷積(Convolution)、池化(MaxPolling)、全連接和Softmax,而fasttext采用了類CBOW架構(gòu)、層次softmax和N-gram字詞特征,后面會比較詳細介紹其工作原理。

使用fasttext算法,訓(xùn)練輪數(shù)設(shè)置為1000,wordNgram設(shè)置為3,使用10000條訓(xùn)練數(shù)據(jù),大約經(jīng)過2分鐘的訓(xùn)練生成模型,該模型在測試集上的準確率和召回率均超過98%。

(三)BERT建模過程

采用BERT訓(xùn)練建模,即在BERT的中文預(yù)訓(xùn)練模型的基礎(chǔ)上,再使用自己的數(shù)據(jù)進行訓(xùn)練,即便使用GPU,訓(xùn)練時間也可達到了數(shù)個小時之久,對硬件資源要求較高。

使用10000條投訴工單數(shù)據(jù),設(shè)置訓(xùn)練輪數(shù)為200,每一批次訓(xùn)練數(shù)據(jù)的數(shù)量為64,大約經(jīng)過12個小時的訓(xùn)練生成了模型,該模型在測試集上的準確率達到77%。

四、算法選擇

(一) 實驗數(shù)據(jù)介紹

本文采用的數(shù)據(jù)是我行2019年部分投訴工單,共10000條,其中訓(xùn)練集8000條,驗證集1 000條,測試集1 000條。按投訴業(yè)務(wù)辦理渠道的不同,該數(shù)據(jù)分為11類。

(二) 模型評價

使用上面三種算法分別進行建模試驗,并就有關(guān)指標進行比較,如下表所示:

案例 | 基于NLP及微服務(wù)架構(gòu)的投訴工單智能分類的實現(xiàn)

注:表中準確率、召回率、和F1值均通過每個標簽(共11個)分別計算后,再取不加權(quán)平均計算所得。

不難看出,fasttext在準確率、召回率、F1值都明顯高于TextCNN和BERT,而訓(xùn)練時間又大大縮短(僅2分鐘),fasttext在預(yù)測速度方面也占優(yōu)勢,據(jù)我們的實踐經(jīng)驗,fasttext可以在30ms內(nèi)返回預(yù)測結(jié)果,并且它無論訓(xùn)練還是實時預(yù)測對硬件要求都一般,不必使用GPU。

下面是fasttext訓(xùn)練過程中模型在測試集上的準確率與訓(xùn)練輪數(shù)的關(guān)系曲線:

案例 | 基于NLP及微服務(wù)架構(gòu)的投訴工單智能分類的實現(xiàn)

圖4:訓(xùn)練過程

不難發(fā)現(xiàn)fasttext更加適合投訴工單智能分類的實際需求。

五、算法原理

通過以上三種算法的建模實驗和指標對比,不難看出fasttext表現(xiàn)最佳。為什么使用fasttext算法訓(xùn)練的模型效果如此突出呢?下面我們簡要介紹其原理。

(一)fasttext模型架構(gòu)

如下圖所示,其中X1,X2,…,XN-1,XN表示一個文本中的N個字符級別的n-gram特征向量,fasttext就是用全部的n-gram去預(yù)測指定類別。

案例 | 基于NLP及微服務(wù)架構(gòu)的投訴工單智能分類的實現(xiàn)

圖5:fasttext模型架構(gòu)

(二)層次softmax

在標準的softmax中,計算一個類別的softmax概率時,需要對所有類別概率做歸一化,在這類別很大情況下非常耗時,因此提出了分層softmax(Hierarchical Softmax),思想是根據(jù)類別的頻率構(gòu)造霍夫曼樹來代替標準softmax,通過分層softmax可以將復(fù)雜度從N降低到logN,下圖給出分層softmax示例:

案例 | 基于NLP及微服務(wù)架構(gòu)的投訴工單智能分類的實現(xiàn)

圖6:分層softmax示例

(三)N-gram特征

N-gram是基于語言模型的算法,它的基本思想是將文本內(nèi)容按照子節(jié)順序進行大小為N的窗口滑動操作,最終形成窗口為N的字節(jié)片段序列。

每一個字節(jié)片段稱為gram,對所有g(shù)ram的出現(xiàn)頻度進行統(tǒng)計,并且按照事先設(shè)定好的閾值進行過濾,形成關(guān)鍵gram列表,也就是這個文本的向量特征空間,列表中的每一種gram就是一個特征向量維度。

簡而言之,fastText的核心思想就是:將整篇文檔的詞及n-gram向量疊加平均得到文檔向量,然后使用文檔向量做softmax多分類。這中間涉及到兩個技巧:字符級n-gram特征的引入以及分層Softmax分類。

六、服務(wù)部署

為保證服務(wù)效率,我們使用了輕量級的flask作為web框架,將模型訓(xùn)練、評價、測試、上線、預(yù)估等服務(wù)通過RESTful進行發(fā)布。為減小容器鏡像,根據(jù)算法框架的不同,打包進入執(zhí)行環(huán)境的代碼庫也不一樣,基于BERT的模型服務(wù)采用了tensorflow serving進行裝載部署,因該版本還不支持直接對輸入數(shù)據(jù)進行特征工程,在調(diào)用服務(wù)前對數(shù)據(jù)進行了預(yù)處理。對于Fasttext和TextCNN訓(xùn)練的模型則封裝成獨立模塊,載入內(nèi)存后由flask框架直接調(diào)用。

在模型服務(wù)的高可用和安全性上,我們直接利用了k8s的容器自動編排和安全隔離功能,實現(xiàn)服務(wù)的分布式部署、滾動更新和授權(quán)訪問。

在模型和數(shù)據(jù)共享方面,我們采用hadoop集群存儲各版本的模型和數(shù)據(jù),保證自學(xué)習(xí)模型迭代更新、效果評估和安全回退。

七、實踐體會

通過本項目實踐,積累了些許經(jīng)驗和體會,一并分享給大家。

(一)嘗試更多算法如XLNET等

本項目并未嘗試某些傳統(tǒng)算法比如貝葉斯、SVM、KNN、隨機森林、決策樹等,也沒有嘗試比較新的算法比如,XLNET等。從算法選擇的角度來說,應(yīng)該使用不同的數(shù)據(jù)集采用更多算法進行建模,記錄其在各項指標上的效果,從而更加全面的了解各種算法的特點,選擇出更加適合的算法。

(二)參數(shù)調(diào)優(yōu)

就fasttext算法而言,wordNgram(默認為1)設(shè)置為2以上可以明顯提高準確率。損失函數(shù)選用hs(hierarchical softmax)要比ns(negative sampling)訓(xùn)練速度要快很多倍,并且準確率也更高。epoch(訓(xùn)練輪數(shù))值設(shè)置適當(dāng)大一些,對準確率的提升效果明顯。lr(學(xué)習(xí)率)適當(dāng)調(diào)整對模型效果也有一定影響。同時要注意避免欠擬合及過擬合。

特別要提到的是,F(xiàn)acebook于2019年8月份給fasttext增加了自動調(diào)參功能,使得fasttext可以根據(jù)用戶的數(shù)據(jù)集自動選擇最好的超參數(shù),用于構(gòu)建高效的文本分類器。未來將嘗試使用該自動調(diào)參功能訓(xùn)練分類模型。

(三)借助微服務(wù)架構(gòu)提高上線部署效率

人工智能應(yīng)用最后一個重要環(huán)節(jié)是上線部署。這個環(huán)節(jié)需要考慮的是如何使待部署的服務(wù)獲得更高的敏捷性、靈活性、以及可擴展性。傳統(tǒng)的虛擬化模式、容器化模式等都不能滿足要求。微服務(wù)架構(gòu)因其應(yīng)用部署簡單、硬件資源利用率高、健康檢查和自修復(fù)、自動擴容縮容、服務(wù)發(fā)現(xiàn)和負載均衡、獨立開發(fā)、獨立部署、故障隔離、混合技術(shù)堆棧、粒度縮放等成為人工智能應(yīng)用服務(wù)部署的最佳選擇。

八、總結(jié)

本文簡要介紹了我行投訴工單智能分類的實踐過程,旨在為大家提供NLP和微服務(wù)架構(gòu)應(yīng)用的一種參考思路。本項目投產(chǎn)至今,運行平穩(wěn),因其分類準確率高,預(yù)測速度快,較大程度上減輕了業(yè)務(wù)人員的工作負擔(dān),獲得一致好評。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美日韩在线视频一区| 狠狠干狠狠操在线播放| 国产一区二区三中文字幕| 欧美一区二区三区播放| 日韩一区二区三区高清在| 国产a天堂一区二区专区| 91在线国内在线中文字幕| 国产精品十八禁亚洲黄污免费观看| 欧美夫妻性生活一区二区| 亚洲男人的天堂就去爱| 冬爱琴音一区二区中文字幕| 男生和女生哪个更好色| 草草视频精品在线观看| 亚洲av熟女国产一区二区三区站| 人妻露脸一区二区三区| 国产日本欧美韩国在线| 嫩草国产福利视频一区二区| 中文字幕区自拍偷拍区| 黄色在线免费高清观看| 美国欧洲日本韩国二本道| 国产成人精品在线一区二区三区| 伊人网免费在线观看高清版| 亚洲av一区二区三区精品| 国产不卡免费高清视频| 欧美人禽色视频免费看| 日韩欧美三级中文字幕| 大香蕉久久精品一区二区字幕 | 国产国产精品精品在线| 女同伦理国产精品久久久| 免费观看一区二区三区黄片| 五月婷婷六月丁香在线观看| 精品少妇人妻av一区二区蜜桃| 日韩国产欧美中文字幕| 亚洲av又爽又色又色| 中文字幕一区久久综合| 污污黄黄的成年亚洲毛片| 免费观看成人免费视频| 国产精品超碰在线观看| 久久亚洲午夜精品毛片| 中文字幕不卡欧美在线| 国产在线一区二区三区不卡 |