1. 程式人生 > >推薦系統-基於隱語義模型(LFM)

推薦系統-基於隱語義模型(LFM)

在上一篇部落格,我們大致講解了《推薦系統實踐》中基於鄰域的演算法和程式碼實現,在這一篇部落格,我們繼續講解基於隱語義模型(Latent Factor Model)的推薦系統。

隱語義模型是近幾年推薦系統領域最為熱門的研究話題,它的核心思想是通過隱含特徵(Latent factor)聯絡使用者興趣和物品。
隱語義模型需要解決三個問題:
1 如何給物品進行分類
2 如何確定使用者對哪些類的物品感興趣以及感興趣的程度
3 對於一個給定的類,選擇哪些屬於這個類的物品推薦給使用者,以及如何確定物品在一個類中的權重?

隱含語義分析技術,基於使用者歷史資料,採取基於使用者行為統計的自動聚類,較好的實現了對隱因子的挖掘。

推薦系統的使用者行為分為顯性反饋和隱性反饋。隱性反饋中只有正樣本,滅有負樣本。論文’ One-Class Collaborative Filtering’中對這個問題進行了輸入的探討。在我們的演算法實現中,採用的是隨機取樣法。經過取樣之後,得到使用者-物品集K={(u,i)},其中,如果(u,i)是正樣本,則rui=1,否則rui=0。則目標函式如下:

C=(u,i)K(ruipTuqi)2+λ||pu||22+λ||qi||22
假設隱因子個數為F個,則可以重寫為
C=(u,i)K(ruif=1Fpufqif)2+λ||pu||22+λ||qi||22
其中λ||pu
||22+λ||qi||22
是正則化項。要最小化上面的損失函式,可以利用隨機梯度下降法。上面的目標函式對pufqif分別偏導數,得到
CpufCqif=2(u,i)K(ruif=1Fpufqif)qif+2λpuf=2(u,i)K(ruif=1Fpufqif)puf+2λqif
然後,根據根據梯度下降法,迭代公式為
pufqif:=puf+α((u,i)K(ruif=1Fpufqif)

相關推薦

推薦系統-基於隱語模型(LFM)

在上一篇部落格,我們大致講解了《推薦系統實踐》中基於鄰域的演算法和程式碼實現,在這一篇部落格,我們繼續講解基於隱語義模型(Latent Factor Model)的推薦系統。 隱語義模型是近幾年推薦系統領域最為熱門的研究話題,它的核心思想是通過隱含特徵(Lat

基於隱語模型推薦系統

如何根據上邊兩位豆瓣使用者的圖書列表做出推薦? 傳統的推薦方法 UserCF,首先需要找到和他們看了同樣書的其他使用者,然後給他們推薦那些使用者喜歡的其他書。 ItemCF,需要給他們推薦和他們已經看的書相似的書。 基於隱語義模型 通過矩陣分解建立

隱語模型LFM

1、概述   該演算法的理論基礎是運用矩陣分解,把使用者評分矩陣R分解為兩個低維矩陣,然後用這兩個低維矩陣去估計目標使用者對專案的評分。   傳統的協同過濾演算法是利用使用者的歷史行為,來預測使用者對目標使用者的評分。需要在整個使用者空間上去尋找最近鄰居。隨著電子商務的不斷髮展,使

【知識發現】隱語模型LFM演算法python實現(二)

http://blog.csdn.net/fjssharpsword/article/details/78015956 基於該篇文章中的程式碼優化,主要是在生成負樣例上提高執行速度,程式碼參考如下: # -*- coding: utf-8 -*- ''' Created o

【知識發現】隱語模型LFM演算法python實現(三)

http://blog.csdn.net/fjssharpsword/article/details/78257126 基於上篇再優化。 1、回顧LFM原理,可以更好地理解程式碼 對於一個給定的使用者行為資料集(資料集包含的是所有的user, 所有的item,以及每個us

項亮《推薦系統實踐》——使用LFM隱語模型進行Top-N推薦

使用LFM(Latent factor model)隱語義模型進行Top-N推薦 最近在拜讀項亮博士的《推薦系統實踐》,系統的學習一下推薦系統的相關知識。今天學習了其中的隱語義模型在Top-N推薦中的應用,在此做一個總結。 隱語義模型LFM和

學習筆記(十二):推薦系統-隱語模型

#程式碼摘自唐宇迪《推薦系統》視訊課程,資料集來自http://pan.baidu.com/s/1eS5VZ8Y中的“ml-1m"資料 from collections import deque from six import next import readers import tensor

從零開始學推薦系統二:隱語模型

2. 隱語義模型 隱語義模型又可稱為LFM(latent factor model),它從誕生到今天產生了很多著名的模型和方法,其中和該技術相關且耳熟能詳的名詞有pLSA、 LDA、隱含類別模型(latent class model)、隱含主題模型(latent topic model)、矩陣分解(matr

推薦系統學習筆記之三 LFM (Latent Factor Model) 隱因子模型 + SVD (singular value decomposition) 奇異值分解

Low Rank Matrix Factorization低階矩陣分解 在上一篇筆記之二裡面說到我們有五部電影,以及四位使用者,每個使用者對電影的評分如下,?表示未評分。 Movies\User User 1 User 2 User 3

ML之RS:基於使用者的CF+LFM實現的推薦系統(基於相關度較高的使用者實現電影推薦)

#ML之RS:基於CF和LFM實現的推薦系統 import numpy as np import pandas as pd import matplotlib.pyplot as plt import time import warnings wa

推薦系統——基於降維的近鄰協同

降維方法能夠同時提高近鄰方法的質量和效率。尤其是在稀疏矩陣中,即當兩個使用者共同評價過的物品很少,也能夠計算其低維潛在向量之間的距離。由於降維能夠根據潛在因子提供稠密的低維表示。因此,這種模型被稱為潛在因子模型。包括: (1)建立資料的降維表示可以基於行的潛在

Java推薦系統-基於使用者的最近鄰協同過濾演算法

基於使用者的最近鄰演算法(User-Based Neighbor Algorithms),是一種非概率性的協同過濾演算法,也是推薦系統中最最古老,最著名的演算法,我們稱那些興趣相似的使用者為鄰居,如果使用者n相似於使用者u,我們就說n是u的一個鄰居。起初演算法,對於未知目標的預測是根據該使用者的

推薦系統-基於鄰域的演算法

最近在看項亮的《推薦系統實踐》,文章只有只有程式碼片段,沒有完整的程式碼。所以在原有程式碼之上,根據書籍介紹的內容,還原了部分程式碼。 UserCF演算法(基於使用者的協同過濾演算法): 令N(u)表示使用者u的正反饋的物品集合,令N(v)表示使用者v的正反

機器學習->推薦系統->基於圖的推薦演算法(PersonalRank)

本博文將介紹PersonalRank演算法,以及該演算法在推薦系統上的應用。 將使用者行為資料用二分圖表示,例如使用者資料是由一系列的二元組組成,其中每個元組(u,i)表示使用者u對物品i產生過行為。 將個性化推薦放在二分圖模型中,那麼給使用者u推薦物品

基於模型融合的推薦系統實現(3):模型融合

基本思路很簡單,最小二乘法就好了: 我們假設兩個演算法得到的結果權重分別是a,b利用最小二乘法和我們分出來的第二部分資料就可以獲取a,b使得誤差最小。其實最小二乘法就是求一個廣義的逆即可。最後的RMSE比起單一的模型有所提高,變成了(0.86~~~~) import numpy

基於模型融合的推薦系統實現(2):迭代式SVD分解

SVD演算法的原理網路上也有很多,不再細說了,關鍵是我們得到的資料是不完整的資料,所以要算SVD就必須做一次矩陣補全。補全的方式有很多,這裡推薦使用均值補全的方法(用每一行均值和每一列均值的平均來代替空白處),然後可以計算SVD,作PCA分析,然後就可以得到預測結果。 但是我們這裡有

基於模型融合的推薦系統實現(1):基於SGD的PMF

(1)PMF演算法 PMF的基本的思路,就是定義兩個基本的引數W,U,然後對於任意一個組合(u,m),利用 Wi∗Uj W^i*U^j,來獲取預測值。這些基本的演算法思路網上很多,就不細說了。簡單說一下程式 [0]:一開始我們要將訓練資料劃分為3部分,第一部

機器學習-推薦系統基於深度學習的混合協同過濾模型

  近些年,深度學習在語音識別、影象處理、自然語言處理等領域都取得了很大的突破與成就。相對來說,深度學習在推薦系統領域的研究與應用還處於早期階段。 攜程在深度學習與推薦系統結合的領域也進行了相關的研究與應用,並在國際人工智慧頂級會議AAAI 2017上發表了相應的研究成果《A Hy

推薦系統實踐》 程式實現 ——2.6 基於圖的模型

PersonalRank演算法 在基於圖的模型中,給使用者A進行個性化推薦,實際是計算使用者A對所有物品的感興趣程度。 在PersonalRank演算法中,不區分使用者和商品,所以計算使用者A對所有物品的感興趣程度,即計算除使用者A外的所有節點B,C,a,b,

資料科學個人筆記:推薦系統推薦演算法(基於內容+標籤+半監督學習模型

一、基於內容的模型 (一)推薦系統冷啟動問題 使用者冷啟動:給新使用者推薦 物品冷啟動:新物品被推薦 系統冷啟動:為新開發的網站(還沒有使用者和使用者行為,只有一些物品資訊)設計推薦系統 冷啟動問題的一些解決方案:1.推薦熱門;2.用註冊資訊進行粗粒度的個性化;3.