陳亮+王剛+王震



摘 要:為提升電力客戶服務質量,在進行電力客服工單文本挖掘時,對工單文本首先進行切詞,然后應用分布式內存計算框架構建并行LDA主題模型,對工單進行文本主題分析。使用國網公司某網省電力客服工單進行了主題分析,結合業務專家經驗確定主體數k=10較合適,結果表明分布式內存計算框架下的并行LDA主題模型可以應用于客服工單的文本挖掘。
關鍵詞:工單文本挖掘 并行LDA 分布式內存計算
中圖分類號:F407.61 文獻標識碼:A 文章編號:1674-098X(2017)04(c)-0245-05
Abstract:Applicate distributed computing framework to construct parallel theme LDA model, then modeling power customer service work order text theme. Use SGC a net province electric power customer service work order are analyzed in the text theme, calculation results show that the distributed memory parallel theme LDA model under the framework of text mining can be applied to customer service work order.
Key Words:Worksheet semantic analysis; Parallel LDA; Distributed memory computing
優質服務是一切企業生存與發展的基礎和前提。國家電網公司將電力的優質服務定位成“國家電網的生命線”,足見其對于電力企業的重要作用。國網某省公司為充分發揮電力客戶服務中心“對客戶服務的窗口作用、對市公司的橋梁作用、對業務部門的決策支撐作用、對供電服務質量的監督作用”,基于國網南中心辦結與轉派的海量工單數據,對分散在95598日常業務工單中的用戶訴求與供電服務質量的關系進行全方位、多維度、多層次的統計分析。依托現有國網95598系統、營銷業務系統等數據,通過95598模塊優化提升,對營業普遍和專題性問題、客戶服務效率問題、客戶服務滿意度提升方面進行深入分析,探究客戶用電服務中的共性問題以及分布、趨勢和原因,挖掘用戶用電的普遍性規律,找出用戶用電過程中敏感的、重點關注的,受行為習慣、外界因素影響的深層次原因。進一步挖掘分析業務處理各流程環節的短板、問題和原因所在,將加強各類業務督辦和服務協同,提升95598業務服務能力,提高客戶服務質量。
該文的方法首先將電力客服工單文本根據自建的電力關聯詞庫及非關聯詞庫進行文本切詞,然后在分布式內存計算框架下構建并行LDA主題模型,最后利用該模型進行文本主題挖掘,得到電力客服工單的主題描述。該方法結合國家電網某省公司實際電力工單文本數據,進行文本主題分析,結果表明可以有效描述電力客服工單主題。
1 并行LDA主題模型
隱含狄利克雷分布(Latent Dirichlet allocation,LDA)是一種主題模型(Topic Model),也是一種詞袋模型,采用無監督學習算法,由Blei等于2003年提出。LDA主題模型可以以概率分布的形式給出文檔集中每篇文檔主題,并且在訓練時不需要帶標注的訓練集。目前,LDA主題模型在文本挖掘領域中的文本主題識別、文本分類及相似度計算等方面都有廣泛應用。
1.1 LDA主題模型
LDA主題模型是一種詞袋模型,將語料庫看作文檔集合,將文檔看作單詞集合。文檔就像一個裝單詞的袋子,袋子中的單詞獨立并可交換(即沒有單詞順序和語法結構),基于此可將文檔文本轉換成對應的詞頻向量,完成文檔數字化抽象。LDA主題模型將文檔視為“文檔—主題—詞”的三層貝葉斯結構,每篇文檔是若干主題的概率分布,每個主題是若干詞的概率分布[1]。LDA主題模型的概率圖模型見圖1。
圖1中,是文檔—主題的Dirichlet分布的超參數;是主題—詞的Dirichlet分布的超參數;是第i篇文檔中主題的多項式分布的超參數;是第k個主題中詞的多項式分布超參數;是第i篇文檔中第j個詞的主題;Wi,j是第i篇文檔中第j個詞;M是預料庫中的文檔數;Ni是第i篇文檔中詞數。
根據LDA主題模型的文檔生成方式,模型中可見變量和隱變量的聯合概率分布:
公式(1)中各變量含義與圖1中一致。
根據極大似然估計,可以由對公式(1)得到一篇文檔中單詞的分布:
公式(2)中各變量含義與圖1中一致。
通過的極大似然估計,最終可以使用吉布斯采樣(Gibbs Sampling)方法估計模型中的參數。
1.2 LDA主題模型的并行化
應用吉布斯采樣方法可以估計模型中的參數,但是必須獲取到除當前參數外其他全部參數的狀態。所以,標準的LDA主題模型是一個串行學習的過程。近似分布LDA(AD-LDA)是一種分布式并行化的LDA算法。AD-LDA基于吉布斯采樣,采用數據并行方式及參數全局融合思想,可以構建近似的并行化LDA主題模型。首先初始化LDA主題模型的全局參數,優化各分布的主題模型,然后采用同步或異步方式融合的到全局LDA主題模型參數[2]。AD-LDA算法見圖2。
圖2中,(W, T)(1)是并行處理的預料數據塊,W是文本,T是主題,上標是數據塊標號;Nt,d(1)是文檔—主題頻率計數矩陣,上標是與數據塊對應的矩陣標號;Nw,t(1)是主題—單詞頻率計數矩陣,上標是任務標號;Local(Nw,t(1))是并行的本地模型;Global(Nw,t)是全局模型。
AD-LDA算法簡述為:
(1)將語料數據分塊為(W,T)(i),構建對應的文檔—主題頻率計數矩陣Nt,d(i);
(2)構建并行采樣任務,使用分塊語料數據訓練本地模型Local(Nw,t(i));
(3)并行任務之間采用同步或異步方式借助全局參數服務器融合Global(Nw,t)全局模型。
近似分布LDA是標準LDA主題模型的近似,會使得訓練收斂速度變慢,在幾輪迭代后可以收斂到與串行吉布斯采樣相同的超參數。可以在大規模分布式計算框架下加速收斂速度。
2 分布式內存計算框架
Apache Spark是UC Berkeley大學AMPLab實驗室于2009年創建的分布式內存計算框架項目,并于2010年將其作為開源項目貢獻給Apache基金會。截止到Spark 2.0版本,該項目由核心模塊(Apache Spark Core)、類SQL查詢模塊(Spark SQL)、機器學習模塊(MLlib)和圖計算模塊(GrapheX)組成,其架構見圖3。
Apache Spark是一種與Apache Hadoop類似的基于MapReduce并行計算范式的分布式計算框架。Apache Spark與ApacheHadoop的關鍵不同在于,Apache Spark是基于內存的分布式計算框架,即計算作業的中間結果保存在內存中,在非必要時不需要頻繁的讀寫外部存儲介質,從而減少大量的I/O操作。而Apache Hadoop在Map階段之后與Reduce階段之前的中間結果硬性要求進行I/O操作。Apache Spark的這種內存計算特性使得在進行大規模迭代式機器學習與數據挖掘時效率很高。
Apache Spark的核心組件是彈性分布式數據集(Resilient Distributed Dataset, RDD),是一個分布式內存的抽象。RDD提供了以操作本地數據集合的方式來操作分布式數據集合的抽象。將頻繁使用的RDD緩存到內存,這樣對該RDD的計算可以直接在內存中進行,避免了大量I/O操作。但是,在內存消耗較大時RDD仍需要存儲到外存中,這時需要要求其中的數據集是可序列化的(serializable)。RDD內部實現由5部分組成:
(1)數據塊列表,即數據集分區列表。
(2)由父RDD生成子RDD時執行的數據塊函數。
(3)對父RDD的依賴關系列表。
(4)用于分割數據,確定所在分區的partitioner()函數。
(5)數據塊預定義存儲地址列表。
Apache Spark RDD有兩類計算方式,Transformation計算和Action計算。Transformation計算是懶執行的,即一個RDD通過執行Transformation計算生成新RDD時,該計算并不執行,而僅僅是記錄該計算,當遇到Action計算時才執行計算。Transformation計算主要包括:map\filter\flatMap\mapPartitions\groupByKey\join\cogroup\repartition等。Action計算是立即執行的,執行完畢后將結果寫入外部存儲系統。Action計算主要包括:reduce\collect\count\countByKey\foreach\saveAsTextFile等。圖4說明了計算的執行過程。
Apache Spark RDD提供了審計容錯機制,是通過在RDD的計算過程中設置Checkpoint完成的。在RDD的計算過程中對RDD的轉換過程進行記錄,記錄RDD之間的準換過程和關系,設置Checkpoint,轉換記錄被稱為Lineage。當系統需要回滾時,Apache Spark根據這些Lineage轉換記錄重新計算,完成作業操作。
3 應用分析
應用上述方法,選取國網公司某網省公司某年1~6月份95598客服工單數據(約204萬條)進行分析。結合電力行業詞庫與非電力行業詞庫,對工單文本數據進行切詞處理,表1為部分工單文本切詞結果數據。
應用并行LDA主題模型,在分布式內存計算框架下,以主題數為10(k=10)進行文本分析,各主題包括的主題詞見表2。
4 結語
結合電力工單文本數據的非結構化數據特點,使用某網省電力客戶文本工單數據,首先對工單文本結合電力詞典進行分詞,然后應用分布式內存計算框架,構建并行LDA主題模型對其進行文本挖掘。結合客戶業務專家經驗進一步進行語義分析,提高了工單文本分析的效率。通過仿真計算表明能夠較好的提取工單文本語義信息,滿足實際應用需求。
參考文獻
[1] Blei, David M, Ng A Y, Jordan M I. Latent dirichlet allocation[C]. Neural Information Processing System, 2001:601-608.
[2] Newman D. Asuncion A U, Smyth P, et al. Distributed inference for latent dirichlet allocation[C]. Neural Information Processing Systems, 2008:81-88.
[3] 劉興平,章曉明,沈然,等.電力企業投訴工單文本挖掘模型[J].電力需求側管理,2016,18(2):57-60.
[4] 王震,代巖巖,陳亮,等.基于LDA模型的95598熱點業務工單挖掘分析[J].電子技術與軟件工程,2016(22):190-192.
[5] 高陽,嚴建峰,劉曉升.樸素并行LDA[J].計算機科學,2015,42(6):243-246.
[6] 王旭仁,姚葉鵬,冉春風,等.一種并行LDA主題模型建立方法研究[J].北京理工大學學報,2013,33(6):590-593.