背景:一方面有流量的企業希望最大化廣告收益;另一方面需要流量的個體希望最小化廣告投放成本但同時最大化效果,這就是一個博弈的過程。
目前市面上流行的百度信息流、微信朋友圈投廣都是基於這類的博弈過程。你可以設想一下: 假如有幾家公司想在百度投放廣告,但是廣告位是有限的,那這時候該選擇哪一家的廣告呢? 這裏就有一個很關鍵的概念,叫作競價!
也就是誰出的錢越多,就放誰的, 但這裏有一個很重要的前提:是否用戶會點擊廣告! 如果一個用戶沒有點擊廣告其實也賺不到錢,即便出價很高。所以這就衍生出了一個極其重要的問題:如何提升用戶的點擊率?
所以除了價格,AI算法也需要通過判斷一個廣告被一個用戶點擊的概率來決定要不要呈現給這個用戶。這就是廣告點擊率問題。
一個用戶屬性和廣告屬性匹配時,點擊率自然會變高。那具體的匹配的概率又如何計算呢? 這就是這次項目要解決的問題。
The project is from Kaggle, Avazu
https://www.kaggle.com/c/avazu-ctr-prediction
在項目裏,也需要用到特徵選擇、參數搜索、以及F1的評估方法。
準確率(Accuracy)
acc = # of correct / # of total
準確率的缺陷
假設實際1000個病人裏有2個人有癌症,
一個系統對於所有的檢測,都判斷爲非癌症,那麼
準確率 = 998 / 1000 = 99.8% 但是這種數據沒有意義(因爲樣本不均衡,負樣本少)。
Data imbalance
精確率(precision):
召回率(Recall):
對於正常郵件的精確率:
Precision:被AI算法識別並且確實是正常郵件的數量 / 所有被AI算法識別爲正常郵件的數量
Recall: 被AI算法識別並且確實是正常郵件的數量 / 實際所有正常郵件的數量
對於垃圾郵件的精確率:
Precision: 被AI算法識別並且確實是垃圾郵件的數量 / 所有被AI算法識別爲垃圾郵件的數量
Recall: 被AI算法識別並且確實是垃圾郵件的數量 / 實際所有垃圾郵件的數量
兩個關係互斥
F1-Score
如果我們使用F1-Score, 這個值越大,就意味着模型表現越好。 當我們計算完每一個類別的F1-Score之後,可以通過求它們的平均來獲得最終整體的F1-score。
特徵選擇技術:
這也是建模過程中最爲核心的部分。因爲不一定所有的特徵都有效,而且特徵裏包含的噪聲也會影響着模型的效果。
所以,最直接的方式就是:在建模前做一次特徵選擇,只保留有價值的特徵。
常見方法:
特徵多容易導致模型過擬合,有些特徵是噪聲
1)嘗試所有的組合:
複雜度是指數級組合,只適合特徵數少的情況
2)貪心算法:
stop-wise forward selection
這種方法必須要結合具體某一種模型一起使用。這也就說,如果我們使用的模型不一樣,則選出來的特徵也可能是不一樣的。比如一開始使用了邏輯迴歸,但之後改換成神經網絡,那這時候就需要重新進行特徵的選擇。
3) 基於L1正則的特徵選擇
會是模型複雜,梯度連續被破壞,實際工業界很少使用L1正則
L1正則特別適用於樣本量少,但特徵維度特別高的情況。一個經典的場景就是神經科學。如果把每個人大腦裏的神經元看作是特徵,那這個特徵維度非常之高。另外,我們也知道這個領域的樣本是非常昂貴的。
4)基於樹模型的特徵選擇(決策樹算法)
一般根節點重要性最高, 第二層次重要,以此類推
特徵排序,
5)相關性計算
Chi-square test
https://blog.csdn.net/CHCH998/article/details/81019815
Pearson Correlation
https://blog.csdn.net/chao2016/article/details/80917579
Feature Selection
https://scikit-learn.org/stable/modules/feature_selection.html
GridSearchCV and Bayesian Optimization
The stragety for hyperparameter
The GridSearchCV support parallelism
Heuristic Algorithm
Genetic Algorithm
http://www.sohu.com/a/228201142_609518
Bayesian Optimization
https://www.cs.princeton.edu/~rpa/