趙進(jìn),楊小軍
(中國電信股份有限公司重慶分公司,重慶 401120)
大數(shù)據(jù)和人工智能作為國家提出的新型基礎(chǔ)設(shè)施,引發(fā)了新一輪的科技革命。中國電信作為國內(nèi)三大電信運營商之一、三化(數(shù)字化、信息化、智能化)產(chǎn)業(yè)布局者,正著力于大數(shù)據(jù)和人工智能在其業(yè)務(wù)和服務(wù)上落地生根,實現(xiàn)數(shù)字化轉(zhuǎn)型戰(zhàn)略目標(biāo)。中國電信始終將用戶的良好體驗和用戶感知放在首位,對用戶的投訴進(jìn)行業(yè)務(wù)拆解和快速分析,以求及時準(zhǔn)確地反饋用戶,規(guī)避用戶越級投訴的風(fēng)險和提升用戶良好體驗和使用感知。但是電信的業(yè)務(wù)服務(wù)類別復(fù)雜多樣,有效地識別用戶投訴類型目前還處于人工分類階段,在實際工作過程中,業(yè)務(wù)領(lǐng)域?qū)<业慕?jīng)驗起著主導(dǎo)作用[1],而培養(yǎng)一個業(yè)務(wù)領(lǐng)域?qū)<倚枰罅康臅r間成本和人力成本,因此,需要建立科學(xué)合理的文本分類模型。通常用戶投訴數(shù)據(jù)有多種來源,如10000、微信公眾號、線下廳店等,最終都會以非結(jié)構(gòu)化的文本信息記錄在系統(tǒng)中,如何對這些用戶的投訴信息進(jìn)行有效、快速、準(zhǔn)確的分類成為處理用戶投訴、提升用戶良好體驗和使用感知的關(guān)鍵[2]。
文本分類屬于自然語言處理(natural language processing,NLP)應(yīng)用研究范疇中的一個分支[3],在文本分類方法上,目前已經(jīng)有了很多有突破性的研究成果,比如基于樸素貝葉斯方法的文本分類方法[4]、基于條件隨機(jī)場的分類方法[5]等,隨著深度學(xué)習(xí)向文本挖掘領(lǐng)域發(fā)展,利用word2vec、LSTM、CNN、TextRNN、預(yù)訓(xùn)練模型Bert等深度學(xué)習(xí)模型對文本進(jìn)行分類,也取得了比較好的分類效果,并且在部分人工智能產(chǎn)品中落地應(yīng)用。在傳統(tǒng)的文本分類方法中,需要將文本轉(zhuǎn)換成高維向量,這一般會造成向量維度過大,無論計算內(nèi)存還是計算時間,計算復(fù)雜度將會非常大。為了避免高維風(fēng)險,需要借助特征工程的相關(guān)方法或模型對文本的關(guān)鍵特征進(jìn)行有效的提取,實現(xiàn)降低文本特征向量的維度數(shù)。目前文本特征提取有基于詞頻(TF-IDF)的方法、基于互信息(mutual information,MI)的方法、基于(Chi-square)統(tǒng)計量的方法、基于信息增益(information gain,IG)的方法、基于WLLR(weighted log likelihood ration,WLLR)的方法和基于WFO(weighted frequency and odd,WFO)的方法等[6]。在電信用戶投訴文本數(shù)據(jù)中,存在很多與分類結(jié)果無關(guān)的信息描述,同時電信業(yè)務(wù)的類別復(fù)雜,多達(dá)幾十種。針對上述問題,本文提出基于GRW和FastText模型的方法,對用戶投訴文本進(jìn)行多分類,并且基于真實的生產(chǎn)系統(tǒng)數(shù)據(jù)進(jìn)行相關(guān)驗證性實驗,驗證了本文方法的有效性。
文本數(shù)據(jù)的特征提取方式與傳統(tǒng)的數(shù)值類型特征的提取方式不同。在數(shù)據(jù)表示上,傳統(tǒng)機(jī)器學(xué)習(xí)的數(shù)據(jù)由一組結(jié)構(gòu)化的數(shù)據(jù)組成,這些數(shù)據(jù)的特征一般表現(xiàn)為字符串型的類別性、數(shù)值的離散性、數(shù)值的連續(xù)性、數(shù)據(jù)的時間性或周期性等,而文本數(shù)據(jù)屬于非結(jié)構(gòu)化數(shù)據(jù),由字、詞、句組成。因此在對文本數(shù)據(jù)進(jìn)行特征提取前,需要對文本進(jìn)行預(yù)處理,將文本拆分成字粒度或詞粒度,然后通過不同的方法對文本數(shù)據(jù)進(jìn)行數(shù)學(xué)表示。第一種方法是將文本表示成離散型數(shù)據(jù),如One-hot編碼和Multi-hot編碼等;第二種方法是將文本表示成分布式型數(shù)據(jù),如矩陣表示法、降維表示法、聚類表示法、神經(jīng)網(wǎng)絡(luò)表示法。
中文文本數(shù)據(jù)由字、詞、句組成的文本,將中文文本按字、詞進(jìn)行拆分后可以進(jìn)行一些數(shù)學(xué)統(tǒng)計,其中TF-IDF用來評估一個字或詞對一個文本集或語料庫中的一條文本的重要程度。當(dāng)一個字或詞在一個文本數(shù)據(jù)中重復(fù)出現(xiàn)時,則認(rèn)為該字或詞具有比較高的重要性,但如果該字或詞在所有的文本集或語料庫中均出現(xiàn),且統(tǒng)計其出現(xiàn)的次數(shù)比較高,則該字或詞的重要性反而會下降,如一些介詞、謂詞等。詞頻(term frequency,TF),即字或詞在文本中復(fù)現(xiàn)的頻率;逆向文本頻率指數(shù)(inverse document frequency,IDF),即一個字或詞在所有的文本中復(fù)現(xiàn)的頻率,如果一個字或詞在很多文本中出現(xiàn),那么IDF值較小,反之,如果一個詞在比較少的文本中出現(xiàn),那么它的IDF值較大。TF-IDF計算式如下:
其中,nij是該詞在文本dj中出現(xiàn)的次數(shù),是文本dj中的所有字或詞出現(xiàn)的總次數(shù),|D|是文本集或語料庫中的總的文本數(shù)量。|{j:ti∈dj}|表示包含字或詞ti的文本數(shù)目。
2011年Imambi提出特征加權(quán)方案GRW[7],賦予特征詞TF-IDF不同的權(quán)重。GRW模型計算式如下:
其中,TFIDFj是字或詞的T-FIDF值,P(Tij)是屬于分類i的詞j的概率,P(Ci)是屬于分類i的文檔的概率,然后選擇字或詞的最大GRW值確定屬于某個分類類別的特征詞:
例如,如果GRW(t1,c1)=0.3,GRW(t1,c2)=0.4,則詞t1被選擇為類別c2的特征詞。
SagarImambi在5 460份文檔的數(shù)據(jù)集上,分別采用GRW、TFIDF、CFS、信息增益比(gain ratio,GR)、Chi-square和過濾子集(filtered subset,F(xiàn)S)對文檔進(jìn)行特征選擇后,在貝葉斯網(wǎng)絡(luò)、樸素貝葉斯、決策樹等分類算法上進(jìn)行相關(guān)實驗,實驗表明,用GRW模型進(jìn)行特征選擇后,具有較高的準(zhǔn)確率(準(zhǔn)確率比較見表1),因此文本也將使用GRW模型進(jìn)行特征選擇。
表1 準(zhǔn)確率比較[7]
FastText是FAIR(facebook AI research)提出的文本分類模型[8],該模型只有3層:輸入層、隱含層和輸出層。模型結(jié)構(gòu)如圖1所示。
圖1 FastText模型結(jié)構(gòu)
其中,W(i)(1≤i≤n)表示文本數(shù)據(jù)中每個特征詞的詞嵌入,對每個特征詞的詞嵌入進(jìn)行累加后求其均值,用以表示該文本,最后通過sigmoid函數(shù)得到輸出層的標(biāo)簽。在訓(xùn)練該神經(jīng)網(wǎng)絡(luò)模型時,通過前向傳播算法進(jìn)行訓(xùn)練:
其中,z是一個向量,作為輸出層的輸入,W0是一個矩陣,存放模型隱含層到模型輸出層的權(quán)重。
通常通過神經(jīng)網(wǎng)絡(luò)模型的輸出層得到最終的分類類別時,采用softmax作為激活函數(shù),將輸出層的每個預(yù)測值壓縮在0到1之間并歸一化。但隨著分類類別的增加,softmax計算量也逐漸增加,為了減少訓(xùn)練時間,加快模型的訓(xùn)練過程,F(xiàn)astText使用每個分類類別的權(quán)重和模型的參數(shù)構(gòu)建一棵Huffman樹,形成了層次softmax,由于具有Huffman樹的特點,很大程度上提高了模型的訓(xùn)練效率。
FastText模型的隱含層對每個特征詞的詞嵌入進(jìn)行累加后求均值,如果打亂詞的順序,該累加后求均值的方法并不影響隱含層的輸出,但失去了語言模型的上下文關(guān)系,如:“馬上”和“上馬”實際含義并不相同。在統(tǒng)計學(xué)語言模型中,N-gram算法采用的是滑動窗口法,取一個長度為N的窗口,按照字或詞依次滑過文本,生成片段序列,在FastText模型前向傳播過程中,把采用N-gram生成的片段序列表示成向量,也參與到隱含層的累加求均值過程中。然后所有的N-gram被Hash到不同的桶中,但是同一個桶共享嵌入向量,如圖2所示。
圖2 Embedding矩陣
Embedding(嵌入)矩陣中的每一行代表了一個字、詞或N-gram的嵌入向量,其中,前0到V-1行是詞嵌入,后0到Bucket-1行是N-gram嵌入。經(jīng)過大小為N的滑動窗口生成的片段序列被哈希函數(shù)作用后,被分散到0到Bucket-1的位置,得到每個片段序列的嵌入向量。
本實驗在公開數(shù)據(jù)集和私有數(shù)據(jù)集上進(jìn)行。其中,公開數(shù)據(jù)集采用新浪新聞從2005年到2011年的歷史數(shù)據(jù),一共覆蓋10類新聞,每類新聞包括65 000條樣本。私有數(shù)據(jù)來源于某運營商已進(jìn)行人工標(biāo)注的29 084條投訴文本信息,這些投訴文本信息中包括了一些業(yè)務(wù)部門規(guī)定的基礎(chǔ)的模板信息(如投訴時間、投訴事件、業(yè)務(wù)號碼、投訴原因、用戶要求、聯(lián)系時間等),在對數(shù)據(jù)集進(jìn)行特征提取前,需要對這些模板信息(如刪除固定的符號、刪除規(guī)定的規(guī)范用詞等)進(jìn)行初步的清理,投訴內(nèi)容的原文以及對應(yīng)的清理后的投訴內(nèi)容見表2,這有利于初步降低特征詞向量的維度、過濾無用符號等。
表2 用戶投訴文本信息
由于投訴文本以最終分類到具體的業(yè)務(wù)類別為標(biāo)準(zhǔn),進(jìn)而供業(yè)務(wù)單位處理。某運營商在業(yè)務(wù)類別分類上采用多級標(biāo)識,以“>”作為上下級分割符號,且各業(yè)務(wù)類別均表示得比較獨立,因此將此投訴文本分類問題,定義為標(biāo)簽多分類問題而不是多標(biāo)簽分類問題。本實驗樣本已標(biāo)記的數(shù)據(jù)分類類別共有89類,標(biāo)簽均為文本,需要對類別進(jìn)行編碼,部分類別編碼后見表3。
表3 業(yè)務(wù)類別編碼
從圖3投訴數(shù)據(jù)集分類統(tǒng)計可以看出,本次實驗數(shù)據(jù)集分布不均勻,業(yè)務(wù)類別記錄數(shù)從51到3 546條,屬于類別不均衡問題。此時,準(zhǔn)確率不能作為最后分類模型效果評估的唯一標(biāo)準(zhǔn),本文采用準(zhǔn)確率(accuracy)、Kappa系數(shù)以及漢明損失(Hamming loss)作為評價模型好壞的指標(biāo)。
圖3 投訴數(shù)據(jù)集分類統(tǒng)計
將實驗樣本數(shù)隨機(jī)打亂順序后,按7:3比例進(jìn)行拆分,70%的數(shù)據(jù)作為訓(xùn)練集,用于模型訓(xùn)練;30%的數(shù)據(jù)作為測試集,用于模型驗證。
對中文文本數(shù)據(jù)進(jìn)行特征提取前,需要對文本進(jìn)行分詞,本實驗在采用jieba分詞工具的精確模式對文本進(jìn)行分詞的同時,使用電信行業(yè)專用業(yè)務(wù)詞匯作為用戶詞典和中文標(biāo)準(zhǔn)停用詞,以提高分詞的準(zhǔn)確性。
使用GRW模型對用戶投訴文本進(jìn)行特征提取,提取出每個類別(標(biāo)簽)的特征詞組,部分特征詞組見表4。
表4 分類類別及對應(yīng)特征詞組
二分類問題的評價指標(biāo)通常為準(zhǔn)確率、精確率、召回率、F1-score、AUC、ROC、P-R曲線等,多分類問題的模型評估方式有兩種:第一種是將多分類的問題通過某種方式轉(zhuǎn)化為N個二分類的問題;第二種是采用多分類指標(biāo)。常見多分類問題評價指標(biāo)如下。
(1)準(zhǔn)確率
一般分類問題采用混淆矩陣來判斷分類的效果,混淆矩陣如圖4所示。
圖4 混淆矩陣
其中,TP(true positives)表示預(yù)測對,實際也對;FP(false positives):表示預(yù)測為對,實際為錯;TN(true negatives):預(yù)測為錯,實際為錯;FN(false negatives):預(yù)測為錯,實際為對。準(zhǔn)確率(accuracy)計算式如下:
(2)Kappa系數(shù)
Kappa系數(shù)用于衡量多項獨立指標(biāo)的一致性(可靠性),表示具有有限范圍的任何統(tǒng)計量的重新定標(biāo),形式為(S-SR)/ max(S-SR),其中SR是在隨機(jī)性假設(shè)下的S值。Kappa系數(shù)取值范圍為-1到+1,值越高,代表模型實現(xiàn)的分類準(zhǔn)確度越高。
其中,PA是總體分類精度,PC=P2+P′2,P是所有分類的比例,和為1。Kappa系數(shù)及一致性等級對應(yīng)關(guān)系見表5。
表5 Kappa系數(shù)及一致性等級對應(yīng)關(guān)系
(3)漢明損失[10]
漢明損失考查實例標(biāo)簽被錯誤分類的情況。對于給定的向量f和預(yù)測函數(shù)F,漢明損失函數(shù)計算式如下:
其中,
漢明損失計算可描述為相關(guān)的分類標(biāo)簽不在已預(yù)測的分類標(biāo)簽集合中,或者描述為無關(guān)的分類標(biāo)簽在已預(yù)測的分類標(biāo)簽集合中,因此,漢明損失指標(biāo)值與模型的分類能力呈現(xiàn)正相關(guān)性。
本實驗分別采用詞袋模型和樸素貝葉斯模型、Embedding和雙向LSTM模型、預(yù)訓(xùn)練Bert模型、FastText模型作為基礎(chǔ)模型在公開數(shù)據(jù)集和私有數(shù)據(jù)集上進(jìn)行訓(xùn)練,再用GRW模型對特征進(jìn)行提取后,結(jié)合FastText模型在訓(xùn)練集上進(jìn)行訓(xùn)練,最后在同樣的測試集上進(jìn)行驗證,結(jié)果見表6、表7。
表6 模型對比(公開數(shù)據(jù)集)
表7 模型對比(私有數(shù)據(jù)集)
對實驗結(jié)果進(jìn)行比較分析可以看出,本文提出的基于GRW模型和FastText模型的分類方法在準(zhǔn)確率、Kappa系數(shù)、漢明損失等指標(biāo)上,比其他幾個模型有所提升,主要在于GRW模型在特征詞的提取上,進(jìn)一步優(yōu)化了特征詞的重要性。
2020年10 月在某運營商采用本文提出的模型對電信用戶投訴文本進(jìn)行分類,分別從“5G”“攜號轉(zhuǎn)網(wǎng)”和“橙分期”3個專題投訴分析過程中驗證模型。10月“5G”大類投訴共656件,“攜號轉(zhuǎn)網(wǎng)”大類投訴共508件,“橙分期”大類投訴140件,采用人工對這3類進(jìn)行投訴類別細(xì)分,平均耗時1 min/件,準(zhǔn)確率為90%。采用本文提出的模型進(jìn)行自動分類后,總共耗時不到2 s,準(zhǔn)確率達(dá)86%,接近人工分類準(zhǔn)確率,提高了業(yè)務(wù)人員工作效率,縮短了投訴處理時長。
本文提出了一種基于GRW模型和FastText模型的文本分類方法,并應(yīng)用于電信用戶的投訴文本分類問題中,在實驗結(jié)果對比上,基于GRW模型和FastText模型的方法比Bag of Words+樸素貝葉斯模型、Embedding+雙向LSTM、Bert和Fast模型在準(zhǔn)確率、Kappa系數(shù)、漢明損失上有所提升。GRW模型是加權(quán)的TF-IDF模型,在數(shù)據(jù)分析過程中有較好的準(zhǔn)確性和解釋性,使用FastText模型進(jìn)行投訴文本分類具有較快的分類速度和較好的準(zhǔn)確率。綜上,使用本文提出的方法,有利于業(yè)務(wù)人員快速識別投訴業(yè)務(wù)類型,進(jìn)行針對性的業(yè)務(wù)受理和用戶服務(wù),以提升用戶感知。