電商用戶畫像(下) http://sanwen.net/a/bawuobo.html
商品標(biāo)簽存儲(chǔ)在hbase的product_tags表
格式為梅掠,
用戶標(biāo)簽存儲(chǔ)在hbase的user_tags表
格式為辣垒,
實(shí)際生產(chǎn)環(huán)境中充尉,HBase會(huì)有不少坑,離線寫可以通過bulkload等批量寫的方式辣辫,但是對(duì)于在線讀兽掰,應(yīng)避免特別大的Scan,我們把畫像的數(shù)據(jù)也寫在了分布式索引的Solr试浙,對(duì)于批量讀队他,或者二級(jí)索引可以優(yōu)先走Solr,其次再考慮HBase的二級(jí)索引卷仑,減少HBase的壓力。
實(shí)踐過程
3.3主題推薦標(biāo)簽麸折、用戶命名實(shí)體等新增標(biāo)簽補(bǔ)充進(jìn)畫像
主題推薦標(biāo)簽
主題和標(biāo)簽的映射關(guān)系:
使用標(biāo)簽表中的關(guān)鍵詞列表锡凝,結(jié)合商品的評(píng)論、標(biāo)題數(shù)據(jù)給商品打標(biāo)簽磕谅。
商品打標(biāo)簽公式為:
商品標(biāo)簽存儲(chǔ)在hbase的product_tags表
格式為私爷,
用戶打標(biāo)簽公式為:
用戶標(biāo)簽存儲(chǔ)在hbase的user_tags表
格式為,
值得注意的是膊夹,在這一步需要統(tǒng)計(jì)平均每個(gè)用戶被打上標(biāo)簽的數(shù)量衬浑。針對(duì)標(biāo)簽稀疏問題,我們?cè)?.3中嘗試使用CF對(duì)用戶標(biāo)簽做平滑處理放刨。
用戶命名實(shí)體識(shí)別的標(biāo)簽
通過用戶歷史訂單地址做地址結(jié)構(gòu)化,再對(duì)結(jié)構(gòu)化中的地址做用戶命名實(shí)時(shí)識(shí)別,最后對(duì)每一個(gè)用戶的地址做地址匹配,即可識(shí)別出用戶的公司工秩、小區(qū)、校園標(biāo)簽进统,具體實(shí)現(xiàn)方法見作者在2015年qcon上的分享助币,識(shí)別的命名實(shí)時(shí)數(shù)目如下:
3.4HBase的離線和在線分離、KV讀和批量讀分離
離線Hadoop任務(wù)會(huì)對(duì)數(shù)據(jù)庫某段時(shí)間I/O頻繁訪問螟碎,影響實(shí)時(shí)的性能眉菱,把離線和實(shí)時(shí)的集群分開。在離線集群上應(yīng)用bulkload生成HBase的元文件hfile掉分,在實(shí)時(shí)線上集群上拉取離線集群的hfile:
Hadoop dfs -cp hftp://ip1:port/userProfileBulkLoad hdfs://ip2:port / userProfileBulkLoad
實(shí)時(shí)線上集群通過LoadIncrementalHFiles命令俭缓,補(bǔ)上丟失的增量數(shù)據(jù):
HBase org.apache.Hadoop.HBase.mapreduce.LoadIncrementalHFiles / userProfileBulkLoad userProfile
這樣做避免了對(duì)數(shù)據(jù)庫頻繁寫入的壓力,也避免了離線任務(wù)對(duì)實(shí)時(shí)任務(wù)的影響酥郭。
另外华坦,實(shí)際生產(chǎn)環(huán)境中,HBase會(huì)有不少坑不从,離線寫可以通過bulkload等批量寫的方式惜姐,但是對(duì)于在線讀,應(yīng)避免特別大的Scan,我們把畫像的數(shù)據(jù)也寫在了分布式索引的Solr椿息,對(duì)于批量讀歹袁,或者二級(jí)索引可以優(yōu)先走Solr,其次再考慮HBase的二級(jí)索引,減少HBase的壓力寝优。
3.5畫像性能優(yōu)化
處理邏輯和規(guī)則
a)離線部分的track解析遷移至統(tǒng)一的行為解析數(shù)據(jù)庫宇攻,在加快運(yùn)行速度的同時(shí),還可以提高行為解析的準(zhǔn)確率倡勇。
待商榷:
用戶行為數(shù)據(jù)設(shè)計(jì)到userid和guid:
1)在同一sessionid中逞刷,若userid出現(xiàn)過,則該sessionid中的所有行為對(duì)應(yīng)至該userid
2)在guid和userid的對(duì)應(yīng)關(guān)系中妻熊,濾掉公用電腦和黃牛賬戶夸浅;
b)為了進(jìn)一步提高離線部分的計(jì)算速度,用戶的行為權(quán)重計(jì)算亦可以增量計(jì)算扔役。
設(shè)Wh為用戶對(duì)某個(gè)類目的歷史行為權(quán)重帆喇,Wc為用戶最新一天的行為權(quán)重,則總的行為權(quán)重
Wt = λWh + Wc, 0<λ<1
采用此權(quán)重亿胸,帶入模型坯钦,計(jì)算偏好预皇。
然后更新Wh = Wt。
如果采用上述方法婉刀,則不必遍歷用戶的所有的行為數(shù)據(jù)吟温,每次更新時(shí),只需遍歷一天的數(shù)據(jù)即可突颊。
3.6數(shù)據(jù)存儲(chǔ)優(yōu)化
畫像離線與在線數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
離線的數(shù)據(jù)結(jié)構(gòu)采用Hive鲁豪。
在線的數(shù)據(jù)存儲(chǔ):第一版畫像的數(shù)據(jù)存儲(chǔ)在Hbase中,每天可支撐數(shù)千萬次的訪問律秃,時(shí)延10ms左右爬橡,性能尚可,并且存儲(chǔ)的數(shù)據(jù)量是TB級(jí)棒动,如果用傳統(tǒng)的數(shù)據(jù)庫糙申,隨著標(biāo)簽急速的增加,勢(shì)必要不停的分表船惨,存儲(chǔ)的擴(kuò)展性不是很好郭宝,新版畫像的在線存儲(chǔ)系統(tǒng)仍然使用HBase≈朗考慮到類目偏好使用比較頻繁粘室,而導(dǎo)購屬性偏好數(shù)據(jù)量遠(yuǎn)大于類目偏好,將兩者分開存儲(chǔ)卜范。
類目偏好離線數(shù)據(jù)結(jié)構(gòu)-Hive
離線的全量數(shù)據(jù)進(jìn)行過濾之后衔统,導(dǎo)入在線部分。過濾原則:
a)每個(gè)用戶的偏好類目數(shù)量小于一個(gè)固定值
b)用戶偏好得分大于下限海雪,該下限可假設(shè)用戶當(dāng)天在某個(gè)類目只有一個(gè)加車行為锦爵,然后帶入模型反推出來
類目偏好在線數(shù)據(jù)結(jié)構(gòu)-HBase
Rowkey: userid,
ColumnFamily:category_level
Column:category_id
Value: weight
導(dǎo)購屬性偏好離線數(shù)據(jù)結(jié)構(gòu)-Hive
離線的全量數(shù)據(jù)進(jìn)行過濾之后,導(dǎo)入在線部分奥裸。過濾原則:
屬性偏好大于一個(gè)固定的下限
屬性值的數(shù)量小于一個(gè)上限
屬性值偏好大于一個(gè)固定下限
效果評(píng)價(jià)
畫像系統(tǒng)使得公司廣告投放ROI提升3%险掀;
實(shí)時(shí)畫像(意圖)對(duì)猜你喜歡欄位的共享占比60%多
首頁大輪播的GMV提升千分之三;
應(yīng)用到首頁猜你喜歡湾宙、團(tuán)購樟氢、閃購、搜索侠鳄、推薦埠啃、營銷等欄位或者產(chǎn)品;
了解受眾群體的變遷伟恶,適時(shí)推出適合的產(chǎn)品碴开;
降低自營商品的采購數(shù)量,指導(dǎo)了廠商優(yōu)化產(chǎn)品結(jié)構(gòu)
基于標(biāo)簽畫像的千人千面上線效果:
推廣建議
提煉出該案例(或項(xiàng)目)的哲理、方法論潦牛。
算法準(zhǔn)確度眶掌、數(shù)據(jù)規(guī)模、更新速度相互制衡巴碗,提高某些指標(biāo)朴爬,必須犧牲其他指標(biāo)
一個(gè)系統(tǒng)遇到性能瓶頸的時(shí)候,適度分解系統(tǒng)良价,以滿足不同場(chǎng)景
系統(tǒng)給在線欄位用的時(shí)候,一定得考慮降級(jí)和延遲環(huán)境
數(shù)據(jù)流各個(gè)環(huán)節(jié)都可能出錯(cuò)蒿叠,自動(dòng)化檢查各個(gè)節(jié)點(diǎn)的中間數(shù)據(jù)
系統(tǒng)演進(jìn)的時(shí)候明垢,有不同的方案,爭(zhēng)取多數(shù)人支持市咽,減少一個(gè)人拍板的方案
不同版本開發(fā)的時(shí)候痊银,適度換些開發(fā)者,融入新的思路施绎,避免少數(shù)人思維定式
避免運(yùn)營驅(qū)動(dòng)溯革,不同時(shí)期,過來新的標(biāo)簽需求谷醉,如果研發(fā)團(tuán)隊(duì)只管添加致稀,大部分標(biāo)簽會(huì)沉睡,后面基本用不到俱尼。研發(fā)團(tuán)隊(duì)首先確定自己的標(biāo)準(zhǔn)和規(guī)范抖单,以篩選新需求的標(biāo)簽和排優(yōu)先級(jí)
數(shù)據(jù)驅(qū)動(dòng),通過觀察和研究數(shù)據(jù)遇八,對(duì)數(shù)據(jù)有一定的敏感度矛绘,產(chǎn)生新的用戶畫像數(shù)據(jù)。
作者簡(jiǎn)介
陳敏敏
1號(hào)店精準(zhǔn)化部門架構(gòu)團(tuán)隊(duì)負(fù)責(zé)人刃永,《Storm技術(shù)內(nèi)幕與大數(shù)據(jù)實(shí)踐》一書作者,在此之前曾服務(wù)于微軟和三星電子等公司,長期從事大數(shù)據(jù)赦邻、搜索和推薦平臺(tái)相關(guān)工作江兢,目前主要關(guān)注于NoSQL、實(shí)時(shí)計(jì)算框架读规、推薦劫灶、大數(shù)據(jù)營銷等相關(guān)技術(shù)。