推薦系統實踐 0x0a 冷啟動問題

NoMornings發表於2020-12-02

什麼是冷啟動問題

如何在沒有大量使用者資料的情況下設計個性化推薦系統並且讓使用者對推薦結果滿意從而願意使用推薦系統,就是冷啟動問題。冷啟動問題主要分為三類:

  • 使用者冷啟動
  • 物品冷啟動
  • 系統冷啟動
    下面我們將分別介紹這三種冷啟動情況。

使用者冷啟動

使用者冷啟動主要解決如何給新使用者做個性化推薦的問題。當新使用者到來時,我們沒有他的行為資料,所以也無法根據他的歷史行為預測其興趣,從而無法藉此給他做個性化推薦。那麼,我們可以利用使用者的註冊資訊來解決冷啟動問題。使用者資訊通常分為三種:

  • 人口統計學資訊
    主要是使用者的年齡、性別、國際、籍貫、學歷等等。這些特徵對預測使用者的興趣有很重要的作用,比如男性和女性的興趣不同, 不同年齡的人興趣也不同。

  • 使用者興趣的描述
    有一些網站會直接讓使用者描述自己的興趣。

  • 從其他網站匯入的使用者站外行為資料
    比如豆瓣、微博等使用者註冊時會使用他們的行為資料或者社交資訊。

另外要解決使用者冷啟動問題,可以給使用者提供一些物品,讓使用者提供反饋,這樣根據使用者的反饋再提供個性化的推薦。比如,在電影推薦網站,使用者註冊時需要先對提供的電影進行評分,這樣推薦網站才能給使用者做出推薦。通常來說,提供的物品具有以下特點:

  • 熱門。
    使用者會了解所提供的物品。

  • 具有代表性和區分性。
    作為個性化推薦的依據,使得物品需要有一定的區分性。

  • 多樣性。
    為了匹配多樣的興趣,我們需要提供具有很高覆蓋率的啟動物品集合,這些物品能覆蓋幾乎所有主流的使用者興趣。

Nadav Golbandi的演算法首先會從所有使用者中找到具有最高區分度的物品\(i\),然後將使用者分成3類。然後在每類使用者中再找到最具區分度的物品,然後將每一類使用者又各自分為3類,也就是將 總使用者分成9類,然後這樣繼續下去,最終可以通過對一系列物品的看法將使用者進行分類。而在冷啟動時,我們從根節點開始詢問使用者對該節點物品的看法,然後根據使用者的選擇將使用者放到不同的分枝,直到進入最後的葉子節點,此時我們就已經對使用者的興趣有了比較清楚的瞭解,從而可以開始對使用者進行比較準確地個性化推薦。

物品冷啟動

之前的博文講到了UserCF演算法,UserCF演算法對物品冷啟動問題並不非常敏感。因為,UserCF在給使用者進行推薦時,會首先找到和使用者興趣相似的一群使用者,然後給使用者推薦這一群使用者喜歡的物品。在很多網站中,推薦列表並不是給使用者展示內容的唯一列表,那麼當一個新物品加入時,總會有使用者從某些途徑看到這些物品,對這些物品產生反饋。那麼,當一個使用者對某個物品產生反饋後,和他歷史興趣相似的其他使用者的推薦列表中就有可能出現這一物品,從而更多的人就會對這個物品產生反饋,導致更多的人的推薦列表中會出現這一物品,因此該物品就能不斷地擴散開來,從而逐步展示到對它感興趣使用者的推薦列表中。

解決第一推動力最簡單的方法是將新的物品隨機展示給使用者,但這樣顯然不太個性化,因此可以考慮利用物品的內容資訊,將新物品先投放給曾經喜歡過和它內容相似的其他物品的使用者。那麼什麼算是物品內容資訊呢?

物品的內容資訊多種多樣,不同型別的物品有不同的內容資訊。如果是電影,那麼內容資訊一般包括標題、導演、演員、編劇、劇情、風格、國家、年代等。如果是圖書,內容資訊一般包含標題、作者、出版社、正文、分類等。我們可以由文字到分詞,到實體檢測,到關鍵詞排名,再到關鍵詞向量。

系統冷啟動

系統冷啟動主要解決如何在一個新開發的網站上(還沒有使用者,也沒有使用者行為,只有一些物品的資訊)設計個性化推薦系統,從而在網站剛釋出時就讓使用者體驗到個性化推薦服務這一問題。

很多推薦系統在建立時,既沒有使用者的行為資料,也沒有充足的物品內容資訊來計算準確的物品相似度。那麼,為了在推薦系統建立時就讓使用者得到比較好的體驗,很多系統都利用專家進行標註。結合專家標註,系統就可以對使用者進行物品推薦。

相關文章