陶彩霞,謝曉軍,陳 康,郭利榮,劉 春
(中國電信股份有限公司廣東研究院 廣州 510630)
從2010年開始,國內(nèi)移動互聯(lián)網(wǎng)進入快速發(fā)展階段,領(lǐng)先的電信運營商開始布局移動互聯(lián)網(wǎng),同時,互聯(lián)網(wǎng)公司全面介入,終端廠商也基于應(yīng)用商店模式快速加入移動互聯(lián)網(wǎng)領(lǐng)域。根據(jù)艾瑞咨詢發(fā)布的數(shù)據(jù),全球移動互聯(lián)網(wǎng)用戶數(shù)正呈爆發(fā)式增長,2014年全球移動互聯(lián)網(wǎng)用戶數(shù)有望達到14億。然而在數(shù)據(jù)流量快速增長的同時,電信運營商卻出現(xiàn)數(shù)據(jù)業(yè)務(wù)收入增速放緩的困境,面臨被管道化的威脅。為應(yīng)對移動互聯(lián)網(wǎng)帶來的挑戰(zhàn),中國電信提出了從話務(wù)量經(jīng)營轉(zhuǎn)向流量經(jīng)營的戰(zhàn)略目標(biāo),從傳統(tǒng)的注重用戶規(guī)模轉(zhuǎn)變?yōu)樽⒅亓髁堪l(fā)展。運營商擁有龐大的用戶,同時具有對終端及用戶上網(wǎng)通道的掌控能力,使得在用戶行為分析方面具有很好的數(shù)據(jù)基礎(chǔ),深入分析用戶流量行為特征和規(guī)律,發(fā)現(xiàn)用戶潛在流量使用需求,是提升流量規(guī)模和價值、提高流量經(jīng)營水平的有效手段。
然而隨著移動互聯(lián)網(wǎng)的迅速發(fā)展,用戶行為分析面臨著新的挑戰(zhàn):一是移動互聯(lián)網(wǎng)新業(yè)務(wù)、新產(chǎn)品“短、平、快”的特征,要求運營商支持快速變化的營銷活動;二是隨著移動互聯(lián)網(wǎng)業(yè)務(wù)及終端、傳感器技術(shù)發(fā)展帶來的數(shù)據(jù)量的急劇膨脹,需要分析和處理的數(shù)據(jù)規(guī)模從GB級邁向TB級甚至PB級。傳統(tǒng)的數(shù)據(jù)分析架構(gòu)已經(jīng)不能適應(yīng)這種海量數(shù)據(jù)處理和快速、深度挖掘的需求,迫切需要引入大規(guī)模并行處理技術(shù)和分布式架構(gòu),構(gòu)建基于云計算的移動互聯(lián)網(wǎng)用戶行為分析引擎系統(tǒng),以應(yīng)對移動互聯(lián)網(wǎng)大數(shù)據(jù)時代的挑戰(zhàn)。
本文設(shè)計的移動互聯(lián)網(wǎng)用戶行為分析引擎通過云計算技術(shù)實現(xiàn)分布式并發(fā)的大規(guī)模計算能力,構(gòu)建移動互聯(lián)網(wǎng)端到端的大數(shù)據(jù)挖掘分析系統(tǒng),實現(xiàn)對DPI和應(yīng)用平臺用戶上網(wǎng)行為的偏好分析,提供個性化推薦服務(wù),打通從數(shù)據(jù)采集、分析到服務(wù)提供、營銷執(zhí)行的全過程。
系統(tǒng)通過FTP服務(wù)器獲取數(shù)據(jù),在接口層采用分布式計算與批量處理相結(jié)合的方式,將大數(shù)據(jù)存入Hbase數(shù)據(jù)庫中,支持海量數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的存儲,數(shù)據(jù)入庫之后利用Hive進行整合層和匯總層的ETL處理,再基于MapReduce計算框架設(shè)計大數(shù)據(jù)分析模型,最后通過Hive數(shù)據(jù)庫將結(jié)果導(dǎo)入前端展現(xiàn)數(shù)據(jù)庫。在數(shù)據(jù)處理層,利用Hbase、Hive的優(yōu)勢進行海量數(shù)據(jù)的存儲和處理,考慮到前端展現(xiàn)要求的靈活性,采用關(guān)系型數(shù)據(jù)庫MySQL作為前端展現(xiàn)。系統(tǒng)總體技術(shù)架構(gòu)如圖1所示。
系統(tǒng)的總體拓撲如圖2所示,系統(tǒng)由一臺服務(wù)器作為Hadoop平臺和Hbase的主節(jié)點服務(wù)器,其他服務(wù)器為Hadoop平臺和Hbase的從節(jié)點服務(wù)器,從節(jié)點服務(wù)器的數(shù)量可根據(jù)系統(tǒng)處理需求動態(tài)擴展。主節(jié)點服務(wù)器主要負責(zé)從節(jié)點服務(wù)器任務(wù)和流量的分配,并對從節(jié)點服務(wù)器的執(zhí)行狀態(tài)進行監(jiān)控,多臺從節(jié)點服務(wù)器在主節(jié)點服務(wù)器的控制下執(zhí)行具體的任務(wù)。
圖1 基于云計算的移動互聯(lián)網(wǎng)大數(shù)據(jù)用戶行為分析引擎總體技術(shù)架構(gòu)
圖2 系統(tǒng)總體拓撲
主節(jié)點服務(wù)器的軟件功能架構(gòu)如圖3所示,各模塊具體介紹如下。
圖3 主節(jié)點服務(wù)器功能架構(gòu)
(1)任務(wù)管理與調(diào)度模塊
集中式的任務(wù)調(diào)度控制臺,提供任務(wù)的創(chuàng)建、調(diào)整和刪除等功能,通過業(yè)務(wù)類型選擇、執(zhí)行周期設(shè)置等,定義應(yīng)用的處理邏輯;自動控制數(shù)據(jù)抽取、數(shù)據(jù)整理到數(shù)據(jù)建模、模型運行、結(jié)果輸出等過程,根據(jù)任務(wù)設(shè)置的激活處理條件,自動加載任務(wù)運行,系統(tǒng)提供任務(wù)的暫停、恢復(fù)以及優(yōu)先級管理功能。
(2)大數(shù)據(jù)入庫與預(yù)處理組件
將DPI用戶的上網(wǎng)行為、應(yīng)用平臺的用戶行為和內(nèi)容信息等大數(shù)據(jù),及時導(dǎo)入用戶行為分析引擎系統(tǒng),作為數(shù)據(jù)分析和模型挖掘的數(shù)據(jù)源。
(3)大數(shù)據(jù)用戶行為分析模型組件
基于匯聚到系統(tǒng)中的海量移動互聯(lián)網(wǎng)用戶行為數(shù)據(jù),利用MapReduce計算框架構(gòu)建用戶行為分析模型資源池,快速分析用戶的偏好、社會關(guān)系信息,且支持多類業(yè)務(wù)實現(xiàn)精準(zhǔn)的內(nèi)容推薦。
從節(jié)點服務(wù)器的軟件結(jié)構(gòu)與主節(jié)點服務(wù)器基本相同,區(qū)別主要在于從節(jié)點服務(wù)器不需要部署任務(wù)管理和調(diào)度模塊。
移動互聯(lián)網(wǎng)用戶行為分析引擎的數(shù)據(jù)來源主要有兩類:應(yīng)用平臺數(shù)據(jù)和DPI數(shù)據(jù)。兩類數(shù)據(jù)源的特點不同:應(yīng)用平臺的數(shù)據(jù)主要集中在一個訪問行為表上,每天一個文件,每個文件的大小為GB級;而DPI數(shù)據(jù)的特點是大量的小文件,每個文件大小在10 MB以內(nèi),但文件來源頻率快,一般2 min就有好幾個文件,一個省份累計1天的數(shù)據(jù)量可達1 TB。
針對上述不同的數(shù)據(jù)源特點,系統(tǒng)采用不同的技術(shù)方案,具體介紹如下。
(1)應(yīng)用平臺數(shù)據(jù)入庫
由于Hadoop通常使用的TextInputFormat類,在map中讀取到的是文件的一行記錄。因此,系統(tǒng)使用N LineInputFormat類實現(xiàn)在MapReduce中的批量入庫。通過使用N LineInputFormat類,每個分片有N行記錄,通過參數(shù)的配置,每次可讀取文件的N行記錄,那么可以在map中直接執(zhí)行批量入庫的操作,效率相對較高。
(2)DPI數(shù)據(jù)入庫
由于DPI的行為數(shù)據(jù)是大量來源頻率很快的小文件,在Hadoop平臺下處理小文件采取的措施通常如下。
· 利用SequenceFiles將小文件打包上傳,可從源頭避免小文件產(chǎn)生,但無論是Hadoop shell還是MapReduce,都不能進行靈活讀取。
·使用HAR將HDFS中的小文件打包歸檔 (從HDFS),可減少既有 HDFS中的小文件數(shù)量,但HAR文件讀取性能差。
·Hadoop append可直接追加數(shù)據(jù)到相同文件中,但每個小文件的大小不同,同時考慮每天的DPI日志有峰值和低谷,對文件數(shù)量的控制和處理來說有一定的麻煩。
· Flume、FlumeNG、Scribe,可通過中間層匯聚數(shù)據(jù)的辦法減少小文件數(shù)量,但FlumeNG和Scribe都不能很好地傳輸壓縮文件。
通過以上分析可以看到,上述4種方式均存在一定的缺點,因此針對DPI數(shù)據(jù)的特征,采用Hadoop平臺的CombineFileInputFormat類方式,即通過繼承CombineFile InputFormat,實現(xiàn) CreateRecordReader,同時設(shè)置數(shù)據(jù)分片的大小,通過這種方式實現(xiàn)DPI大數(shù)據(jù)的入庫。
大數(shù)據(jù)用戶行為分析模型組件提供多個在Hadoop分布式平臺上運行的分析模型,其功能結(jié)構(gòu)及其與其他組件的關(guān)系如圖4所示。
2006年,隨著“三湖三河”污染治理工程的提出,巢湖流域受到了廣泛關(guān)注。巢湖流域以巢湖為中心,匯集了大小河流33條,是安徽省人口較集中的地區(qū)之一。近30年來,巢湖流域的經(jīng)濟發(fā)展加快,城鎮(zhèn)化程度越來越高?,F(xiàn)今巢湖流域的國內(nèi)生產(chǎn)總值已約占全省的三分之一,其產(chǎn)業(yè)結(jié)構(gòu)特點突出,以第一二產(chǎn)業(yè)為主,第三產(chǎn)業(yè)比例較低。隨著城鎮(zhèn)化和經(jīng)濟發(fā)展的加速,巢湖流域的生態(tài)問題和人地矛盾愈發(fā)尖銳。
圖4 大數(shù)據(jù)用戶行為分析模型組件
本組件主要由以下幾個模塊組成。
· 模型參數(shù)調(diào)整:提供對模型算法中的變量設(shè)定、參數(shù)調(diào)整、樣本空間規(guī)模設(shè)置等功能。
· 模型評估:提供創(chuàng)建模型校驗任務(wù),將實際數(shù)據(jù)與模型計算結(jié)果進行比對,輸出模型校驗指標(biāo),進行模型校驗和模型有效性評價。
· 多業(yè)務(wù)數(shù)據(jù)關(guān)聯(lián)分析模型:對用戶的互聯(lián)網(wǎng)行為和愛游戲業(yè)務(wù)平臺的行為進行關(guān)聯(lián)分析,判斷DPI用戶上網(wǎng)行為偏好與在應(yīng)用平臺上的行為偏好是否存在關(guān)聯(lián)關(guān)系,采用關(guān)聯(lián)算法找出其中存在的規(guī)則,并將規(guī)則固化到系統(tǒng)中,從而有助于交叉營銷。
· 個性化推薦模型:以協(xié)同過濾技術(shù)和內(nèi)容推薦技術(shù)為主,采用混合推薦技術(shù),綜合考慮來自產(chǎn)品內(nèi)容和用戶兩個維度的影響,按照綜合相似度向用戶推薦相應(yīng)的信息,實現(xiàn)用戶動態(tài)推薦算法。
· 文本挖掘模型:對文本內(nèi)容(如網(wǎng)頁)通過預(yù)處理去除噪聲(如網(wǎng)頁導(dǎo)航欄、頁首、頁尾、廣告等不相關(guān)內(nèi)容),提取出文本主體部分,根據(jù)文本(網(wǎng)頁)分類標(biāo)準(zhǔn)構(gòu)造標(biāo)注語料庫,通過分類訓(xùn)練算法進行模型訓(xùn)練和機器學(xué)習(xí),建立文本(網(wǎng)頁)人工智能分類模型。
·DPI訪問偏好模型:基于網(wǎng)頁內(nèi)容分類,通過用戶訪問網(wǎng)頁分析,計算用戶Web訪問興趣偏好。
·DPI應(yīng)用偏好模型:基于DPI采集數(shù)據(jù),通過應(yīng)用知識庫識別應(yīng)用,計算用戶應(yīng)用興趣偏好。
· 應(yīng)用平臺用戶偏好模型:依據(jù)用戶在應(yīng)用平臺上的各種操作行為,找出用戶對應(yīng)用平臺各種內(nèi)容的偏好規(guī)律。
· 社交關(guān)系挖掘模型:社交關(guān)系挖掘包括用戶社交圖譜和興趣圖譜的構(gòu)建。社交圖譜通過用戶的位置軌跡進行挖掘分析,建立用戶之間的好友等社交關(guān)系;興趣圖譜基于用戶偏好模型,計算用戶偏好的相似度,得到與用戶興趣最相近的鄰居集合,建立用戶之間的相同興趣愛好關(guān)系。
以上模型的建模過程中很多用到了MapReduce計算框架。在MapReduce計算框架中,每個MapReduce作業(yè)主要分為兩個階段:map階段和reduce階段,分別用map函數(shù)和reduce函數(shù)實現(xiàn)。map函數(shù)對一個
(1)job1:計算用戶對內(nèi)容的偏好度
map函數(shù):從Hbase中讀取用戶行為數(shù)據(jù),組合相關(guān)的數(shù)據(jù)。key為用戶ID,value為用戶瀏覽過的內(nèi)容信息(如游戲、視頻等)。
reduce函數(shù):獲取每個用戶所有的行為信息,計算用戶對內(nèi)容的偏好度。key為用戶ID+內(nèi)容ID,value為內(nèi)容偏好度。
(2)job2:計算用戶對內(nèi)容屬性的偏好度
map函數(shù):讀取內(nèi)容偏好度信息傳給reduce函數(shù)。key為用戶ID,value為內(nèi)容ID+內(nèi)容偏好度。
reduce函數(shù):計算每個用戶的內(nèi)容屬性偏好度。
(3)job3:計算基于內(nèi)容的推薦列表
map函數(shù):獲取用戶內(nèi)容屬性偏好度和用戶內(nèi)容偏好度,key為用戶ID,value為屬性偏好度+內(nèi)容偏好度。
reduce函數(shù):計算推薦列表。
通過這種方式,系統(tǒng)把數(shù)據(jù)密集型的大數(shù)據(jù)用戶行為分析模型運算任務(wù)分配到各個計算節(jié)點分布式運行,從而大大提高模型運算性能。
為了驗證本文提出的基于云計算的移動互聯(lián)網(wǎng)大數(shù)據(jù)用戶行為分析引擎設(shè)計方案,在實驗室用PC服務(wù)器搭建了4個節(jié)點的Hadoop分布式平臺,其中一個為主節(jié)點,3個為從節(jié)點,以大數(shù)據(jù)入庫為測試場景,與單機運行環(huán)境進行對比,測試了5組不同數(shù)據(jù)規(guī)模情況下的系統(tǒng)運算時間,測試結(jié)果如圖5所示。
圖5 單機與分布式批量入庫測試性能對比
從測試結(jié)果可以看出,單機批量入庫方式的性能很低,對于 3 GB、6 GB、9 GB、12 GB、15 GB 的 5組數(shù)據(jù)規(guī)模,其系統(tǒng)運算時間分別為 32 min、60 min、95 min、121 min、151 min,系統(tǒng)運算時間隨著數(shù)據(jù)量的增長幾乎呈線性增長,對于海量的大數(shù)據(jù)來說,很難在合理的時間內(nèi)快速完成數(shù)據(jù)的入庫操作;而采用云計算分布式批量入庫方式,系統(tǒng)處理時間大大縮短,對于3 GB、6 GB、9 GB、12 GB、15 GB 的5組數(shù)據(jù)規(guī)模來說,系統(tǒng)運算時間分別為14 min、29 min、35 min、47 min、55 min。從兩種方式的測試結(jié)果對比可以看出,隨著數(shù)據(jù)規(guī)模的增大,云計算分布式批量入庫方式與單機批量入庫方式的處理時間差距越大,優(yōu)勢越明顯。
本文針對移動互聯(lián)網(wǎng)大數(shù)據(jù)時代給運營商帶來的挑戰(zhàn),提出了一種基于云計算的移動互聯(lián)網(wǎng)大數(shù)據(jù)用戶行為分析引擎設(shè)計方案。通過實驗驗證,該方案能有效地應(yīng)對移動互聯(lián)網(wǎng)新業(yè)務(wù)、新產(chǎn)品“短、平、快”的特征和數(shù)據(jù)規(guī)模急劇膨脹等問題,能夠在有效的時間內(nèi)完成大數(shù)據(jù)處理和分析任務(wù)。
1 陳康,鄭緯民.云計算:系統(tǒng)實例與研究現(xiàn)狀.軟件學(xué)報,2009,20(5)
2 馮銘,王保進,蔡建宇.基于云計算的可重構(gòu)移動互聯(lián)網(wǎng)用戶行為分析系統(tǒng)的設(shè)計.計算機科學(xué),2011(8)
3 Anand Rajaraman,Jeffrey David Ullman.Mining of Massive Datasets.Cambridge University Press,2011