1. 程式人生 > >推薦系統之冷啟動問題

推薦系統之冷啟動問題

tail 高效 排行榜 音樂 復雜 技術 一個 ora tle

轉自http://blog.csdn.net/zhangjunjie789/article/details/51379127

如何在沒有大量用戶數據的情況下設計個性化推薦系統並且讓用戶對推薦結果滿意從而願意使用推薦系統,就是冷啟動問題。

冷啟動問題主要分為三類:
(1) 用戶冷啟動:如何給新用戶做個性化推薦的問題,新用戶剛使用網站的時候,系統並沒有他的行為數據;
(2) 物品冷啟動:解決如何將新的物品推薦給可能對它感興趣的用戶;
(3) 系統冷啟動:如何在新開發網站設計個性化推薦系統,此時網站上用戶很少,用戶行為也少,只有一些商品的信息。

冷啟動的主要解決方案:
(1) 提供非個性化推薦:如熱門排行榜推薦,等到用戶數據收集到一定程度時,切換到個性化推薦;


用戶的註冊信息分為3種:
  1)人口統計學信息:年齡、性別、職業、民族、學歷和居住地等;典型代表是Bruce Krulwich開發的Lifestyle Finder
  2)用戶興趣的描述:有些網站要求用戶填寫;
  3)從其他網站導入的用戶站外行為數據。
有兩個推薦系統數據集包含了人口統計學信息:BookCrossing數據集和Lastfm數據集。
利用的用戶人口統計學特征越多,越能準確地預測用戶興趣。
(2) 利用用戶註冊信息:如性別,年齡,做粗粒度的個性化;
基於註冊信息的個性化推薦流程:
  1) 獲取用戶的註冊信息;
  2) 根據用戶的註冊信息對用戶分類;
  3) 給用戶推薦他所屬分類中用戶喜歡的物品。
基於用戶註冊信息的推薦算法其核心問題是計算每種特征的用戶喜歡的物品。也就是說,對於每種特征f,計算具有這種特征的用戶對各個物品的喜好程度 技術分享
.
技術分享 可以簡單定義為物品i在具有f的特征的用戶的熱門程度:
技術分享
其中, 技術分享是喜歡物品i的用戶集合, 技術分享是具有特征f的用戶集合。
但是在這種定義下,熱門的物品會在各種特征的用戶中都具有比較高的權重,給用戶推薦熱門物品並不是推薦系統的主要任務,推薦系統應該幫助用戶發現他們不容易發現的物品。因此,我們可以把 技術分享定義為喜歡物品i的用戶中具有特征f的比例:

這裏分母中的 技術分享的目的是解決數據稀疏的問題。如果有一個用戶只被1個用戶喜歡過,而這個用戶剛好有特征f,那麽p(f,i)=1.但是這種情況並沒有統計意義。我們為分母加上一個比較大的數字,可以避免對這樣的物品產生比較大的權重。
(3) 利用用戶的社交網絡賬號登錄(需要用戶進行授權),導入用戶在社交網站上的好友信息,然後給用戶推薦其好友喜歡的物品;


(4) 選擇合適的物品啟動用戶的興趣:要求用戶在登錄時對一些物品進行反饋,收集用戶對這些物品的興趣信息,然後給用戶推薦那些和這些物品相似的物品;
一般來說,能夠用來啟動用戶興趣的物品需要具有以下特點:
  1) 比較熱門:用戶需要知道這個物品是什麽東西,才會做出準確地反饋;
  2) 具有代表性和區分性;
  3) 啟動物品集合需要有多樣性:因為用戶的興趣的可能性可能非常多。
  Nadav Golbandi在論文中探討了一個基於決策樹算法的選擇啟動物品集合的系統。
(5) 利用物品的內容信息:對於新加入的物品,可以利用內容信息,將他們推薦給喜歡過和它們相似的物品的用戶;
物品冷啟動對諸如新聞網站等時效性很強的網站的推薦非常重要,因為那些網站中時時刻刻都有新加入的物品,而且每個物品必須能夠在第一時間展現給用戶,否則經過一段時間後,物品的價值就大大降低了。
UCF對物品冷啟動問題並不非常敏感。只要有一小部分人能夠發現並喜歡新的物品,UCF就能將這些物品擴散到更多的用戶中。但是對於主要靠推薦列表獲取信息的用戶,解決第一推動力(即第一個用戶)的最簡單的方法是將新的物品隨機展示給用戶,也可以考慮將新物品先投放給曾經喜歡過和它內容相似的其它物品的用戶。
對於ICF來說,物品冷啟動就是一個比較嚴重的問題了,因為ICF的原理是給用戶推薦與他之前喜歡的物品相似的物品。需要頻繁更新物品相似度表,由於用戶行為日誌非常龐大,通過行為日誌是計算不出包含新物品的相關矩陣的,只有利用物品的內容信息計算物品相關表,並且頻繁地更新相關表。
一般來說,物品的內容可以通過內容向量空間模型表示,該模型會將物品表示成一個關鍵詞向量。
對於物品d,它的內容表示成一個關鍵詞向量如下:
技術分享
其中, 技術分享是關鍵詞, 技術分享是關鍵詞對應的權重,如果物品是文本,我們可以用信息檢索領域著名的TF-IDF公式計算詞的權重:
技術分享
如果物品是電影,我們可以根據演員在劇中的重要程度賦予他們權重。
向量空間模型的優點是簡單,缺點是丟失了一些信息,比如關鍵詞之間的關系信息。
在給定物品內容的關鍵詞向量後,物品的內容相似度可以通過向量之間的余弦相似度計算:
技術分享
但是這種算法的時間復雜度很高,假設有N個物品,每個物品平均有m個實體表示,那麽這個算法的復雜度是 技術分享,我們可以首先建立關鍵詞-物品的倒排表加速這一計算過程。
內容過濾算法ContentItemKNN忽視用戶行為,物品的流行度以及用戶行為中所包含的規律,所以在一些數據集上它的精度較低,但是新穎度卻比較高。
所數據集中有比較強的內容特征,算法的各項指標會比較好。
向量空間模型在內容數據豐富時可以獲得比較好的效果。
代表性的話題模型有LDA。話題模型的基本思想是,一個人在寫一篇文檔的時候,會首先想這篇文章要討論哪些話題,然後思考這些話題應該用什麽詞描述,從而用詞寫一篇文章。因此,文章和詞之間是通過話題聯系的。LDA有三種元素:文檔、話題和詞語,每一篇文檔都會表現為詞的集合,這稱為詞袋模型(bag of words)。每個詞在一篇文章中屬於一個話題。令D為文檔集合,D[i]是第i篇文檔。W[i][j]是第i篇文檔中的第j個詞。Z[i][j]是第i篇文檔中第j個詞屬於的話題。LDA的計算包括初始化和叠代兩部分。LDA可以很好地將詞組組合成不同的話題。在使用LDA計算物品的內容相似度時間,我們可以先計算物品在話題上的分布,然後利用話題的分布計算物品的相似度。比如,兩個物品的話題分布相似,我們則認為兩個物品具有較高的相似度,反之則認為兩個物品的相似度較低。計算分布的相似度可以利用KL散度:
技術分享
其中,p和q是兩個分布,KL散度越大說明分布的相似性越低。
6) 發揮專家的作用:在系統冷啟動時,可以引入專家的知識,通過一定的高效方式迅速建立起物品的相關度表。
代表系統是個性化網絡電臺Pandora和電影推薦網站Jinni。
音樂之間的相似度是比較難計算的,技術門檻比較高,Pandora雇傭了一些懂計算機的音樂人進行了一項稱為音樂基因的項目,他們使用了400維的向量。
Jinni通過專家系統和機器學習相結合的方法進行電影基因工程以解決系統冷啟動問題。

推薦系統之冷啟動問題