1. 程式人生 > >推薦系統之使用者行為分析

推薦系統之使用者行為分析

使用者行為介紹

基於使用者行為的推薦,在學術界名為協同過濾演算法。

協同過濾就是指使用者可以齊心協力,通過不斷地和網站互動,使 自己的推薦列表能夠不斷過濾掉自己不感興趣的物品,從而越來越滿足自己的需求。

使用者行為在個性化推薦系統中一般分兩種——顯性反饋行為(explicit feedback)和隱性反饋 行為(implicit feedback)。

  • 顯性反饋行為包括使用者明確表示對物品喜好的行為:主要方式就是評分和喜歡/不喜歡;

  • 隱性反饋行為指的是那些不能明確反應使用者喜好的行為:最具代表性的隱性反饋行為就是頁面瀏覽行為;

640?wx_fmt=png&wxfrom=5&wx_lazy=1

反饋除了分為顯性和隱性外,還能分為正反饋、負反饋,舉例子如下:
640?wx_fmt=png&wxfrom=5&wx_lazy=1
網際網路中的使用者行為有很多種,比如瀏覽網頁、購買商品、評論、評分等。要用一個統一的 方式表示所有這些行為是比較困難的,下面是一個表示的可能:

0?wx_fmt=png

使用者行為分析

先定義兩個變數:

  • 使用者活躍度:使用者產生過行為的物品總數

  • 物品流行度:對物品產生過行為的使用者總數

而使用者活躍度和物品流行度的人數都符合Power Law,也稱為長尾分佈:0?wx_fmt=png

使用者活躍度和物品流行度的關係是:使用者越活躍,越傾向於瀏覽冷門的物品。

僅僅基於使用者行為資料設計的推薦演算法一般稱為協同過濾演算法。 學術界對協同過濾演算法 進行了深入研究,提出了很多方法,比如基於鄰域的方法( neighborhood-based )、隱語義模型 ( latent factor model)、基於圖的隨機遊走演算法(random walk on graph)等。

基於鄰域的演算法

基於領域的方法中,主要包括兩大類:

  • 基於使用者的協同過濾演算法,這種演算法給使用者推薦和他興趣相似的其他使用者喜歡的物品。

  • 基於物品的協同過濾演算法,這種演算法給使用者推薦和他之前喜歡的物品相似的物品。

基於使用者的協同過濾演算法

基於使用者的協同過濾演算法主要包括兩個步驟: 

(1) 找到和目標使用者興趣相似的使用者集合。  
(2) 找到這個集合中的使用者喜歡的,且目標使用者沒有聽說過的物品推薦給目標使用者。

0?wx_fmt=png

在第一步上計算相似度上,具體演算法大概有幾種:歐幾里得距離,皮爾遜相關係數,Cosine 相似度,Tanimoto 係數。不同相似度衡量方法對於結果會有不同的影響。

基於物品的協同過濾演算法

基於item的協同過濾,通過使用者對不同item的評分來評測 item 之間的相似性,基於item 之間的相似性做出推薦,簡單來講就是:給使用者推薦和他之前喜歡的物品相似的物品。 

0?wx_fmt=png

UserCF和ItemCF的綜合比較

0?wx_fmt=png
對於電子商務,使用者數量一般大大超過商品數量,此時Item CF的計算複雜度較低。

在非社交網路的網站中,內容內在的聯絡是很重要的推薦原則,它比基於相似使用者的推薦原則更加有效。比如在購書網站上,當你看一本書的時候,推薦引擎 會給你推薦相關的書籍,這個推薦的重要性進進超過了網站首頁對該使用者的綜合推薦。可以看到,在這種情況下,Item CF 的推薦成為了引導使用者瀏覓的重要手段。基於物品的協同 過濾演算法,是目前電子商務採用最廣泛的推薦演算法。

在社交網路站點中,User CF 是一個更丌錯的選擇,User CF 加上社會網路資訊,可 以增加使用者對推薦解釋的信服程度。

隱語義模型(LFM)

隱語義模型最早在文字挖掘領域被提出,用於找到文字的隱含語義。相關的 名詞有LSI、pLSA、LDA和Topic Model。

LFM源於對SVD(奇異值分解)方法的改進,傳統SVD是線性代數典型問題,但由於計算量太大,實際上只是適用於規模很小的系統,Simon Funk改迚SVD(Funk-SVD),後來被稱為Latent Factor Model。

LFM假設了一個隱含的變數,使用者興趣,看下面的矩陣分解:
0?wx_fmt=png
R 矩陣是 user-item 矩陣,矩陣值 Rij 表示的是 user i 對 item j 的興趣度,對於其中缺失的值,我們可以先給一個平均值。 LFM 演算法從資料集中抽取出若隱變數,作為 user 和 item 之間連線的橋樑,將 R 矩陣表示為 P 矩陣和 Q 矩陣相乘。其中 P 矩陣是 user-topic 矩陣,矩陣值 Pij 表示的是 user i 對 topic j 的興趣度;Q 矩陣式 topic-item 矩陣,矩陣值 Qij 表示的是 item j 在 topic i 中的權重。

上面這個過程就是一個svd的過程,但是當矩陣太大的時候,svd分解會太慢,於是就有了下面的方法:
0?wx_fmt=png
將矩陣分解轉換為一個機器學習問題,我們通過梯度下降的方法去預估Rij,先求導:
0?wx_fmt=png
後更新:
0?wx_fmt=png
上面的演算法的超引數有:

  • 隱特徵的個數F;

  • 學習速率alpha;

  • 正則化引數lambda;

還有一個沒講到的是,對於Rij,我們現在只有正樣本,即user-item中有的我們算Rij=1,我們要去獲取負樣本,Rij=0的值,負樣在選擇上秉持的原則是:

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

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

此處選擇採用熱門商品的原因是:對於冷門的物 品,使用者可能是壓根沒在網站中發現這個物品,所以談不上是否感興趣。

總結

本文首先介紹了使用者行為的基本概念,介紹了顯性反饋行為和隱性反饋行為,以及正反饋和負反饋,接著介紹了兩大類推薦演算法:基於領域的演算法和隱語義模型,下面一篇會通過Surprise庫來用今天介紹的演算法來解決一些實際問題。

參考

使用 LFM(Latent factor model)隱語義模型進行 Top-N 推薦(http://blog.csdn.net/harryhuang1990/article/details/9924377
推薦系統實踐

出處:https://www.zybuluo.com/zhuanxu/note/985025

版權申明:內容來源網路,版權歸原創者所有。除非無法確認,我們都會標明作者及出處,如有侵權煩請告知,我們會立即刪除並表示歉意。謝謝。

-END-640?wx_fmt=jpeg

架構文摘

ID:ArchDigest

網際網路應用架構丨架構技術丨大型網站丨大資料丨機器學習

640?wx_fmt=jpeg

更多精彩文章,請點選下方:閱讀原文