天天看點

RS chap2:利用使用者行為資料

一.使用者行為資料簡介

  1.使用者行為在個性化推薦系統中分為兩種:

      (1)顯式回報行為:包括使用者明确表示對物品喜好的行為。

      (2)隐式回報行為:不能明确反應使用者喜好的行為。

      (3)顯式回報行為和隐式回報行為資料比較 

RS chap2:利用使用者行為資料

      (4)回報方向:

        正回報:使用者喜歡該物品;負回報:使用者不喜歡該物品

      (5)使用者資料分為顯性回報和隐形回報

      (6)使用者行為的統一表示  

RS chap2:利用使用者行為資料

      (7)比較有代表性的資料集有以下的幾個:

        無上下文資訊的隐性回報資料集:每一條行為記錄僅僅包含使用者的ID和物品ID

        無上下文資訊的顯性回報資料集:每一條記錄包含使用者ID、物品ID以及使用者對物品的評分

        有上下文資訊的隐性回報資料集:包含使用者ID、物品ID以及使用者對物品産生行為時的時間戳

        有上下文資訊的顯性回報資料集,每一條記錄包含使用者ID,物品ID,使用者對物品的評分和評分行為發生的時間戳。

二、使用者行為分析:

  1.使用者活躍度和物品流行度分布。

    (1)長尾分布:

RS chap2:利用使用者行為資料

、   (2)

RS chap2:利用使用者行為資料

:對k個物品産生過行為的使用者數;

RS chap2:利用使用者行為資料

:被k個物品産生過行為的物品數,這裡兩個值都滿足長尾分布:

    

RS chap2:利用使用者行為資料

    (3)下圖展示了物品流行度分布曲線,橫坐标是是物品的流行度K,縱坐标是流行度為K的物品總數。物品流行度是指對物品産生過行為的使用者總數。

    

RS chap2:利用使用者行為資料

    不管是物品流行度還是使用者的活躍度,都近似于長尾分布

  2.使用者活躍度和物品流行度的關系

    (1)協同過濾算法:僅僅基于使用者行為資料設計的推薦算法稱為協同過濾算法。

    (2)基于領域的方法包含兩種算法:基于使用者的協同過濾算法;基于物品的協同過濾算法

     (3)實驗設計和算法測評

三、實驗設計和算法評測:

  1.評測推薦系統的方法:(1)離線實驗、使用者調查、線上實驗

  2.本節介紹離線實驗評測提到的算法。

  3.資料集:

    (1)本節研究隐回報資料集中的TopN推薦問題,是以忽略資料集中的評分記錄,topN的任務時預測使用者會不會對某部電影評分,而不是預測使用者在準備對某部電影平的前提下會給電影評價多少分

  4.實驗設計:

    (1)将使用者行為資料集按照均勻分布随機分成m份(本章M=8),挑選一份為測試集,剩下的m-1份作為訓練集

    (2)在訓練集上建立使用者興趣模型,在測試集上對使用者行為進行測試,統計出相應的評測名額,為了保證評測名額并不是過拟合的結果,需要進行m次試驗,并且每次将資料随機分成不同的測試集。将m次試驗測出的評測名額的平均值作為最終的評測名額。

    (3)每次試驗選擇不同的k和相同的随機數種子,進行M此試驗就可以得到M個不同的測試集和訓練集,然後分别進行試驗

    (4)用M此試驗的平均值得到最後的測評名額是為了防止某次試驗的結果是過拟合的結果,但是如果資料集足夠大,模型足夠簡單,為了快速通過離線實驗初步的選擇算法,隻能進行一次試驗。

    (5)對使用者u推薦N個物品(Ru),令使用者u在測試集上喜歡的物品集合為T(u),然後通過準确率/召回率評測推薦算法的精度:

  

RS chap2:利用使用者行為資料

    (召回率:描述有多少比例的使用者-物品評分記錄包含在最終的推薦清單中)

  

RS chap2:利用使用者行為資料

   (精确率:描述最終的推薦清單中有多少比例是發生過的使用者-物品評分記錄)

  

RS chap2:利用使用者行為資料

(覆寫度:最終推薦清單中包含多大比例的物品,反應了推薦算法挖掘長尾的能力,覆寫率越高,說明推薦算法越能将長尾中的物品推薦給使用者)

  推薦的新穎度:推薦清單中的物品的平均流行度度量推薦結果的新穎度。如果推薦出的物品都很人們,說明推薦的新穎度很低,否則說明推薦度很新穎

四、基于鄰域的算法

   1.基于鄰域的算法可以分為兩個大類:(1)基于使用者的協同過濾算法;(2)基于物品的協同過濾算法。

  2.基于使用者的協同過濾算法:

    (1)基于使用者的協同過濾算法:在一個線上推薦系統中,當一個使用者A需要個性化推薦的時候,可以先找到和他有相似興趣的其他使用者,然後把那些使用者喜歡的、而使用者A沒有說過的物品推薦給A

    (2)基于使用者的協同過濾算法主要包括兩個步驟:

      (a)找到和目标使用者相似興趣的使用者集合。

      (b)找到這個集合中使用者喜歡的,而且目标使用者沒聽說過的物品推薦給目标使用者。

    (3)上述(a)中,關鍵是要計算兩個使用者的興趣相似度,系統過濾算法主要通過行為的相似度計算興趣的相似度:

      

RS chap2:利用使用者行為資料

      或者通過餘弦相似度來進行計算:

      

RS chap2:利用使用者行為資料

      利用餘弦相似度公式進行計算使用者A和使用者B的興趣相似度:

      

RS chap2:利用使用者行為資料

      同時可以計算出使用者A和使用者C、D的相似度

      

RS chap2:利用使用者行為資料

    (4)在得到使用者之間的興趣相似度之後,UserCF算法會給使用者推薦和他興趣最相似的K個使用者喜歡的物品。如下公式度量了UserCF算法中使用者u對物品i的感興趣程度:

    

RS chap2:利用使用者行為資料

    其中S(u,K)包含了和使用者u興趣最為接近的K個使用者,N(i)是對物品i有過行為的使用者的集合,Wuv是使用者u對使用者v的興趣相似度,rvi代表了使用者v對物品i的興趣,因為使用了單一行為的隐回報資料,是以rvi=1

RS chap2:利用使用者行為資料

  3.使用者相似度的改進。

     (1)根據使用者行為計算相似度:

    

RS chap2:利用使用者行為資料

    上式中,通過:

RS chap2:利用使用者行為資料

懲罰了使用者u和使用者v的共同興趣清單中人們物品對他們相似度的影響。UserCF-IIF算法在各項性能上都略優于UserCF。這說明在計算使用者興趣相似度的時候,物品流行程度對提升推薦結果的品質确實有幫助。

  4.基于物品的協同過濾算法

    (1)UserCF(基于使用者的協同過濾算法)缺點:

      随着網站使用者數量增大,計算使用者興趣相似度矩陣越來越困難,運算的時間複雜度和空間複雜度的增長和使用者數目的增長近似于平方關系;其次基于使用者的協同過濾算法很難對推薦結果做出解釋。

    (2)ItemCF(基于物品的協同過濾算法):給使用者推薦那些和他們之前喜歡的物品的相似物品。主要通過分析使用者的行為記錄來計算物品之間的相似度。

    (3)算法認為:物品A和物品B具有很大的相似度是因為喜歡物品A的使用者大都喜歡物品B。基基于物品的協同過濾算法可以利用使用者的曆史行為給推薦結果提供解釋  

    (4)基于物品的協同過濾算法主要分為兩步:

      計算物品之間的相似度

      根據物品的相似度和使用者的曆史行為給使用者推薦生成推薦清單

    (5)物品相似度計算公式:分母|N(i)|是喜歡物品i的使用者數,而分子|N(i)n N(j)|是同時喜歡物品i和物品j的使用者數,是以下面公式可以了解為喜歡物品i的使用者有多少比例的使用者也喜歡物品j,Customers Who Bought This Item Also Bought,從這句話就可以定義相似度:

        

RS chap2:利用使用者行為資料

      為了避免推薦出熱門的商品,可以用下面的公式進行計算:

      

RS chap2:利用使用者行為資料

      這個公式懲罰了物品j的權重,是以減輕了熱門物品和許多物品相似的可能性。從定義中看出,在協同過濾中兩個物品産生相似度是因為他們被很多使用者所喜歡,也就是說每個使用者通過他們的曆史興趣清單給物品貢獻相似度。

      在得到物品之間的相似度後,ItemCF通過下面公式計算使用者u對一個物品j的興趣:

      

RS chap2:利用使用者行為資料

        

      這裡N(u)是使用者喜歡的物品的集合,

RS chap2:利用使用者行為資料

是和物品j最相似的K個物品的集合,wji是物品j和物品i的相似度,rw是使用者u對物品i的興趣。和使用者曆史上感興趣的物品越相似的物品,越有可能在使用者推薦的清單中獲得較高的排名。

    (6)精度(準确率和召回率):可以看到ItemCF推薦結果精度也是不和K成正相關或者負相關的,是以選擇合适的K對獲得高精度非常重要

    (7)流行度。和UserCF不同,參數K對ItemCF推薦結果流行度的影響也不是完全正相關的。随着K的增加,結果流行度會逐漸提高,但當K增加到一定程度,流行度就不會再有明顯變化

    (8)覆寫度:K增加會降低系統覆寫率

    (9)使用者活躍度對物品相似度影響

    在協同過濾中,兩個物品産生相似度是因為他們共同出現在很多使用者的興趣清單中。換句話數,每個使用者的興趣清單都對物品相似度産生貢獻。

     (10)物品相似度的歸一化

  5.物品相似度的歸一化

    (1)如果将ItemCF的相似度矩陣按照最大值歸一化,可以提高推薦的準确率。如果得到了物品相似度矩陣w,那麼可以用如下公式得到歸一化之後的相似度矩陣w:

RS chap2:利用使用者行為資料

         歸一化不僅在于增加推薦的準确度,還可以提高推薦的覆寫率和多樣性。一般來書,物品總是屬于很多不同的類,每一類中物品聯系比較緊密。相似度的歸一化可以提高推薦的多樣性。一般來說,人們類物品相似度一般比較大,如果不進行歸一化,就會推薦比較熱門類裡面的物品,推薦的覆寫度比較低,相反如果進行相似度的歸一化,則可以提高推薦系統的覆寫率。

  6.UserCF和ItemCF的綜合比較

    (1)UserCF給使用者推薦那些和他們有共同興趣愛好的使用者喜歡的物品;ItemCF給使用者推薦那些和他們之前喜歡的物品的類似的物品。UserCF的推薦結果中着重反應和使用者興趣相似的小群體的熱點,更加社會化,反應了使用者所在的小型群體中物品的熱門程度;而ItemCF的推薦結果着重于維護使用者的曆史興趣,推薦更加個性化,反應了使用者自己的興趣傳承。

    (2)在新聞網站中,使用者的興趣不是特别細化,絕大多數使用者都喜歡看熱門的新聞。即使是個性

化,也是比較粗粒度的,比如有些使用者喜歡體育新聞,有些喜歡社會新聞,而特别細粒度的個性

化一般是不存在的。比方說,很少有使用者隻看某個話題的新聞,主要是因為這個話題不可能保證

每天都有新的消息,而這個使用者卻是每天都要看新聞的。是以,個性化新聞推薦更加強調抓住

新聞熱點,熱門程度和時效性是個性化新聞推薦的重點,而個性化相對于這兩點略顯次要。因

此,UserCF可以給使用者推薦和他有相似愛好的一群其他使用者今天都在看的新聞,這樣在抓住熱

點和時效性的同時,保證了一定程度的個性化。這是Digg在新聞推薦中使用UserCF的最重要

原因。

  UserCF适合用于新聞推薦的另一個原因是從技術角度考量的。因為作為一種物品,新聞的更

新非常快,每時每刻都有新内容出現,而ItemCF需要維護一張物品相關度的表,如果物品更新很

快,那麼這張表也需要很快更新,這在技術上很難實作。絕大多數物品相關度表都隻能做到一天

一次更新,這在新聞領域是不可以接受的。而UserCF隻需要使用者相似性表,雖然UserCF對于新

使用者也需要更新相似度表,但在新聞網站中,物品的更新速度遠遠快于新使用者的加入速度,而且

對于新使用者,完全可以給他推薦最熱門的新聞,是以UserCF顯然是利大于弊。

但是,在圖書、電子商務和電影網站,比如亞馬遜、豆瓣、Netflix中,ItemCF則能極大地發

揮優勢。首先,在這些網站中,使用者的興趣是比較固定和持久的。一個技術人員可能都是在購買

技術方面的書,而且他們對書的熱門程度并不是那麼敏感,事實上越是資深的技術人員,他們看

的書就越可能不熱門。此外,這些系統中的使用者大都不太需要流行度來輔助他們判斷一個物品的

好壞,而是可以通過自己熟悉領域的知識自己判斷物品的品質。是以,這些網站中個性化推薦的

任務是幫助使用者發現和他研究領域相關的物品。是以,ItemCF算法成為了這些網站的首選算法。

此外,這些網站的物品更新速度不會特别快,一天一次更新物品相似度矩陣對它們來說不會造成

太大的損失,是可以接受的。

  同時,從技術上考慮,UserCF需要維護一個使用者相似度的矩陣,而ItemCF需要維護一個物品

相似度矩陣。從存儲的角度說,如果使用者很多,那麼維護使用者興趣相似度矩陣需要很大的空間,

同理,如果物品很多,那麼維護物品相似度矩陣代價較大。

在早期的研究中,大部分研究人員都是讓少量的使用者對大量的物品進行評價,然後研究用

戶興趣的模式。那麼,對于他們來說,因為使用者很少,計算使用者興趣相似度是最快也是最簡單

的方法。但在實際的網際網路中,使用者數目往往非常龐大,而在圖書、電子商務網站中,物品的

數目則是比較少的。此外,物品的相似度相對于使用者的興趣一般比較穩定,是以使用ItemCF是

比較好的選擇。當然,新聞網站是個例外,在那兒,物品的相似度變化很快,物品數目龐大,

相反使用者興趣則相對固定(都是喜歡看熱門的),是以新聞網站的個性化推薦使用UserCF算法的

更多

  

RS chap2:利用使用者行為資料

    (3)哈利波特問題。

      ItemCF計算物品相似度的經典公式:

      

RS chap2:利用使用者行為資料

      如果j非常的熱門,那麼上面公式得

RS chap2:利用使用者行為資料

就會越來越接近

RS chap2:利用使用者行為資料

。盡管上面公式得分母已經考慮了j的流行度,但是在實際應用中,熱們的j仍然會獲得比較大的相似度。

      哈利波特問題有幾種解決辦法:

      第一種是對分母上加大對熱門物品的懲罰,比如采用下面的公式:

      

RS chap2:利用使用者行為資料

      這裡通過提高a就可以提高j

五、隐語義模型

  1.基礎算法

    (1)核心思想:通過隐含特征聯系使用者興趣和物品。

    (2)隐含語義分析技術采取基于使用者行為統計自動聚類。 

  2.LFM隐含語義分析技術在推薦系統中的應用。

    (1)LFM通過如下的公式計算使用者u對物品i的興趣:

      

RS chap2:利用使用者行為資料

      其中 

RS chap2:利用使用者行為資料

度量了使用者u的興趣和第k個隐類的關系,而

RS chap2:利用使用者行為資料

度量了第k個隐類和物品i之間的關系。

    (2)負樣本采樣時應該遵循下面的原則。

       對于每個使用者,要保證正負樣本的平衡(數目相似)

       對于每個使用者采樣負樣本時,要選取那些很熱門的,但是使用者卻沒有行為的物品。

       一般認為

    

  

      

    

    

  

    

   

轉載于:https://www.cnblogs.com/bigdata-stone/p/10334848.html