看了下前10名的答辯PPT,學習下廣告轉換率預測中的方法和特征工程中的經驗:
1.利用曆史流水
使用者最近一次安裝App時間差
使用者最近一次安裝同類App時間差
使用者同類别廣告浏覽統計
使用者最近幾天安裝App統計
使用者曆史浏覽position hash
使用者曆史浏覽App hash
同一個position處使用者浏覽不同素材個數
……
2.label窗特征
當日資料->
距離上一次和下一次點選廣告的時間差
距離當日第一次和最後一次點選廣告的時間
當日點選廣告的持續時間
短時間内重複點選廣告的計數以及次序
3.CVR特征
4.轉化率的貝葉斯平滑
由于資料稀疏性的原因,直接觀測到的CVR與真實的CVR之間
的誤差較大。是以利用貝葉斯平滑對CVR預估進行優化
·對于某廣告,C表示回流次數,I表示點選次數
·用平滑轉化率r作為特征
ri=Ci+αIi+α+β
參考文獻:Click-Through Rate Estimation for Rare Events In Online Adversting
5.使用01串表示使用者曆史點選
6.均值調整
根據訓練樣本來推測第31天的轉化率大緻為多少,然後對已有的預測結果進行調整.(logit逆變化後融合)
final_prediction=f(f−1(x)+b)
f(x) 是sigmoid函數,b值通過二分,逐漸使得變換後的均值與目标均值誤差小于1e-5
7.資料量過大,可以用流式統計方法,避免整體讀入記憶體中
8.借鑒以前three idiots的方案
9.線上/線下驗證集的挑選
先利用後幾天的來驗證下所用天的label的情況,他這裡把25号和30号都去掉了(也有隊伍保留了30号的資料,但是删除了轉化率突變的app資料)
10.特殊的Leak特征
11.利用xgboost訓練出來的決策樹,對連續特征分箱
12.資料處理時的經驗
特征提取使用Python的numpy、 pandas及Map Reduce
Tips
• 使用shell腳本并行提取特征
• 使用python的multiprocessing庫可以加速特征的提取
• 使用numpy.savez及scipy.csr_matrix完成特征檔案的持久化
13.定義了app非當天轉化率來對資料做清洗
訓練資料的末尾幾天由于轉化時間的滞後性,存在錯誤标簽的樣本,越靠近第30天,錯誤樣本的比例越大
14.時間特征
一天24小時分成48個半小時,點選事件發生區間作為特征
15.PNN和NFFM
16.tensorflow的embedding_lookup操作非常耗時,用embedding matrix(NFFM)快?