推薦系統-小入個門


推薦系統概覽

推薦系統三個基本對象

推薦系統需要的三類數據源:物品,用戶,事務

物品:關注物品集的屬性和特徵
用戶:關注用戶基本屬性,年齡,性別等
事務:用戶的行爲記錄,分爲顯示行爲和隱式行爲


推薦系統的分類

  • 基於內容 (content-based)
    • 爲用戶推薦與過去興趣相似的物品,物品的相似性是基於被比較物品的特徵來計算的
  • 協同過濾(CF:collaborative filtering)
    • 找到與用戶相似的品味的用戶,將相似用戶過去喜歡的物品推薦給用戶
  • 基於人口統計(demographic)
    • 基於人口統計信息,不同的人羣對用不同的推薦
  • 基於知識(knowledge-based)
    • 根據特定領域的知識進行推薦,所謂知識就是關於確定物品哪些特徵能滿足用戶需要和偏好
  • 基於社區
    • 根據用戶“近鄰”的偏好進行推薦,也叫社會化推薦系統,利用用戶社會關係和“近鄰”的偏好推薦,結果基於用戶“近鄰”的評分等
  • 混合推薦系統
    • 不同推薦方法組合,例如協同過濾的冷啓動問題可以用基於內容的推薦彌補

推薦系統的評價標準

  • 覆蓋率
  • 冷啓動
  • 信心度
  • 可信度
  • 新穎度
  • 風險度
  • 驚喜度

推薦解釋

如何讓推薦系統可信任,可解釋,有說服力

  1. 透明度:說明系統如何工作
  2. 可反饋性:允許用戶報錯
  3. 信任:增加用戶對系統信心
  4. 有效性:幫助用戶做好的決定
  5. 說服力:說服用戶購買或嘗試
  6. 高效性:幫用戶快速抉擇
  7. 滿意度:增加用戶體驗舒適性和趣味

推薦系統與數據挖掘


涉及數據挖掘內容概覽

數據挖掘大致分3個步驟:數據預處理數據分析結果解釋

數據預處理

數據就是一組對象以及對應屬性的集合
對象等同於:記錄,物品,得分,樣本,觀測值,實例
屬性等同於:變量,字段,特徵,特性

1.相似度度量

1.1 歐幾里得距離

d(x,y)=k=1n(xkyk)2

n是維度,Xk和Yk是第k和特徵值

1.2 閔可夫斯基距離

d(x,y)=(k=1n(xkyk)r)1r

是歐氏距離的推廣
r=1:曼哈頓距離,L1範數
r=2:歐幾里得距離,L2範數
r= :上確界,任意維度對象屬性間的最大距離

1.3. 馬氏距離

d(x,y)=(xy)δ1(xy)T

δ 是協方差矩陣

1.4. 夾角餘弦值

cos(x,y)=(xy)xy

代表點積,x 是向量x的長度
也叫餘弦相似度,L2範數

1.5. 皮爾遜相關度

Peason(x,y)=(x,y)δxδy

利用x,y的協方差和標準差δ 進行計算

1.6. 簡單匹配係數

SMC==M11+M00M00+M01+M10+M11

只對應二進制屬性

1.7. Jaccard係數

JC=M11M01+M10+M11

一般情況,推薦系統預測精確度不太受相似度度量方法的影響(ACM論文的實驗)

2.抽樣

  • 從大數據集中選取子集的技術,因爲處理全部數據開銷太大
  • 也用於創建訓練數據和測試數據時候使用
  • 最簡單情況使用隨機抽樣
  • 常用抽樣方法是無取代抽樣,就是不放回的拿
  • 分離訓練集測試集一般8:2

交叉驗證

交叉驗證(Cross-validation),執行多次測試集訓練集分離,訓練模型評價模型,求評價精度
10折交叉驗證(10-fold cross validation),將數據集分成十份,輪流將其中9份做訓練1份做驗證,10次的結果的均值作爲對算法精度的估計,一般還需要進行多次10折交叉驗證求均值


有事抽樣基於最近時間,或者按照評分比例抽樣,根據具體情況進行一些控制

3.降維

推薦系統的2個大問題:稀疏和維度災難,解決方法:降維

3.1 主成分分析(PCA)

能根據最小平方誤差計算出變化最大的值,得到一組有序的成分列表。第一個成分的變化量比第二個成分的大,最後可以根據忽略對變化貢獻小的成分來降低維度

PCA的限制

  • 假設數據集是已線性合併爲基礎的數據集(有對應非線性的PCA變種算法)
  • 原始數據符合高斯分佈

3.2 奇異值分解

目標是發現低維特徵空間,這個空間中每個成分都是可以計算的

  • λ 是對角矩陣,元素是奇異值,正定,按照降序排列
  • 可以通過控制λ 矩陣的秩來決定降維的力度

SVD可以發現用戶和產品的潛在關係。方法是利用平均分填充用戶-物品矩陣,然後進行SVD分解,然後直接計算預測值,根據預測結果來豐富kNN等方法的鄰居信息

矩陣分解的方法還有MF,NNMF等,其基本思想都是把評分矩陣分解爲2個部分,一部分包含描述用戶的特徵,另一部分包含描述物品的特徵

後面再介紹基於SVD的增量學習等技術

3.3 去噪

噪音數據有缺失數據,異常數據等形式
去噪目的是在最大化信息量的同時去掉不必要的影響

數據分析

1.分類

這裏列舉一下推薦系統常見的分類算法,不細緻討論算法細節

1.1 最近鄰

原理:根據最近的K個點的標籤來決定數據的標籤
優點是KNN的概念和CF的鄰居很相關,而且不需要訓練而合維護一個模型,能適應評分矩陣的劇烈變化
缺點顯而易見,每次預測都需要計算每個點的距離

1.2 決策樹

常見數的樹算法:CART,ID3,C4.5,SLIQ,SPRINT
決策樹的重點在於決策節點的劃分,找到不純度減少最多的點,衡量不純度的方法:信息增益,基尼指數,熵,誤分類誤差等
優點是結果好解釋,構建樹代價小

1.3 基於規則分類

可以從樹模型裏面提取規則,再根據規則進行分類

1.4 貝葉斯

利用概率來代表從數據中學習到的關係的不確定性
模型得到的概率是先驗概率和似然值的乘積,先驗代表了觀測數據之前的經驗,期望,似然值部分代表了數據的影響
樸素貝葉斯假設特徵間概率獨立,好處是受孤立噪音點,和不相關特徵的影響小,缺點是獨立的假設對於相關屬性不成立
解決特徵依賴的方法是貝葉斯信念網BBN,利用非循環圖表達屬性的依賴關係

1.5 人工神經網絡

神經網絡做分類,可以做非線性分類任務

1.6 支持向量機

找到分類平面,這個平面使間隔最大化,結構風險最小化

1.7 分類器集成

Bagging,Boosting

1.8 評估分類器

有量化評分的結果,均方誤差MAE,均方根誤差RMSE
把推薦看做分類的情況,準確率,召回率,F值,ROC,AUC

2.聚類

聚類可以在計算近鄰之前先把類似的劃分到一起,從而提高效率,但是提高效率和降低精度要衡量

聚類主要分爲2個類別,分層和劃分
劃分:把數據劃分成非重合的聚類,每個數據都確定的屬於一個類別
分層:在已知聚類上繼續聚合物品,嵌套的層級樹

2.1 k-means

缺陷:選k值需要先驗知識;聚類對初始點敏感;異常值敏感;會產生空聚類
可以利用k-means作爲預處理構造鄰居

2.2 DBSCAN

基於密度進行聚類。核心點:給定距離內有一定數量鄰居的點;邊界點:沒有超過一定數量鄰居,但是屬於核心點鄰居的點;噪聲點:核心點邊界點以外的點
利用消息傳遞算法,是基於圖聚類的方法

3.關聯規則挖掘

  • 關聯規則發現的規則只意味着共同出現,並沒有因果關係
  • 利用支持度和置信度對規則進行篩選
  • 先根據支持度生成物品集(頻繁項集生成),再從頻繁項集裏面產生高置信度規則
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章