本節首先介紹各種不同的時間效應,然後研究如何將這些時間效應建模到推薦系統的模型中,最後通過實際資料集對比不同模型的效果。
1. 時間效應
時間資訊對使用者興趣的影響表現在以下幾個方面:使用者興趣是變化的;物品也是有生命週期的;季節效應。在給定時間資訊後,推薦系統從乙個靜態系統變成了乙個時變的系統,而使用者行為資料也變成了時間序列。包含時間資訊的使用者行為資料集由一系列三元組構成,其中每個三元組(u,i,t)代表了使用者u在時刻t對物品i產生過行為。
推薦系統每天推薦結果的變化程度被定義為推薦系統的時間多樣性。時間多樣性高的推薦系統中使用者會經常看到不同的推薦結果。提高推薦結果的時間多樣性需要分兩步解決:首先,需要保證推薦系統能夠在使用者有了新的行為後及時調整推薦結果,使推薦結果滿足使用者最近的興趣;其次,需要保證推薦系統在使用者沒有新的行為時也能夠經常變化一下結果,具有一定的時間多樣性。
2. 時間上下文推薦演算法
(1)最近最熱門
在沒有時間資訊的資料集中,我們可以給使用者推薦歷史上最熱門的物品。那麼在獲得使用者行為的時間資訊後,最簡單的非個性化推薦演算法就是給使用者推薦最近最熱門的物品了。給定時間t,物品i最近的流行度ni(t)可以定義為如下,其中,α是時間衰減引數。
(2)時間上下文相關的itemcf演算法
在得到時間資訊(使用者對物品產生行為的時間)後,我們可以通過如下公式改進相似度計算和修正**公式。
上面的sim(i,j)中引入了和時間有關的衰減項f(|t(ui)-t(uj)|),其中 t(ui) 是使用者u對物品i產生行為的時間。f函式的含義是,使用者對物品i和物品j產生行為的時間越遠,則f函式值越小。其中衰減函式的選擇如上。alpha是時間衰減引數,它的取值在不同系統中不同。如果乙個系統使用者興趣變化很快,就應該取比較大的alpha,反之需要取比較小的alpha 。p(u,i)中,t0是當前時間,公式表明,t(uj)越靠近 t0,和物品j相似的物品就會在使用者u的推薦列表中獲得越高的排名。beta是時間衰減引數,需要根據不同的資料集選擇合適的值。上面的推薦演算法可以通過如下**實現。
def itemsimilarity(train, alpha):
#calculate co-rated users between items
c = dict()
n = dict()
for u, items in train.items():
for i,tui in items.items():
n[i] += 1
for j,tuj in items.items():
if i == j:
continue
c[i][j] += 1 / (1 + alpha * abs(tui - tuj))
#calculate finial similarity matrix w
w = dict()
for i,related_items in c.items():
for j, cij in related_items.items():
w[u][v] = cij / math.sqrt(n[i] * n[j])
return w
def recommendation(train, user_id, w, k, t0):
rank = dict()
ru = train[user_id]
for i,pi in ru.items():
for j, wj in sorted(w[i].items(), key=itemgetter(1), reverse=true)[0:k]:
if j,tuj in ru.items():
continue
rank[j] += pi * wj / (1 + alpha * (t0 - tuj))
return rank
(3)時間上下文相關的usercf演算法usercf通過如下w(uv)計算使用者u和使用者v的興趣相似度,其中n(u)是使用者u喜歡的物品集合,n(v)是使用者v喜歡的物品集合。在得到使用者相似度後,usercf通過p(u,i)**使用者對物品的興趣:
考慮到時間資訊後,w(uv)和p(u,i)改進為如下。使用者u和使用者v對物品i產生行為的時間越遠,那麼這兩個使用者的興趣相似度就會越小。
利用上下文資訊推薦
上下文包括使用者訪問推薦系統的時間 地點 心情等。一 時間上下文資訊 1.時間效應簡介 使用者興趣是變化的。因為使用者自身原因發生的變化。如小時候 長大了 工作時間增加等。若要準確使用者現在的興趣,應更關注使用者最近的行為。這樣只針對漸變的使用者興趣,對突變的使用者興趣很難起作用 物品有生命週期。如...
上下文感知推薦系統
在推薦系統領域,人們往往只關注 使用者 專案 之間的關聯關係,而較少考慮它們所處的上下文環境 如時間 位置 周圍人員 情緒 活動狀態 網路條件等等 但是在許多應用場景下,僅僅依靠 使用者 專案 二元關係並不能生成有效推薦。例如,有的使用者更喜歡在 早上 而不是 中午 被推薦合適的新聞資訊 有的使用者...
推薦系統讀書筆記 五 利用上下文資訊
上下文包括使用者訪問推薦系統的時間 地點 心情等。5.1 時間上下文資訊 5.1.1 時間效應簡介 時間資訊對使用者興趣的影響表現在以下幾個方面 1.使用者興趣是變化 關注最近行為 2.物品也是有生命週期的 3.季節效應 5.1.2 時間效應舉例 5.1.3 系統時間特性的分析 包含時間資訊的使用者...