一文讀懂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 )?;邳c的排序學習本質上就是傳統的分類算法,例如 SVM ,邏輯回歸等都屬于基于點的排序學習,這類排序學習通常被認為是排序學習的退化形式;基于關系對的排序學習強調的是物品集合中物品兩兩之間的關系,本章將要展開討論的 Bayesian Personalized Ranking 算法就屬于這一類算法;基于列表的排序學習強調的是物品集合中物品列表的整體排序關系,后續章節中將要展開討論的 Collaborative Less is More Filtering 算法屬于這個范疇,這類算法將物品集合中物品評分的整體排序關系作為最終的優化目標。
Bayesian Personalized Ranking 的整體思路如下:假設我們現在有 N 個視頻,每個視頻有兩種用戶行為:被用戶點擊,沒有被用戶點擊?,F在設定用戶給物品的評分如下:被用戶點擊過的視頻得分 +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】