商品推薦演算法優化過程中的思考與總結(持續更新)

2021-10-16 09:47:37 字數 2295 閱讀 8117

記錄一下相關思考。出於隱私保護需要,文中不會涉及到具體資訊。

每次實驗後記得把改動記錄下來,便於之後覆盤。

感受到了工業界和學術界做實驗的乙個不同就是,做學術拿資料集跑一下,只要出了結果效果好就可以開始寫**了。工作中在業務線上面驗證乙個模型是否有用,往往需要經歷乙個時間段才有比較準確的結論,因為會受到產品週期,活動投放等因素的影響,需要乙個時間段來平滑這些因素的影響。此外科學的a/b test以及對比方式也是得到客觀結論的保證,比如理解相對指標和絕對指標之間的差異,如何通過科學的分桶來消除其他業務,活動投放,消費層次分布不均對效果驗證的影響。然後就是需要形成一些資料分析的直覺去規避直線思維中的一些陷阱,比如我在資料分析一欄提到的【辛普森悖論】就是乙個很好的例子。

1. 足夠的流量是得到正確結論的前提,如何判斷流量是否足夠?可以設定兩個一模一樣的分組空跑一段時間,觀察這兩個分組的指標差異,在合理區間內則可以在這個基礎上進行試驗。如果差異較大則可以認為流量分配不夠,此時需要通過統計學手段比如顯著性校驗來得到相對可靠的結論。

2. 受客觀因素限制,流量限制比較大無法保證不同分組使用者分布保持一致,然後再加上平時大大小小的活動會導致arpu值不斷波動,如何評估模型效果?這種情況可以考慮利用相對指標來進行評估。舉個例子,設時間區間 [x,y(模型上線),z],那麼就用(y-z時間段arpu值)/ (x-y時間段arpu值)代表相對提公升,不同分組之間對比該指標在一定程度上消除使用者分布不一致和活動導致的偏差。

3. 部分場景中使用者反饋具有一定延遲或者受到其他因素影響,改動乙個模型後效果不會馬上顯示出來,所以不要因為上線1,2天沒有效果就替換掉(區別於寫**跑實驗),留多一點時間評估會更加科學。

體會比較深的一點,就是需要弄清楚模型的特性以及適用場景。和一些朋友討論過,像現在比較流行的基於向量語義的深度模型比如dssm,deepfm,din等線下效果通常會比樹模型要好,但是遊戲推薦業務中線上效果不一定會好。個人感覺首先是遊戲場景的資料複雜度有限,gdbt系列分類器在連續數值特徵上已經可以達到較好的效能,深度模型則更適用於稀疏離散特徵較多的場景,另外遊戲道具數量有限,不像廣告推薦,商品推薦有海量侯選池,向量檢索的作用空間有限,不過在某些海量遊戲道具檢索的業務中深度模型也確實取得了不錯的效果。

一般來說,商品推薦演算法如果推送的是消費者喜歡的,能拉動消費者消費那麼就被認為是有效的,這種情況下,優化指標設定為精確率,召回率,auc,top-n命中,消費額等指標就和業務指標關聯比較大,優化起來也是比較直接的乙個導向。但是在實際業務中可能面臨著不同場景之間的相互影響,常見的有消費轉移,消費透支等問題。舉個栗子,消費者會在場景a和場景b購物,而你負責場景a這一塊的優化,消費者在a場景消費了很多,但也可能會影響到在場景b的消費意願,但是業務指標是需要提公升整體消費額,所以你a場景推薦做的再好也不意味著業務指標的直接提公升。這時候要優化的目標不僅包括a場景的各項指標,同時也得考慮對其他場景的影響,對於這種問題就比較靈活了,最直接的思路就是自行設計乙個和業務指標更加相關的優化指標,或者是結合業務經驗去對推薦結果進行一些後處理,目前正在調研和嘗試一些系統化的解決方案。

1. 注意不同的場景中使用者付費習慣差異性。比如生活用品購買場景,使用者的購買行為通常基於比較明確的購物意願,而遊戲場景中,使用者購買行為隨機性更大,受情緒因素影響也更大。這就決定了推不推之間的巨大差異,比如使用者缺少生活用品時即使你不推送自己也會去主動搜尋購買,但是如果使用者在遊戲中產生消費情緒點時沒有及時捕捉到並推送,那麼使用者可能就不會發生消費行為。

2. 要優化的指標是整體營收,但是手上的業務流量有限(比如10%),如何最大化這10%流量的作用乃至撬動更大的收益? 大致思路是 1.首先優化手上的業務,這一步可能會存在付費轉移和付費透支的可能性。2.去掉對整體營收有影響的推薦(減小步驟1中付費轉移和付費透支的負面影響)。3.探索手上業務可以帶動其他業務營收的可能性(比如使用者購買a業務中的商品後還會購買b業務中的商品,或者是增加了留存率等等)。其中步驟1,2的核心思路就是創造增量,理想情況下業務指標的增長不損害到現有其他業務(實際做起來需要一步步去實驗),補充乙個和「」創造增量「思路比較接近的模型:《uplift model》。

3. 使用者心態&長期收益。拿遊戲場景中的道具推薦舉例,想短期內立竿見影地提高轉化率,代幣**,最簡單的做法就是讓使用者感受到優惠(打折,返利等),但是如果缺乏合適的包裝機制可能會導致**風險,還可能會導致使用者對於物品的價值定位下降乃至影響到對其他物品的相對價值定位,此外還有可能改變使用者的付費習慣(比如活動期大幅度讓利可能會減少使用者平時的消費行為,這樣是否合適需要具體場景具體分析),整體上來看可能對總營收產生負面影響。

4. 做好乙個流量入口其實和現實世界中打造乙個品牌有共同之處,優化的時候入口收益和使用者體驗都需要考慮在內,業界部分案例只關注挖消費坑而忽視了使用者的體驗,在短時間內可能會有較大收益,但是從長遠來看如果入口口碑崩壞其實損失更大。

持續更新ing

學習過程中的快思考與慢思考

書中卡尼曼教授把我們的認知系統劃分為兩個部分 系統1 反應快速 依賴直覺,幾乎不需要我們的努力就能完成任務 而 系統2 則懶惰,工作起來就需要我們集中注意力,但它也理性 精確。我們每天都在兩個系統間切換。系統1雖然不精確,但是卻時刻待命,總能完成任務 儘管質量不敢恭維 系統2卻常常偷懶,精力有限,除...

蛻變過程中的思考

創造力 批判能力 第一次創造出來的想法,多半是不成熟的,欠考慮,如果貿然的拿去和別人講,會受到諸多的挑戰,導致想法夭折,自信心受挫。其實你完全可以做的更好,那就是對第一次的創造充分的打磨,主要方式?自己owner的系統,可能有多塊組成,作為owner要對風險情況全權負責,因為你是owner,出現風險...

mysql學習過程中推薦的書籍

軟體開發者編寫 最終都是要處理資料,因此資料庫是必備技能。悲劇的是,學校裡與此最相關的資料庫原理課,對初學者的體驗卻非常不好。相信很多同學都有這樣的痛苦經歷 一上來就一通資料庫歷史,羅列一大堆從來沒見過以後也不會見到的各種古老資料庫 然後是數學公式密集的關係模型 關係代數,一連串不知道什麼用卻很難懂...