matlab中服从高斯分布的矩阵_推荐基础算法之矩阵分解PMF
推薦基礎算法之矩陣分解PMF
大多數存在的協同過濾算法不能處理以下兩種情況:
- 1. 不能處理大規模數據
- 2.不能處理評分非常少的用戶數據
概率矩陣分解模型可以解決大規模、稀疏且不平衡的數據。這篇文章主要介紹兩個主要的概率矩陣模型PMF和CPMF。
Probabilistic Matrix Factorization
概率矩陣分解是在Regularized Matrix Factorization基礎上進一步進行的優化。PMF中主要基于兩點假設:
- 1.觀測噪聲(觀測評分矩陣和近似評分矩陣之差)服從高斯噪聲的正態分布
- 2.用戶潛在特征矩陣P和物品潛在特征矩陣Q服從一個均值為0的高斯先驗
下面是PMF概率圖模型,注意到我們這里用
表示圖中的,用表示圖中的.PMF1. 由第一條假設我們可知,觀測評分矩陣R與近似評分矩陣
服從零均值的高斯分布,即有:我們將上式通過平移得:
因此觀測到的評分矩陣條件概率為:
其中,N是用戶數,M為物品數,
是指示函數,表示如果用戶u對物品i有過評分,則其值為1,否則為0。2. 由第二條假設我們可知,用戶潛在特征向量P和物品潛在特征向量Q也服從正態分布,因此有下式:
其中
是一個K維的對角矩陣。3. 由貝葉斯公式可知用戶和物品的特征矩陣的后驗分布如下:
即可得:
對等式兩遍同時取
,由于取不會改變函數凹凸性,極值點位置不變,并能將乘積變換成求和形式,因此這種方法在求解優化時經常會被用到。上式中三個的
式子是完全一樣的,因此由得:
同樣的計算方式來求
和 ,最終得:其中C是無關常數。
最大化上式log的后驗概率等價于最小化目標函數J(p,q):
其中
。這就是我們熟悉的最小化平方差和正則化項之和的形式。同樣采用SGD來進行優化。直到收斂或達到最大迭代次數。其過程如下:
1.求解損失函數的負梯度
2.根據負梯度變化更新變量
上式中
是步長(learning rate)。同樣最終得到矩陣和,然后對評分矩陣中的空白的評分通過來計算預測評分。對PMF優化:
由于原來的線性高斯模型做預測時,會產生有效評分范圍之外的評分值。因此可以使用一個logistic 函數:
來代替原來的簡單的線性高斯模型,使得預測評分值在有效范圍內。故此,可以將評分矩陣的條件概率修改如下:
原始評分
可以通過logigstic函數映射到[0,1]區間,然后再去計算。Constrained PMF
PMF模型一旦被擬合后,評分少的用戶的特征將會趨于先驗的均值,因此預測評分將會接近物品的平均評分。因此Constrained PMF主要對評分少的用戶進行一個約束。
下面是CPMF的概率圖模型,注意到我們這里用
表示圖中的,用表示圖中的.CPMF引入矩陣W(KxM維)和Y(KxN維),其中W表示一個潛在相似性約束矩陣,Y表示用戶潛在特征的一個補償矩陣。
可以被看做是加在先驗分布均值上的一個偏移量,用來得到用戶i對應的特征向量.對用戶i的潛在特征向量做了一個調整如下:其中,
是指示函數,當用戶u對物品k評分了為1,否則為0.因此我們可以得到評分矩陣的條件分布為:
其中潛在相似性約束矩陣W使其滿足零均值高斯分布先驗:
因此,根據PMF,最大化上式log的后驗概率等價于最小化目標函數J(p,q):
其中,
同樣采用SGD來進行優化。直到收斂或達到最大迭代次數。其過程如下:
1.求解損失函數的負梯度
其中,
, , .2.根據負梯度變化更新變量
上式中
是步長(learning rate)。同樣最終得到矩陣和,然后對評分矩陣中的空白的評分通過來計算預測評分。參考文獻
Probabilistic Matrix Factorization
參考博客
Constrained PMF
總結
以上是生活随笔為你收集整理的matlab中服从高斯分布的矩阵_推荐基础算法之矩阵分解PMF的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gdi画平滑直线_石膏几何体不会画?那是
- 下一篇: 装载向导_麦德美爱法:异构集成时代的高阶