推荐系统笔记:基于潜在因子模型的协同过滤(latent factor model)
1 基本思想
????????基本思想是利用評分矩陣行和列的高度相關性。數據具有內在的豐富關聯性,并且生成的數據矩陣通常可以通過各條目均有數值的低秩矩陣很好地近似。
????????潛在因子模型被認為是推薦系統中的最新技術。這些模型利用眾所周知的降維方法來填充缺失的條目。
????????降維方法通常用于數據分析的其他領域,以在少量維度中表示底層數據。
????????降維方法的基本思想是旋轉坐標軸,從而消除維度之間的成對相關性。
????????降維方法的關鍵思想是可以從不完整的數據矩陣中穩健地估計維度減少的、旋轉的和完全指定的表示。一旦獲得了完全指定的表示,就可以將其旋轉回原始軸系以獲得完全指定的表示 。
????????矩陣分解方法提供了一種巧妙的方法,可以同時利用行和列的相關性來估計整個數據矩陣。
2 從幾何角度理解LFM
? ? ? ? 從集合角度理解就是找到一組潛在向量,組成一個超平面,該超平面可以很好地代表觀測點。
?? ? ? ? 假設一個電影評級場景,其中三個項目對應于尼祿、角斗士和斯巴達克斯這三部電影。
????????為便于討論,假設評級是連續值,位于 [?1, 1] 范圍內。假設評分是正相關的,那么評分的 3 維散點圖可能大致沿一維線排列,如圖 3.6 所示
?????????由于數據大多沿一維線排列,這意味著去除噪聲變化后原始數據矩陣的秩約為 1。例如,圖 3.6 的秩 1 近似值將是穿過數據中心并與拉長的數據分布對齊的一維線(或潛在向量)。
????????諸如主成分分析 (PCA) 和(以均值為中心的)奇異值分解 (SVD) 等降維方法通常將數據沿這條線的投影表示為近似值。
????????當 m × n 評級矩陣的秩為 p (p遠小于min{m, n} 時)(去除噪聲變化后),數據可以近似表示在 p 維超平面上。
????????在這種情況下,只要 p 維超平面已知,通常可以使用少至 p 個指定條目來穩健地估計用戶的缺失評分。例如,在圖 3.6 的情況下,只需指定一個評級即可確定其他兩個評級,因為評級矩陣在去除噪聲后的秩僅為 1。
????????例如,如果斯巴達克斯的評分固定為 0.5,那么尼祿和角斗士的評分可以估計為一維潛在向量與軸平行超平面的交集,這個超平面如圖 3.6 所示。
???????實際上,不需要條目完整的數據矩陣來估計主要的潛在向量。估計具有缺失數據的矩陣的潛在向量的能力是潛在因子方法成功的關鍵。
????????所有這些方法的基本思想是找到一組潛在向量,其中數據點(代表用戶對每個item都有評分)與這些潛在向量張成的超平面的平均平方距離盡可能小。
????????因此,我們必須使用部分指定的數據集來恢復數據近似所在的低維超平面。通過這樣做,我們可以隱式地捕獲數據相關結構中的潛在冗余,并一次性重建所有缺失值。正是這些隱含冗余的知識幫助我們預測矩陣中缺失的條目。值得注意的是,如果數據沒有任何相關性或冗余性,那么潛在因子模型將根本不起作用。
?3 從代數角度理解LFM
? ? ? ? 我們先考慮所有條目都有數值的一個m×n 維矩陣R,它的秩為k,k遠小于min{m,n}。那么R可以分解為m×k維的矩陣U和n×k維的矩陣V的乘積(U和V的每一列可以分別看作矩陣R行向量空間和列向量空間的基,另一個矩陣可以看作是這組基張成矩陣R時的系數)
????????
? ? ? ? 即使R的秩大于k,R也可以用秩為k的U和V矩陣近似?,此時誤差是殘差矩陣的Frobenius 范數||||^2
? ? ? ? 那么矩陣分解的含義是什么,它對行和列高度相關的矩陣的影響是什么?
?????????我們考慮一個這樣的矩陣分解案例,7個用戶6部電影,打分的可選集合為{1,-1,0}。
????????六部電影從語義上有兩個分類:浪漫類和歷史類,其中電影Cleopatra兩個分類都屬于。????????
????????每個用戶對喜歡電影的類型都有自己的偏好(比如用戶1喜歡歷史類,用戶4都喜歡)
? ? ? ? ?我們可以看到此時矩陣R的某些行/某些列 有著很高的關聯度。(比如列向量的電影中,屬于歷史類的電影之間,屬于浪漫類的電影之間【但不同類的電影之間可能就沒有多少關聯度,這個也很直觀】)
? ? ? ? 于是打分矩陣R可以分解成矩陣U和矩陣V的乘積形式。這兩個矩陣都有著很明顯的語義信息:
? ? ? ? U矩陣表示了不同用戶對于兩類電影的偏好程度;V矩陣表示了不同電影屬于的類別
? ? ? ? 與此同時我們也計算量殘差矩陣,可以看到只有?Cleopatra這一列對應的條目非零。這也很好理解:Cleopatra屬于兩個類別,和前面的單獨浪漫類電影/單獨歷史類電影不一樣。
?????????在這個例子中,矩陣 R 中的每個條目都具有數值,因此從缺失值估計的角度來看,分解并不是特別有用。
????????當矩陣 有缺失條目時,該方法的關鍵有用性就出現了,但仍然可以分別穩健地估計潛在因子 U 和 V 的所有條目。這仍然可以從稀疏的數據中得到。 一旦矩陣 U 和 V 被估計出來,整個評分矩陣就可以一次被估計出來。
?????????需要指出的是,U,V的行/列 通常在語義上是不可解釋的,做不到像上述3.7一樣。 潛在向量通??赡苁钦岛拓撝档娜我庀蛄?#xff0c;并且很難對其進行語義解釋。 然而,它確實代表了評分矩陣中的主要相關聯模式。
??????某些形式的分解,例如非負矩陣分解,會被明確設計為 為潛在向量實現更大的可解釋性。
????????各種矩陣分解方法之間的主要區別在于對 U 和 V 施加的約束(例如,潛在向量的正交性或非負性)和目標函數的性質(例如,最小化 Frobenius 范數或最大化似然 生成模型中的估計)。 這些差異對矩陣分解模型在各種現實場景中的可用性起著關鍵作用。
總結
以上是生活随笔為你收集整理的推荐系统笔记:基于潜在因子模型的协同过滤(latent factor model)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐系统笔记:基于模型的协同过滤
- 下一篇: pytorch笔记:torch.nn.T