推薦系統實戰——冷啓動問題

一、冷啓動問題介紹

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

  • 用戶冷啓動:如何給新用戶做個性化推薦
  • 物品冷啓動:如何將新物品推薦給可能對其感興趣的用戶。在新聞網站等時效性很強的網站中非常重要。
  • 系統冷啓動:如何在一個新開發的網站上設計個性化推薦,從而在網站剛發佈時就讓用戶體驗到個性化推薦服務。沒有用戶,只有一些物品信息。

解決冷啓動問題方法概述:

  • 提供非個性化的推薦
  • 利用用戶註冊時提供的年齡、性別等數據做粗粒度的個性化。
  • 利用社交賬號登錄(需要用戶授權),導入用戶在社交網絡上的好友信息,然後給用戶推薦其好友喜歡的物品。
  • 要求用戶在登錄時對一些物品進行反饋,蒐集用戶對這些物品的興趣信息,然後給用戶推薦那些和這些物品相似的物品。
  • 對於新加入的物品,可以利用內容信息,將它們推薦給喜歡過和他們相似物品的用戶。(沒有購買記錄,如何判斷物品相似)
  • 推薦系統冷啓動時,引入專家的知識,通過一定的高效方式迅速建立起物品的相關度表。

     

二、用戶冷啓動

用戶註冊時附帶信息:

  • 人口統計學信息:包括用戶的年齡、性別、職業、民族、學歷和居住地;
  • 用戶興趣的描述:有一些網站會讓用戶用文字或用區域選擇來描述他們的興趣;
  • 從其他網站導入的用戶站外行爲數據:比如用戶通過豆瓣、新浪微博的賬號登錄,就可以在得到用戶同意的情況下獲取用戶在豆瓣或者新浪微博的一些行爲數據和社交網絡數據。

基於註冊信息的個性化推薦流程基本如下:

(1) 獲取用戶的註冊信息;

(2) 根據用戶的註冊信息對用戶分類;

(3) 給用戶推薦他所屬分類中用戶喜歡的物品;

(4) 若無法找到合適的物品,推薦熱門排行榜。

注:該方法中需要統計物品對分類的熱門程度,通過如下公式:

Pf,i = |N(i) U(f)| (期中N(i)是喜歡物品的用戶集合,U(f) 是具有某種特徵的用戶集合)

這種方法對熱門商品的熱門程度往往比較大,在分母中增加一項: |N(i) + α|

選擇合適的物品啓動用戶的興趣

解決用戶冷啓動問題的另一個方法是在新用戶第一次訪問推薦系統時,不立即給用戶展示推薦結果,而是給用戶提供一些物品,讓用戶反饋他們對這些物品的興趣,然後根據用戶反饋給提供個性化推薦。

一般來說,能夠用來啓動用戶興趣的物品需要具有以下特點:

(1)比較熱門。如果要讓用戶對一個物品進行反饋,前提是用戶知道這個物品是什麼東西;

(2) 具有代表性和區分性。啓動用戶興趣的物品不能是大衆化或老少咸宜的,因爲這樣的物品對用戶的興趣沒有區分性;

(3)啓動物品集合需要有多樣性。在冷啓動時,我們不知道用戶的興趣,而用戶興趣的可能性非常多,爲了匹配多樣的興趣,我們需要提供具有很高覆蓋率的啓動物品集合,這些物品能覆蓋幾乎所有主流的用戶興趣。

 

 

三、物品冷啓動

    物品冷啓動需要解決的問題是如何將新加入的物品推薦給對它感興趣的用戶,這時候可以通過物品之間的語義來計算其相似度,常用的算法有cos相似度和TF-IDF

物品冷啓動在新聞網站等時效性很強的網站中非常重要,因爲那些網站中時時刻刻都有新加入的物品,而且每個物品必須能夠在第一時間展現給用戶,否則經過一段時間後,物品的價值就大大降低了。

之前我們介紹了UserCF算法和ItemCF算法。UserCF算法並不對新物品很敏感,在很多網站中,推薦列表並不是給用戶展示物品的唯一列表。當一個用戶在某個地方發現了新加的物品並對其進行了反饋。通過UserCF算法給類似具有相同興趣的用戶推薦這個物品。這樣新加的物品就會源源不斷的擴散開來。

但是有些網站中推薦列表就是用戶獲取新加物品唯一的或者是主要途徑。這時就要解決第一推動力的問題。也即是第一個用戶在哪發現新加物品的問題。解決這個問題的最簡單的辦法就是將新加的物品隨機的展示給用戶,但是這樣做顯然並不個性化。因此可以考慮利用物品內容信息,將新物品投放給曾經喜歡過和他類似內容的其他物品的用戶,這類似於ItemCF思想。不過這是先通過ItemCF找到一個可能對物品感興趣的用戶,然後再通過USerCF推薦給與此用戶興趣類似的其他用戶。

如果用ItemCF算法解決物品冷啓動問題,就有點麻煩了,因爲ItemCF通過用戶行爲對物品進行相似度的計算,形成物品相似度矩陣。再根據這個相似度矩陣把物品推薦給喜歡過類似這個物品的用戶。這個物品相似度矩陣是線下計算好,線上放進內存。從而新物品不會出現在物品相似度矩陣中。解決的辦法是頻繁的更新相似度矩陣。這是一件非常耗時的事情。爲此我們只能通過物品內容來計算物品相似度矩陣。

這裏涉及到物品相似度的計算,和ItemCf中物品相似度計算不同的是,對於新物品這裏並沒有用戶數據,所以一般通過物品內容計算相似度。

一般來說,物品的內容可以用向量空間模型表示,該模型會把物品表示成一個關鍵詞向量。對於物品d,他的內容表示成一個關鍵詞向量如下: 
 
其中e是關鍵詞,w是這個詞對於權重,其中w的計算公式就是著名的TF-IDF公式,該公式的計算見後文中具體介紹。 

在給定物品內容的關鍵詞向量後,物品內容響度可以通過向量之間的餘弦相似度計算

《推薦系統實戰》中具體比較了內容過濾算法和協同過濾算法在推薦系統中的實際效果(有準確率、召回率、覆蓋率等數據)。

 

補充: TF-IDF計算方法

主要思想是:如果某個詞或短語在一篇文章中出現的頻率TF高,並且在其他文章中很少出現,則認爲此詞或者短語具有很好的類別區分能力,適合用來分類。

TFIDF實際上是:

TF詞頻(Term Frequency):表示詞條在文檔d中出現的頻率

IDF逆向文件頻率(Inverse Document Frequency):如果包含詞條t的文檔越少,也就是n越小,IDF越大,則說明詞條t具有很好的類別區分能力。

因爲不同的文章長度不一樣,需要進行標準化:

IDF計算公式:

TF-IDF值:

參考:

https://baike.baidu.com/item/tf-idf/8816134?fr=aladdin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章