用戶畫像標籤的設計
需求簡單明瞭: 用戶標籤的數量多少(以權重來表示)
爲方便管理 不同的標籤分類(以模塊來表示)
字段 gid, 模塊名,標籤名,標籤值,權重
主題分類
人口屬性模塊、註冊信息、終端設備、消費訂單屬性、消費商品退拒屬性、生命週期、活躍屬性、事件行爲屬性、商品偏好屬性、價值屬性、DSP屬性、APP屬性、興趣類關鍵字、活躍地域標籤
商城系統行爲日誌數據
用戶終端屬性、訪問行爲屬性、活躍屬性、偏好屬性
商城系統業務數據
消費訂單類屬性、消費商品類、價值屬性、註冊信息
DSP系統競價日誌數據
廣告欄位名稱、廣告平臺商、興趣關鍵詞標籤、終端屬性、App屬性
移動運營商流量日誌
終端屬性、購物類興趣關鍵字、App屬性
標籤的抽取
每個值都是一個標籤
不同日誌抽取的標籤合併用union合併標籤
功能:將當日的標籤計算結果,整合歷史(前一日)標籤結果
要考慮的點:
1. 當日可能有新的人
2. 歷史記錄中的人,當日可能沒出現
3. 歷史記錄中的人,當日有新標籤
4. 歷史記錄中的人,當日出現出現過的標籤
5. 歷史記錄中的人,有標籤當日沒有出現
總結出來就是:
-- 對有權重的數據
歷史標籤 full join 當日標籤
2. 歷史有,當日有,權重累加
3. 歷史有,當日無,權重衰減 (應該有衰減係數字典)
4. 歷史無,當日有,取當日
-- 對無權重的數據
無權重標籤,都是數倉報表中出來的,而數倉報表的數據,每天抽過來其實都是歷史以來積累到當日的全量結果!
直接取當日數據!
1. 地理位置字典構建
2. app信息知識庫構建
3. url內容知識庫構建
4. idmp字典構建
1. 商城系統用戶行爲日誌
2. dsp競價日誌
3. cmcc流量日誌
清洗、過濾
解析
集成
格式轉換
******《標籤主題體系》******
1. 商城系統用戶行爲日誌
2. dsp競價日誌
3. cmcc流量日誌
4. 用戶訂單統計報表
5. 用戶商品統計報表
6. 用戶註冊信息(註冊手機、註冊賬號、註冊性別、註冊年齡、註冊時間、註冊方式(app上註冊、pc上註冊、微信小程序註冊)、註冊渠道(自發、百度搜索、x廣告推廣來的、x活動推廣來的))
提取的標籤有哪些?
*人口屬性信息
*註冊信息
*終端屬性信息
*商品偏好信息
- 品類偏好
- 品牌偏好
- 價格偏好 : 30天內的商品消費價格區間偏好: 2 -9999.9
rangeid,rangename
1, 0-50
2, 50-100
3, 100-200
4, 200-400
5, 400-600
6, 600-800
7, 800-1000
- 顏色等商品屬性偏好:
- 商品相關關鍵字偏好:瀑布屏:89 黑科技:10
*活躍屬性
- 第一次訪問時間
- 最近一次訪問時間
- 30天內總訪問次數
- 30天內總訪問時長
- 30天內總訪問深度
- 7天內
- .....
- 30天內的平均訪問間隔
- ......
- 30天內收藏總次數
- 30天內點贊總次數
- 30天內好評總次數
- 30天內差評總次數
- 30天內分享總次數
*消費屬性
- 首單時間
- 末單時間
- 累計消費總額
- 累計客單價
- 累計消費筆數
- 最大單筆消費額
- 最小單筆消費額
- 30天內消費總額
- 30天內客單價
- 30天內消費筆數
- 30天內單筆消費額
- 30天內單筆消費額
- 14天內消費總額
- 14天內客單價
- 14天內消費筆數
- 14天內單筆消費額
- 14天內單筆消費額
- 7天內消費總額
- 7天內客單價
- 7天內消費筆數
- 7天內單筆消費額
- 7天內單筆消費額
- .........
- 0-2點下單次數
- 2-4點下單次數
- 4-6點下單次數
- 6-8點下單次數
- 8-10點下單次數
- .....
*興趣關鍵詞 (主要來自於dsp日誌和cmcc日誌)
- 新聞類
- 體育類
- 娛樂類
- 影視類
*DSP廣告業務標籤
廣告欄位
廣告平臺
.....
******《標籤統一計算模型》******
一條數據,n個字段對畫像有意義,每個字段變成一個標籤,然後橫表變豎表,就可以用統一的計算方式來計算(wordcount)
標籤 ==》 模塊名(id):標籤名(id):標籤值:權重
有權重:對相同人的相同標籤,分組累加聚合
無權重:
有權重: 跟T-1日的full join,該累加累加,該衰減衰減(引用外部的係數字典表及衰減算法,不同標籤有不同衰減速度)
無權重: 跟T-1日的full join,有新的就用新的,沒有新的保留舊的
畫像標籤明細數據入庫
各類畫像運營分析報表的入庫
畫像結果入庫
可能需要根據一個用戶的某個標識,查詢到這個人的整條或者某些標籤數據!
而且,數據量比較龐大(畫像數據中人數千萬級、億級)
(假如公司有用戶1千萬,標籤有: 1000 w * 15模塊 *10標籤 * 3個值 = 45億個標籤)
那麼,我們可以選擇什麼樣的數據庫來支撐這些需求呢?
mysql是否可以? 數據量小一點可以(百萬級別-千萬級別),數據量大不合適
優點:查詢功能特別強大,速度快,可以寫各種複雜sql查詢
缺點:數量規模不能太大,而且不便於動態增長!不太適合半結構化數據!(明細標籤數據是一個稀疏表)
hbase是否可以? 可以!
優點:數據規模可以很龐大,而且支持動態增長!非常適合存儲稀疏表!
缺點:支持的查詢功能簡單!對複雜查詢的支持非常弱!
缺點的改善方案:
創建二級索引!
或者使用phoenix(可以支持創建二級索引,可以支持複雜sql查詢,而且查詢性能在hbase原生api基礎上還有提升!)
elastic search(不是數據庫,全文檢索引擎)是否可以? 可以!
優點: 數據規模可以比較大(億級別,10億就需要深入優化)!
條件查詢很方便(全文索引)!
聚合統計查詢也能支持!(相比hive、mysql來說,還是很弱的)
缺點: 對複雜查詢分析的支持不夠強!