推薦系統之 BPR 算法及 Librec的BPR算法實現【2】

先前的是:推薦系統之 BPR 算法及 Librec的BPR算法實現【1】html

 

LibREC源碼裏的BPR算法的輸入比較是:「(購買+點擊)v.s.沒出現的」,先前有修改過一次是讓輸入比較對爲:「購買v.s. 點擊」。
如今的狀況是:以上兩者結合起來,即比較對是:「(購買+點擊)v.s.沒出現的」+「購買v.s. 點擊」的比較對。
 
就好比,購買了1,點擊了2,而未出現的設爲3和4(隱式 item)。
原先代碼默認的比較對比較方式(正樣本>負樣本)是:1>3;1>4;2>3;2>4.;
 
如今還要加上一個 1>2 的比較對。
 
所以最終的比較對是:1>2 ;1>3;1>4;2>3;2>4.
 
LibREC社區的不二前輩的建議是:
寫代 碼:正樣本只採樣1-2的物品。
而後採樣到1的時候,採樣2-4的物品做爲負樣本。
採樣到2的時候,採樣3-4的物品做爲負樣本。
 
 
目前,BRP訓練完的數據是沒有緩存的。(——能夠等下個版本。我記得@王宇峯 在實現模型的序列化和反序列化。1.3就儘快遷移到2.0吧。或者亦能夠本身實現一下,用Json或者Kyro保存。參考一下相關文章。
 
 
【個人最終作法】
正樣本 i 是已經肯定能夠採樣出來。即爲購買+點擊的item
負樣本 j 來源於兩部分,一個是點擊無購買item,一部分是隱式item(隨機)。由於兩個集合沒辦法放一塊兒,故採用隨機數的方法,若是隨機數等於1,採樣後者,若是隨機數等於0,採樣前者。
相關文章
相關標籤/搜索