讓產品更智能:如何為你的產品選擇適合的推薦算法
推薦算法是指利用用戶的一些行為,通過一些數學算法,推測出用戶可能喜歡的東西。如何為產品選擇其合適的推薦算法呢?
一、常見推薦機制/算法
1. 基礎推薦機制
協同過濾的風險:
盡管協同過濾技術在個性化推薦系統中獲得了極大的成功,但隨著產品結構、內容的復雜度和用戶人數的不斷增加,協同過濾技術的一些缺點逐漸暴露出來。主要有以下三點:
- 稀疏性(sparsity):在許多推薦系統中,每個用戶涉及的信息量相當有限,在一些大的系統如亞馬遜網站中,用戶最多不過就評估了上百萬本書的1%~2%。造成評估矩陣數據相當稀疏,難以找到相似用戶集,導致推薦效果大大降低。
- 擴展性(scalability):“最近鄰居”算法的計算量隨著用戶和項的增加而大大增加,對于上百萬之巨的數目,通常的算法將遭遇到嚴重的擴展性問題。
- 精確性(accuracy):通過尋找相近用戶來產生推薦集,在數量較大的情況下,推薦的可信度隨之降低。
2. 經典算法
混合推薦算法:
沒有哪種推薦技術敢說自己沒有弊端, 往往一個好的推薦系統也不是只用一種推薦技術就解決問題, 往往都是相互結合來彌補彼此的不足, 常見的組合方式如下
- 混合推薦技術: 同時使用多種推薦技術再加權取最優;
- 切換推薦技術: 根據用戶場景使用不同的推薦技術;
- 特征組合推薦技術: 將一種推薦技術的輸出作為特征放到另一個推薦技術當中;
- 層疊推薦技術: 一個推薦模塊過程中從另一個推薦模塊中獲取結果用于自己產出結果
綜上所有的推薦策略和算法,大致可以分為以下常見的推薦策略:
- 基于內容的推薦;
- 協同過濾推薦;
- 混合推薦;
- 流行度推薦;
- 其他更高級的。
二、重要事項
1. 上線前評估
離線評估是指在發布之前,需要去檢驗典型的bad case 是否解決。是否達成一開始的目標,如果沒有,則需要繼續調整對應算法,直到能夠明顯解決問題。
灰度上線則也是穩妥的措施。一開始推薦系統一定是充滿了各種問題,所以為了解決這個問題,剛開始上線一定不能直接全量上線。正確的做法是,灰度上線一段時間期間,快速的根據用戶反饋迭代算法,再考慮全量上線。
用戶反饋的方案包括但不限于:用戶問卷,負反饋操作入口。
2. ABtest
推薦和搜索一樣,本身極大依賴參數的配置。而這些參數的配置并沒有通用的法則,同時也依賴各個平臺自身具體的情況,只能在了解其原理的基礎上,不斷迭代摸索。在算法迭代的過程中,能夠測試其效果是算法迭代的核心。只有能同時在線上部署多套搜索算法,并且監控其效果,推薦的迭代和改進才能展開。而這一切的基礎,正是一個看不見的功能:AB test機制。
總結
- 推薦算法是需要不斷完善的,如果開始沒有數據必定會結果不精確;需要一個可以不斷回收數據、驗證算法的推薦機制。
- 一款產品如果希望基于同好社交來做音樂推薦,則類似基于用戶的協同過濾,需要通過指標找到相同的用戶。當前是直接給相同的用戶推薦某一個推薦規則,而下一步則是通過算法精準推薦內容。
- tip:注意降低用戶的嘗新成本。首次推薦的內容做到準確比較難,需要從視覺、交互體驗、反饋結果等多角度說服用戶推薦是有效的,推薦算法的首次展示變得很重要,避免推薦黑箱。
- 風險:協同過濾進行用戶分群的指標否可以沿用,但需要注意冷啟動階段的推薦算法是否可以具備可拓展性,即從研發成本角度考慮是否要做一個可持續優化的架構,而不是當用戶數據涌入后推翻之前的全部假設。
從“音樂推薦的價值”角度考慮,如何設計推薦算法指標?
用戶角度:
- 聽到當下需要的歌(指標-與需求場景是否匹配)
- 聽到喜歡的歌(指標-是否是喜歡的歌)
- 產生新鮮感和驚喜(指標-是否產生新鮮感和驚喜)
產品角度:
- 提升粘性,延長使用時間(監測粘性-粘性指標-影響粘性的指標)
- 降低流失,防止用戶在版權缺失的情況下轉到連接藍牙模式(監測流失-流失指標-防止流失&流失召回的指標)
- 成為傳播點,讓用戶在VUI場景下仍然能保證較好的聽歌體驗
參考文獻
- https://www.cnblogs.com/xuanku/p/recsys.html 常見推薦算法科普
- http://www.aharts.cn/pd/683874.html 推薦策略設計的Notes
- http://www.aharts.cn/pd/267484.html 懂你的推薦算法,推薦邏輯是怎樣的?
- https://blog.csdn.net/u010670689/article/details/71513133 5類系統推薦算法,非常好使,非常全
- http://www.infoq.com/cn/articles/recommendation-algorithm-overview-part01 推薦算法綜述
- https://blog.csdn.net/myboyliu2007/article/details/19212381?utm_source=tuicool Spark0.9分布式運行MLlib的協同過濾
- https://blog.csdn.net/fishineye/article/details/69502068 用Python開始機器學習(9:推薦算法之推薦矩陣
- https://www.cnblogs.com/silencestorm/p/8512504.html 關于topN問題的幾種解決方案
- https://blog.csdn.net/whaoxysh/article/details/19038453 Slope one—個性化推薦中最簡潔的協同過濾算法
- http://www.cppblog.com/AutomateProgram/archive/2010/07/19/120790.html 協同推薦算法實踐之Slope One的介紹
- https://blog.csdn.net/s1162276945/article/details/77531123 隱式/顯式反饋
- http://www.aharts.cn/pd/618662.html 關于個性化推薦算法及應用場景的幾點思考
- https://blog.csdn.net/w5688414/article/details/78652159?locationNum=7&fps=1 Deep Learning based Recommender System: A Survey and New Perspectives (3)
- Yi Zheng, Cailiang Liu, Neural Autoregressive Collaborative Filtering for Implicit Feedback, 2016
本文由 @鋼镚兒yu 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
評論
- 目前還沒評論,等你發揮!