1. 程式人生 > >基於大資料的推薦演算法研究(1)

基於大資料的推薦演算法研究(1)

孫遠帥. 基於大資料的推薦演算法研究[D]. 廈門大學, 2014.
讀的一篇論文的總結

總覽

基於專案層次結構的推薦演算法,並結合Hadoop技術實現矩陣分解演算法。

  • 改進均衡相似度的餘弦距離和皮爾遜相關係數的計算公式,避免計算目標使用者與所有使用者的相似度,從而避免了在整個使用者空間中搜索最相近的k個使用者,同時引入倒排索引資料結構,是查詢目標使用者最近鄰的計算複雜度降低;
  • 提出基於專案層次相似度的協同過濾演算法,使用者給部分專案標註標籤和專案類別進行自動擴充套件,建立所有專案的層次結構,利用建立的專案標籤層次結構計算專案之間的相似性
  • 結合矩陣分解梯度下降演算法的近似演算法和MapReduce分散式計算框架設計實現了一種基於MapReduce的矩陣分解推薦演算法

該文章通過改進相似度計算方法,引入倒排索引資料結構,來避免在整個使用者空間上查詢目標使用者的最近鄰使用者,從而在一定程度上提高最近鄰的查詢速度。

推薦演算法簡介

根據使用的資料來源的不同,推薦演算法可以分為:

  • 基於內容的推薦演算法:推薦使用者之前喜歡的商品內容相似的商品
    使用者u的興趣愛好向量(使用者之前喜歡的所有專案向量模型的平均)
    這裡寫圖片描述
    其中N(u)是使用者之前喜歡的專案集合。content(*)表示所有專案的內容向量

    一個新專案j與專案與使用者u喜好的相似度
    這裡寫圖片描述
    通常採用向量夾角的餘弦距離計算
    自適應過濾主要解決了ContentBasedProfile(u)的增量計算問題;閩值設定提出了使用者行為與專案特徵的匹配問題,從而精確地計算Content(j)。

    基於內容的推薦只考慮商品和商品之間的相似性,而不考慮使用者行為

  • 協同過濾:研究使用者歷史行為並建模,利用模型推薦商品
    基於使用者的協同過濾演算法,計算出目標使用者與每個使用者的相似度,取相似度最高的若干個
    使用者作為最近鄰。
    給定使用者u和v,令N(u)是使用者u喜歡的專案集合,則u、v的興趣相似度
    這裡寫圖片描述

    使用近鄰使用者來預測目標使用者對專案評價的方法
    1.要預測使用者u對專案i的評分
    這裡寫圖片描述
    這裡寫圖片描述
    其中這裡寫圖片描述這裡寫圖片描述,I(u)為使用者u對專案評分集合

    其中按推薦生成方式的不同,協同過濾又可以分為啟發式的和基於模型的協同過濾。上面都是啟發式的。

  • 混合推薦演算法
    就是把上面兩種推薦進行混合

推薦系統衡量指標

  • 使用者滿意度調查(問卷等形式)
  • 預測準確度
    1)評分預測
    a、均方差誤差
    這裡寫圖片描述
    b、平均絕對誤差
    這裡寫圖片描述
    2)TopN推薦
    研宄人員通常使用準確率/召回率度量來衡量推薦的預測準確率
    召回率
    這裡寫圖片描述
    準確率
    這裡寫圖片描述
    3)覆蓋率
    評價推薦系統發覺長尾的能力
    這裡寫圖片描述
    4)實時性
    實時性是一個衡量推薦系統性能的定性指標。

資料集

  • MovieLens電影評分資料
  • Jester Joke(風向和推薦笑話的網站)
  • Netfile(電影租賃公司提供的電影評分)
  • Yahoo音樂資料