電信運營商提供基礎通信管道連接每一位用戶。每天數以億計的用戶會在管道中留下通信行為數據,構成運營商大數據。如何挖掘大數據來智能支撐運營商各項業務并進行業務轉型是一個需要深入思考的問題。本文主要介紹如何利用大數據與機器學習來支撐用戶離網管理。
隨著通信行業競爭日益激烈,每月都有大量的用戶離網,即不再使用運營商的通信服務。圖1展示的是上海聯通近一年預付費用戶流失率統計圖。從圖中可以看出預付費用戶由于沒有綁定合約,流失率比后付費用戶要高很多,平均每月有大約9.4%的預付費用戶流失,導致營收大幅下降。此外,吸引 新用戶入網的成本要比維系挽留有離網傾向用戶的成本要高大約3倍,因此使用數據挖掘方法進行離網預測,穩定在網用戶數是一項至關重要的任務。本文驗證了使用運營商大數據能顯著提高離網預測精度。上海聯通對高離網傾向用戶進行維挽活動,有效降低離網率。由于預付費離網用戶基數龐大,每降低1%離網率,就能每年額外獲得數百萬元營收。同時,通過大數據驅動的離網預測模型,我們還回答了關于大數據的三個科學問題:
Volume:是不是訓練數據量越大,預測模型精度越高?
Variety:是不是特征種類越多,預測模型精度越高?
Velocity:是不是訓練數據更新越快,預測模型精度越高?
圖1 預付費/后付費用戶流失率統計圖
運營商大數據平臺
在大數據時代,如果把數據比作黃金的話,那么運營商就是一座大金礦,每天都會產生TB(Terabyte)級別的數據。我們使用的運營商數據大致來自兩個系統,BSS(業務支持系統)和OSS(運營支持系統)。BSS是運營商向用戶開展業務的主要IT組成部分。OSS是電信服務提供商用來管理通信網絡的系統。
通常,這兩個系統分開獨立工作并產生自己的數據。大數據平臺把兩個獨立系統的數據整合起來支撐數據驅動的運營業務決策。BSS的數據主要分為四個部分:用戶信息/行為數據(User Base/Behavior)、投訴數據(Compliant)、賬單數據(Billing)和通話/短信數據(Voice/SMS CDR)。這些數據涵蓋了用戶個人的信息、通話行為(包括通話連接基站號、通話時間和時長等)、短信行為、消費情況、賬戶情況、投訴行為等等。每天BSS能夠新生成大約20GB數據。OSS的數據大致可以分為三塊:電路交換數據(Circuit Switch,CS)、分組交換數據(Package Switch,PS)和測量報告數據(Measurement Report,MR)。CS數據描述的是用戶的通話質量,比如掉話率、通話連接的成功率等。PS數據通常也被叫做MBB數據(Mobile BroadBand),它描述了用戶連接網絡的情況,比如上網速度、連接成功率和移動搜索文本信息等。MR數據來自無線電網絡控制器(Radio NetworkController,RNC),這些數據可以用來粗略的給用戶定位,獲知用戶運動的軌跡。每天OSS產生大約2TB數據,超過大數據平臺存儲數據的90%。除了BSS和OSS數據,我們還用爬蟲獲取了一些互聯網數據,比如地圖數據和一些社交網絡數據進行整合。
圖2 大數據平臺架構圖
圖2展示的是運營商大數據平臺的整體架構。我們將原始數據存儲在了Hadoop分布式文件系統中(HDFS)。然后再用Hive和Spark進行特征生成和處理工作。這些構成了數據層(DataLayer),負責定期收集更新來自 BSS和OSS的數據表。數據層通過數據總線連接到能力層(CapabilityLayer),我們在能力層構建了兩種不同的模型,業務部分和網絡部分。通過設計和業務相關的特征加上數據挖掘和機器學習算法,能力層不但能夠支持內部應用(比如精準營銷、維挽用戶和網絡優化等),還能支持一些外部應用(比如數據開放等)。本文介紹由大數據驅動的離網預測模型屬于應用層(Application Layer),圖2用紅色的虛線標明與數據層和能力層的關系。
離網預測模型
圖3 離網預測和維挽系統
離網預測模型的流程結構如圖3所示。(1)HDFS和Spark負責原始數據的存儲和管理。(2)特征工程模塊將原始數據處理成和離網相關的結構化特征,用作分類器的輸入。(3)利用分類器訓練出來的模型預測未來有離網傾向的用戶,按照離網傾向高低排名,根據這個名單進行個性化維挽。(4)將用戶維挽的結果反饋到模型中形成閉環,不斷提高模型預測容易維挽的離網用戶精度。模型主要分為了三個主要模塊:訓練/驗證數據標注、特征工程和分類器學習。其中最重要的是特征工程模塊,當然其他兩個模塊也會影響最后的結果,下面就從這三個方面來分別闡述我們的工作。
圖4 預付費用戶進入充值期后充值時間分布圖
訓練/測試數據標注
數據標注因為與需求直接掛鉤,所以是數據挖掘中非常重要的一步。如果訓練數據標注出現錯誤,那么分類器精度再高也無法滿足最初的需求。在離網問題中,我們需要在歷史記錄中找出所有離網的用戶,并標注為1,其余的在網用戶標注為0,這樣離網預測問題就轉化為一個二值分類問題。圖4顯示一年內預付費用戶進入充值期(欠費)后充值時間的分布。圖中橫軸表示預付費用戶進入充值期后再充值的天數,縱軸表示用戶的人數。從圖中可以觀察出以上的在網預付費用戶在欠費后15天內就會再充值(即在網用戶)。因此,如果預付費用戶欠費15天內還未充值,那么該用戶就可以被定義為離網用戶。
特征工程
根據數據的特點不同,所設計的特征可以被分成三部分:基本特征、CS特征、PS特征。其中,基本特征主要從BSS數據中抽取,之前很多的離網預測研究都僅使用了來自BSS數據的基本特征,例如賬戶余額、通話頻率、充值金額、投訴頻率等記錄。與基本特征不同,CS特征和PS特征都從OSS數據中抽取。我們選取了幾種具有代表性的上網/語音質量特征和用戶位置特征,比如平均數據上傳/下載速率、最經常出現的位置 (通過MR數據獲得)等。此外,我們還利用一些非監督和半監督算法從原始數據中生成一些比較復雜的特征。基于圖的特征、主題特征、二階特征。對每個用戶都生成一個維度的特征向量。
圖特征
用戶是否離網可能受周圍人的影響,因此我們可以通過用戶之間的關系來挖掘出離網傾向。我們構建三個無向圖包括通話圖、短信圖和共同位置圖(同時出現在一個位置)。其中每個用戶是一個節點,用戶之間邊的權重代表他們聯系的強弱。例如,通話圖邊上的權重就是兩個人在一段時間內(比如一個月)相互通話時間的總和。我們規定用戶之間一定要相互通話過才能有邊相連,這是為了排除一些推銷和騷擾電話(單向邊)的影響。我們用Hive/Spark SQL生成了上面描述的無向圖,用系數矩陣ε表示,ε={wm,n≠0}。基于這個無向圖,我們使用PageRank和 Label Propagation算法各自生成一維特征。由于傳統的PageRank算法的邊并沒有權重,我們使用了加權的 PageRank算法。Label Propagation算法將離網用戶標注通過無向圖邊的權重向在網用戶傳遞。
主題特征
用戶在投訴和移動搜索中能夠產生很多文本數據,從文本信息中也能挖掘出有價值的特征。在一段時間內(比如一個月),每個用戶可以被認為是一篇文檔,文檔中是他的投訴紀錄或者是搜索關鍵字。依據詞袋(BagofWords)文檔中單詞認為是無序的,去掉一些無意思的詞后,我們將投訴和搜索內容分別構建了大小為2408和15974的單詞表。由于這個矩陣是高維稀疏矩陣,不適合直接作為特征加入我們的分類器。因此我們用概率主題建模算法LDA(Latent Dirichlet Allocation)從高維稀疏矩陣獲取低維稠密特征,在人工設定主題數K后,算法能夠把每個用戶高維的特征變成K維。
二階特征
在設計完全部的單項特征后,我們又在此基礎上對單項特征進行組合。原來的特征向量為Xm={x1,x2,…,xi,… ,xN},二階組合特征定義為xixj,這可以幫助我們發現特征之間的隱含關系。如果把這些二階的特征全部加入的話會使特征向量的維度變得很大,因此我們使用LIBFM模型來選擇在模型中權重貢獻最大的前20個二階特征。
分類器
我們使用隨機森林模型作為分類器,這是目前被廣泛使用的幾種分類器中預測性能較好,同時適合大規模并行運算,能夠快速學習稠密的特征向量。隨機森林 是由許多棵在特征子空間中構建的決策樹組成的集合,每棵決策樹是一個子分類器,隨機森林平均所有子分類器的預測結果作為最終的預測結果。對于每一個待預測的用戶,隨機森林能夠給出離網概率(也就是該用戶標注為1的概率)。隨機森林還能根據信息增益計算出每個特征的重要性排名,方便我們對特征進行評估,改進之前設計的特征。
實驗結果
利用搭建的運營商大數據平臺,我們驗證了大數據的3V特性能夠顯著提高離網預測的精度。下面會從Volume、Variety、Velocity三個方面驗證我們得出的結論。預測精度采用數據挖掘常用的Recall、Precision、AUC和Precision-RecallAUC指標衡量。其中,對預測離網概率從大到小排序首個用戶計算Recall和Precision。
圖5 增加訓練數據量使得預測精度逐步提高
圖5回答了關于大數據的第一個問題:是不是訓練數據量越大,預測模型的精度越高?這個實驗的訓練集用的是1-6個月的數據,測試集選用第個7月。一共進行6次實驗,每次都比前一次多用一個月的訓練數據。為了保證實驗的準確性,我們采用滑動窗口方式,又重復做了兩組(第二次選用2-7月做訓練集,第8個月數據做測試集),將三次得到的結果取平均值。實驗結果如圖5所示,可以看到在訓練數據量增加到初始的4倍時,預測精度還在不斷上升。這個實驗也說明了訓練數據量的增多確實能夠提高預測的精度。
表1 增加數據種類實驗結果(U=2x105)
表1回答了關于大數據的第二個問題,是否加大抽取特征的多樣性,預測模型的精度就越高。每一種特征哪怕只提供很少關于預測結果的信息,累積起來也能增強模型的預測精度。實驗中,我們把之前提及的特征分為大類:F1)BSS特征;F2)CS特征;F3)PS特征;F4)通話網圖特征;F5)短信圖特征;F6)共現圖特征;F7)主題特征(投訴);F8)主體特征(移動搜索);F9)二階特征。實驗共做7組(選取不同月份,與上面的實驗類似),取結果的平均值。每組實驗先只用F1做基本特征,然后再用F1+F2,F1+F3,…,F1+F9,分別得到9組預測結果,最后將后8次預測精度與第1次比較。實驗結果如表1所示,加大特征多樣性能夠顯著提升模型預測精度。
表2 加快數據更新實驗結果(U=2x105)
表2回答了關于大數據的最后一個問題:是不是訓練數據越新(處理速度越快),預測模型精度越高?這個問題用到離網預測模型也可以換種說法:需要多久用新來的數據更新分類器,從而使能模型能夠更好地捕捉用戶的離網行為?為了驗證這個問題,我們分別用用戶5天前、10天前、20天前和30天前的一個月數據來預測該用戶接下來30天是否會離網。實驗結果如表3所示。我們發現模型更新時間間隔越小,也就是訓練數據更新速度越快,預測精度越高。但是,預測精度提高的幅度遠遠沒有之前加大訓練數據量和增加特征多樣性那樣顯著。
表3 大數據驅動的離網預測模型最終性能
表3總結了大數據驅動的離網預測模型綜合表現,采用4個月的訓練數據,所有從BSS和OSS數據抽取的特征,模型更新速度是30天。該模型在前5萬最高離網概率用戶的預測精度接近0.96,在前30萬最高離網概率用戶的預測精度超過0.5,滿足商用要求,為維系挽留用戶提供了較好的決策依據。
結論
本文從大數據3V的角度重新探索經典的離網預測問題,展現了大數據的威力,訓練數據的總量、多樣性和更新速度確實能夠顯著提升預測精度。其中,3V中的多樣性(Variety)起了最主要的作用,促使我們重視OSS數據的挖掘,而之前的研究主要集中于易于獲得的BSS數據,對OSS數據并沒有很好地利用。OSS數據量的龐大并有較高的潛在商業價值,如果能對OSS數據進行有效的開發,必將給運營商帶來持續的收益。本文中,我們整合BSS和OSS數據特征,并取得較好的離網預測效果也證明了這一點。最后,感謝蘇州大學計算機科學與技術學院兩位同學黃一清和朱方舟實現并調試離網預測模型的原型。