特徵工程——廣告系統

原文地址:廣告互聯網綜述之廣告點擊系統


如何從這麼多的特徵中選擇到能刻畫一個人對一個廣告的興趣的特徵,是數據挖掘工程師的一個大難題。還需要注意特徵的選擇方式。

1.特徵選擇與使用

做點擊率預估需要兩方面的數據,一方面是廣告的數據,另一方面是用戶的數據,現在所有的數據都有,那麼工作就是利用這兩方面的數據評估用戶點擊這個廣告的可能性(也就是概率)

用戶的特徵是比較多的,用戶的年齡,性別,地域,職業,學校,手機平臺等等。

廣告的特徵也很豐富,如廣告大小,廣告文本,廣告所屬行業,廣告圖片。還有反饋特徵,如每個廣告的實時ctr,廣告跟性別交叉的ctr。

1.1 選擇特徵

【想特徵】
機器學習算法最多會大談模型,對於特徵的討論很少涉及。真正的應用中,多數數據挖掘工程師的工作都是在想特徵,驗證特徵。
想特徵是一個腦力加體力的活,需要不少的領域的知識,更讓人鬱悶的是,工業界並沒有一整套想特徵的辦法,工業界有的只是驗證特徵的辦法。
總之,想特徵的這個事情基本沒多大譜,只能天南地北地想象,還要多瞭解各行各業的知識,以便想到更多的特徵,哪怕某個特徵跟人關係並不大,也得好好驗證一番。
想到了特徵,就要驗證和進行判斷
驗證特徵的辦法多,有直接觀察ctr,卡方檢驗,單特徵AUC等。

1.2 特徵的處理和使用

選擇得到特徵,怎麼用也是一個問題。上面已經選好了特徵,暫定有廣告的反饋ctr,用戶年齡,性別三個特徵。
一、離散化
反饋ctr是一個浮點數,直接作爲特徵是可以的,假設1號特徵就是反饋ctr。
對應年齡來說就不是這樣了,因爲年齡不是浮點數,而且年齡的20歲跟30歲這兩個數字20,30大小比較是沒有意義的,相加相減都是沒有意義的,在優化計算以及實際計算ctr是會涉及這兩個數字的大小比較的。如w.x,在w已經確定的情況下,x的某個特徵的值是20,或者30,w.x的值相差是很大的,哪怕用邏輯化公式再比較,得到的值也是比較大的,但是往往20歲的人跟30歲的人對同一個廣告的興趣差距不會那麼大。
解決這樣的情況的方法就是,每個年齡一個特徵,如總共只有20歲到29歲10種年齡,就把每個年齡做一個特徵,編號是從2到11(1號是廣告的反饋ctr),如果這個人是20歲,那麼在編號爲2的特徵上的值就是1,3到11的編號上就是0。這樣,年齡這一類特徵就有了10個特徵,而且這10個特徵就是互斥的,這樣的特徵稱爲離散化特徵。
基於跟上面同樣的道理,性別這個特徵也是一樣的,假如也做了上面的離散化操作,編號是12和13,12是男性,13是女性。
二、交叉
基於跟上面同樣的道理,性別這個特徵也是一樣的,假如也做了上面的離散化操作,編號是12和13,12是男性,13是女性。這樣的話,對於一個男性/體育廣告組合來說,編號12的特徵值爲1,男性/化妝品的組合的編號12的特徵值也是1。這樣也是不合理的。
怎麼做到合理呢?
以上面的性別的例子來說。
編號12的特徵值不取1,取值爲該廣告在男性用戶上面的點擊率,如對於男性/體育廣告的組合,編號12的特徵的值爲男性在體育廣告上面點擊率,這樣,編號爲12的特徵就變成了一個浮點數,這個浮點數的相加減是有意義的。
這樣的做法稱爲特徵的交叉,現在就是性別跟廣告的交叉得到的特徵值。還有很多其他的方式可以進行交叉,目前工業上的應用最多的就是廣告跟用戶的交叉特徵(編號爲1的那個特徵)、廣告跟性別的交叉特徵,廣告跟年齡的交叉特徵,廣告跟手機平臺的交叉特徵,廣告跟地域的交叉特徵。
三、連續特徵變離散特徵
點擊率在不同的區間,應該考慮是不同的權重係數,因爲這個由廣告點擊率組成的編號爲1的特徵與這個用戶對廣告的點擊的概率不是完全的正相關性,有可能值越大特徵越重要,也有可能值增長到了一定程度,重要性就下降了。
提出了對連續特徵進行離散化。他們認爲,特徵的連續值在不同的區間的重要性是不一樣的,所以希望連續特徵在不同的區間有不同的權重,
實現的方法就是對特徵進行劃分區間,每個區間爲一個新的特徵。
具體實現是使用等頻離散化方式:
1)對於上面的編號爲1的那個特徵,先統計歷史記錄中每條展示記錄中編號爲1的特徵的值的排序,假設有10000條展示記錄,每個展示記錄的這個特徵值是一個不相同的浮點數,對所有的展示記錄按照這個浮點數從低到高排序,取最低的1000個展示記錄的特徵值作爲一個區間,排名1001到2000的展示記錄的特徵值作爲一個區間,以此類推,總共劃分了10個區間。
2)對特徵編號重新編排,對於排名從1到1000的1000個展示記錄,他們的原來編號爲1的特徵轉變爲新的特徵編號1,值爲1;對於排名是從1001到2000的記錄,他們的原來編號爲1的特徵轉變爲新的特徵編號2,值爲1,以此類推,新的特徵編號就有了1到10總共10個。對於每個展示記錄來說,如果是排名1到1000的,新的特徵編號就只有編號1的值爲1,2到10的爲0,其他的展示記錄類似,這樣,廣告本身的ctr就佔用了10個特徵編號,就成爲離散化成了10個特徵。
等頻離散化需要對原有的每個特徵都做,也就是原來的編號爲1到13的編號,會離散化成很多的編號,如果每個特徵離散化成10個,則最終會有130個特徵,訓練的結果w就會是一個130維的向量,分別對應着130個特徵的權重

1.3 特徵的過濾與修正

很多特徵其實是反饋的特徵,如廣告反饋ctr,廣告與性別交叉特徵,這些特徵本來可以通過歷史展示日誌的統計得到。但有些廣告本來展示量很少,在男性用戶上展示就更少,這時要計算廣告與性別交叉的ctr是很不準確的,需要對這個特徵進行修正。具體的修正方法可以參考博文《廣告點擊率的貝葉斯平滑》。
經過修正後的ctr再做特徵,實際線上效果有了比較大的提升。

發佈了27 篇原創文章 · 獲贊 13 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章