1. 程式人生 > >推薦決策 對比 user-based 和 item-based 推薦演算法

推薦決策 對比 user-based 和 item-based 推薦演算法

最近在看項亮同學的推薦系統實踐,整理一下思路。

推薦系統,整體上有三種方式:
  • user->user->item, 推薦與其相同興趣的使用者喜歡的item,user-based
  • user->item->item, 推薦與其喜歡的item相似的item,item-based
  • user->item-feature->item,抽取使用者喜歡item的特徵,推薦具備這些特徵的item, model-based
針對前兩個,目前絕大多數採用的都是item-based,比如amazon等,談到item-base優於user-based,但是類似digg等還是採用user-based,效果也還不錯,所以不能哪個一定優於另一個,只是使用的場景不一樣。針對這兩個方法作對比:user-based更多的考慮相同愛好的使用者興趣,推薦這些使用者喜歡/訪問過的item,和使用者當前的行為關係不大,更多的是使用者的這些朋友訪問過什麼,屬於圈子的社會化行為,推薦的item是相同愛好使用者最喜歡的item,所以具備熱點效應,也就是推薦圈子使用者訪問最多的;同時也可以將圈子使用者剛剛訪問item推薦出來,具備很強的實時性,尤其是新引入的熱點,可以很快的擴散,也能解決new-item的冷啟動問題。item-based 主要考慮使用者歷史興趣,推薦與使用者歷史喜歡item相似的item,和使用者的當前行為有很大的關係,推薦的item與使用者當前click的相似性,使用者是可以理解的,也就是所謂的可解釋性很強,推薦的item也不是熱門的,很有可能是冷門(長尾),但是和使用者的興趣相關,要求使用者在這個網站上的興趣是長久和固定的,推薦的意義在於幫助使用者找到和其興趣相關的item。推薦item和是哪個使用者關係不大,所以比較好的解決新加入使用者的問題。所以在做推薦決策時,主要考慮如下問題:1.使用者是否對該領域有固定長期的興趣2.使用者的規模3.item的規模4.新增使用者的速度5.新增item的速度6.實時性要求我認為第一個應該是最主要的要求,體現使用者對個性化要求的程度:比如 類似指閱等新聞熱點網站,以及類似youku這樣使用者製造item的網站,使用者感興趣的是發生了什麼,大家都在看什麼,而對細分領域要求不高,使用者看”端午煙臺轎車撞自行車隊"視訊,同時也想看“youku我是傳奇 斷臂哥勵志歌唱”視訊,而使用者歷史上可能在看“甄嬛轉”或者“筷子兄弟的父親”,沒有很明顯的主題,也無法反映使用者的興趣,使用者當前的行為,也不對接下里推薦立刻生效,使用者只是實時的對熱門或者其他人觀看的東西感興趣,同時item新增的速度也比較快,可以很快的讓很多使用者觀察到,而使用者增速慢,這時候user-based就是很好的選擇。但是,類似douban,amazon這樣的網站,使用者當前的行為對推薦的item有很大的影響,比如使用者在douban 我讀下面看了一本推薦系統實踐,能夠說明使用者對資料探勘或者推薦領域有興趣,那麼推薦“recommend system handbook”是一個不錯的選擇,同時解釋性也很強,推薦系統需要做的只是幫組使用者發現該領域的知識,使用者之前不知道的,滿足使用者需求。而事實上,分析使用者的行為,使用者行為focus在這些領域,具有連續性。一般來說,這些網站item的增加速度不快,比如新書/電影等不可能頻繁增加。而 新增的使用者只要點選一個item後就可以形成推薦,所以,item規模不大,或者小於使用者規模,同時item變化速度也不快時,item-based是最佳選擇。先整理這麼多,不一定正確,慢慢感覺,隨時修改