劉 超,劉馨璐,王 攀,張麗娜
(1.江蘇大學(xué) 電氣信息工程學(xué)院,江蘇 鎮(zhèn)江 212013;2.南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,江蘇 南京 210003)
近年來,以海量數(shù)據(jù)處理為目標(biāo)的大數(shù)據(jù)技術(shù)成為新的研究熱點。所謂“大數(shù)據(jù)”,是指其大小超出了典型數(shù)據(jù)庫軟件的采集、儲存、管理和分析等能力的數(shù)據(jù)集合[1]。伴隨著Facebook、Google、微博、APP等網(wǎng)絡(luò)服務(wù)的蓬勃發(fā)展,對網(wǎng)絡(luò)用戶行為的分析和研究引起了眾多研究者的興趣?,F(xiàn)代生活中,網(wǎng)絡(luò)行為成為人們?nèi)粘I畹闹饕煞?,其中蘊含了許多用戶社交關(guān)系、用戶日常行為習(xí)慣以及個人興趣喜好等諸多有價值的信息[2]。但僅僅分析每個用戶的個體需求是遠遠不夠的,在這個高速發(fā)展的時代,每個家庭都是社會的一部分,把家庭看作一個單獨的整體來分析家庭的整體需求,將家庭用戶的行為偏好相關(guān)聯(lián),完善成一幅家庭畫像,從整體上洞悉用戶的需求,強化客戶關(guān)懷,做到精準(zhǔn)營銷,將會從另一個層面改善用戶的體驗質(zhì)量,增加運營商的業(yè)務(wù)效率。
國外的各大企業(yè)紛紛提出大數(shù)據(jù)的規(guī)劃和政策,以推動大數(shù)據(jù)的發(fā)展。目前,Google、Facebook等企業(yè)正在應(yīng)用大數(shù)據(jù)技術(shù)來發(fā)展云端服務(wù)和社交軟件。亞馬遜公司很早就對用戶的瀏覽信息實施數(shù)據(jù)分析,根據(jù)用戶的瀏覽信息等數(shù)據(jù),推算出用戶的行為偏好,從而對用戶實施精準(zhǔn)推送[3]。相對于國外較成熟的大數(shù)據(jù)分析技術(shù),國內(nèi)目前還處于發(fā)展初期,對應(yīng)的市場規(guī)模較小[4]。阿里巴巴會根據(jù)用戶網(wǎng)購時瀏覽的商品信息和停留時間,交易行為可以進一步了解消費者的喜好,從而為用戶推薦感興趣的產(chǎn)品。
有學(xué)者對用戶行為開展了許多有意義的分析與研究,并取得了大量極具影響力的研究成果[5]。劉海等[6]基于4C理論構(gòu)建了“用戶畫像”數(shù)據(jù)庫,通過對數(shù)據(jù)庫的挖掘來進行消費者群體細分。在此基礎(chǔ)上,從營銷的角度構(gòu)建了精準(zhǔn)營銷細分模型,重構(gòu)消費者的需求、精準(zhǔn)定位消費者群體。應(yīng)曉敏等[7]提出了一種面向個性化服務(wù)的客戶端細粒度用戶興趣建模方法,并且將用戶興趣不再簡單地分為用戶感興趣的類和用戶不感興趣的類,而是按照人們通常對興趣的理解劃分為不同的興趣類。宋竹等[8]提取了電信數(shù)據(jù)中手機通話與上網(wǎng)的基本特征,對通話和上網(wǎng)行為的頻率分布進行曲線擬合,通過對通話和上網(wǎng)時間的歸一化,定義了用戶的使用偏好。
可以看出,目前的研究并沒有涉及對家庭中的手機號碼和終端類型做精準(zhǔn)提取和分析,尤其是絕大多數(shù)的分析和研究僅僅針對個體用戶,而非家庭用戶。對于運營商而言,僅僅分析個體用戶的行為特點是不夠全面的,在寬帶家庭賬號下,根據(jù)整個家庭的日常上網(wǎng)情況可以分析整個家庭的行為習(xí)慣。可以分析出該家庭賬號下用戶總數(shù)及年齡結(jié)構(gòu)層次、網(wǎng)絡(luò)接入設(shè)備、手機品牌型號以及其他終端設(shè)備,根據(jù)分析結(jié)果可以得到一幅家庭畫像,如圖1所示。
圖1 家庭畫像
通過對整個家庭數(shù)據(jù)流量的分析處理,能夠從整體上把握家庭所有用戶的需求,從而借助互聯(lián)網(wǎng)推送平臺等方式更加精準(zhǔn)地給所有家庭用戶推薦更合適的產(chǎn)品和服務(wù)。
文中在利用運營商合法獲取的數(shù)據(jù)基礎(chǔ)之上,采用DPI(deep packet inspection,深度分組檢測)、Hadoop框架、分布式爬蟲等技術(shù),提取家庭寬帶下手機號碼并對不用的用戶終端進行識別,最終構(gòu)建出反映家庭用戶特征和行為興趣的家庭畫像。
DPI是相對普通報文檢測的一種全新的檢測技術(shù),即對第七層應(yīng)用層的內(nèi)容進行深度分析,從而根據(jù)應(yīng)用層的凈荷特征識別其應(yīng)用類型或內(nèi)容[9]。DPI技術(shù)的核心點在于維護一個高準(zhǔn)確性、高實時性的應(yīng)用特征庫,從而保障應(yīng)用特征識別的準(zhǔn)確性、實時性,進而保障運營商對應(yīng)用的管控準(zhǔn)確性和實時性。
Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進行分布式處理的軟件框架[10]。它以一種可靠、有效、可伸縮的方式進行數(shù)據(jù)處理,具有高可靠性、高擴展性、高效性、高容錯性、低成本等優(yōu)點。HDFS和MapReduce是Hadoop框架的核心設(shè)計。HDFS為海量的數(shù)據(jù)提供了存儲,MapReduce為海量的數(shù)據(jù)提供了計算。
Hive是基于Hadoop的數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡單的SQL查詢功能,能夠?qū)QL語句轉(zhuǎn)換為MapReduce任務(wù)進行運行。
WebMagic項目代碼分為核心和擴展兩部分[11]。核心部分(webmagic-core)是一個精簡的、模塊化的爬蟲實現(xiàn),而擴展部分則包括一些便利的、實用性的功能。
WebMagic的結(jié)構(gòu)分為Downloader、PageProcessor、Scheduler、Pipeline四大組件,Downloader負責(zé)從互聯(lián)網(wǎng)上下載頁面,以便后續(xù)處理;PageProcessor負責(zé)解析頁面,抽取有用信息以及發(fā)現(xiàn)新的鏈接;Scheduler負責(zé)管理帶抓取的URL以及去重工作;Pipeline負責(zé)抽取結(jié)果的處理,包括計算、持久化到文件或數(shù)據(jù)庫等。
塑造一個完善并全面的家庭畫像,首先需要確定家庭的唯一標(biāo)識,即寬帶賬號,因為每個家庭的寬帶賬號是唯一的。家庭中用戶的手機號碼和終端類型是家庭畫像的關(guān)鍵屬性。其中終端類型包括終端的品牌、型號及上市時間等。通過數(shù)據(jù)包提取到以上數(shù)據(jù)后,必須對其進行去噪處理,以確保提取出的信息是真實、有效、完整的。總體技術(shù)路線包括確定家庭畫像唯一標(biāo)識,確定家庭畫像屬性、號碼和終端提取和去除噪聲數(shù)據(jù)。通過分析得到,在塑造家庭畫像的過程中,手機號碼的提取和終端類型的識別尤為重要。
為了提升用戶手機號碼提取的準(zhǔn)確率,文中采用Hyperscan進行匹配。采集家庭寬帶下的網(wǎng)絡(luò)流量,采用DPI中凈荷特征匹配技術(shù)對采集到的數(shù)據(jù)進行清洗,過濾掉無關(guān)流量后,再利用Hyperscan高速匹配,提取出數(shù)據(jù)包中疑似手機號的關(guān)鍵字。在獲取大量關(guān)鍵字后,將通過DPI處理后的數(shù)據(jù)和關(guān)鍵字導(dǎo)入Hadoop,對數(shù)據(jù)分類存儲,進行數(shù)據(jù)匹配,最終提取出較為準(zhǔn)確的用戶手機號碼。
移動用戶終端的識別起初是根據(jù)HTTP報文的User-Agent報文頭獲取終端性能信息。對UA解析獲取終端信息時,通常采用的是基于字符串匹配的方法。該方法實現(xiàn)較簡單。隨著用戶數(shù)據(jù)的迅猛增加,終端匹配效率逐漸降低。文中采用一種改進的用戶終端的識別方法,首先對UA進行分詞,然后采用正則表達式過濾掉不代表用戶終端信息的字符串,最后通過正則表達式獲取特定位置的字符串。家庭寬帶下的用戶使用終端類型較多,有手機、平板、PC、電視機、盒子等,通過統(tǒng)計不同終端類型,寫出不同的正則表達式進行匹配,從而得到一個正則表達式的配置文件。同時采用分布式爬蟲WebMagic獲取電商上各種終端型號的相關(guān)信息作終端庫信息。最終根據(jù)Hadoop/Hive分布式快速處理大數(shù)據(jù)量的特點對用戶終端進行準(zhǔn)確識別。
反映家庭畫像的主要元素是家庭寬帶下對用戶的手機號碼的提取和終端類型的識別。主要由數(shù)據(jù)采集、數(shù)據(jù)清洗、數(shù)據(jù)提取及數(shù)據(jù)挖掘與分析共四個部分組成。
家庭寬帶用戶的HTTP上行流量從分流平臺以千兆電口形式實時輸出到高速采集服務(wù)器;對于已經(jīng)建成固網(wǎng)寬帶DPI大數(shù)據(jù)平臺的運營商,無需配置數(shù)據(jù)采集服務(wù)器,將DPI日志文件直接輸送到數(shù)據(jù)清洗系統(tǒng),即可完成數(shù)據(jù)采集工作。
該系統(tǒng)數(shù)據(jù)流量的采集采用Libpcap[12]。Libpcap采用基于網(wǎng)卡的原理捕獲數(shù)據(jù)包,支持所有基于Unix的操作系統(tǒng),能夠快速采集和過濾網(wǎng)絡(luò)流量。Libpcap可以根據(jù)用戶已經(jīng)設(shè)定好的過濾規(guī)則對數(shù)據(jù)進行逐一匹配,匹配成功則放入內(nèi)核緩沖區(qū),并傳遞給用戶緩沖區(qū),匹配失敗則直接丟棄。
為了獲取用戶的真實點擊量,保證數(shù)據(jù)挖掘的準(zhǔn)確性和高效性,在數(shù)據(jù)分析前必須對數(shù)據(jù)進行清洗,過濾掉非用戶點擊的流量,如圖片流量、腳本流量、廣告以及框架等無效數(shù)據(jù)。
利用DPI數(shù)據(jù)清洗系統(tǒng),去除采集到的流量數(shù)據(jù)中的大量冗余信息,再將數(shù)據(jù)傳遞給Hadoop分析平臺,以保證所獲取數(shù)據(jù)的準(zhǔn)確性和分析的高效性。數(shù)據(jù)清洗首先過濾非TCP/IP或者非Http/get流量,然后過濾后綴為jpg、gif、css等圖片和腳本流量,再過濾帶有指定特征字符串如廣告、框架類型的流量,最后過濾自刷新頁面和存儲過濾后剩下的數(shù)據(jù)。
通過DPI技術(shù)深度挖掘數(shù)據(jù)包,提取相關(guān)信息后判斷數(shù)據(jù)包的協(xié)議類型,進行首次過濾,去除非TCP/IP和非HTTP/GET流量。然后在剩余的數(shù)據(jù)包中對應(yīng)用層進行解析,進行再次過濾,丟棄無效數(shù)據(jù),例如uri后綴為jpg、gif、png等圖片、腳本及框架類型的流量和自刷新頁面等,這些數(shù)據(jù)中不包含用戶的相關(guān)信息,最后存儲二次過濾后剩余的有效數(shù)據(jù)。
將經(jīng)過DPI清洗后的數(shù)據(jù)結(jié)果導(dǎo)入Hadoop平臺的Hive數(shù)據(jù)庫中。借助Hive提供的SQL快捷接口可以方便用戶在插入和查詢數(shù)據(jù)時書寫代碼,快速處理海量數(shù)據(jù)。
清洗過后的完整數(shù)據(jù)包基本上都包含uri、UA、host等字段。手機號碼多來自同一個數(shù)據(jù)包的host和UA字段,而終端類型則存在于UA字段中。數(shù)據(jù)提取過程包括Http字段提取、AAA賬號匹配、統(tǒng)一解碼和特征字符串匹配,然后輸入到手機號碼報文特征庫或者終端信息庫。
通過采用DPI深度報文監(jiān)測技術(shù)和Hyperscan高速匹配技術(shù)過濾清洗后,記錄結(jié)果包含時間戳信息、用戶IP、寬帶賬號、手機號、手機關(guān)鍵字、cookie終端緩存數(shù)據(jù)、host主機名、UA用戶代理等內(nèi)容項。對采集到的報文做關(guān)鍵信息提取后,再利用特征字符串匹配的方法提取準(zhǔn)號碼清單。利用WebMagic爬蟲框架對終端信息進行爬取,生成終端型號庫,爬取結(jié)果部分數(shù)據(jù)如表1所示。通過對用戶數(shù)據(jù)含有UA字段進行分析,找出最常出現(xiàn)的UA字符串,根據(jù)這些UA字符串編寫正則表達式生成正則表達式庫。編寫MapReduce代碼通過正則表達式庫去UA字段提取出UA中的終端型號,測試通過后打包成jar包,通過Hadoop集群中的Hadoop jar命令提取出數(shù)據(jù)中所有UA字段中的終端。
表1 終端類型爬蟲信息庫
為了獲取更加準(zhǔn)確的信息,需要對清洗后的數(shù)據(jù)進行分析驗證。
首先通過號碼正則表達式提取出所有的手機號碼,通過號碼出現(xiàn)的天數(shù)和頻率,以及號碼所對應(yīng)的終端數(shù)量,找到該賬號下出現(xiàn)頻率和天數(shù)較高的以及號碼對應(yīng)終端數(shù)較少的識別為該賬號下的手機號碼。其次,通過爬蟲獲取到如中介、商戶、熱線等號碼,進行“偽號碼”過濾,去除非真實用戶的手機號碼。
對剩余的數(shù)據(jù)再進行決策樹分析[13-14],通過對某一手機號碼的歸屬地、出現(xiàn)頻次以及出現(xiàn)的時間段進行分析,判別號碼清單中挖掘出的手機號碼是否真實活躍在其出現(xiàn)的家庭寬帶下[15]。具體決策過程如圖2所示。
圖2 決策樹分析圖
為了驗證手機號碼和終端信息獲取的準(zhǔn)確性,以固網(wǎng)寬帶下的家庭用戶為基礎(chǔ)搭建實驗環(huán)境,利用該系統(tǒng)獲取到的信息和實際用戶信息進行對比,通過號碼提取與終端識別的準(zhǔn)確率來判斷信息獲取的準(zhǔn)確性。實驗環(huán)境結(jié)構(gòu)圖包括數(shù)據(jù)存儲器、Hadoop處理服務(wù)器、采集服務(wù)器、家庭路由器和家庭用戶等部分,其中包含對用戶網(wǎng)絡(luò)數(shù)據(jù)的采集,DPI數(shù)據(jù)清洗和Hadoop數(shù)據(jù)分析。
選取1 000個友好家庭用戶,采取問卷調(diào)查等方式事先采集家庭用戶的基本數(shù)據(jù),包含家庭的人口情況、手機號碼及使用的終端類型等。通過與運營商合作,利用該系統(tǒng)采取分光方式獲取用戶的上網(wǎng)流量數(shù)據(jù)。對獲取的數(shù)據(jù)進行清洗、提取、分析后可以得到信息輸出表,包含用戶寬帶賬號、手機號碼、終端品牌、終端型號、上市時間、QQ號、用戶使用郵箱賬號等信息。
對以上信息進行整理與分析,可以獲得手機號碼和終端類型的識別率曲線圖,如圖3所示。
圖3 手機號碼和終端類型的識別率曲線
終端類型的特征信息較為單一準(zhǔn)確,而手機特征關(guān)鍵字包含的類型和數(shù)量遠大于終端類型的特征信息,導(dǎo)致終端類型的識別率高于手機號碼提取的識別率。長期觀察后可以發(fā)現(xiàn)兩者的識別率均有所提高,其中手機號碼的識別率達到84%左右,終端類型的識別率則達到92%左右。
參照問卷調(diào)查的結(jié)果,與信息輸出表進行比對,可以進一步獲得手機號碼提取和終端類型識別的準(zhǔn)確性曲線圖,如圖4所示。
圖4 手機號碼和終端類型的準(zhǔn)確率曲線
由于識別出的手機號碼中有部分號碼非該家庭用戶的固有號碼,導(dǎo)致終端類型識別的準(zhǔn)確率仍然高于手機號碼提取的準(zhǔn)確率。隨著時間的遞增,兩者的準(zhǔn)確率均逐漸上升并趨于穩(wěn)定,手機號碼識別的準(zhǔn)確率維持在80%左右,而終端類型的準(zhǔn)確率則達到95%左右。
在識別率與準(zhǔn)確率分析的基礎(chǔ)上,對信息輸出表做進一步分析,包含單個IP接入用戶數(shù)和用戶手機型號等,具體分析結(jié)果如圖5、圖6所示。
圖5 單IP接入用戶數(shù)分析
圖6 手機型號分析
分析結(jié)果表明,單個IP下接入人數(shù)以2人居多,其次是3人和1人,即在統(tǒng)計的絕大部分單個家庭用戶中,使用2部手機的情況較多,同時使用蘋果手機的用戶較多,其次是小米和華為。
利用DPI深度報文檢測技術(shù)、Hyperscan高速匹配、Hadoop和WebMagic爬蟲技術(shù)能夠以較高的識別率和準(zhǔn)確率快速精準(zhǔn)地識別家庭寬帶下用戶的手機號碼和終端類型,高效地構(gòu)建固網(wǎng)寬帶下的家庭畫像。下一步工作將會對用戶信息進行全方位提取,包括接入終端信息、用戶行為偏好等,并對以上信息進行行為建模、深度挖掘和知識發(fā)現(xiàn),具體分析家庭每個用戶的網(wǎng)絡(luò)行為習(xí)慣和興趣愛好,從整體上洞悉用戶的需求、強化客戶關(guān)懷,為運營商提供更加豐富、準(zhǔn)確、完善的固網(wǎng)寬帶下的家庭畫像。