协同过滤—基于图的方法
文章目錄
- 1、概述
- 1.1 基于路徑的相似度
- 1.2 基于隨機游走的相似度
1、概述
在基于圖的推薦方式中,數據可以用圖的形式表示。左邊的數據點表示用戶的集合,右邊的數據表表示物品的集合,這些點通過線連接,線上的數據是用戶對物品的評分。用戶到物品的路徑長度可以用于預估用戶對物品的評分;用戶和用戶(或者物品和物品)之間的路徑長度可以用于預估用戶(或者物品)的相似度。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-PSEwyJ3u-1620444953253)(http://note.youdao.com/yws/res/46688/WEBRESOURCE886b3a5a163dea280a234e7b4e13fdec)]
基于圖的推薦得到的傳遞關聯可以通過2種方式用于物品推薦。
- 第一種方法是,圖中用戶u和物品i的接近度可以直接被用于評估用戶u與物品i的相關度,系統可以將與用戶最相近的物品直接推薦給用戶u。
- 第二種方法是,首先將用戶間或者物品間的相鄰距離看做他們之間的相似度權重w_{uv}或者w_{ij},然后將其用于基于鄰域的推薦方法。
如何計算用戶與物品的距離?或者用戶與用戶(物品有物品)的相似度?一般常用的有2種方法:基于路徑的相似度和基于隨機游走的相似度。
1.1 基于路徑的相似度
度量圖中兩個頂點之間相關性的方法很多,但一般來說圖中頂點的相關性主要取決于下面3個因素: 兩個頂點之間的路徑數; 兩個頂點之間路徑的長度;兩個頂點之間的路徑經過的頂點。
在基于路徑的相似度計算中,圖中2個節點間的距離可以通過連接2個節點的路徑數目和這些路徑的長度所構成的函數獲得。
用戶uuu和物品iii之間的關聯度可以定義為用戶uuu和iii的所有不同路徑的權重之和,但長度不能超過給出最大的長度K(指定近鄰的閾值)。因此用戶和物品的關聯矩陣可以表示為:
Sk=∑k=1KαkAkS_k = \sum_{k=1}^K\alpha^kA^k Sk?=k=1∑K?αkAk
1.2 基于隨機游走的相似度
在基于隨機游走的相似度算法中,用戶或物品之間的相似度可以估算為到達這些點的一次隨機漫步概率。
公式化的描述是:在一個一階的馬爾可夫隨機過程,其定義會用到一組n*n個狀態的轉移概率矩陣P,其中在任意時段t從狀態i跳轉到j的概率為:
Pij=Pr(s(t+1)=j∣s(t)=i)P_{ij} = Pr(s(t+1) = j | s(t) = i) Pij?=Pr(s(t+1)=j∣s(t)=i)
具體的計算方法有ItemRank算法與平均首次通過/往返次數。
用戶uuu對應的節點A開始在用戶物品二分圖上進行隨機游走。游走到任何一個節點時,首先按照概率α\alphaα決定是繼續游走,還是停止這次游走并從A節點開始重新游走。如果決定繼續游走,那么就從當前節點指向的節點中按照均勻分布隨機選擇一個節點作為游走下次經過的節點。這樣,經過很多次隨機游走后,每個物品節點被訪問到的概率會收斂到一個數。最終的推薦列表中物品的權重就是物品節點的訪問概率。
雖然算法可以通過隨機游走進行比較好的理論解釋,但該算法在時間復雜度上有明顯的缺點。因為在為每個用戶進行推薦時,都需要在整個用戶物品二分圖上進行迭代,直到整個圖上的每個頂點的PR值收斂。這一過程的時間復雜度非常高,不僅無法在線提供實時推薦,甚至離線生成推薦結果也很耗時。
總結
以上是生活随笔為你收集整理的协同过滤—基于图的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 协同过滤——基于模型的算法
- 下一篇: 频率概率与贝叶斯概率