實踐中可能遇到的問題
https://www.zhihu.com/question/28247353
鏈接:https://www.zhihu.com/question/28247353/answer/363741506
- i2i/simirank等相似計算算法中的哈利波特問題,相似性計算在推薦系統的召回起到非常重要的作用,而熱門物品和用戶天然有優勢。因此,處理方法基本上都是憑經驗,會出現各種magic number的參數。
- svd/svd++等算法,在各種比賽中大放異彩,但是據我所知,各大互聯網公司中基本沒有用它的。
- i2i及它的各種變種真是太好用了,大部分公司的業務量,從ROI來看,其實沒有必要再做什么優化了。
- 推薦的召回策略多優於少,但系統的計算rt是個問題,沒有好的系統架構,也沒有什么優化空間。
- i2i等類似計算算法,實際業務中容易跑掛,比如用spark就容易oom,很容易發生傾斜,處理起來又有很多trick和dirty job。
- 推薦系統不只有召回,召回后的ranking起到非常大的作用,這個和廣告的點擊率預估有點像。
- 非常多的業務沒有辦法向頭條/facebook之類的有穩定的用戶留存指標,而留存是推薦系統非常重要目標,因此需要找各種折中的指標去知道abtest。
- 訓練樣本穿越/泄露問題,即在訓練的特征中包含了測試集的樣本的信息,這個是初期非常容易犯的錯誤,在后期有時也會隱秘的發生。
- 大部分推薦系統的訓練數據需要在離線條件下去拼接,其中用戶的行為狀態和時間有關,拼接非常容易出問題,因為系統當時的狀態會有各種狀況(延時、數據不一致)等,導致訓練和實際在線的數據不一致,建議把訓練需要的日志在實際請求中直接拼接好打印落盤。
- 最后,算法的作用有點像前輩們講的:短期被人高估,長期被人低估。按目前國內業務方對算法有了解的特別少,算法對生態的長短期影響,只能靠算法負責人去判斷,因此,就算你只是個打工的,請有一顆做老板的心。
鏈接:https://www.zhihu.com/question/28247353/answer/678232505
學習率不宜過小,mini_batch_size不宜過大
我們剛開始做的時候,廣告推薦系統模型的網絡結構直接從新聞推薦系統拷貝過來,只是將特征換掉,網絡層級關系和一些參數不變,比如學習率和mini_batch_size都跟新聞推薦系統一致,然而用廣告數據訓練的ctr模型做預測時輸出的值是有問題的,開始以為是特征線上線下一致性的問題,仔細對比線上線下抽取的特征,發現是沒有問題的,后來跟新聞推薦的小伙伴交流才開始懷疑是模型網絡參數的設置有問題,因為新聞的數據都非常大,一分鍾的請求量是廣告的數倍,剛開始的時候,我們接的直客廣告很少,能夠用的數據也少,模型在學習率較小和mini_batch_size太大的時候都無法學充分,這就導致模型誤差可能只在某個局部取得極小值。最終我們修改了這兩個參數后模型預測就正常了。
廣告預估ctr最高的結果不一定會被用戶看到
新聞推薦系統中,推薦引擎會對召回的新聞(大概是300篇候選集)給個ctr預估值,然后將這些新聞按照ctr從高到低排序,ctr值排在最前面的新聞一般都會進入用戶的手機屏幕被用戶刷到。但是在廣告推薦系統中,ctr預估結果高的被用戶看到的概率明顯比新聞推薦系統低,因為廣告系統是個三方博弈的過程,也就是廣告主、平台、用戶之間的一個平衡,廣告主希望自己的廣告有更多的曝光機會並且出價還低,平台希望選出ctr和ecpm都高的廣告,這樣廣告主滿意,自己掙的錢也多,用戶至少是不希望出現自己討厭的廣告,有多大興趣點擊就不一定了。這樣對比就知道,往往廣告平台推薦系統給出的ctr很高、離線和實時的auc很高,但是收入可能沒怎么增長,所以廣告的ctr優化比新聞推薦系統ctr優化要更難。
喜歡新聞的人不一定對類似的廣告也感興趣
這個比較好理解,經常刷新聞看某個頻道的人不一定就對類似的廣告感興趣。剛開始的時候我們把用戶看新聞得到的用戶畫像直接用在廣告ctr預估模型里面,通過計算模型特征的sensitivity,結果發現很多用戶新聞特征對廣告ctr預估模型的貢獻並不大。所以在廣告算法里面,做look like很重要,也就是通過一類人找到另一類相似的人,比如通過分析一批種子用戶的財富水平得到其他所有用戶的財富水平,這對於貸款類、珠寶類廣告主就非常有用,因為一般窮人更願意貸款,有錢人才消費的起珠寶。
cvr模型預估的數據延遲上報問題
廣告推薦系統里面有很多不同類型的廣告,比如cpc、cpm、cpi、cps等等。除了需要預估ctr模型,我們通常還會預估cvr模型,cvr模型可以簡單理解為點擊到安裝的預估,主要是cpi類型的廣告,這類廣告通常需要給出一個install/click的預估值。然后問題就來了,很多時候用戶click信息上報的比較快,但是install信息由於存在廣告收入歸因的問題,往往可能在一天甚至幾天后才收到這個數據,這對我們模型訓練有很大的干擾,因為線上的cvr預估往往都是近實時的,如果一個正例來的很晚,模型准確率自然就低。
推薦系統的難點
https://www.jianshu.com/p/6a5e796499e8
稀疏性問題:實際場景中,用戶和物品的交互信息往往是非常稀疏的。如電影推薦中,電影往往成千上萬部,但是用戶打過分的電影往往只有幾十部。使用如此少的觀測數據來預測大量的未知信息,會極大增加過擬合的風險。
冷啟動問題:對於新加入的用戶或者物品,其沒有對應的歷史信息,因此難以准確的進行建模和推薦。
社交網絡:一個用戶對某個物品感興趣,他的朋友可能也會對該物品感興趣
用戶/物品屬性:擁有同種屬性的用戶可能會對同一類物品感興趣
圖像/視頻/音頻/文本等多媒體信息:例如商品圖片、電影預告片、音樂、新聞標題等
上下文信息:用戶-物品交互的時間、地點、當前會話信息等。
