推薦系統讀書筆記(五)利用上下文信息


  上下文包括用戶訪問推薦系統的時間、地點、心情等。

5.1 時間上下文信息

5.1.1 時間效應簡介

  時間信息對用戶興趣的影響表現在以下幾個方面:

  1.用戶興趣是變化:關注最近行為

  2.物品也是有生命周期的:

  3.季節效應

5.1.2 時間效應舉例

5.1.3 系統時間特性的分析

  包含時間信息的用戶行為數據集由一系列三元組構成,其中每個三元組(u,i,t)代表了用戶u在時刻t對物品i產生過行為。在給定數據集后,可以通過統計如下信息研究系統的時間特性。

  (1).數據集每天獨立用戶數的增長情況:快遞增長期、平穩期、衰落期。

  (2).系統的物品變化情況:

  (3).用戶訪問情況:統計用戶的平均活躍天數,也可以統計相隔T天來系統的用戶的重合度。

  1.數據集的選擇:Delicious

  2.物品的生存周期和系統的時效性

  可以用如下指票度量網站中物品的生命周期:

  (1)物品平均在線天數:如果一個物品在某天被至少一個用戶產生過行為,就定義該物品在這一天在線。因此,我們可以通過物品平均在線天數度量一類物品的生存周期。考慮到物品的平均在線天數和物品的流行度應該成正經,因此給定一個數據集,我們首先按物品按照流行度分成20份,然后計算每一類物品的平均在線天數。

  (2)相隔T天系統物品流行度向量的平均相似度:取系統中相鄰T天的兩天,分別計算這兩天的物品流行度,從而得到兩個流行度向量。然后計算這兩個向量的余弦相似度,如果相似度大,說明系統的物品在相隔T天的時間內沒有發生大的變化,從而說明系統的時效性不強,物品的平均在線時間較長。相反,如果相似度很小,說明系統中的物品在相隔T天的時間內發生了很大的變化,從而說明系統的時效性很強,物品的平均在線時間很短。

5.1.4 推薦系統的實時性

  一個實時的推薦系統需要能夠實時響應用戶新的行為,讓推薦列表不斷變化,從而滿足用戶不斷變化的興趣。

  實現推薦系統的實時性除了對用戶行為的存取有實時性要求,還要求推薦算法本身具有實時性,而推薦算法本身的實時性意味着:

  1.實時推薦系統不能每天給所有用戶離線計算推薦結果,然后在線展示昨天計算出來的結果

  2.推薦算法需要平衡考慮用戶的近期行為和長期行為,既要讓推薦列表反應出用戶近期行為所體現的興趣變化,又不能讓推薦列表完全受用戶近期行為的影響,要保證推薦列表對用戶興趣預測的延續性。

5.1.5 推薦算法的時間多樣性

  時間多樣性高的推薦系統中用戶會經常看到不同的推薦結果。

  提高推薦結果的時間多樣性需要分兩步解決:首先,需要保證推薦系統能夠在用戶有了新的行為后及時調整推薦結果,使推薦結果滿足用戶最近的興趣;其次,需要保證推薦系統在用戶沒有新的行為時也能夠經常變化一下結果,具有一定的時間多樣性。

  對於第一步,又可以分成兩種情況進行分析。第一是從推薦系統的實時性角度分析。有些推薦系統會每天離線生成針對所有用戶的推薦結果,然后在線直接將這些結果展示給用戶。這種類型的系統顯然無法做到在用戶有了新行為后及時調整推薦結果。第二,即使是實時推薦系統,由於使用的算法不同,也具有不同的時間多樣性。

  如果用戶沒有行為,如何保證給用戶的推薦結果具有一定的時間多樣性呢:

  1.在生成推薦結果時加入一定的隨機性。比如從推薦列表前20個結果中隨機挑選10個結果展示給用戶,或者按照推薦物品的權重采樣10個結果展示給用戶。

  2.記錄用戶每天看到的推薦結果,然后在每天給用戶進行推薦時,對他前幾天看到過很多次的推薦結果進行適當地降權

  3.每天給用戶使用不同的推薦算法。可以設計很多種推薦算法,在每天用戶訪問推薦系統時隨機挑選一種算法給他進行推薦。

  注意:要先保證精度,在此基礎上適當地考慮時間多樣性。

5.1.6 時間上下文推薦算法

  1.最近最熱門:沒有信息的情況下先推薦歷史上最熱門的物品。在獲得用戶行為的時間信息后,最簡單的非個性化推薦算法就是給用戶推薦最近最熱門的物品了。給定時間T,物品i最近的流行度ni(T)可以定義為:

  

  alpha是時間衰減參數

  2.時間上下文相關的ItemCF算法

  ItemCF由兩個核心部分構成:

  (1)利用用戶行為離線計算物品之間的相似度

  (2)根據用戶的歷史行為和物品相似度矩陣,給用戶做在線個性化推薦

  時間信息在以上兩個核心部分中都有重要的應用,這體現在兩種時間效應上:

  (1)物品相似度:用戶在相隔很短的時間內喜歡的物品具有更高相似度。

  (2)在線推薦:用戶近期行為相比用戶很久之前的行為,更能體現用戶現在的興趣。因此在預測用戶現在的興趣時,應該加重用戶近期行為的權重,優先給用戶推薦那些和他近期喜歡的物品相似的物品。

  回顧一下前面提到的基於物品的協同過濾算法,它通過如下公式計算物品的相似度:

  

  而在給用戶u做推薦時,用戶u對物品i的興趣p(u,i)通過如下公式計算:

  

  在得到時間信息后,可以通過如下公式改進相似度計算:

  

  式中引入了和時間有關的衰減項f,其中tui是用戶u對物品i產生行為的時間。f函數含義是,用戶對物品i和物品j產生行為的時間越遠,則f函數越小。數學衰減函數很多,本節使用如下衰減函數:

  

  alpha是時間衰減參數,它的取值在不同系統中不同。如果一個系統用戶興趣變化很快,就應該取比較大的alpha,反之需要取比較小的alpha。

    除了考慮時間信息對相關表的影響,我們也應該考慮時間信息對預測公式的影響。一般來說,用戶現在的行為應該和用戶最近的行為關系更大。因此,通過如下方式修正預測公式:

  

  t0是當前時間,tuj越靠近t0,和物品j相似的物品就會在用戶u的推薦列表中獲得越高的排名。beta是時間衰減參數,需要根據不同的數據集選擇合適的值。

  3.時間上下文相關的UserCF算法

  UserCF:給用戶推薦和他興趣相似的其他用戶喜歡的物品。

  可以從以下兩方面利用時間信息改進UserCF算法

  (1)用戶興趣相似度:如果兩個用戶同時喜歡相同的物品,那么這兩個用戶應該有更大的興趣相似度。

  (2)相似興趣用戶的最近行為:應該給用戶推薦和他興趣相似的用戶最近喜歡的物品。

  UserCF通過如下公式計算用戶u和用戶v的興趣相似度:

  

  可以用如下方式考慮時間信息:

  

  上面公式的分子對於用戶u和用戶v共同喜歡的物品i增加了一個時間衰減因子。用戶u和用戶v對物品i產生行為的時間越遠,那么這兩個用戶的興趣相似度就會越小。

  在得到用戶相似度后,UserCF通過如下公式預測用戶對物品的興趣:

  

  其中,S(u,K)包含了和用戶u興趣最接近的K個用戶。如果用戶v對物品i產生過行為,那么rvi=1,否則rvi=0。

  如果考慮和用戶u興趣相似用戶的最近興趣,可以設計如下公式:

  

5.1.7 時間段圖模型

  時間段圖模型G(U,SU,I,SI,E,w,σ)也是一個二分圖。U是用戶節點集合,SU是用戶時間段節點集合。一個用戶時間段節點vut會和用戶u在時刻t喜歡的物品通過邊相連。I是物品節點集合,SI是物品時間段節點集合。一個物品時間段節點vit會和所有在時刻t喜歡物品i的用戶通過邊相連。E是邊集合,它包含了3種邊:(1)如果用戶u對物品i有過行為,存在邊(2)如果用戶u在t時刻對物品i有行為,存在兩條邊。w(e)定義了邊的權重,σ(e)定義了頂點的權重。

  定義完圖的結果后,最簡單的想法是可以利用前面提到的PersonalRank算法給用戶進行個性化推薦。但時間復雜度越高,因此提出一種路徑融合算法的方法,通過該算法來度量圖上兩個頂點的相關性。

  一般來說,圖上兩個相關性比較高的頂點一般具有如下特征:

  1.兩個頂點之間有很多路徑相連

  2.兩個頂點之間的路徑比較短

  3.兩個頂點之間的路徑不經過出度比較大的頂點

  因此,路徑融合算法首先提取出兩個頂點之間長度小於1個閾值的所有路徑,然后根據每條路徑經過的頂點給每條路徑賦予一定的權重,最后將兩個頂點之間所有路徑的權重之和作為兩個頂點的相關度。

  假設P={v1,v2...vn}是連接頂點v1和vn的一條路徑,這條路徑的權重Γ(P)取決於這路徑經過的所有頂點和邊:

  

  這里的out(v)是頂點v指向的頂點集合,|out(v)|就是出度,σ(vi)取值范圍(0,1]定義了頂點的權重,w(vi,vi+1)取值范圍(0,1]定義了邊的權重。上面的定義符合上面3條原則的后兩條。

  定義了一條路徑的權重后,就可以定義頂點之間的相關度。對於頂點v和v',令p(v,v',K)為這兩個頂點間距離小於K的所有路徑,那么這兩個頂點之間的相關度可以定義為:

  

  對於時間段圖模型,所有邊的權重都定義為1,而頂點的權重σ(v)定義如下:

  

  alpha和beta是兩個參數,控制了不同頂點的權重。

5.1.8 離線實驗

  1.實驗設置:得到三元組后,可以通過如下方式生成訓練集和測試集。對每一個用戶,將物品按照該用戶對物品的行為時間從早到晚排序,然后將用戶最后一個產生行為的物品作為測試集,並將這之前的用戶對物品的行為記錄作為訓練集。推薦算法將根據訓練集學習用戶興趣模型,給每個用戶推薦N個物品,並且利用准確率和召回率評測推薦算法的精度。本節將選擇不同的N進行10次實驗,並畫出最終的准確率和召回率曲線,通過該曲線來比較不同算法的性能。

    

    

5.2 地點上下文信息(未完成)

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM