推荐系统笔记:基于贝叶斯的协同过滤
1 問題的限制 & 定義
在本文中,我們假設(shè)有少量不同的評級,每個(gè)評級都可以被視為一個(gè)離散的分類值。
因此,在以下討論中將忽略評級之間的排序。 例如,三個(gè)評分(如“喜歡”、“中性”和“不喜歡”)將被視為無序離散值。
在不同評級數(shù)量很少的情況下,可以合理使用這種近似值,而不會顯著降低準(zhǔn)確性。
????????我們假設(shè)有l(wèi)個(gè)離散的評級,我們標(biāo)記為v1,.....,vl。同時(shí)我們也有一個(gè)和別的協(xié)同過濾類似的評分矩陣R
2 基于貝葉斯的協(xié)同過濾
????????考慮第u個(gè)用戶,它對集合Iu中的條目有打分?,F(xiàn)在我們想要預(yù)測用戶u沒有打分的條目j的打分情況(也就是預(yù)測)的值【只能從v1,.....,vl 里面選擇一個(gè)】
? ? ? ? 于是我們可以預(yù)測,已知Iu里面的打分情況,為v1,.....,vl中某一個(gè)的條件概率,即:
? ? ? ? 這也就是一個(gè)條件概率,于是使用貝葉斯定理,我們有:
?
? ? ? 最大的一個(gè)? ?就是最有可能的打分值
?????????與此同時(shí),我們要知道?,也就是右邊的分母部分,是和vs取哪個(gè)沒有關(guān)系的(獨(dú)立的),所以為了方便起見,可以去掉
? ? ? ? 于是3.4可以簡化為:
?那么,怎么求右邊的這兩項(xiàng)呢?
?????????(先驗(yàn)概率),可以通過:(所有給j條目打分為vs的用戶數(shù))/(所有給j條目打分的用戶數(shù))來計(jì)算
? ? ? ? 【注意分母是給j條目打過分的用戶數(shù),而不是所有用戶數(shù)】
就得利用我們這里假設(shè)的,各個(gè)打分之間是獨(dú)立的來計(jì)算了
?
其中,每一個(gè)?的計(jì)算方法是:(所有給j打分為vs,同時(shí)給k打分為的用戶數(shù))/(所有給j打分為vs的用戶數(shù))
?所以,3.4式可以再次改寫為:
?2.1 ruj后驗(yàn)概率的用處
1)計(jì)算最大的后驗(yàn)概率,他就是ruj的預(yù)測值
????????這種方法將評級純粹視為分類值,忽略了各種評級之間的所有排序。
????????當(dāng)可能的評級數(shù)量很少時(shí),這是一種合理的使用方法。 ?
2)將預(yù)測值估計(jì)為所有評級的加權(quán)平均值,其中評級的權(quán)重是其求得的后驗(yàn)概率。
?當(dāng)評分分布的粒度更大時(shí),這種方法更可取。
3 解決過擬合問題
????????當(dāng)基礎(chǔ)評分矩陣稀疏且觀察到的評分?jǐn)?shù)量很少時(shí),就會出現(xiàn)問題。?在這種情況下,數(shù)據(jù)驅(qū)動的估計(jì)可能不會保持穩(wěn)健。
????????例如,如果只有少數(shù)用戶對第 j 個(gè)項(xiàng)目指定了評分,則先驗(yàn)概率 的估計(jì)不太可能是穩(wěn)健的。最極端的情況,如果沒有用戶為第 j 個(gè)項(xiàng)目指定評分,則估計(jì)的形式為 0/0,這是不確定的。
????????此外,方程 3.6 右側(cè)的每個(gè)的估計(jì)可能比先驗(yàn)概率的估計(jì)更不可靠。這是因?yàn)橹挥幸恍〔糠?為條件。在這種情況下,評分矩陣中需要分析的部分只是那些為項(xiàng)目 j 指定了評分 vs 的用戶。如果這樣的用戶數(shù)量少,估計(jì)會不準(zhǔn)確,公式3.6中的乘法項(xiàng)會產(chǎn)生很大的誤差。
?一種解決方法是使用拉普拉斯平滑
我們原先對于先驗(yàn)概率 的計(jì)算方法為:
?拉普拉斯平滑后是:
換句話說,如果沒有任何用戶為條目j打分,先驗(yàn)概率也不會是0/0,而是1/l
α的取值會決定平滑的程度,α越大越平滑,但是結(jié)果對于數(shù)據(jù)也就越不敏感。
同理也可以用拉普拉斯平滑來處理
?4 舉例
????????比如我們有這樣一個(gè)打分(打分這里只有可能是±1)?,我們現(xiàn)在想預(yù)測第三個(gè)用戶的兩個(gè)缺失打分
????????
注:這里出于簡化考慮,沒有使用拉普拉斯平滑? ? ? ?
我們先看第一個(gè)item,可能是1,可能是-1。
我們先計(jì)算1->3打分是1時(shí)候的條件概率?
可以看出來概率是1/8
再看1->打分是-1時(shí)候的條件概率?
?1/8 >0 ,所以這一項(xiàng)打分應(yīng)該為1
?
同理,最后一項(xiàng)可得打分為-1
總結(jié)
以上是生活随笔為你收集整理的推荐系统笔记:基于贝叶斯的协同过滤的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gym 环境汇总 (无mojoco版)
- 下一篇: 推荐系统笔记:使用分类模型进行协同过滤