一 個性化電商廣告推薦系統介紹
1.1 數據集介紹
-
Ali_Display_Ad_Click是阿里巴巴提供的一個淘寶展示廣告點擊率預估數據集
數據集來源:天池競賽
-
原始樣本骨架raw_sample
淘寶網站中隨機抽樣了114萬用戶8天內的廣告展示/點擊日志(2600萬條記錄),構成原始的樣本骨架。 字段說明如下:
- user_id:脫敏過的用戶ID;
- adgroup_id:脫敏過的廣告單元ID;
- time_stamp:時間戳;
- pid:資源位;
- noclk:為1代表沒有點擊;為0代表點擊;
- clk:為0代表沒有點擊;為1代表點擊;
用前面7天的做訓練樣本(20170506-20170512),用第8天的做測試樣本(20170513)
-
廣告基本信息表ad_feature
本數據集涵蓋了raw_sample中全部廣告的基本信息(約80萬條目)。字段說明如下:
- adgroup_id:脫敏過的廣告ID;
- cate_id:脫敏過的商品類目ID;
- campaign_id:脫敏過的廣告計劃ID;
- customer_id: 脫敏過的廣告主ID;
- brand_id:脫敏過的品牌ID;
- price: 寶貝的價格
其中一個廣告ID對應一個商品(寶貝),一個寶貝屬于一個類目,一個寶貝屬于一個品牌。
-
用戶基本信息表user_profile
本數據集涵蓋了raw_sample中全部用戶的基本信息(約100多萬用戶)。字段說明如下:
- userid:脫敏過的用戶ID;
- cms_segid:微群ID;
- cms_group_id:cms_group_id;
- final_gender_code:性別 1:男,2:女;
- age_level:年齡層次; 1234
- pvalue_level:消費檔次,1:低檔,2:中檔,3:高檔;
- shopping_level:購物深度,1:淺層用戶,2:中度用戶,3:深度用戶
- occupation:是否大學生 ,1:是,0:否
- new_user_class_level:城市層級
-
用戶的行為日志behavior_log
本數據集涵蓋了raw_sample中全部用戶22天內的購物行為(共七億條記錄)。字段說明如下:
user:脫敏過的用戶ID;
time_stamp:時間戳;
btag:行為類型, 包括以下四種:
? 類型 | 說明
? pv | 瀏覽
? cart | 加入購物車
? fav | 喜歡
? buy | 購買
cate_id:脫敏過的商品類目id;
brand_id: 脫敏過的品牌id;
這里以user + time_stamp為key,會有很多重復的記錄;這是因為我們的不同的類型的行為數據是不同部門記錄的,在打包到一起的時候,實際上會有小的偏差(即兩個一樣的time_stamp實際上是差異比較小的兩個時間)
1.2 項目效果展示
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EUTDy1BC-1691901710646)(/img/1545049355235.png)]
1.3 項目實現分析
-
主要包括
- 一份廣告點擊的樣本數據raw_sample.csv:體現的是用戶對不同位置廣告點擊、沒點擊的情況
- 一份廣告基本信息數據ad_feature.csv:體現的是每個廣告的類目(id)、品牌(id)、價格特征
- 一份用戶基本信息數據user_profile.csv:體現的是用戶群組、性別、年齡、消費購物檔次、所在城市級別等特征
- 一份用戶行為日志數據behavior_log.csv:體現用戶對商品類目(id)、品牌(id)的瀏覽、加購物車、收藏、購買等信息
我們是在對非搜索類型的廣告進行點擊率預測和推薦(沒有搜索詞、沒有廣告的內容特征信息)
- 推薦業務處理主要流程: 召回 ===> 排序 ===> 過濾
- 離線處理業務流
- raw_sample.csv ==> 歷史樣本數據
- ad_feature.csv ==> 廣告特征數據
- user_profile.csv ==> 用戶特征數據
- raw_sample.csv + ad_feature.csv + user_profile.csv ==> CTR點擊率預測模型
- behavior_log.csv ==> 評分數據 ==> user-cate/brand評分數據 ==> 協同過濾 ==> top-N cate/brand ==> 關聯廣告
- 協同過濾召回 ==> top-N cate/brand ==> 關聯對應的廣告完成召回
- 在線處理業務流
- 數據處理部分:
- 實時行為日志 ==> 實時特征 ==> 緩存
- 實時行為日志 ==> 實時商品類別/品牌 ==> 實時廣告召回集 ==> 緩存
- 推薦任務部分:
- CTR點擊率預測模型 + 廣告/用戶特征(緩存) + 對應的召回集(緩存) ==> 點擊率排序 ==> top-N 廣告推薦結果
- 數據處理部分:
- 離線處理業務流
- 涉及技術:Flume、Kafka、Spark-streming\HDFS、Spark SQL、Spark ML、Redis
- Flume:日志數據收集
- Kafka:實時日志數據處理隊列
- HDFS:存儲數據
- Spark SQL:離線處理
- Spark ML:模型訓練
- Redis:緩存
1.4 點擊率預測(CTR–Click-Through-Rate)概念
-
電商廣告推薦通常使用廣告點擊率(CTR–Click-Through-Rate)預測來實現
點擊率預測 VS 推薦算法
點擊率預測需要給出精準的點擊概率,比如廣告A點擊率0.5%、廣告B的點擊率0.12%等;而推薦算法很多時候只需要得出一個最優的次序A>B>C即可。
點擊率預測使用的算法通常是如邏輯回歸(Logic Regression)這樣的機器學習算法,而推薦算法則是一些基于協同過濾推薦、基于內容的推薦等思想實現的算法
點擊率 VS 轉化率
點擊率預測是對每次廣告的點擊情況做出預測,可以判定這次為點擊或不點擊,也可以給出點擊或不點擊的概率
轉化率指的是從狀態A進入到狀態B的概率,電商的轉化率通常是指到達網站后,進而有成交記錄的用戶比率,如用戶成交量/用戶訪問量
搜索和非搜索廣告點擊率預測的區別
搜索中有很強的搜索信號-“查詢詞(Query)”,查詢詞和廣告內容的匹配程度很大程度影響了點擊概率,搜索廣告的點擊率普遍較高
非搜索廣告(例如展示廣告,信息流廣告)的點擊率的計算很多就來源于用戶的興趣和廣告自身的特征,以及上下文環境。通常好位置能達到百分之幾的點擊率。對于很多底部的廣告,點擊率非常低,常常是千分之幾,甚至更低