天天看點

【大資料】九、推薦系統(基于内容的推薦、協同過濾、UV分解)

文章目錄

        • 1 效用矩陣
        • 2 基于内容的推薦
          • 2.1 項模型
          • 2.2 文檔特征發現
          • 2.3 基于 Tag 的項特征擷取
        • 3 協同過濾
          • 3.1 相似度計算
          • 3.2 相似對偶性
        • 4 效用矩陣降維處理
          • 4.1 UV分解
          • 4.2 均方根誤差(RMSE)度量
        • 5 UV 分解的增量式計算

1 效用矩陣

效用矩陣展示了使用者對項的喜好程度。

【大資料】九、推薦系統(基于内容的推薦、協同過濾、UV分解)

2 基于内容的推薦

2.1 項模型

項模犁由一些很容易發現的項特征所構成。例如有關電影的特征如下:

  1. 演員集合
  2. 導演
  3. 電影制作年份
  4. 電影的流派
2.2 文檔特征發現
  • 從文檔中找出能夠刻畫主題的關鍵詞
  • 具有最高TF.IDF得分的詞則作為文檔的關鍵特征

度量兩個文檔的相似度方法:

  1. Jaccard 相似度
  2. 餘弦距離
2.3 基于 Tag 的項特征擷取
  • 将包含同樣标簽的網頁推薦給使用者

3 協同過濾

利用效用矩陣的行或列來計算使用者或項之間的相似度

3.1 相似度計算
  1. Jaccard 相似度
  2. 餘弦相似度

在做相似度計算的時候,有時為了友善,可以做一下資料的舍入,減少誤差;還可以做評分歸一化,友善計算。

3.2 相似對偶性

效用矩陣可以看成有關使用者資訊的矩陣,也可以看成有關項資訊的矩陣,或者同時與兩種資訊有關的矩陣。這樣就至少有兩種方法來做推薦。

(1)根據使用者相關的資訊來推薦:先找到最相似的一些使用者,然後基于這些相似使用者的推薦決策來進行最後的推薦。

(2)根據相似項的資訊來推薦:先找到一些相似的項,然後根據使用者對這些項的喜好程度,來對目标項進行打分。

以上找相似使用者和相似項的任務,可以采用聚類方法

4 效用矩陣降維處理

4.1 UV分解

理論上,我們可以将任何一個矩陣分解為兩個矩陣相乘,例如 5 × 5 的矩陣可以分解為一個 5 × 2 的矩陣 U 和一個 2 × 5 的矩陣 V 相乘,如圖所示。

【大資料】九、推薦系統(基于内容的推薦、協同過濾、UV分解)
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 矩陣如圖:

【大資料】九、推薦系統(基于内容的推薦、協同過濾、UV分解)

利用均方根誤差公式計算誤差,會得到一個二次方程,最小化誤差就轉換為求抛物線的最小值,于是計算出 x,替換掉原來的值。

3. 疊代

不斷從 U、V 矩陣選出元素進行第二步操作

4. 避免過拟合

進行UV分解時一個常見的問題是我們會停止千多個局部極小值中的一個,但是對于其他矩陣效果并不理想。處理過拟合的方法有:

(1) 避免對第一個分最進行如下優化處理,即對一個元索的值按照僅僅目前值到最優值的某個比例移動,比如說一半比例。

(2) 在疊代過程收斂之前很早就停止對切猖你]元素進行再通路。

(3) 進行多次不同的UV分解,并利用每次分解得到的矩陣乘積的平均值來對M中的新元素進行預測。

參考文獻:《網際網路大規模資料挖掘與分布式處理-第二版》

百度網盤連結

cyyr

繼續閱讀