筆記:推薦系統(tǒng)

1、問(wèn)題的提出

假如我們擁有多個(gè)用戶對(duì)一系列不同電影的打分(其中存在某用戶對(duì)某電影打分缺失的情況)。如何基于這些歷史數(shù)據(jù),利用某種算法來(lái)預(yù)測(cè)用戶對(duì)特定電影的打分情況?
參數(shù)表示如下:
nu—— 用戶數(shù)量
nm—— 電影數(shù)量
r(i,j)——第j個(gè)用戶是否對(duì)第i個(gè)電影打分(1表示打過(guò)分,0表示沒(méi)打過(guò)分)
y(i,j)——第j個(gè)用戶對(duì)第i個(gè)電影的打分分?jǐn)?shù)
mj—— 第j個(gè)用戶評(píng)過(guò)分的電影數(shù)量
比如,以下表示4個(gè)用戶對(duì)5給電影的評(píng)分情況,我們需要預(yù)測(cè)?處的分?jǐn)?shù)。

2、基于內(nèi)容的推薦系統(tǒng)

假設(shè)電影有n個(gè)特征,且各個(gè)特征是已知的,用戶對(duì)電影不同特征的打分權(quán)重是未知的。利用用戶對(duì)不同電影的打分,可以針對(duì)每一個(gè)用戶訓(xùn)練出一個(gè)線性回歸模型。
如果,參數(shù)θ(j)=(θ(j)1(j)2...θ(j)n)T表示用戶j的打分權(quán)重向量,x(i)=(x(i)1,x(i)2...x(i)n)T表示電影的特征向量。那么,訓(xùn)練單個(gè)用戶的評(píng)分模型的損失函數(shù)為:


其中,i:r(i,j)=1表示統(tǒng)計(jì)用戶j對(duì)電影i有打分的樣本。
如果訓(xùn)練所有用戶,需要將所有用戶損失函數(shù)求和,即:
然后,利用梯度下降法,求解參數(shù)θ(j)k

3、協(xié)同過(guò)濾算法

在基于內(nèi)容的推薦系統(tǒng)中,我們是在已知電影特征的情況下進(jìn)行的。同樣,如果我們?cè)谝阎脩粼u(píng)分參數(shù)θ的情況下,可以估算電影的特征,損失函數(shù)如下:

如果,我們既不知道電影特征,也不知道用戶評(píng)分的情況下,這兩種方法都不行了。那么,我們需要同時(shí)學(xué)習(xí)這兩類參數(shù)。協(xié)同過(guò)濾的損失函數(shù)如下:

利用梯度下降法,同時(shí)求解參數(shù)θ和x


算法步驟如下:
1)隨機(jī)初始化x(1),x(2)...x(nm)(1)(2)...θ(nu)
2)梯度下降法最小化損失函數(shù)
3)訓(xùn)練完算法后,計(jì)算用戶j對(duì)電影i的評(píng)分
協(xié)同過(guò)濾算法中,我們不包含偏執(zhí)項(xiàng)θ0,x0
這個(gè)算法習(xí)得的特征包含了電影的重要特性,可能不容易被理解,但是可以利用這些自動(dòng)習(xí)得的特征對(duì)用戶的打分進(jìn)行預(yù)測(cè)。

4、均值歸一化

如果某個(gè)用戶k對(duì)所有電影均沒(méi)有評(píng)分,那么,使協(xié)同過(guò)濾損失函數(shù)最小的參數(shù)θ(k)為0。那么該用戶預(yù)測(cè)的所有電影評(píng)分均為0,這顯然不合理。這時(shí),需要均值歸一化。
首先對(duì)Y矩陣進(jìn)行均值歸一化處理,將每一個(gè)用戶對(duì)每一個(gè)電影的評(píng)分減去所有用戶對(duì)該電影的評(píng)分平均值,得到新的矩陣Y,然后對(duì)新矩陣Y應(yīng)用協(xié)同過(guò)濾算法訓(xùn)練參數(shù)來(lái)預(yù)測(cè)評(píng)分,然后將平均值加回去。即將(θ(j))Tx(i)i作為最終的預(yù)測(cè)評(píng)分。對(duì)于沒(méi)有任何評(píng)分的用戶,他對(duì)每個(gè)電影的評(píng)分為各用戶評(píng)分的平均值。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容