當前位置:吉日网官网 - 油畫收藏 - 利用奇異值分解實現協同過濾推薦算法

利用奇異值分解實現協同過濾推薦算法

奇異值分解。

它是壹種廣泛應用於機器學習領域的算法。它不僅可以用於降維算法中的特征分解,還可以用於推薦系統、自然語言處理等領域。

優點:簡化數據,去除噪聲,改善算法結果。

缺點:數據的轉換可能難以理解。

應用領域:推薦引擎(協同過濾、相似度計算)、圖像壓縮等。

SVD的定義:如果求矩陣A的n個特征值λ 1 ≤λ 2 ≤λ n以及這n個特征值對應的特征向量{w1,w2,...wn},如果這n個特征向量是線性無關的,那麽矩陣A可以由下式的特征分解來表示:A = Wσ w?1,其中w是這n個特征向量形成的n×n維矩陣,σ是以這n個特征值為主對角線的n×n維矩陣。壹般我們會將W的這n個特征向量標準化,即滿足||wi||2=1,或者wiTwi=1。此時W的n個特征向量為標準正交基,滿WTW=I,即WT=W?1,也就是說w是酉矩陣。對於特征分解,矩陣A必須是方陣。那麽如果a不是方陣,就用SVD。

矩陣A的SVD為:a = u σ vt,其中u為m×m矩陣,σ為m×n矩陣,除主對角線上的元素外全為零,主對角線上的每個元素稱為奇異值,V為n×n矩陣。u和v都是酉矩陣,即滿足UTU = I和VTV = I

對於奇異值,類似於我們特征分解中的特征值,在奇異值矩陣中由大到小排列,奇異值的約簡特別快。很多情況下,前10%甚至1%奇異值之和占所有奇異值之和的99%以上。換句話說,我們也可以用最大的k個奇異值和對應的左右奇異向量來近似描述矩陣。

因此,奇異值分解也是降維的有力工具,可以用奇異值分解來逼近矩陣,從中獲取主要特征。通過保留矩陣80%~90%的能量,可以得到重用的特征,去除噪聲。

推薦系統是利用電子商務網站為客戶提供商品信息和建議,幫助用戶決定購買什麽商品,模擬銷售人員幫助客戶完成購買過程。

主要有以下推薦算法:

基於內容的推薦(使用自然語言處理)、協同過濾(主流)、基於規則的推薦(基於大多數用戶點擊、大多數用戶瀏覽等。)、混合推薦(類似於集成算法、投票決策)、基於人口統計信息的推薦(基於用戶基本信息)。

協同過濾推薦分為三種。第壹種是基於用戶的協同過濾(用戶需要在線尋找用戶之間的相似關系),第二種是基於項目的協同過濾(基於項目的協同過濾可以離線尋找項目之間的相似關系),第三種是基於模型的協同過濾(用戶和項目,主流)。

通常,在推薦系統中,數據通常用用戶-項目矩陣來表示。用戶對他們接觸過的物品進行評分,分數表明他們對這些物品的喜歡程度。分數越高,他們越喜歡這些項目。但是這個矩陣往往是稀疏的,空白的項目是用戶還沒有接觸過的項目。推薦系統的任務就是從中選出壹部分推薦給用戶。

對於這個用戶-項目矩陣,利用已有的稀疏數據來預測那些空白項目和數據之間的評分關系,找到評分最高的項目推薦給用戶。

基於模型的具體方法有:

關聯算法協同過濾(Apriori算法,FP樹算法)

帶聚類算法的協同過濾(用於基於用戶或基於模型、Kmeans、DBSCAN)

帶分類算法的協同過濾(設置評分閾值,高於推薦,低於不推薦,logistic回歸和樸素貝葉斯,很有解釋力)

使用回歸算法(嶺回歸、回歸樹)的協同過濾

帶矩陣分解的協同過濾(因為傳統的奇異值分解SVD要求矩陣必須是稠密的,沒有缺失數據,而用戶商品評分矩陣是典型的稀疏矩陣,主要是SVD的壹些變種,比如FunkSVD,BiasSVD,SVD++。這些算法與傳統SVD的最大區別在於,不再要求矩陣分解成u σ vt的形式,而是改成兩個低秩矩陣PTQ的乘積形式。)

神經網絡協同過濾(極限玻爾茲曼機RBM)

Linalg已經在Python的numpy中實現了SVD。

  • 上一篇:幾十塊錢的玉通常是使用什麽材料做的?
  • 下一篇:化石是怎麽形成的呢
  • copyright 2024吉日网官网