陳 珂,黃俊杰
(蘇州市職業大學,江蘇 蘇州 215004)
在大數據時代下,人們產生、獲取、處理和存儲的數據量呈指數級增長,基于傳統統計模型的決策已經無法滿足人們的個性化要求。如何使用算法模型實現用戶畫像中的用戶行為預測,已經成為人們的關注重點。用戶畫像應用領域較為廣泛,適合各個產品周期,從新用戶的引流到潛在用戶的挖掘、從老用戶的培養到流失用戶的回流等都有應用[1]。用戶畫像通過挖掘用戶興趣、偏好、人口統計特征,可以直接提升營銷精準度、推薦匹配度,最終提升產品服務和企業利潤[2-3]。本文的用戶畫像是研究用戶標簽及模型構建流程及對在線學習者的日志、行為數據提取特征數據集,并在此基礎上將其應用于在線學習過程中,展現在線學習者的多維度特征,客觀地揭示學習者狀態,幫助用戶提升學習的精準度和效率。
本項目通過標簽管理頁面實現標簽管理和標簽計算引擎的資源調度檢測。其中標簽引擎模塊是用戶畫像運轉的核心,維護標簽的具體實現邏輯,包括標簽依賴的數據源、規則和模型的信息,同時提供每一個標簽引擎運行狀態的可視化監控。
用戶畫像數據源層的數據來自MySQL數據庫表和日志文件,數據存儲層存儲HDFS,HBase,Hive中的數據;數據處理層主要使用SparkSQL,SparkMLlib構建用戶標簽,對應的標簽數據存儲在HBase中、標簽的基本數據存儲在MySQL表中;數據服務層主要負責對標簽創建及查詢功能,并且負責對標簽運行狀態進行管理。每個標簽模型創建好后,使用Oozie中Coordinator調度器每隔一段時間調度標簽模型運行應用程序,給學習者打上用戶標簽。
用戶畫像的功能架構如圖1所示。本項目是基于用戶的所有行為數據進行開發,其中用戶畫像模型的構建和計算使用Spark計算框架進行分布式處理,計算使用的資源管理使用YARN進行調度協作,整體項目功能從用戶畫像模型的構建和計算到用戶畫像結果的存儲通過Oozie框架進行工作流管理,最后,用戶畫像結果存入非關系型分布式數據庫HBase。
圖1 用戶畫像功能架構
用戶標簽數據ETL工作流如圖2所示,首先使用Sqoop工具將MySQL數據庫表中的數據導入Hive表。其次,采用Spark框架和HBase提供的Bulkloader工具類將存在Hive中的數據轉為HFile文件并批量導入HBase相應的表。其中對待寫入HBase的數據按Key值構造util.TreeMap樹結構,目的是按Key值構造匹配Hbase的排序結構,以便將Hive表數據轉換成RDD,并使用repartitionAnd SortWithinPartitions算子對Key值分區并排序,接著再將RDD數據生成HFile文件,最后將HFile文件導入Hbase表。
圖2 ETL工作流
用戶畫像的標簽體系基于亞里士多德的本體論建立[4],圖3展示了用戶基本標簽、用戶學習行為標簽和用戶學習價值標簽3個方面。
圖3 用戶標簽體系
用戶標簽模型的構建流程是首先需要新建4級用戶活躍度標簽,在創建4級標簽的時候將任務的spark程序jar包上傳以及指定運行參數,再依次新建5級屬性標簽:非常活躍、活躍、不活躍、非常不活躍,之后就可以開始運行模型任務。其中spark程序jar包中包含了對應標簽的計算模型,用于生成5級標簽的統計結果和用戶對應5級標簽畫像。
規則匹配標簽模型開發分為以下4個主要步驟:
(1)首先從MySQL中的基礎標簽表中讀取4級相關的標簽數據(業務標簽和屬性標簽),依據業務標簽ID讀取標簽相關數據(業務標簽數據和對應5級屬性標簽數據)。從業務標簽數據中獲取規則rule的值[5],將其解析為Map集合,表示標簽模型從哪個數據源中讀取數據及數據源的資源信息;
(2)依據標簽規則中的屬性值獲取具體業務數據的數據源;
(3)依據獲取的業務數據和屬性標簽數據規則,進行關聯匹配,構建每個用戶的4級標簽和5級屬性;
(4)最后將合并后的用戶標簽數據保存到HBase表中。
學習周期主要是獲取用戶在平臺的最近學習時間,方便獲取到長時間未進行學習的用戶。
(1)獲取每個學習者最近一次學習時間;
(2)轉換學習的時間數據格式,由時間戳格式轉換為日期格式(yyyy-MM-dd HH:mm:ss);
(3)計算當前日期與最后一次學習日期相差的天數。
RFE模型是根據會員最近一次訪問時間R(Recency)、訪問頻率F(Frequency)和頁面互動度E(Engagements)計算得出的RFE得分。
2.5.1 最近一次訪問時間R(Recency)
只是用戶最近一次訪問或到達網站的時間距今天數。
R值計算:最近一次訪問時間,距離今天的天數。
R:0~15天=5分,16~30天=4分,31~45天=3分,46~60天=2分,大于61天=1分。
2.5.2 訪問頻率F(Frequency)
F是用戶在特定時間周期內訪問或到達的頻率。
F值計算:所有訪問瀏覽量(PV)。
F:≥400=5分,300~399=4分,200~299=3分,100~199=2分,≤99=1分。
2.5.3 頁面互動度E(Engagements)
互動度的定義可以根據不同企業或行業的交互情況而定,例如可以定義為頁面瀏覽時間、視頻播放數量、點贊數量、評論數量等。
E值計算:所有訪問頁面量(不包含重復訪問頁面)(UV)。
E:≥250=5分,200~249=4分,150~199=3分,149~50=2分,≤49=1分。
本文使用Hadoop,Hive,HBase,Spark和Oozie部署了一個學習者用戶畫像構建的大數據平臺,批量處理計算海量數據,進行用戶畫像的構建、計算和保存,并從中挖掘出較為準確的學習者畫像數據。在標簽管理頁中可對學習者畫像標簽進行添加、刪除和計算,并動態添加新的學習者畫像標簽。本項目具有普適性,不僅可以用于視頻學習網站,也可以適用于其他擁有大量數據的服務型網站來構建屬于自己的學習者畫像標簽。