3.1 冷啟動問題簡介
- 問題分類:
- 用戶冷啟動
- 物品冷啟動
- 系統冷啟動
常用解決方案:
- 利用熱銷榜進行推薦
- 利用用戶注冊時的年齡、性別等數據做粗粒度的個性化
- 利用用戶社交數據為其推薦好友喜歡的物品
- 要求用戶在登錄時對一些物品進行反饋,收集用戶對這些物品的興趣信息並推薦相似產品
- 對於新加入的物品,可以利用內容信息,將它們推薦給喜歡過和它們相似的物品的用戶
- 在系統冷啟動時,可以引入專家的知識,通過一定的高效方式迅速建立起物品的相關度表
3.2 利用用戶注冊信息
基於用戶注冊信息的推薦算法其核心問題是計算每種特征的用戶喜歡的物品。幫助用戶發現他們不容易發現的物品,而不是熱門物品。
基本流程:(1)獲取用戶注冊信息;(2)根據注冊信息對用戶分類;(3)給用戶推薦他所屬分類中用戶喜歡的物品。將推薦列表根據一定的權重相加,得到最終的推薦列表。
3.3 選擇合適的物品啟動用戶的興趣
在新用戶第一次訪問推薦系統時,不立即給用戶展示推薦結果,而是提供一些物品,根據用戶的反饋來提供個性化推薦。
選擇啟動物品需要具備的特點:
- 比較熱門:讓用戶對一個物品進行反饋,前提是用戶知道這個物品是什么;
- 具有代表性和區分性: 可以區分用戶個性化興趣,而不是大眾化,老少皆宜的;
- 啟動物品集合需要有多樣性:用戶興趣的可能性非常多,需要提供具有很高覆蓋率的啟動物品集合
- 利用決策樹選擇啟動物品集合:P87
一般可以使用決策樹算法構建一個這樣的選擇啟動物品集合的系統。給定一群用戶,用這群用戶對物品評分的方差度量這群用戶興趣的一致程度。如果方差很大,說明這一群用戶的興趣不太一致,反之則說明這群用戶的興趣比較一致。通過如下方式度量一個物品的區分度D(i):
另一種理解:計算的這個方差,相當於決策樹里計算的信息熵,
三項分別還是喜歡、不喜歡、不知道商品i的用戶對其他物品評分的方差。決策樹算法首先會從所有用戶中找到具有最高區分度的物品i,然后將用戶分成3類。然后在每類用戶中再找到最具區分度的物品,然后將每一類用戶又各自分為3類,也就是將總用戶分成9類,然后這樣繼續下去,最終可以通過對一系列物品的看法將用戶進行分類。而在冷啟動時,我們從根節點開始詢問用戶對該節點物品的看法,然后根據用戶的選擇將用戶放到不同的分枝,直到進入最后的葉子節點,此時我們就已經對用戶的興趣有了比較清楚的了解,從而可以開始對用戶進行比較准確地個性化推薦。
3.4 利用物品的內容信息
對於物品的冷啟動問題,一般是利用物品的文本信息,計算物品的詞向量,然后根據詞向量計算物品的相似性,將其加入相似性矩陣。通過物品內容(文本)計算物品相似性,是基於內容的過濾算法。
UserCF算法對物品冷啟動問題不太敏感,因為總有一些用戶通過某些途徑對新物品進行反饋,這樣就可以推薦給興趣相投的其他用戶,從而推廣物品;另外,解決第一推動力還可以考慮利用物品的內容信息,將新物品投給曾經喜歡過和它內容相似的其他物品的用戶。
ItemCF算法對物品冷啟動問題很敏感,物品相似度表的更新跟不上,此時只能利用物品的內容信息計算物品相關表,基於內容的相關表計算相對簡單,能頻繁更新解決物品冷啟動問題。
總結:如果用戶的行為強烈受到某一內容的影響,那么內容過濾算法的性能最優,可以超過協同過濾算法,但如果需要豐富的領域知識的場景,協同過濾會明顯高於內容過濾算法。
LDA算法:屬於話題模型,生成模型,基本思想是:
3.5 發揮專家的作用
針對系統冷啟動問題,一般使用專家進行樣本標注。例如:Jinni采用本人工、半自動的方法。