王晨光
(中國石化油品銷售事業(yè)部,北京 100728)
用戶畫像是一種典型的大數(shù)據(jù)工具,其最早的英文單詞“User Persona”由Alan Copper提出,他認(rèn)為用戶畫像是真實(shí)用戶的虛擬代表,根據(jù)用戶行為、動機(jī)等將用戶分為不同的類型,從中抽取每類用戶的共同特征,并根據(jù)名字、照片、場景等要素對同類用戶進(jìn)行描述[1]。近年來,用戶畫像在電子商務(wù)、社交網(wǎng)絡(luò)、圖書館、醫(yī)療和金融等領(lǐng)域得到了廣泛的應(yīng)用[2],包括精準(zhǔn)營銷、個性化推薦、定向廣告投放等。
在傳統(tǒng)行業(yè),企業(yè)經(jīng)營大數(shù)據(jù)的維度往往較少,同時通常分散在若干建設(shè)于不同時期的信息系統(tǒng),難以得到較為完整的用戶信息。這種情況下,生成的用戶畫像與真實(shí)情況很可能存在偏差,其參考意義也將大大降低。同時,傳統(tǒng)企業(yè)的數(shù)據(jù)信息密度較低,對算法的運(yùn)行速度要求也更高。
因此,本文希望提出一種方法,利用有限維度、高分散度的企業(yè)經(jīng)營數(shù)據(jù),充分挖掘出其中的隱藏信息,提高生成用戶畫像的精度和速度。
用戶畫像的核心步驟是數(shù)據(jù)挖掘,即利用各種機(jī)器學(xué)習(xí)算法分析大數(shù)據(jù)內(nèi)部規(guī)律,挖掘其中的潛在價值。按照數(shù)據(jù)是否有標(biāo)簽,可分為無監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)和有監(jiān)督學(xué)習(xí)[3]。聚類是一種典型的無監(jiān)督學(xué)習(xí)算法,在用戶畫像生成領(lǐng)域應(yīng)用較為廣泛,其根據(jù)數(shù)據(jù)的相似性將數(shù)據(jù)集聚合成不同的類/簇,使得同簇中的元素盡可能相似,不同簇的元素差別盡可能大。
目前,K-means算法是在工業(yè)界和學(xué)術(shù)界中最有影響力的聚類算法之一,由MACQUEEN于1967年首次提出[4]。其目標(biāo)是對于給定的數(shù)據(jù)集Sn和聚類簇數(shù)k(k≤n),將Sn按數(shù)據(jù)的聚集程度劃分為k個簇,使同簇樣本的相似度較高、簇間樣本的相似度較低。經(jīng)典K-means算法流程如圖1所示。
圖1 經(jīng)典K-means算法示意圖
本文提出的用戶畫像系統(tǒng)整體架構(gòu)分為三層,即數(shù)據(jù)采集層、數(shù)據(jù)分析層和數(shù)據(jù)應(yīng)用層。其中,采集層采集所需數(shù)據(jù)并存入數(shù)據(jù)庫,分析層利用聚類算法挖掘數(shù)據(jù)中的規(guī)律和價值,應(yīng)用層面向具體業(yè)務(wù)場景,生成相應(yīng)的用戶畫像并用于輔助經(jīng)營決策。
數(shù)據(jù)采集的方式主要是系統(tǒng)數(shù)據(jù)接口,必要時可以通過網(wǎng)絡(luò)爬蟲,來源包括各類涉及用戶數(shù)據(jù)的業(yè)務(wù)系統(tǒng),可根據(jù)業(yè)務(wù)需求和基礎(chǔ)設(shè)施能力自動化采集,并存儲于Hadoop等大數(shù)據(jù)平臺[5-6]。
數(shù)據(jù)分析的第一步是對數(shù)據(jù)進(jìn)行預(yù)處理,以解決源數(shù)據(jù)質(zhì)量參差不齊的問題。用戶相關(guān)數(shù)據(jù)較為分散,各個系統(tǒng)的技術(shù)架構(gòu)、數(shù)據(jù)字段也有所區(qū)別,因此,預(yù)處理是非常關(guān)鍵的一步。包括數(shù)據(jù)清洗、數(shù)據(jù)集成數(shù)據(jù)規(guī)約和數(shù)據(jù)變換等。
挖掘分析階段,針對數(shù)據(jù)維度有限的問題,本文采用“機(jī)器學(xué)習(xí)自動分類+人工提取分類特征”相結(jié)合的方法,充分挖掘出數(shù)據(jù)中隱藏的有效信息。
經(jīng)典K-means算法中,每輪迭代都需要計算所有樣本點(diǎn)與聚類中心之間的距離,對于傳統(tǒng)企業(yè)的大數(shù)據(jù)應(yīng)用場景來說,效率較低、耗時較長。同時,該算法對聚類簇數(shù)k、初始聚類中心、離群點(diǎn)和噪聲點(diǎn)較為敏感,也不支持凹數(shù)據(jù)集。為了克服上述不足,人們提出了多種優(yōu)化算法,其優(yōu)缺點(diǎn)的對比見表1。
表1 不同K-means優(yōu)化算法的優(yōu)缺點(diǎn)對比
傳統(tǒng)企業(yè)在大數(shù)據(jù)分析實(shí)踐中,普遍面臨數(shù)據(jù)維度少、分散度高的情況,易出現(xiàn)噪點(diǎn)。針對此情況,可以利用Mini Batch K-means算法進(jìn)行處理[7]。同時,考慮到該算法精度不足的劣勢,以及噪點(diǎn)容忍度高的優(yōu)勢,可同時結(jié)合K-means++算法,以彌補(bǔ)該算法帶來的精度損失。其中,Mini Batch K-means算法從原始樣本中隨機(jī)選擇少部分做經(jīng)典K-means以加速收斂,避免樣本太多導(dǎo)致的計算難題[7]。為彌補(bǔ)精度損失,一般重復(fù)采樣并分別執(zhí)行,利用得到的若干樣本集進(jìn)行聚類,并選擇其中的最優(yōu)結(jié)果,如下所示。算法1 Mini Batch K-means小批量優(yōu)化算法輸入:采樣數(shù)m,迭代次數(shù)t,原始樣本集X={x1,x2,……,xn}輸出:聚類結(jié)果C={c1,c2,……,ck},其中且
K-means++算法的原理是對K-means的初始聚類中心的隨機(jī)選擇過程進(jìn)行改進(jìn),以減少偶然性、提高算法精度,其偽代碼如下所示。
算法2 K-means++初始聚類中心優(yōu)化算法
輸入:聚類簇數(shù)k,迭代次數(shù)t,原始樣本集X={x1,x2,……,xn}
輸出:聚類結(jié)果C={c1,c2,……,ck},其中且
聚類簇數(shù)k是K-means算法中的一個關(guān)鍵參數(shù),通常利用Within-cluster SSE和手肘法確定[8],k一般設(shè)為4~7。隨著k的增大,SSE值逐漸減??;當(dāng)k小于實(shí)際簇數(shù)時,SSE值會迅速下降;當(dāng)k繼續(xù)增大時,SSE的下降趨勢將放緩。本文實(shí)驗(yàn)如圖2所示,故本文將k設(shè)為5。
圖2 SSE隨簇數(shù)k的變化趨勢
用戶畫像的生成需要結(jié)合具體的業(yè)務(wù)場景。本文利用RFM[9]模型制定用戶畫像生成標(biāo)準(zhǔn)。RFM是應(yīng)用最廣泛的一種指標(biāo)模型,通過用戶最近一次消費(fèi)的日期R、消費(fèi)頻率F以及消費(fèi)金額M三項(xiàng)指標(biāo)評估客戶的價值狀況,用于監(jiān)測消費(fèi)行為異動、防范用戶流失。根據(jù)RFM模型,本文構(gòu)建了一個用戶畫像生成標(biāo)準(zhǔn),其示例見表2。
表2 用戶畫像的生成標(biāo)準(zhǔn)示例
以流失客戶為例,基于數(shù)據(jù)分析得到的“平均消費(fèi)周期(T)”特征,在每一類中進(jìn)行分析。一般地,注冊日期距今已超過1個月、且最后一次消費(fèi)距今已超三倍周期的用戶,可認(rèn)為已流失。制定了用戶畫像的生成標(biāo)準(zhǔn)之后,我們就可以自動地對全部用戶進(jìn)行打標(biāo)簽,若干標(biāo)簽即構(gòu)成了用戶畫像。
基于某企業(yè)實(shí)際經(jīng)營管理數(shù)據(jù),進(jìn)行了Ⅰ、Ⅱ、Ⅲ、Ⅳ四組實(shí)驗(yàn),即分別基于K-means、K-means++、Mini Batch K-means以及Mini Batch K-means&Kmeans++等四種聚類算法,生成用戶畫像。對用戶數(shù)據(jù)進(jìn)行分析后,取多次結(jié)果的平均值,見表3。
表3 基于企業(yè)數(shù)據(jù)的測試結(jié)果
可以看出,相比經(jīng)典K-means聚類方法,本文提出的Mini Batch K-means&K-means++方法的查準(zhǔn)率、查全率、F1值分別提高了22.1%、20.6%、21.3%,對比實(shí)驗(yàn)Ⅱ和實(shí)驗(yàn)Ⅲ,也取得了更好的結(jié)果。
基于UCI公開機(jī)器學(xué)習(xí)測試集的Online Retail II數(shù)據(jù)進(jìn)行了實(shí)驗(yàn)。該數(shù)據(jù)來自一家英國電商平臺,共1 067 371條交易流水信息。以商品編碼、商品名和總價為標(biāo)準(zhǔn),將消費(fèi)行為較相似的用戶進(jìn)行聚類劃分,結(jié)果如圖3所示??梢钥闯觯瑢?shí)驗(yàn)Ⅳ較實(shí)驗(yàn)Ⅰ和Ⅱ提高了約150倍?;诰垲愃惴ㄍㄓ玫膬?nèi)部指標(biāo)[5]進(jìn)行量化評估,見表4,其中,SC和CHI越大越好,DBI越小越好??梢钥吹剑瑢?shí)驗(yàn)Ⅳ的整體結(jié)果明顯好于實(shí)驗(yàn)Ⅰ和Ⅲ,與實(shí)驗(yàn)Ⅱ差別不大。
圖3 不同實(shí)驗(yàn)的耗時對比
表4 基于公開數(shù)據(jù)的測試結(jié)果
針對傳統(tǒng)企業(yè)的數(shù)據(jù)應(yīng)用現(xiàn)狀,本文提出了基于優(yōu)化K-means算法的用戶畫像方法。在經(jīng)典K-means算法基礎(chǔ)上,分別利用K-means++初始聚類中心優(yōu)化算法體高精度、Mini BatchK-means小批量優(yōu)化算法提高速度,以增強(qiáng)針對用戶畫像的分析能力。結(jié)果顯示,針對有限維度、高分散度的情況,該方法的速度和精度比經(jīng)典方法分別提高了約150倍和20%。