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