一文讀懂Bayesian Personalized Ranking演算法
【51CTO.com原創稿件】就像哲學有不同的流派一樣,推薦系統的演算法設計思路也可以分為不同的流派。排序學習恰恰就是其中的一種流派。熟悉 RecSys 等推薦系統國際會議的從業者可能會發現,自 2010 年以後的若干年內,陸續出現了許多基於排序學習的推薦系統演算法。從 Bayesian Personalized Ranking (BPR) 到後續的 Collaborative Less is More Filtering (CLiMF) 以及 GapFM 和 XCLiMF 等演算法,在推薦系統領域出現了百家爭鳴,百花齊放的局面。
排序學習的設計思想與協同過濾和矩陣分解以及隨後出現的深度學習的主要不同在於排序學習把推薦系統看成是一個排序的問題。也就是如何給使用者推薦商品的問題變成了如何在使用者有可能喜歡的物品集合中對物品排序的問題。這個過程中演算法不糾結於對於使用者喜歡的物品的評分進行準確預測,而是把物品之間的順序關係作為優化的目標。
排序學習的英文名稱是 Learning to Rank ,根據優化目標的不同,共分為三類:基於點的排序學習 ( Point-wise Learning to Rank ) ,基於關係對的排序學習 ( Pair-wise Learning to Rank ),以及基於列表的排序學習( List-wise Learning to Rank )。基於點的排序學習本質上就是傳統的分類演算法,例如 SVM ,邏輯迴歸等都屬於基於點的排序學習,這類排序學習通常被認為是排序學習的退化形式;基於關係對的排序學習強調的是物品集合中物品兩兩之間的關係,本章將要展開討論的 Bayesian Personalized Ranking 演算法就屬於這一類演算法;基於列表的排序學習強調的是物品集合中物品列表的整體排序關係,後續章節中將要展開討論的 Collaborative Less is More Filtering 演算法屬於這個範疇,這類演算法將物品集合中物品評分的整體排序關係作為最終的優化目標。
Bayesian Personalized Ranking 的整體思路如下:假設我們現在有 N 個視訊,每個視訊有兩種使用者行為:被使用者點選,沒有被使用者點選。現在設定使用者給物品的評分如下:被使用者點選過的視訊得分 +1 ,從沒有被使用者點選過的視訊中進行取樣得到一部分視訊,這部分視訊被認為是使用者不喜歡的視訊,得分 -1 。
Bayesian Personalized Ranking 首先假設使用者對物品的評分背後的模型是某個常見模型,比如矩陣分解模型,也就是使用者對物品的評分 R = U’ * V ,其中 U 是使用者向量,而 V 是物品向量。演算法假定所有得分 +1 的物品和所有得分 -1 的物品,如果用評分矩陣 R 重新對物品進行打分,原本得分 +1 的物品的新得分將高於原本得分 -1 的物品的新得分。
演算法的本質訴求是在最大可能的滿足原有的 +1 物品得分高於 -1 物品得分的排序對成立的情況下,倒推出 R 評分分解後的 U 和 V 向量。最後通過計算 U和 V 的乘積,得到使用者對物品的完整評分矩陣,完成整個演算法過程。下面我們詳細的展開演算法進行討論:
首先定義有序關係,如果使用者喜歡物品 I1 而不喜歡物品 I2 ,則存在有序關係 I1 >u I2 。定義評分矩陣為引數 theta, 建立需要被優化的貝葉斯模型 。用 u 表示有序對 ( I1 , I2 ),建立最大似然函式求解公式如下:
,其中
,而
是 sigmoid 函式
,
。這裡定義的貝葉斯模型是一個一般性的框架,具體的演算法模型實現由
的計算方式而定。
Bayesian Personalized Ranking 優化的指標是 AUC 函式。AUC 函式在 Bayesian Personalized Ranking 問題中被歸約為以下形式:
其中
採用隨機梯度下降求解引數 得到:
,
可以看到 就是使用者 u 對物品 i 和物品 j 的評分之差。我們已經得到了隨機梯度下降過程中的引數計算方法,在實際應用中只需要將
用具體的模型替代即可,比如協同過濾,或者矩陣分解。我們給他們分別用代號 BPR-CF 和 BPR-MF 等表示。
現在假定 是由矩陣分解模型計算得到的。也就是 = U’V = ,帶入隨機梯度下降公式計算可得到:
類似的,我們可以得到基於協同過濾的 BPR 的梯度下降公式。
BPR 因為是計算兩兩有序對之間的關係,所以在實際的計算過程中涉及到的資料量可能非常龐大。另外,在最後進行評分預測時需要進行龐大的矩陣運算。通常在實際的計算過程中採取了抽樣等方法來降低計算量,而不是採用全量資料進行計算。
BPR 是推薦系統中基於對的排序學習中的比較重要的一類方法,廣泛應用在推薦系統的各種實踐之中。
汪昊, 區塊鏈公司科學家,美國猶他大學本科/碩士,對外經貿大學在職 MBA,在百度、新浪、網易、豆瓣等公司有超過8年的技術研發經驗,曾擔任恆昌利通大資料部總監。擅長機器學習、資料探勘、計算機圖形學和科學視覺化等技術。在 TVCG 和 ASONAM 等國際會議和期刊發表論文 10 篇。本科畢業論文獲國際會議 IEEE SMI 2008 最佳論文獎。
【51CTO原創稿件,合作站點轉載請註明原文作者和出處為51CTO.com】
【責任編輯:龐桂玉 TEL:(010)68476606】