TimeSVD 動態協同過濾推薦演算法

2021-07-12 02:39:37 字數 2017 閱讀 4312

動態鄰域模型

靜態隱因子模型 r^

ui=q

tipu

為了學習向量pu

和qi 我們對下面的正則化平方差公式最小化:

minq∗,

p∗∑(

u,i)

∈k(r

ui−q

tipu

)2+λ

(∥qi

∥2+∥

pu∥2

) 常數λ

控制了正則化的程度,通常由交叉驗證得到。最小化通常通過隨機梯度下降或者交替最小二乘方法得到。

不過有些評分與使用者和產品的互動無關:有些使用者偏向於給產品打高分,有些產品會收到高分。我們將這類不涉及使用者產品互動的影響建模為baseline predictors。令

μ 為整體平均評分。對未知評分ru

i 的基準**評分表示為bu

i : bu

i=μ+

bu+b

i 將基準**器與隱因子模型結合我們得到 r^

ui=μ

+bu+

bi+q

tipu

考慮隱反饋資訊的隱因子模型 r^

ui=μ

+bu+

bi+q

ti(p

u+|r

(u)|

−12∑

j∈r(

u)yj

) 其中集合r(

u)包含了使用者

u 評價過的產品。

模型的解釋:這樣的模型對於提供了很多隱式反饋(|r

(u)|

較高)的使用者,使得它們的**偏離基準**。這對於推薦系統是乙個較好的嘗試,因為我們總是希望對那些提供了較多反饋使用者從而可以較好建模的使用者冒更大的風險。對於這類使用者我們我們願意提供不常見的推薦。而對於提供較少使用者,我們更希望提供安全的**,在基準值附近。

將評分分解成不同的部分在這裡很方便,它是的我們可以分別對待不同的時間視角:(1)使用者的評分偏差bu

(評分尺度)隨時間變化;(2)產品的評分偏差bi

(產品流行度)隨時間變化;(3)使用者偏好pu

(興趣)隨時間變化。不過,我們認為產品特徵qi

與人不同不會隨時間改變。我們接下來首先通過基準**方法詳細討論時間效應。

基準**方法主要有兩個時間效應:產品評分偏差(產品流行性)的時間效應;使用者評分偏差(評分尺度)的時間效應。於是基準方法模型變為 bu

i(t)

=μ+b

u(t)

+bi(

t)函式bu

i(t)

表示使用者

u 對產品i在

t (這一天)的評分。在對上述模型建模時,我們需要考慮到時間變化是漸變型還是突然型。在電影評分的例子中,我們認為電影的喜愛度不太可能在一天之內有太大波動;但是我們發現使用者可能在一天之內有較大變化。那麼在對使用者偏差建模時就要求更精細的時間解析度,而對產品建模時可以採用較低的時間解析度。

首先對於產品偏差,由於我們不需要太精細的解析度,所以可以將產品偏差分割為基於時間的bin。在每個時間區間對應的bin我們使用乙個不同的產品偏差。如何將時間軸分割為時間bin應該在得到更精細的解析度(更小的bin)和在每個bin中有足夠的評分之間進行權衡。在timesvd++**中每個bin為連續十周的資料。因此在整個資料集上大概有30個bins。

t對應乙個bi

n(t)

(在我們的資料中是乙個1到30的數),這樣電影偏差就被分割為乙個靜態部分和乙個時間變化的部分: bi

(t)=

bi+b

i,bi

n(t)

對於使用者偏差來說,情況就要更複雜了。如何對使用者的時間區間進行不同粒度的劃分是首要要考慮的問題。

第乙個模型選擇是非常簡單,使用乙個線性函式刻畫了使用者評分偏差的可能的逐漸的漂移。我們首先引入一些新的符號,對每個使用者,我們將其評分的日期的均值表示為tu

。現在,如果使用者在第

t 天評價了一部電影,那麼這個評分相關的時間偏差定義為: de

vu(t

)=si

gn(t

−tu)

⋅|t−

tu|β

協同過濾推薦演算法 協同過濾推薦演算法總結

推薦演算法具有非常多的應用場景和商業價值,因此對推薦演算法值得好好研究。推薦演算法種類很多,但是目前應用最廣泛的應該是協同過濾類別的推薦演算法,本文就對協同過濾類別的推薦演算法做乙個概括總結,後續也會對一些典型的協同過濾推薦演算法做原理總結。推薦演算法概述 1 基於內容的推薦 這一類一般依賴於自然語...

協同過濾推薦演算法 推薦演算法 基於協同過濾CF

前邊我們已經介紹了推薦演算法裡的基於內容的推薦演算法cb,今天我們來介紹一下基於協同的推薦演算法collaboration filtering cf 協同過濾是乙個利用群體智慧型的乙個演算法,舉乙個簡單的例子,如果放假了你想去北京玩幾天,但是不知道北京都有哪些好玩的,你會怎麼做?你可能會上網查一下的...

推薦系統 協同過濾

這是我學習推薦系統的筆記,主要參考的是51cto的一系列文章和人們郵電出版的 推薦系統實踐 首先說一下什麼是協同過濾。假如某寶要向你推薦一些商品,當然這些商品不是隨隨便便推薦的,推給你了就是引誘你去買,咱能賺到錢。那麼什麼樣的商品你有可能去買呢?系統或演算法怎麼找到這些商品呢?協同過濾就是幹這個的。...