推薦類的演算法
① 推薦系統中的BPR演算法
一、什麼是BPR演算法?
BPR演算法,全稱為貝葉斯個性化排序(Bayesian Personalized Ranking),是一種常用的推薦系統演算法。它主要利用用戶的隱式反饋,如點擊、收藏等,通過對問題進行貝葉斯分析,得到最大後驗概率來對物品進行排序,從而產生推薦。
二、BPR演算法的基本原理
1.符號定義:
U:用戶集
I:物品集
S:隱式反饋集
u:用戶u的偏好
此關系滿足完整性、反對稱性和傳遞性約束
2.訓練數據的預處理:
首先對隱式反饋矩陣進行預處理,得到訓練數據集
3.兩個基本假設:
BPR演算法的基本思想是利用最大化後驗概率來確定所有item的正確個性化排序
4.BPR的推導:
根據貝葉斯公式得[公式]
因為BPR假設用戶的排序和其他用戶無關,那麼對於任意一個用戶u來說,P(>u)對所有的物品都為一個常數,所以最大化,等價於最大化
這個最大化目標可以分為兩部分,左邊的部分與數據集有關,右邊部分P(θ)與數據集無關
我們先最大化左邊的部分[公式]
根據完整性和反對稱性約束,上式可以簡化成
而對於
這個概率,可以使用下面這個式子來代替:
其中,
事實上[公式] 也可以取其他滿足完整性、反對稱性和傳遞性三個約束條件的其他函數,BPR的最先提出者使用sigmod函數是為了方便接下來的計算
這兒的
同樣可以是任何關於模型參數向量θ的實值函數,前提是該函數能映射出用戶u與物品i和j之間的關系
於是第一部分的優化目標最終變成了
接下來我們再對第二部分P(θ)進行最大化
由於θ的分布是未知的,為了方便我們的計算,不妨假設其服從均值為0,協方差矩陣為的正態分布
於是最大化變成了求解下式的最大值
三、一個BPR演算法的求解實例
在上一節的BPR演算法的推導中,我們假設θ為某個模型的參數向量,本節我們討論當這個模型為矩陣分解模型時,BPR演算法的求解方法
此時我們的預測目標是得到一個預測排序矩陣
這個矩陣可以被分解為
,其中W為|U|×k維矩陣,H為|I|×k維矩陣,k遠小於|U|和|I|
由於BPR是基於用戶維度的,所以對於任意一個用戶u,對應的任意一個物品i我們期望有:
[公式] 表示物品i對於用戶u的排序優先度
此時我們再令
可得到最終需要求解的最大對數後驗估計函數
這個式子對θ求偏導後,可以用梯度上升法或者牛頓法等方法來優化求解模型參數
② 個性化推薦演算法有哪些
個性化推薦演算法主要有以下幾種:
1. 協同過濾演算法
協同過濾是推薦系統中最常見的一類演算法。它基於用戶的行為數據,如購買記錄、瀏覽記錄等,找出具有相似興趣的用戶群體,然後將相似用戶群體喜歡的物品推薦給當前用戶。這種演算法可以分為基於用戶的協同過濾和基於物品的協同過濾。
2. 內容推薦演算法
內容推薦主要基於物品的內容特徵進行推薦。它通過分析物品的特徵,如文本、圖片、音頻等,提取物品的內容信息,然後計算物品之間的相似度,將相似的物品推薦給用戶。這種演算法要求物品有明確的特徵描述。
3. 深度學習推薦演算法
深度學習在推薦系統中也發揮了重要作用。利用深度學習的模型,如神經網路,可以處理大量的用戶行為數據,並提取出深層次的用戶興趣特徵。常見的深度學習推薦演算法包括基於神經網路的協同過濾、基於序列的推薦等。
4. 混合式推薦演算法
混合式推薦演算法是結合多種推薦技術的一種推薦方法。它將不同的推薦演算法進行組合,如結合協同過濾和深度學習等方法,以提高推薦的准確性。混合式推薦演算法可以根據不同的場景和需求進行靈活調整。
以上便是主要的個性化推薦演算法。隨著技術的不斷發展,還會有更多的新演算法涌現,以更好地滿足用戶的個性化需求。