Key Point1:
能夠使用貝葉斯做推薦排序的假設有兩個:
1.?用戶U對商品和
的偏好和其他用戶無關(即用戶間的獨立性)
2. 用戶U對商品和
的偏好和該用戶喜歡的其他商品無關(即商品間的獨立性)
這兩種關系滿足完全性、反對稱性和傳遞性:
完整性:
反對稱性:
傳遞性:
Key Point2:
類似LFM(隱語義模型),BPR將用戶U和物品I的排序矩陣X分解成用戶矩陣和物品矩陣
,滿足
,k為矩陣
的秩
BPR針對每個用戶感興趣的商品進行排序,因此對于任意一個用戶u和商品i,期望如下:
BPR最終目標:
找到最合適的W和H,使得最接近
,看似類似funkSVD,但推導過程不盡相同
求解過程
優化目標:,根據貝葉斯公式有:
;
根據用戶物品排序和其他用戶無關的假設,有:
很顯然問題轉化成了分別求解和數據集無關的以及 和數據集有關的
的求解過程:
根據用戶對i和j喜好的獨立性,將后者轉化成和樣本(u,i,j)有關的公式:
其中,根據完整性和反對稱性的性質,上式可以化簡成:
①,
其中,,
為sigmoid函數,一是為了方便計算,二是sigmoid函數完美的滿足了完整性、反對稱性和傳遞性
至此,我們還需要知道的是如何求得,這個式子需要滿足
時
;
時
,最直觀的方式就是表示成下式:
,
是
(u,i)和
(u,j)的值,將此式帶入①中,得到:
的求解過程:
也使用貝葉斯定理的假設:即服從正態分布:
還是根據①式,顯然需要取對數后再計算,而對于正態分布來說,其對數和成正比:
綜合的求解過程:
用梯度上升法求解,對上式求相對于的偏導:
,其中:
而轉化為具體的參數就是
(這里對理解很關鍵,也是不同于LFM的地方)!
總結:
????BPR是基于矩陣分解的一種排序算法,但是和funkSVD之類的算法比,它不是做全局的評分優化,而是針對每一個用戶自己的商品喜好分貝做排序優化。因此在迭代優化的思路上完全不同。同時對于訓練集的要求也是不一樣的,funkSVD只需要用戶物品對應評分數據二元組做訓練集,而BPR則需要用戶對商品的喜好排序三元組做訓練集。