一、書籍介紹
《推薦系統(tǒng)實踐》項亮編著,陳義、王益審校,人民郵電出版社。
本篇讀書筆記主要針對該書的第二章內(nèi)容。
二、結(jié)構(gòu)概覽
三、主要內(nèi)容
推薦結(jié)果是否好,取決于我們是否深入用戶。我們可以通過用戶留下的文字和行為了解用戶興趣和需求。有兩種方法了解用戶興趣,第一,用戶在注冊的時候主動告訴我們喜歡什么,但是存在一定的缺點a)是否能理解用戶的描述語言;b)興趣的不斷變化無法知曉;c)用戶是否可以準(zhǔn)確描述自己的興趣。第二,利用算法自動挖掘用戶行為數(shù)據(jù),推測出用戶喜歡什么。
用戶行為本身是蘊含一定規(guī)律的,算法就是要通過計算機去發(fā)現(xiàn)這些數(shù)據(jù)中蘊含著的規(guī)律,從而為產(chǎn)品設(shè)計提供指導(dǎo),提高用戶體驗。
1.?用戶行為數(shù)據(jù)簡介
用戶行為一般在個性化推薦系統(tǒng)中分為兩種:
1)顯性反饋行為:明確表示對物品喜好(如有些網(wǎng)站的評分、喜歡不喜歡等)
2)隱性反饋行為:明確表示對物品喜好(如頁面瀏覽行為)-數(shù)據(jù)量大
按照反饋方向還可以分為正反饋和負(fù)反饋。在隱性反饋行為中較難區(qū)分正負(fù)反饋。
2.用戶行為分析
通過去了解用戶行為數(shù)據(jù)的規(guī)律去對算法設(shè)計起指導(dǎo)作用。
(1)用戶活躍度和物品流行度的分布
用戶行為數(shù)據(jù)同時也滿足長尾分布的規(guī)律,即物品流行度和用戶活躍度均滿足長尾分布。(物品流行度指對物品產(chǎn)生過行為的用戶總數(shù)。用戶活躍度指用戶產(chǎn)生過行為的物品總數(shù)。)用公式表達(dá)即:
(2)用戶活躍度和物品流行度的關(guān)系
a)新用戶會傾向于閱讀熱門物品。用戶越活躍,越傾向于瀏覽冷門物品。
b)基于用戶行為數(shù)據(jù)設(shè)計的推薦算法一般稱為協(xié)同過濾算法。后面將詳細(xì)介紹各種算法。
3. 基于鄰域的算法
(1)基于用戶的協(xié)同過濾算法(UserCF)
-基礎(chǔ)算法
定義:當(dāng)一個用戶A需要個性化推薦時,可以先找到和他相似興趣的其他用戶,然后把那些用戶喜歡的、而用戶A沒有聽說過的物品推薦給A。
步驟:1??找到和目標(biāo)用戶興趣相似的用戶集合;2??找到這個集合中用戶喜歡的,且目標(biāo)用戶沒有聽說過的物品推薦給目標(biāo)用戶。
公式表達(dá)如下:
1??計算用戶興趣相似度
代碼實現(xiàn):可以先計算出交集不為0的用戶集合。
2??推薦和他興趣相似的K個用戶喜歡的物品
*K個和他興趣相似用戶的選取是UserCF算法中的重要參數(shù)。K值和準(zhǔn)確率召回率無線性關(guān)系,選擇合適的K對于獲得高的推薦系統(tǒng)精度比較重要。K越大,推薦結(jié)果越熱門。K越大覆蓋率越低。
-用戶相似度計算的改進(jìn)
問題1:對熱門物品,很多用戶都可能會有相似行為(比如可能所有人都會買新華字典,但不代表他們興趣相似)
解決方案:懲罰用戶共同興趣列表中熱門物品對他們相似度的影響。
(2)基于物品的協(xié)同過濾算法(ItemCF)
典型運用:亞馬遜、YouTube
-基礎(chǔ)算法
定義:給用戶推薦那些和他們之前喜歡的物品相似的物品。(注意:ItemCF算法并不利用物品的內(nèi)容屬性計算物品之間的相似度,它主要通過分析用戶的行為計算物品之間的相似度。例如物品A和B有很大相似度是因為喜歡物品A的用戶大都也喜歡物品相似度)
步驟:1??計算物品之間的相似度。2??根據(jù)物品的相似度和用戶的歷史行為給用戶生成推薦列表。
步驟1??公式:
公式優(yōu)化:任何物品都會和熱門的物品有很大的相似度。
實現(xiàn):建立用戶-物品倒排表——C矩陣——余弦相似度矩陣
步驟2??
公式:
*精度也是和K無線性關(guān)系,隨著K增加,結(jié)果流行度會逐漸提高,但當(dāng)K增加到一定程度,流行度就不會再有明顯變化。K增加會降低系統(tǒng)的覆蓋率。
-用戶活躍度對物品相似度的影響
問題:有些用戶活躍并不能代表自身的興趣(如開書店的買了很多書來賣)
解決方案(ItemCF-IUF):
-物品相似度歸一化
提高推薦的準(zhǔn)確率,提高推薦覆蓋率和多樣性。
(3)UserCF和ItemCF的綜合比較
-UserCF的推薦結(jié)果著重于反映和用戶興趣相似的群體的熱點,更社會化;而ItemCF的推薦結(jié)果著重于維系用戶的歷史興趣,更個性化。
-思考:為什么一般新聞網(wǎng)站一般都使用UserCF?
第一,新聞用戶興趣個性化程度一般比較粗粒度,比較注重時效性和熱門程度,推薦和他相似愛好的用戶閱讀的新聞,即保證了時效性又有一定的個性化。
第二,新聞更新非常快,如果使用ItemCF沒需要維護(hù)一張更新很快的物品相關(guān)度的表,技術(shù)實現(xiàn)有困難。UserCF只需維護(hù)用戶相似性表。
-哈利波特問題
問題:《哈利波特》太熱門,幾乎購買任何一本書的人都會購買。
解決方案:加大對熱門物品的懲罰。(但仍舊無法完全解決問題。
問題的本質(zhì):兩個不同領(lǐng)域的最熱門物品之間往往具有比較高的相似度。解決方案:引入物品的內(nèi)容數(shù)據(jù)結(jié)局這個問題。
4. 隱語義模型
a)基礎(chǔ)算法
定義:從數(shù)據(jù)出發(fā),基于用戶行為統(tǒng)計自動聚類。(主要針對推薦方法對物品興趣進(jìn)行分類,對于用戶先得到他的興趣分類,然后從分類中選他可能喜歡的物品)
LFM公式:
針對隱性反饋數(shù)據(jù),負(fù)樣本采樣遵循的原則:對于每個用戶,保證正負(fù)樣本均衡(數(shù)目相似);對每個用戶采樣負(fù)樣本時,要選取那些很熱門但是用戶沒有行為的。
LFM模型的缺點:很難實現(xiàn)實時的推薦,一般只能每天訓(xùn)練一次。
b)LFM與基于領(lǐng)域方法的比較。
-理論基礎(chǔ):LFM學(xué)習(xí)方法;基于領(lǐng)域的方法統(tǒng)計方案;
-離線計算的空間復(fù)雜度:LFM優(yōu)于基于領(lǐng)域的方法,節(jié)省內(nèi)存。
-離線計算的時間復(fù)雜度:一般而言,LFM的時間復(fù)雜度高于基于領(lǐng)域的方法,但實際上沒有質(zhì)的區(qū)別。
-在線實時推薦:LFM基本可以認(rèn)為無法在線實時推薦,基于領(lǐng)域的方法可以。
-推薦解釋:ItemCF可以,LFM無法提供。
5.基于圖的模型
(1)用戶行為數(shù)據(jù)的二分圖表示
(2)基于圖的推薦算法
給用戶u推薦物品就轉(zhuǎn)化為度量用戶頂點和與頂點沒有直接相連的物品節(jié)點再圖上的相關(guān)性,相關(guān)性越高的物品推薦權(quán)重越高。
-相關(guān)性取決因素:
*兩個頂點之間的路經(jīng)數(shù);
*兩個頂點之間的路徑長度;
*兩個頂點之間的路徑經(jīng)過的頂點。
-PersonalRank算法:隨機游走。
-PersonalRank算法缺點:時間復(fù)雜度上。解決方案:減少迭代次數(shù);從矩陣論出發(fā),重新設(shè)計算法。
四、思考與總結(jié)
用戶行為數(shù)據(jù)是推薦算法的基礎(chǔ),在這個領(lǐng)域已經(jīng)有非常多的研究,對于應(yīng)該選擇那種類型的計算模型,我們應(yīng)該根據(jù)自身的產(chǎn)品的性質(zhì)進(jìn)行選擇,以目標(biāo)為導(dǎo)向,結(jié)合技術(shù)實現(xiàn)。