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