王晨光
(中國石化油品銷售事業部,北京 100728)
用戶畫像是一種典型的大數據工具,其最早的英文單詞“User Persona”由Alan Copper提出,他認為用戶畫像是真實用戶的虛擬代表,根據用戶行為、動機等將用戶分為不同的類型,從中抽取每類用戶的共同特征,并根據名字、照片、場景等要素對同類用戶進行描述[1]。近年來,用戶畫像在電子商務、社交網絡、圖書館、醫療和金融等領域得到了廣泛的應用[2],包括精準營銷、個性化推薦、定向廣告投放等。
在傳統行業,企業經營大數據的維度往往較少,同時通常分散在若干建設于不同時期的信息系統,難以得到較為完整的用戶信息。這種情況下,生成的用戶畫像與真實情況很可能存在偏差,其參考意義也將大大降低。同時,傳統企業的數據信息密度較低,對算法的運行速度要求也更高。
因此,本文希望提出一種方法,利用有限維度、高分散度的企業經營數據,充分挖掘出其中的隱藏信息,提高生成用戶畫像的精度和速度。
用戶畫像的核心步驟是數據挖掘,即利用各種機器學習算法分析大數據內部規律,挖掘其中的潛在價值。按照數據是否有標簽,可分為無監督學習、半監督學習和有監督學習[3]。聚類是一種典型的無監督學習算法,在用戶畫像生成領域應用較為廣泛,其根據數據的相似性將數據集聚合成不同的類/簇,使得同簇中的元素盡可能相似,不同簇的元素差別盡可能大。
目前,K-means算法是在工業界和學術界中最有影響力的聚類算法之一,由MACQUEEN于1967年首次提出[4]。其目標是對于給定的數據集Sn和聚類簇數k(k≤n),將Sn按數據的聚集程度劃分為k個簇,使同簇樣本的相似度較高、簇間樣本的相似度較低。經典K-means算法流程如圖1所示。

圖1 經典K-means算法示意圖
本文提出的用戶畫像系統整體架構分為三層,即數據采集層、數據分析層和數據應用層。其中,采集層采集所需數據并存入數據庫,分析層利用聚類算法挖掘數據中的規律和價值,應用層面向具體業務場景,生成相應的用戶畫像并用于輔助經營決策。
數據采集的方式主要是系統數據接口,必要時可以通過網絡爬蟲,來源包括各類涉及用戶數據的業務系統,可根據業務需求和基礎設施能力自動化采集,并存儲于Hadoop等大數據平臺[5-6]。
數據分析的第一步是對數據進行預處理,以解決源數據質量參差不齊的問題。用戶相關數據較為分散,各個系統的技術架構、數據字段也有所區別,因此,預處理是非常關鍵的一步。包括數據清洗、數據集成數據規約和數據變換等。
挖掘分析階段,針對數據維度有限的問題,本文采用“機器學習自動分類+人工提取分類特征”相結合的方法,充分挖掘出數據中隱藏的有效信息。
經典K-means算法中,每輪迭代都需要計算所有樣本點與聚類中心之間的距離,對于傳統企業的大數據應用場景來說,效率較低、耗時較長。同時,該算法對聚類簇數k、初始聚類中心、離群點和噪聲點較為敏感,也不支持凹數據集。為了克服上述不足,人們提出了多種優化算法,其優缺點的對比見表1。

表1 不同K-means優化算法的優缺點對比
傳統企業在大數據分析實踐中,普遍面臨數據維度少、分散度高的情況,易出現噪點。針對此情況,可以利用Mini Batch K-means算法進行處理[7]。同時,考慮到該算法精度不足的劣勢,以及噪點容忍度高的優勢,可同時結合K-means++算法,以彌補該算法帶來的精度損失。其中,Mini Batch K-means算法從原始樣本中隨機選擇少部分做經典K-means以加速收斂,避免樣本太多導致的計算難題[7]。為彌補精度損失,一般重復采樣并分別執行,利用得到的若干樣本集進行聚類,并選擇其中的最優結果,如下所示。算法1 Mini Batch K-means小批量優化算法輸入:采樣數m,迭代次數t,原始樣本集X={x1,x2,……,xn}輸出:聚類結果C={c1,c2,……,ck},其中且

K-means++算法的原理是對K-means的初始聚類中心的隨機選擇過程進行改進,以減少偶然性、提高算法精度,其偽代碼如下所示。
算法2 K-means++初始聚類中心優化算法
輸入:聚類簇數k,迭代次數t,原始樣本集X={x1,x2,……,xn}
輸出:聚類結果C={c1,c2,……,ck},其中且

聚類簇數k是K-means算法中的一個關鍵參數,通常利用Within-cluster SSE和手肘法確定[8],k一般設為4~7。隨著k的增大,SSE值逐漸減?。划攌小于實際簇數時,SSE值會迅速下降;當k繼續增大時,SSE的下降趨勢將放緩。本文實驗如圖2所示,故本文將k設為5。

圖2 SSE隨簇數k的變化趨勢
用戶畫像的生成需要結合具體的業務場景。本文利用RFM[9]模型制定用戶畫像生成標準。RFM是應用最廣泛的一種指標模型,通過用戶最近一次消費的日期R、消費頻率F以及消費金額M三項指標評估客戶的價值狀況,用于監測消費行為異動、防范用戶流失。根據RFM模型,本文構建了一個用戶畫像生成標準,其示例見表2。

表2 用戶畫像的生成標準示例
以流失客戶為例,基于數據分析得到的“平均消費周期(T)”特征,在每一類中進行分析。一般地,注冊日期距今已超過1個月、且最后一次消費距今已超三倍周期的用戶,可認為已流失。制定了用戶畫像的生成標準之后,我們就可以自動地對全部用戶進行打標簽,若干標簽即構成了用戶畫像。
基于某企業實際經營管理數據,進行了Ⅰ、Ⅱ、Ⅲ、Ⅳ四組實驗,即分別基于K-means、K-means++、Mini Batch K-means以及Mini Batch K-means&Kmeans++等四種聚類算法,生成用戶畫像。對用戶數據進行分析后,取多次結果的平均值,見表3。

表3 基于企業數據的測試結果
可以看出,相比經典K-means聚類方法,本文提出的Mini Batch K-means&K-means++方法的查準率、查全率、F1值分別提高了22.1%、20.6%、21.3%,對比實驗Ⅱ和實驗Ⅲ,也取得了更好的結果。
基于UCI公開機器學習測試集的Online Retail II數據進行了實驗。該數據來自一家英國電商平臺,共1 067 371條交易流水信息。以商品編碼、商品名和總價為標準,將消費行為較相似的用戶進行聚類劃分,結果如圖3所示??梢钥闯觯瑢嶒灑糨^實驗Ⅰ和Ⅱ提高了約150倍。基于聚類算法通用的內部指標[5]進行量化評估,見表4,其中,SC和CHI越大越好,DBI越小越好??梢钥吹剑瑢嶒灑舻恼w結果明顯好于實驗Ⅰ和Ⅲ,與實驗Ⅱ差別不大。

圖3 不同實驗的耗時對比

表4 基于公開數據的測試結果
針對傳統企業的數據應用現狀,本文提出了基于優化K-means算法的用戶畫像方法。在經典K-means算法基礎上,分別利用K-means++初始聚類中心優化算法體高精度、Mini BatchK-means小批量優化算法提高速度,以增強針對用戶畫像的分析能力。結果顯示,針對有限維度、高分散度的情況,該方法的速度和精度比經典方法分別提高了約150倍和20%。