騰訊廣告演算法大賽隨手記4-全域性思路
很多朋友對騰訊廣告大賽不太清楚,我這裡簡單介紹下大賽,文末介紹總體的解答思路。歡迎大家討論,如有瑕疵請及時指出。
準備工作
-
簡單介紹
該大賽的賽題為廣告曝光量預計問題,給定樣本,預測該樣本第二日的廣告曝光數量。
涉及知識包括廣告推薦、競價知識,資料清洗,特徵提取,模型搭建,模型訓練,機器學習等領域知識。
大家可以根據個人興趣選擇參與。
資料說明
資料下載解壓後包含的檔案如下圖:

image.png
-
imps_log.zip
需要再次解壓得到裡面的內容,內容為全部的曝光日誌,也就是廣告被訪問的請求日誌,一條記錄代表依次網路請求,代表一次廣告曝光(也就是被使用者看到)
image.png
user.zip
同樣需要再次解壓,解壓後的到使用者資料檔案,該資料記錄了全部使用者資料檔案,包括使用者的年齡、性別、愛好、地域等等特徵資料,與ad_operation.dat中的定向人群有關係。

image.png
ad_operation.dat
廣告操作記錄資料,該資料記錄了廣告的所有建立、操作記錄,包括廣告的狀態值,如廣告定向人群、投放時間、廣告狀態、廣告出價等。
ad_static_feature.out
廣告靜態資料,該資料中包含了廣告的靜態資料,如廣告素材尺寸、廣告對應的商品型別、廣告所在行業id、廣告賬號id等不會修改的靜態內容。
test_sample.dat
測試樣本,根據該樣本預測N+1日樣本廣告的曝光量,並在官網提交預測結果獲得成績及排行。
結果檔案
提交的結果檔案行數與測試樣本行數一致,列數為兩列,其中第一列為測試樣本給出的樣本id列,第二列為預估的曝光資料(含四位小數點),此曝光資料為這算後的資料(所有曝光資料都做了 除512 計算),兩列資料以逗號分隔,檔名必須為submission.csv,格式為utf8不帶bom。
解題思路
總結的解題思路和步驟為:
-
構建訓練資料
需要結合官方給的廣告靜態資料、廣告動態資料拼接處訓練集資料,也就是拼接成和測試樣本格式一致的訓練樣本,這個過程中還需要繼續對資料進行清洗處理。
需要用到行轉列的操作將操作記錄的不同修改內容轉變成列欄位。
-
曝光統計
對曝光檔案進行統計分析,統計各個廣告的曝光量,檔案比較大如果大家電腦記憶體低於16G的話,建議對檔案進行拆分讀取,以免記憶體不足。
這裡給的思路是按天進行統計,目標為預測某一天的曝光,所以可以按天拆分,按天統計。
這樣就有了相應的label標籤,和第二步的資料拼接結果對應起來就可以作為模型的輸入和lable了。
-
構建模型
這是比較關鍵的一步,我們需要決定使用什麼模型,常用的有LR(Logistic Regression)、DNN、Factorization Machine、DeepFM等,說實話大蔥哥對這些也不熟悉,需要邊學邊弄。
這裡面涉及了pctr的預估、競價排名等知識。
-
模型訓練
模型構建好後就可以用訓練資料和對應的label來對模型進行訓練了,當然為了模型的自測,我們還需要對訓練資料劃分為兩部分,可以按照8:2的比例劃分,80%的用於訓練、20%的用於測試。
根據測試的得分,需要調節模型的超參,或者調換模型。這個過程是一個慢活,訓練的資料可能較長,訓練好可能還需要反覆調整引數,以更好的優化模型。
當然這裡我們為了更接近官方的評分標準,可以按照官方的標準寫一個對應的評分演算法,這樣能使自己在訓練時的分數能更接近官網成績。
-
測試資料
使用20%的資料進行測試,看成績是否理想,如果不理想,就需要調整超參繼續訓練,或者考慮更換不同的模型。
-
預測官網樣本資料
當測試結果自己滿意時,就可以將官方樣本作為輸入,讓模型計算結果了。
8.提交驗證
將計算結果提交官方網站(一天只有三次提交機會,要珍惜啊),然後看官方的成績是否理想,不理想的話,繼續上面的步驟。