推薦系統(tǒng)實(shí)踐-評(píng)分預(yù)測(cè)問(wèn)題

評(píng)分預(yù)測(cè)問(wèn)題基本通過(guò)離線試驗(yàn)進(jìn)行研究。對(duì)于測(cè)試集中的一對(duì)用戶(hù)和物品(u,i),用戶(hù)u對(duì)物品i的真實(shí)評(píng)分是rui,而推薦算法預(yù)測(cè)的用戶(hù)對(duì)物品i的評(píng)分是rui(一個(gè)小帽子...見(jiàn)圖),那么一般用均方根誤差RMSE度量預(yù)測(cè)的精度:


評(píng)分預(yù)測(cè)的目的就是找到最好的模型最小化測(cè)試集的
評(píng)分預(yù)測(cè)算法
平均值
1.全局平均值
在平均值在最簡(jiǎn)單的是全局平均值,他的定義為訓(xùn)練集中所有評(píng)分記錄的評(píng)分平均值:

2.用戶(hù)評(píng)分平均值
用戶(hù)u的評(píng)分平均值定義為訓(xùn)練集中所有評(píng)分的平均值
3.物品評(píng)分平均值
物品i的評(píng)分平均值定義為物品i在訓(xùn)練集中接受的所有評(píng)分的平均值
4.用戶(hù)分類(lèi)對(duì)物品分類(lèi)的平均值

除了這3種特殊的平均值,在用戶(hù)評(píng)分?jǐn)?shù)據(jù)上還可以定義很多不同的分類(lèi)函數(shù):
①用戶(hù)和物品的平均分
②用戶(hù)活躍度和物品流行度
基于鄰域的方法
基于用戶(hù)的領(lǐng)域算法和基于物品的鄰域算法都可以應(yīng)用到評(píng)分預(yù)測(cè)中?;谟脩?hù)的鄰域算法認(rèn)為預(yù)測(cè)一個(gè)用戶(hù)對(duì)一個(gè)物品的評(píng)分,需要參考和這個(gè)用戶(hù)興趣相似的用戶(hù)對(duì)該物品的評(píng)分,即:

這里,S(u,k)適合用戶(hù)u興趣最相似的K個(gè)用戶(hù)的集合,N(i)是對(duì)物品i評(píng)過(guò)分的用戶(hù)集合,rvi是用戶(hù)v對(duì)物品i的評(píng)分,rv帽子是用戶(hù)v對(duì)他評(píng)過(guò)分的所有物品評(píng)分的平均值,可以使用皮爾遜系數(shù)計(jì)算:
g

基于物品的鄰域算法在預(yù)測(cè)用戶(hù)u對(duì)物品i的評(píng)分時(shí),會(huì)參考用戶(hù)u對(duì)和物品i相似的其他物品的評(píng)分,即:

3種余弦相似度:

隱語(yǔ)義模型與矩陣分解模型
1.傳統(tǒng)SVD模型
首先需要對(duì)評(píng)分矩陣中的缺失值簡(jiǎn)答補(bǔ)全,然后使用SVD分解為如下形式:

然后取最大一些奇異值組成新對(duì)角矩陣。不過(guò)有很多缺點(diǎn):
①實(shí)際系統(tǒng)缺失值過(guò)多
②計(jì)算復(fù)雜度高
2.Simon Funk的SVD分解
將評(píng)分矩陣分解為兩個(gè)低維矩陣P和Q相乘。SF認(rèn)為,既然我們用RMSE作為評(píng)測(cè)指標(biāo),那么如果能找到合適的P和Q來(lái)最小化訓(xùn)練集的預(yù)測(cè)誤差,那么應(yīng)該也能最小化測(cè)試集的預(yù)測(cè)誤差。SF重新定義損失函數(shù):

為了防止過(guò)擬合,可以加入正則化參數(shù)λ:

要最小化上面的損失函數(shù),我們可以采用隨機(jī)梯度下降法:

然后根據(jù)隨機(jī)梯度下降法,需要將參數(shù)沿著最速下降方向向前推進(jìn),因此可以得到如下遞推公式:

其中α是學(xué)習(xí)速率(learning rate),它的取值需要反復(fù)試驗(yàn)獲得
3.加入偏置項(xiàng)后的LFM
實(shí)際情況下,一個(gè)評(píng)分系統(tǒng)有些固有屬性和用戶(hù)物品無(wú)關(guān),而用戶(hù)也有屬性和物品無(wú)關(guān),物品也有屬性和用戶(hù)無(wú)關(guān)。因此,有人提出了另一種LFM預(yù)測(cè)公式如下:

新增加的三項(xiàng)作用如下:
μ:訓(xùn)練集中所有記錄的評(píng)分的全局平均數(shù)
bu:用戶(hù)偏置(user bias)項(xiàng)。這一項(xiàng)表示了用戶(hù)的評(píng)分習(xí)慣中和物品沒(méi)有關(guān)系的那種因素
bi:物品偏置(item bias)項(xiàng)。這一項(xiàng)表示了物品接受的評(píng)分中和用戶(hù)沒(méi)有什么關(guān)系的因素
增加的3個(gè)參數(shù)中,只有bu和bi是要通過(guò)機(jī)器學(xué)習(xí)訓(xùn)練出來(lái)的,同樣可以求導(dǎo),然后用梯度下降法來(lái)求解這兩個(gè)餐參數(shù)。
4.考慮鄰域影響的LFM
Koren提出將用戶(hù)歷史評(píng)分的物品加入LFM模型中,稱(chēng)為SVD++
首先對(duì)矩陣分解,將參數(shù)個(gè)數(shù)降低到2nF個(gè)額,模型如下:

大大降低了參數(shù)的數(shù)量和存儲(chǔ)空間。再進(jìn)一步,我們可以將前面的LFM和上面的模型相加,從而得到如下模型:

Koren又提出,為了不增加太多參數(shù)造成過(guò)擬合,可以令x=q:

加入時(shí)間信息
1.基于鄰域模型融合時(shí)間信息
TItemCF算法,通過(guò)如下公式預(yù)測(cè)用戶(hù)在某一個(gè)時(shí)刻會(huì)給物品什么評(píng)分:

△t=tui-tuj是用戶(hù)對(duì)物品i和物品j的評(píng)分差,wij是物品i和j的相似度,f是考慮了時(shí)間衰減后的相似度函數(shù),它的主要目的是提高用戶(hù)最近的評(píng)分行為對(duì)推薦結(jié)果的影響,BigChaos在模型中采用了如下的f:

δ(x)是sigmoid函數(shù),目的是將相似度壓縮到(0,1)區(qū)間中。從上面的定義可以發(fā)現(xiàn),隨著△t增加,f(wij,△t)會(huì)越來(lái)越小,也就是說(shuō)用戶(hù)很久之前的行為對(duì)預(yù)測(cè)用戶(hù)當(dāng)前的評(píng)分影響越來(lái)越小
2.基于矩陣分解的模型融合時(shí)間信息
在引入時(shí)間信息以后,用戶(hù)評(píng)分矩陣不再是一個(gè)二維矩陣,而是三維矩陣。不過(guò)我們可以使用前面的BiasSVD模型分解
模型融合
1.模型級(jí)聯(lián)融合
從書(shū)中描述發(fā)現(xiàn),級(jí)聯(lián)融合很像Adaboost算法。和Adaboost算法類(lèi)似,該算法每次產(chǎn)生一個(gè)新模型,按照一定的參數(shù)加到舊模型上去,從而使訓(xùn)練集誤差最小化。不同的是,這里每一次生成新模型時(shí)并不對(duì)樣本集采樣,針對(duì)那些預(yù)測(cè)錯(cuò)的樣本,而是每次每次都還是利用全樣本進(jìn)行預(yù)測(cè),但每次使用的模型都有區(qū)別
2.模型加權(quán)融合
一般來(lái)說(shuō),評(píng)分預(yù)測(cè)問(wèn)題的解決需要在訓(xùn)練集訓(xùn)練K個(gè)不同的預(yù)測(cè)器,然后在測(cè)試集上作出預(yù)測(cè)。但是,如果我們繼續(xù)在訓(xùn)練集上融合K個(gè)預(yù)測(cè)器,得到線性加權(quán)系數(shù),就會(huì)造成過(guò)擬合的問(wèn)題。因此,在模型融合時(shí)一般采用如下方法:
①假設(shè)數(shù)據(jù)集已經(jīng)被分為訓(xùn)練集A和B,那么首先需要將訓(xùn)練集A按照相同的分隔方法分為A1和A2,其中A2的生成方法和B的生成方法一致,且大小相似;
②在A1上訓(xùn)練K個(gè)不同的預(yù)測(cè)器,在A2上作出預(yù)測(cè),因?yàn)槲覀冎繟2上的真實(shí)評(píng)分值,所以可以在A2上利用最小二乘法計(jì)算出線性融合系數(shù)αk;
③在A上訓(xùn)練K個(gè)不同的預(yù)測(cè)器,在B上作出預(yù)測(cè),并且將這K個(gè)預(yù)測(cè)器在B上的預(yù)測(cè)結(jié)果按照已經(jīng)得到的線性融合系數(shù)加權(quán)融合,以得到最終的預(yù)測(cè)結(jié)果
后記
-確定商業(yè)目標(biāo)和用戶(hù)滿(mǎn)意度之間的關(guān)系
-忘記冷啟動(dòng)問(wèn)題
-不要為了推薦而推薦
-不要浪費(fèi)時(shí)間計(jì)算相似興趣的用戶(hù),可以直接利用社會(huì)網(wǎng)路數(shù)據(jù)
-選擇合適的用戶(hù)反饋方式

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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