很快,寒假就要過去了,在這15天的時間裏,小編一直在做一件事:開發一個支持多種隱式反饋的BPR變形算法框架。
終於,功夫不負有心人。在經過了每天晚上的編寫,近3400行代碼的BPRPlus框架初步形成。github地址:https://github.com/liuchenailq/BPRPlus.
BPR算法簡介
推薦系統有兩大問題:評分預測和排序優化。評分預測一般使用顯示數據集,如評分數據,目標是預測缺失的評分。排序優化一般使用隱式數據集,如用戶行爲(購買、點擊、分享)記錄,目標給用戶推薦一個排序的物品集。
BPR( Bayesian Personalized Ranking)算法是解決排序優化問題經典算法,它假設用戶有過行爲的物品應該排在沒有行爲的物品之前,所以它使用用戶行爲數據來訓練模型。但它只使用一種行爲數據,比如你的目標是提高購買率,那麼BPR只用購買行爲數據來訓練算法。
爲了充分利用隱式數據(點擊、瀏覽等行爲數據),基於多種隱式反饋的BPR變形算法被相繼提出。實驗表明,充分利用輔助隱式反饋確實能提升BPR算法的效果。
本系統BPRPlus就是基於此背景下產生的,目標就是爲基於多種隱式反饋的各種BPR變形算法提供快速實現。
到目前,系統已經完成了主反饋數據讀取模塊、輔助反饋數據讀取模塊、數據集劃分模塊、推薦算法模塊、評價模塊。
BPRPlus主要特性如下:
1. 基於配置文件:通過配置文件控制系統的所有參數
2. 並行計算:系統內部應用並行計算解決性能問題
3.支持多種隱式反饋:支持多種隱式反饋數據的讀取
4. 結果可視化:訓練過程的loss可視化、評價指標可視化
接下來主要做如下工作:
-
增加其他評價指標
-
增加其他變形BPR算法
-
考慮做網頁版,方便使用