基於概率的矩陣分解原理詳解(PMF)

shuaishuai3409發表於2016-03-07

上一篇部落格講到了推薦系統中常用的矩陣分解方法,RegularizedMF

Regularized MF
是對BasicMF
Basic MF
的優化,而PMF
PMF
是在RegularizedMF
Regularized MF
的基礎上,引入概率模型進一步優化。假設使用者U
U
和專案V
V
的特徵矩陣均服從高斯分佈,通過評分矩陣已知值得到U
U
V
V
的特徵矩陣,然後用特徵矩陣去預測評分矩陣中的未知值。


若使用者U

U
的特徵矩陣滿足均值為0,方差為σ
\sigma
的高斯分佈,則有如下等式。之所以連乘,是因為U
U
的每個觀察值Ui
U_i
都是獨立同分布的。
p(U|σ2U)=Ni=1N(Ui|0,σ2UI)
p(U|\sigma_U^2)=\prod_{i=1}^NN(U_i|0,\sigma_U^2I)

同理:專案V的特徵矩陣滿足如下等式:
p(V|σ2V)=Ni=1N(Vi|0,σ2VI)

p(V|\sigma_V^2)=\prod_{i=1}^NN(V_i|0,\sigma_V^2I)

其中N(x|u,σ2)

N(x|u,\sigma^2)
表示變數x
x
滿足均值為u,方差為σ2
\sigma^2
的高斯分佈。


假設真實值R

R
和預測值R
R^*
之差也符合高斯分佈,那麼有如下概率分佈表示,P(RijUTiVj|0,δ2)
P(R_{ij}-U_i^TV_j|0,\delta^2)
通過平移有P(Rij|UTiVj,δ2)
P(R_{ij}|U_i^TV_j,\delta^2),
那麼:

那麼評分矩陣R

R
的條件概率如下:

P(R|U,V,σ2)=Ni=1Mj=1[N(Rij|UTiVj,σ2)]Iij

P(R|U,V,\sigma^2)=\prod_{i=1}^N\prod_{j=1}^M[N(R_{ij}|U_i^TV_j,\sigma^2)]^{I_{ij}}

這裡U

U
V
V
是引數,其餘看作超引數(即作為UV
U和V
的引數-引數的引數,PMF中通過人工調整超引數,後面要寫的BPMF是通過MCMC方法自動選出最優超引數的)。假設UV
U和V
互相獨立,可以通過貝葉斯公式得到RUV
R,U,V
的聯合分佈:

P(U,V|R,σ2,σ2U,σ2V)=P(R|U,V,σ2)P(U|σ2U)P(V|σ2V)

P(U,V|R,\sigma^2,\sigma_U^2,\sigma_V^2)=P(R|U,V,\sigma^2)P(U|\sigma_U^2)P(V|\sigma_V^2)
=Ni=1Mj=1[N(Rij|UTiVj,σ2)]IijNi=1N(Ui|0,σ2UI)Mj=1N(Vj|0,σ2iI)
=\prod_{i=1}^N\prod_{j=1}^M[N(R_{ij}|U_i^TV_j,\sigma^2)]^{I_{ij}}\prod_{i=1}^NN(U_i|0,\sigma_U^2I)\prod_{j=1}^MN(V_j|0,\sigma_i^2I)


為什麼要轉換為這種形式呢?這還要從極大似然估計MLE

MLE
)和最大後驗概率MAP
MAP
)說起。

最大似然估計:假設觀察資料滿足F

F
分佈,但是不知道分佈引數,那麼MLE
MLE
就是根據取樣資料來評估出引數,而且假設所有采樣(觀察的樣本資料)都是獨立同分布。 
服從引數為θ
θ
F
F
分佈的函式我們用fD
f_D
來表示,然後我們從這個分佈中抽出一個具有n個值的取樣X1,X2Xn
X_1,X_2……X_n
,那麼樣本的概率表示為:

P(x1,x2,,xn)=fD(x1,x2,xn|θ)

P(x_1,x_2,…,x_n)=f_D(x_1,x_2,…,x_n|\theta)

仔細想想,當前樣本資料已知,未知引數只有θ

θ
,我們就要想θ
θ
為多少才會產生這樣的樣本呢?我們就要找一個合適的θ
θ
使得當前的樣本資料滿足該分佈。極大似然估計的目標是在所有可能的θ取值中,尋找一個值使這個取樣的“可能性”最大化。通常採用通過求極值的方式求得關於θ
θ
一元函式的最優值的方式。

求極大似然估計(MLE)的一般步驟是:

  1. 由總體分佈匯出樣本的聯合概率函式 (或聯合密度);

  2. 把樣本聯合概率函式(或聯合密度)中自變數看成已知常數,而把引數 看作自變數,得到似然函式L(θ

  3. 求似然函式L(θ
    θ
    ) 的最大值點(常常轉化為求ln L(θ
    θ
    )的最大值點) ,即θ
    θ
    的MLE;
  4. 在最大值點的表示式中, 用樣本值代入就得引數的極大似然估計值 .

似然函式:
這裡寫圖片描述

通常取對數(對數似然),以便將乘化為加:

這裡寫圖片描述

這樣,待估計引數就可以表示為如下形式:

這裡寫圖片描述

同理若待估計引數有兩個,比如樣本服從高斯分佈,如下式,可以通過求偏導數得到估計值。

這裡寫圖片描述

這樣,PMF為何要轉換為RUV

R,U,V
的聯合分佈,且UV
U和V
在前面就解釋通了,UV
U和V
作為待求引數,要利用R
R
裡的已知值計算出來(評估),然後為何會轉為等式右邊,這得需要最大後驗概率的知識。

最大後驗概率:

最大後驗估計,融入了要估計量的先驗分佈在其中,也就是說待估計量θ本身也滿足某概率分佈g(θ)(已知), 稱為先驗分佈。這樣根據貝葉斯理論,似然函式有如下表示:(這裡f(θ|x)等價l(θ|x)是似然函式,表示已知樣本資料x集合,來評估θ的值(條件概率),但後面的等式就只關乎密度函式f了)。

這裡寫圖片描述

貝葉斯公式大家都懂,這裡我就說說分母為啥寫成這個形式。此f是關於和θ和x的聯合分佈密度,不是我麼理解的事件ABC,同時發生等。正常來說分母應該是f(x),表示只考慮x這一影響因素,要消除θ的影響,那麼我麼是通過對θ積分來消除θ,分母的結果最終是等於f(x)的,分子是等於f(θ,x)的。最終,待估參數列達為:

這裡寫圖片描述

分母的積分結果得到關於f(x)的密度函式,已知的對不。這樣,最大後驗概率的待估引數就是在最大似然估計的結果後面多乘了個待估引數的先驗分佈。寫到這,大家就該懂了為啥等式右邊是那種形式了,在最大似然估計的基礎上要新增UV

U和V
本身的先驗分佈。

RUV

R,U,V
的聯合密度對數化:

這裡寫圖片描述

最大化後驗概率U和V(最大可能性),等價於求下式的最小值:
這裡寫圖片描述
其中:
這裡寫圖片描述

解傳統矩陣分解可以採用各種優化方法,對於概率分解,由於最後求的是引數U和V的最大似然估計,因此可以用最大期望法(EM)和馬爾可夫鏈蒙特卡羅演算法(MCMC)。這裡就不多說了。

PMF也有改進的地方,它沒有考慮到評分過程中使用者的個人資訊,比如有的使用者就是喜歡打低分,有的專案(電影)質量就是不高,分肯定高不了等,這樣可以採用加入偏置的概率矩陣分解(貝葉斯概率矩陣分解BPMF),將在後面的部落格中寫出,會給出連結。

補充:聯合分佈f(x,y),其中x和y無必然聯絡,x可以理解為老師課講得好,y理解為課開在週六,那麼f表示這節課選課的人數的概率密度,聯合分佈的概率跟f(x)一樣,也是通過積分來求,f(x)求面積,而f(x,y)是求體積。

最大似然估計和最大後驗概率是參考了這兩篇篇部落格:

http://blog.csdn.net/upon_the_yun/article/details/8915283
http://wiki.mbalib.com/wiki/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1

相關文章