文章目錄
-
-
-
- 1 效用矩陣
- 2 基于内容的推薦
-
- 2.1 項模型
- 2.2 文檔特征發現
- 2.3 基于 Tag 的項特征擷取
- 3 協同過濾
-
- 3.1 相似度計算
- 3.2 相似對偶性
- 4 效用矩陣降維處理
-
- 4.1 UV分解
- 4.2 均方根誤差(RMSE)度量
- 5 UV 分解的增量式計算
-
-
1 效用矩陣
效用矩陣展示了使用者對項的喜好程度。
2 基于内容的推薦
2.1 項模型
項模犁由一些很容易發現的項特征所構成。例如有關電影的特征如下:
- 演員集合
- 導演
- 電影制作年份
- 電影的流派
2.2 文檔特征發現
- 從文檔中找出能夠刻畫主題的關鍵詞
- 具有最高TF.IDF得分的詞則作為文檔的關鍵特征
度量兩個文檔的相似度方法:
- Jaccard 相似度
- 餘弦距離
2.3 基于 Tag 的項特征擷取
- 将包含同樣标簽的網頁推薦給使用者
3 協同過濾
利用效用矩陣的行或列來計算使用者或項之間的相似度
3.1 相似度計算
- Jaccard 相似度
- 餘弦相似度
在做相似度計算的時候,有時為了友善,可以做一下資料的舍入,減少誤差;還可以做評分歸一化,友善計算。
3.2 相似對偶性
效用矩陣可以看成有關使用者資訊的矩陣,也可以看成有關項資訊的矩陣,或者同時與兩種資訊有關的矩陣。這樣就至少有兩種方法來做推薦。
(1)根據使用者相關的資訊來推薦:先找到最相似的一些使用者,然後基于這些相似使用者的推薦決策來進行最後的推薦。
(2)根據相似項的資訊來推薦:先找到一些相似的項,然後根據使用者對這些項的喜好程度,來對目标項進行打分。
以上找相似使用者和相似項的任務,可以采用聚類方法
4 效用矩陣降維處理
4.1 UV分解
理論上,我們可以将任何一個矩陣分解為兩個矩陣相乘,例如 5 × 5 的矩陣可以分解為一個 5 × 2 的矩陣 U 和一個 2 × 5 的矩陣 V 相乘,如圖所示。
4.2 均方根誤差(RMSE)度量
直接計算矩陣 U 和 V 比較難,我們采用逼近的方法來計算 U 和 V。度量名額采用均方根誤差,逼近目标是最小化均方根誤差。計算方法為:
(1) 計算M中所有非空元素和UV 中對應元素的差的平方和;
(2) 對上述平方和求平均,即除以M中的非空元素個數;
(3) 對上述結果求算術平方根。
5 UV 分解的增量式計算
計算步驟:
1. 初始化
初始化 U、V 矩陣所有元素為 a / d \sqrt {a/d} a/d
。
其中:
- a 是 M 中所有非空元索的平均值
- d 是 U 或 V 中行列數較小的那個數
2. 最小化均方根誤差
按順序通路 U、V 矩陣中的元素。設該元素值為 x,于是新的 U、V 矩陣如圖:
利用均方根誤差公式計算誤差,會得到一個二次方程,最小化誤差就轉換為求抛物線的最小值,于是計算出 x,替換掉原來的值。
3. 疊代
不斷從 U、V 矩陣選出元素進行第二步操作
4. 避免過拟合
進行UV分解時一個常見的問題是我們會停止千多個局部極小值中的一個,但是對于其他矩陣效果并不理想。處理過拟合的方法有:
(1) 避免對第一個分最進行如下優化處理,即對一個元索的值按照僅僅目前值到最優值的某個比例移動,比如說一半比例。
(2) 在疊代過程收斂之前很早就停止對切猖你]元素進行再通路。
(3) 進行多次不同的UV分解,并利用每次分解得到的矩陣乘積的平均值來對M中的新元素進行預測。
參考文獻:《網際網路大規模資料挖掘與分布式處理-第二版》
百度網盤連結
cyyr