【矩陣分解三】BiasSVD

改進點(跟Funk-SVD比):

一句話總結:在矩陣分解模型中,加入偏置(Bias)部分,也就是衡量商品和用戶自身的因素。原因:經過觀測,評分數據大部分都是和用戶或物品無關的因素產生的效果,即有很大一部分因素是和用戶對物品的喜好無關而只取決於用戶或物品本身特性。這些獨立於用戶或獨立於物品的因素稱爲偏置(Bias)部分。


定義:

偏置(Bias)部分:獨立於用戶或獨立於物品的因素。

個性化部分:用戶和物品的交互即用戶對物品的喜好部分。

主要思想:

Funk-SVD方法通過學習用戶和物品的特徵向量進行預測,即用戶和物品的交互信息。用戶的特徵向量代表了用戶的興趣,物品的特徵向量代表了物品的特點,且每一個維度相互對應,兩個向量的內積表示用戶對該物品的喜好程度。但是我們觀測到的評分數據大部分都是都是和用戶或物品無關的因素產生的效果,即有很大一部分因素是和用戶對物品的喜好無關而只取決於用戶或物品本身特性的。例如,對於樂觀的用戶來說,它的評分行爲普遍偏高,而對批判性用戶來說,他的評分記錄普遍偏低,即使他們對同一物品的評分相同,但是他們對該物品的喜好程度卻並不一樣。同理,對物品來說,以電影爲例,受大衆歡迎的電影得到的評分普遍偏高,而一些爛片的評分普遍偏低,這些因素都是獨立於用戶或產品的因素,而和用戶對產品的的喜好無關。

我們把這些獨立於用戶或獨立於物品的因素稱爲偏置(Bias)部分,將用戶和物品的交互即用戶對物品的喜好部分稱爲個性化部分。事實上,在矩陣分解模型中偏好部分對提高評分預測準確率起的作用要大大高於個性化部分所起的作用,以Netflix Prize推薦比賽數據集爲例爲例,Yehuda Koren僅使用偏置部分可以將評分誤差降低32%,而加入個性化部分能降低42%,也就是說只有10%是個性化部分起到的作用,這也充分說明了偏置部分所起的重要性,剩下的58%的誤差Yehuda Koren將稱之爲模型不可解釋部分,包括數據噪音等因素。

目標函數

偏置部分主要由三個子部分組成,分別是

  • 訓練集中所有評分記錄的全局平均數μ,表示了訓練數據的總體評分情況,對於固定的數據集,它是一個常數。
  • 用戶偏置bi,獨立於物品特徵的因素,表示某一特定用戶的打分習慣。例如,對於批判性用戶對於自己的評分比較苛刻,傾向於打低分;而樂觀型用戶則打分比較保守,總體打分要偏高。
  • 物品偏置bj,特立於用戶興趣的因素,表示某一特定物品得到的打分情況。以電影爲例,好片獲得的總體評分偏高,而爛片獲得的評分普遍偏低,物品偏置捕獲的就是這樣的特徵。

則偏置部分表示爲:

則加入了偏置項以後的優化目標函數J(p,q)是這樣:

這個優化目標也可以採用梯度下降法求解。和Funk-SVD不同的是,此時我們多了兩個偏置項bi,bj,pi,pj的迭代公式和Funk−SVD類似,只是每一步的梯度導數稍有不同而已。而bi,bj一般可以初始設置爲0向量,然後參與迭代。

通過迭代,可以得到 P 和 Q,進而用於推薦。BiasSVD 增加了一些額外因素的考慮,因此在某些場景會比 FunkSVD 表現好。

 

參考:

1.https://lumingdong.cn/recommendation-algorithm-based-on-matrix-decomposition.html

2.矩陣分解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章