標(biāo)簽數(shù)據(jù)開發(fā)是用戶畫像體系中最重要的一環(huán),主要包括離線標(biāo)簽開發(fā)钠龙、實時標(biāo)簽開發(fā)碴里、用戶特征庫開發(fā)咬腋、人群計算、打通數(shù)據(jù)服務(wù)層等開發(fā)內(nèi)容陵像。
一、統(tǒng)計類標(biāo)簽開發(fā)
統(tǒng)計類標(biāo)簽是指用戶年齡壳炎、性別冕广、購買金額撒汉、累計購買次數(shù)睬辐、近x日登陸次數(shù)等描述用戶狀態(tài)的標(biāo)簽。
? 案例:近30日購買行為標(biāo)簽
?① 拆解二級標(biāo)簽侵俗。近30日購買行為拆解為:付款訂單量(ACTION_U_01_001)隘谣、總付款金額(ACTION_U_01_002)啄巧、加入購物車次數(shù)(ACTION_U_01_003)
② 將需要計算的標(biāo)簽從目標(biāo)表中抽出來(ACTION_U_01_001秩仆、ACTION_U_01_002澄耍、ACTION_U_01_003)
③ 增量獲取用戶最新狀態(tài)痢站,做全連接關(guān)聯(lián)。即通過全連接(full outer join)方式,當(dāng)有最新狀態(tài)時獲取最細(xì)狀態(tài)星掰,否則保留原來的狀態(tài)標(biāo)簽多望;
④ 任務(wù)執(zhí)行完后,將數(shù)據(jù)插入Hive數(shù)據(jù)表中氢烘;
二怀偷、規(guī)則類標(biāo)簽開發(fā)
一般是根據(jù)業(yè)務(wù)場景,在 業(yè)務(wù)層面上指定的規(guī)則標(biāo)簽播玖。這類標(biāo)簽受主觀判斷因素的影響椎工,在開發(fā)前需要做數(shù)據(jù)調(diào)研,結(jié)合運營業(yè)務(wù)規(guī)則開發(fā)维蒙。
除了寫腳本開發(fā)標(biāo)簽外,還可自動打標(biāo)簽果覆。比如用戶觸發(fā)的行為中颅痊,有超過80%的記錄是3C商品,那么自動打上“數(shù)碼達人”的標(biāo)簽局待。
? 案例:用戶價值類標(biāo)簽
RFM模型是衡量用戶價值的重要工具斑响,包含3個指標(biāo),8類人群:
(1)Recency:最近一次消費钳榨。指上一次購買的時候舰罚。
(2)Frequency:消費頻率。消費頻率是顧客在限定的期間內(nèi)所購買的次數(shù)薛耻。
(3)Money:消費金額营罢。消費金額是所有數(shù)據(jù)庫報告的支柱,也可以驗證“帕雷托法則”(Pareto’s Law)——公司80%的收入來自20%的顧客饼齿。
在開發(fā)對應(yīng)標(biāo)簽前需要進行數(shù)據(jù)調(diào)研愤钾。結(jié)合業(yè)務(wù)場景對3個維度的指標(biāo)在時間定義或數(shù)值上進行確定和劃分。
①??得到用戶最近一次交易時間的分布候醒。例如按照二八比例能颁,將最近一次交易時間距今<90天的,定義為“近”倒淫,>90天的定義為“遠(yuǎn)”
② 得到用戶近一年交易訂單量分布伙菊。將歷史訂單<=3單的的劃分為“低頻”,>3單的劃分為“高頻”
③ 得到將一年交易額分布。將交易金額<300的镜硕,定義為“低額”运翼;>300的,定義為“高頻”
④ 根據(jù)以上3個維度兴枯,進行交叉分析(R≤90=“近”血淌,R>90=“遠(yuǎn)”;F≤3=“低頻次”财剖,F(xiàn)>3=“高頻次”悠夯;M≤300=“低額”,M>300="高額")躺坟,劃分為以下8類人群
⑤ 從用戶消費訂單表(dw.user_consume_order_info)里面讀取用戶最近一次消費距今天數(shù)沦补、累計消費次數(shù)、累計消費金額這3個維度的數(shù)據(jù)咪橙,并注冊視圖user_rfm
⑥ 按照最近一次購買距今天90天夕膀、購買次數(shù)3次、消費500元來對用戶3個維度進行高低劃分美侦。劃分后的結(jié)果注冊到視圖user_rfm中
⑦ 將最終結(jié)果劃分到8類人群中去产舞,再將結(jié)果插入用戶標(biāo)簽表中。
⑧ 執(zhí)行完任務(wù)后查詢得到結(jié)果
三菠剩、挖掘類標(biāo)簽開發(fā)
挖掘類標(biāo)簽即算法類標(biāo)簽庞瘸,需要用算法挖掘用戶相關(guān)特征。一般用戶相關(guān)的挖掘標(biāo)簽可包括根據(jù)購買商品預(yù)測用戶男女性別赠叼、預(yù)測用戶點擊下單擦囊、判斷用戶已流失或即將流失。
挖掘類標(biāo)簽開發(fā)環(huán)節(jié)包括:①用戶行為特征工程開發(fā)嘴办、②算法調(diào)優(yōu)瞬场、③上線工程化調(diào)度等環(huán)節(jié),開發(fā)周期較長涧郊。
? 案例:對大量未打標(biāo)簽的文章贯被、帖子等文本數(shù)據(jù)自動分類,自動打標(biāo)簽妆艘。
1彤灶、特征選取及開發(fā)
① 標(biāo)注:對一批文章進行人工準(zhǔn)確分類,作為訓(xùn)練樣本批旺;
② 訓(xùn)練:計算機從標(biāo)注好的文檔集中挖掘出能夠有效分類的規(guī)則幌陕,生成分類器。模型中用到的算法和數(shù)據(jù)處理技術(shù)包括文本分詞汽煮、TF-IDF算法搏熄、樸素貝葉斯分類算法棚唆;
③ 分類:將生成的分類器應(yīng)用在待分類的文檔集中,從而獲得文檔的分類結(jié)果心例。
2宵凌、文本分詞處理
將連續(xù)的字序按照一定規(guī)范重新組合成次序列的過程,中文分詞是講一個個漢字序列切分重一個個獨立的單詞止后。
3瞎惫、數(shù)據(jù)結(jié)構(gòu)處理
為了便于后續(xù)生成詞向量空間模型,這些分詞后的文本信息需要轉(zhuǎn)換成文本向量信息并對象化译株。
4瓜喇、文本TF-IDF權(quán)重
該步驟中將上一步存儲的結(jié)構(gòu)化數(shù)據(jù)構(gòu)建成一個TF-IDF詞向量空間,空間中的詞均來自該訓(xùn)練集古戴,各個詞的權(quán)重矩陣也都一并保存下來欠橘。
5矩肩、樸素貝葉斯分類
至此现恼,文本分類打標(biāo)簽流程中各模塊的數(shù)據(jù)處理方式就完了,文件結(jié)構(gòu)圖如下:
四黍檩、流式計算標(biāo)簽開發(fā)
離線標(biāo)簽的開發(fā)叉袍,即批次ETL任務(wù),一般為T+1日的數(shù)據(jù)刽酱。流式計算標(biāo)簽主要是實時數(shù)據(jù)喳逛,比如實時訂單分析,或者給首次登錄App的新人用戶彈窗推送棵里、發(fā)放紅包润文,實時分析用戶場景并進行推送。
五殿怜、用戶特征庫開發(fā)
特征庫是對用戶每一次行為(瀏覽典蝌、首次、搜索头谜、購買等)及該行為對應(yīng)的標(biāo)簽(或商品類)進行詳細(xì)的記錄骏掀,以便挖掘用戶喜好。是為個性化推薦柱告、精準(zhǔn)營銷截驮、商業(yè)分析提供中間層數(shù)據(jù)。一般來說际度,我認(rèn)為這一塊是最重要的葵袭。
??用戶標(biāo)簽:靜態(tài)記錄當(dāng)前狀態(tài)
? 用戶特征庫:多維度匯總。例如:一個用戶經(jīng)常瀏覽乖菱、購買奶粉等嬰兒用品眶熬,則她可能是個媽媽妹笆;用戶經(jīng)常收藏、點贊搞笑視頻娜氏,可用于挖掘用戶偏好拳缠;用戶經(jīng)常搜索美妝美容類商品,可能用戶是女性贸弥。
① 特征庫規(guī)劃
用戶與商品相關(guān)的行為日志數(shù)據(jù)保護了用戶對商品行為的明細(xì)窟坐。根據(jù)應(yīng)用需要,創(chuàng)建表dw.cookie_feature_event_append來構(gòu)建用戶特征绵疲。
該表中的act_name是用戶行為事件名稱哲鸳,大致可以分為3類:
a、埋點日志數(shù)據(jù):用戶訪問頁面時點擊的按鈕盔憨,搜索的關(guān)鍵詞通過打點日志上報記錄徙菠;
b、訪問日志數(shù)據(jù):用戶訪問的頁面郁岩、訪問時間從訪問日志數(shù)據(jù)挖掘婿奔;
c、訂單數(shù)據(jù):用戶下單信息及商品信息问慎。
② 數(shù)據(jù)開發(fā)
數(shù)據(jù)開發(fā)過程中萍摊,主要從訂單表、訪問日志表如叼、打點日志表中對用戶當(dāng)日的行為(加購冰木、點擊、瀏覽笼恰、點贊等)抽取數(shù)據(jù)踊沸,然后清洗加載到用戶特征庫對應(yīng)表(dw.cookie_feature_event_append)
③ 其他特征庫規(guī)劃
除了用戶特征庫,還有圍繞本公司的產(chǎn)品進行特征庫的規(guī)劃與開發(fā)社证。
六逼龟、標(biāo)簽權(quán)重計算
用戶行為對應(yīng)不同的權(quán)重,比如用戶購買的權(quán)重肯定比加到購物車重猴仑,加入購物車的權(quán)重大于收藏审轮,收藏大于瀏覽。
1辽俗、TF-IDF算法
TF-IDF是一種統(tǒng)計方法疾渣,用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加崖飘,但同時會隨著它在語料庫中出現(xiàn)的頻率成反比下降榴捡。TF-IDF加權(quán)的各種形式常被搜索引擎應(yīng)用,作為文件與用戶查詢之間相關(guān)程度的度量或評級朱浴。
2吊圾、時間衰減系數(shù)
在用戶畫像的應(yīng)用中达椰,用戶的某些行為會隨時間衰減蚪拦,而某些行為不會隨時間衰減匆绣。時間衰減是指隨著時間的推移,用戶的歷史行為和當(dāng)前行為的相關(guān)性不斷減弱交播。
3檀何、標(biāo)簽權(quán)重配置
用戶標(biāo)簽的權(quán)重最終還是需要進一步結(jié)合標(biāo)簽所處的業(yè)務(wù)場景蝇裤、距離當(dāng)前時間、用戶行為產(chǎn)生該標(biāo)簽的行為次數(shù)等因素频鉴,最終得到用戶標(biāo)簽權(quán)重的綜合打分公式:
用戶標(biāo)簽權(quán)重=行為類型權(quán)重×?xí)r間衰減×用戶行為次數(shù)×TF–IDF計算標(biāo)簽權(quán)重
七栓辜、標(biāo)簽相似度計算
標(biāo)簽相似度計算主要是對標(biāo)簽進行有效聚類,通過對用戶身上的標(biāo)簽構(gòu)建“同現(xiàn)矩陣”的方式對標(biāo)簽進行聚類垛孔。例如最經(jīng)典的“啤酒和尿布”的營銷場景藕甩,就是一種相關(guān)性。即這里的同現(xiàn)是指標(biāo)簽同時出現(xiàn)周荐,即一個用戶被打上A標(biāo)簽的同時被打上B標(biāo)簽狭莱。如果有很多用戶同時被打上A、B標(biāo)簽羡藐,那么A贩毕、B標(biāo)簽之間可能潛在某種相關(guān)性悯许。
八仆嗦、標(biāo)簽組合計算
當(dāng)業(yè)務(wù)方根據(jù)業(yè)務(wù)規(guī)則應(yīng)用標(biāo)簽時,是需要組合多個標(biāo)簽來創(chuàng)建對應(yīng)的用戶群體的先壕,此時需要應(yīng)用到組合標(biāo)簽計算瘩扼。
? 應(yīng)用案例:用戶A、B垃僚、C集绰、D、E已經(jīng)被打上了符合自己特征的標(biāo)簽谆棺,業(yè)務(wù)人員想給“高價值用戶群組”分發(fā)消費券栽燕。根據(jù)運營經(jīng)驗定義了“高價值用戶群組”,其特征為:①女性改淑;②25~35歲碍岔;③累計消費>5次;④累計消費>500元朵夏;⑤活躍度在中活躍以上的用戶蔼啦。組合標(biāo)簽計算的任務(wù)就是根據(jù)業(yè)務(wù)人員篩選的規(guī)則,給出符合上述條件的用戶群組仰猖。
1捏肢、從MySQL讀取不同組合標(biāo)簽的計算規(guī)則奈籽;
2、將上述規(guī)則拼接成接口傳入?yún)?shù)的查詢命令鸵赫,通過接口方式進行查詢衣屏;
3、通過Elasticsearch查詢符合這些條件的用戶id辩棒,返回id作為rowkey去HBase中查詢用戶身上的標(biāo)簽勾拉。
九、數(shù)據(jù)服務(wù)層開發(fā)
數(shù)據(jù)的主要目的是應(yīng)用到業(yè)務(wù)系統(tǒng)和營銷場景中盗温,需要打通標(biāo)簽數(shù)據(jù)和業(yè)務(wù)系統(tǒng)藕赞,通過產(chǎn)品化的方式將標(biāo)簽數(shù)據(jù)應(yīng)用到業(yè)務(wù)系統(tǒng)。
數(shù)據(jù)服務(wù)層開發(fā)就包括了離線服務(wù)層和在線服務(wù)層卖局。
離線服務(wù)層:將ETL后的用戶群數(shù)據(jù)推送到對應(yīng)業(yè)務(wù)系統(tǒng)斧蜕。
在線服務(wù)層:以RESTful API方式提供接口服務(wù),可支持個性化推薦砚偶、營銷推送(站內(nèi)廣告系統(tǒng)的個性化彈窗批销、App的消息push和輪播廣告、短信等)染坯、在線特征庫等場景均芽。
幾個典型的應(yīng)用場景包括:
1)短信營銷:可以基于用戶畫像的自定義圈人服務(wù),進行重點用戶的廣告/消息消息推送/短信/郵件營銷单鹿。
2)郵件營銷:可以基于不同用戶群體掀宋,進行個性化有效的會員營銷,同時在服務(wù)上也可以基于已經(jīng)打通的用戶數(shù)據(jù)仲锄,提供會員差異化的客服/物流/活動等服務(wù)劲妙。
3)風(fēng)控系統(tǒng):可以根據(jù)用戶級別,作為風(fēng)控系統(tǒng)規(guī)則引擎或模型的輸入儒喊。
4)數(shù)據(jù)分析:可以分析不同群體的行為特征镣奋,提供分析和決策。
5)BI數(shù)據(jù):可以監(jiān)控核心用戶群體的變化怀愧,為上層決策提供數(shù)據(jù)基礎(chǔ)支持侨颈。
十、GraphX圖計算用戶
Spark GraphX是分布式圖計算框架芯义,基于Spark平臺提供了對圖計算的簡單且豐富的接口哈垢,以滿足對分布式圖處理的需求。Spark GraphX由于底層是基于Spark來處理的毕贼,所以天然就是一個分布式的圖處理系統(tǒng)温赔。
在工程實踐中,存在需要計算二度關(guān)系用戶的場景鬼癣,即用戶與用戶之間通過其共同的好友找到他們的二度關(guān)系熟人陶贼,這種對圖的挖掘計算可借助Spark GraphX完成啤贩。
GraphX提供頂點(Vertex)、邊(Edge)拜秧、三元組(Triple)三種視圖痹屹,GraphX圖計算也在這三種視圖上完成。頂點包括頂點id和頂點屬性枉氮;邊包括源頂點(srcid)志衍,目標(biāo)頂點(dstid)和屬性(property);三元組是對頂點和邊的擴展聊替,將頂點和邊的屬性保存為一個RDD[EdgeTriplet[VD楼肪,ED]]
? 應(yīng)用案例:多個用戶(如下111、222惹悄、333)登錄同一個手機上的某App(如下C)春叫,也存在同一個用戶(111)在多個手機上(A、C)登錄該App的情況泣港,這里初步認(rèn)為在同一個手機上登錄的用戶之間是熟人關(guān)系暂殖,基于這種熟人關(guān)系需要進一步挖掘用戶的二度熟人。
參考資料:
《用戶畫像:方法論與工程化解決方案》趙宏田?著