推薦系統的基本原理
- 基於內容的推薦系統
根據每部電影的內容以及使用者已經評過分的電影來判斷每個使用者對每部電影的喜好程度,從而預測每個使用者對沒有看過的電影的評分。
電影內容矩陣X * 使用者喜好矩陣θ = 電影評分表
那麼,使用者喜好矩陣θ(使用者對於每種不同型別電影的喜好程度)如何求解呢?
使用者喜好矩陣θ的代價函式:
其中,正則化項為防止過擬合。
優點:
(1)不存在商品冷啟動問題
(2)可以明確告訴使用者推薦的商品包含哪些屬性缺點:
(1)需要對內容進行透徹的分析
(2)很少能給使用者帶來驚喜
(3)存在使用者冷啟動的問題基於協同過濾的推薦系統
根據電影評分表和使用者喜好矩陣θ,來求得電影內容矩陣X。然後,將電影內容矩陣X與使用者喜好矩陣θ相乘,這樣就得到了一個完整的電影評分表。
所以,基於協同過濾的電影推薦就是根據每個使用者對於每種電影型別的喜好程度以及使用者已經評過分的電影來推斷每部電影的內容,從而預測每個使用者對沒有看過的電影的評分。
那麼,如何求解電影內容矩陣X呢?
電影內容矩陣X的代價函式:
使用者喜好矩陣X的獲取:(1)通過線上問卷調查來獲取使用者對電影的評價,但並不是所有的使用者都會填寫,就算填寫了,也不一定全部是正確資訊;(2)通過一種更高效的方式來同時求解電影內容矩陣X和使用者喜好矩陣θ.
通過前面,可以看到電影內容矩陣X和使用者喜好矩陣θ,它們的第一項是相同的,因此,我們可以將這兩個公式合併為一個公式來同時求解X與θ,這種方法的好處就是隻用搜集使用者對電影的評分。
目標是最小化這個代價函式
隨機初始化X和θ,通過梯度下降法或其他優化演算法求解。
- (1)基於item的協同過濾
先計算商品之間的相似度,然後根據商品之間的相似度來向用戶進行推薦,如:使用者購買了硬碟,則很有可能向用戶推薦u盤,因為硬碟和u盤具有相似性。
在基於item的協同過濾中,只需要使用者對商品的評分,首先需要計算商品之間的相似度。
如何度量商品之間的相似度?
計算出商品之間的相似度之後, 我們就能夠預測使用者對商品的評分。
:商品i 與其他商品的相似度
:使用者u對其他商品的評分
分母:與商品 i 相似的商品的相似度的總和
表達的是:根據使用者u對其他和商品 i 相似的商品的評分來推斷使用者對商品 i 的評分。
當求出使用者u對所有商品的預測評分後,將其進行排序,選擇得分最高的商品推薦給使用者。
- (2)基於使用者的協同過濾
基本思想:假設我們要對使用者A進行推薦,首先要找到與使用者相似的其他使用者,看其他使用者都購買過其他商品,把其他使用者購買的商品推薦給使用者A。
這時就需要度量使用者之間的相似度,與基於item的協同過濾類似:
:使用者u對商品 i 的評分
:使用者u對這些商品評分的平均值
計算了使用者之間的相似度之後就可以預測使用者對商品的評分。
商品評分公式:
公式表示:根據與使用者u相似的其他使用者對商品i 的評分來推斷使用者u對商品i 的評分。
當求出使用者u對所有商品的預測評分後,將其進行排序,選擇得分最高的幾個商品推薦給使用者。
- 基於協同過濾推薦系統的優點:
(1)能夠根據各個使用者的歷史資訊推斷出商品的質量
(2)不需要對商品有任何專業領域的知識 - 缺點:
(1)冷啟動問題
(2)gray sheep
(3)協同過濾的複雜度會隨著商品數量和使用者數量的增加而增加
(4)同義詞的影響
(5)shilling attack:對競爭對手的商品專門打低分,對自己的商品打高分