打造冷啟動:走出先有蛋還是先有雞的困境

2 評論 15881 瀏覽 70 收藏 10 分鐘

本文講冷啟動問題歸為三類:用戶冷啟動、物品冷啟動、系統冷啟動,并針對性地介紹了其中的操作思路與注意要點。

冷啟動(cold start)在整個推薦系統中,是一個重要的開始。推薦系統一般需要在大量的數據基礎上才能比較準確的進行推薦,APP的冷啟動可能直接決定著這個新用戶會不會繼續使用,新物品的冷啟動也影響著生產者的積極性,所以冷啟動很重要。

冷啟動問題分為3類:

  1. 用戶冷啟動:新來的用戶,應該給他推薦什么內容?
  2. 物品冷啟動:新來的物品,應該把它推薦給誰?
  3. 系統冷啟動:在“一窮二白”的基礎上,新來的用戶和沒有推薦過的物品,怎么建立他們的關聯?

用戶冷啟動思路

用戶冷啟動,最常見的場景就是新用戶冷啟動。一個新用戶轉化為老用戶的路徑是:新用戶興趣獲?。嫿ɡ鋯佑脩舫跏籍嬒瘢?>內容消費和興趣收斂->沉淀興趣成為老用戶。概括地說,第一步就是“千方百計”獲取用戶畫像或讓用戶主動產生畫像,有幾種方法可以考慮。

利用用戶的社會屬性,如性別、年齡、地區等。在用戶第一次打開APP的時候,很多APP會提示或留有入口供用戶填寫相關信息。即使用戶不主動輸入,也可以嘗試從外部渠道(渠道畫像、矩陣畫像、applist等)引入畫像信息(但需要注意用戶重合度和相關度)。有了這些信息,就可以基于社會屬性進行粗顆粒度的個性化推薦。

利用用戶的關系鏈,可以借助運營活動收集(如支付寶活動收集好友關系、親子關系)或從外部引入(第三方登錄或開放API),基于“人以群分”的道理給用戶推薦好友喜歡的內容。

利用熱門內容,對用戶“一無所知”的情況下,基于從眾心理和二八定律,可嘗試給用戶推薦熱門內容,這種方式主要注意熱門的范圍和算法,效果會比隨機推薦好。利用高質量內容同理。

(左:微博,右:今日頭條)

用戶冷啟動的指標可以關注新用戶的畫像指標(人均興趣數、畫像覆蓋率、畫像準確率等)及新用戶活躍表現(點擊率、留存等)。

假設一款國際APP,基于國籍和性別就能在一開始有一個比較好的推薦效果,它有什么辦法獲得這些信息?

  1. 顯性方式:如前文所說,讓用戶填寫、引導或激勵的方式都可以。
  2. 隱性方式:用一些性別/國籍點擊差異特別大的內容來猜用戶性別、國籍,再開始有偏向的個性化推薦。

這類隱性探索,選取物品需要有技巧:

  1. 熱門:有一定的認知度,物品過于生僻,得到的結果大部分必定是“跳過”。
  2. 代表性和區分性:物品與物品之間要有區分度,能表征用戶的不同興趣。
  3. 多樣性:由于人的興趣多種多樣,要注意盡可能覆蓋,避免“無可選”的尷尬。

物品冷啟動思路

利用物品內容推薦:

  1. 物品相似推薦:找到和新物品屬于同一類的內容,新物品搭上“順風車”,進行相似推薦。
  2. 物品相關推薦:基于專家的知識來建立起物品的信息知識庫,建立物品之間的相關度。如知識圖譜,通過一個已知節點和關系找到另一個節點,進行拓展推薦。
  3. 例如某用戶喜歡“周冬雨”(節點),周冬雨是電影《少年的你》的主演,通過這層關系關聯到節點“少年的你”,因此將《少年的你》推薦給用戶。

(圖片來源于網絡)

相關算法簡介

期間涉及的常用算法有哪些?假設A用戶是新用戶,只有少量畫像。

  1. UserCF:基于用戶的協同過濾,通過用戶行為計算用戶的相似度,找到和A用戶相近的B用戶,給A用戶推薦B用戶喜歡的物品。
  2. ItemCF:基于物品的協同過濾,通過用戶行為計算物品的相似度,找到和物品a相似的物品b,將物品b推薦給喜歡物品a的用戶A。
  3. ?
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    (左:UserCF,右:ItemCF)

  4. ContentItemKNN:基于內容的過濾,根據物品的內容特征計算內容的相似度,找到和物品a相似的物品b,將物品b推薦給喜歡物品a的用戶A。

UserCF和ItemCF使用的是同一份用戶行為數據,只是統計維度不同。如下圖簡單示例(1表示用戶點擊了該物品),UserCF是橫向計算用戶的相似度,ItemCF是縱向計算物品的相似度。

UserCF、ItemCF在冷啟動問題上都有“第一推動力”的問題。

UserCF,要讓新物品先出現在用戶展示列表,才有可能讓更多的人對這個物品產生反饋,物品才能擴散出來,所以有一個第一推動力的問題,即第一個用戶從哪里發現新物品。

ItemCF是隔段時間計算用戶行為(日志龐大,較耗時)從而計算出物品相似度(如果大量用戶看了物品a,同時也看了物品b,即認為這兩個物品是相似的),輸出一個物品相關度矩陣,新物品加入時并不會自動加入這個矩陣表,也需要有用戶先發現這個新物品。

ContentItemKNN利用物品的內容特征計算物品相關表,可以頻繁地更新相關表,沒有第一推動力的問題。但它忽視了用戶行為,從而忽視了用戶行為中所包含的規律,結果精度低,新穎度高,效果一般不如協同過濾。但如果用戶行為強烈受某一內容特征的影響,內容過濾算法有亮點。

前文提及的第一推動力問題,即物品冷啟動問題,也稱“新物品試投”,有什么辦法解決?

新物品試投是“物品找用戶”。如果是“用戶找物品”,容易出現馬太效應:熱門分類曝光多,長尾現象嚴重。物品找用戶的方式有兩種:

  1. 隨機試投
  2. 興趣試投

假設我們定義曝光500次以下的物品是新物品(資訊類產品一般還有時間限制,如6小時內),將新物品和用戶表征為多維向量,計算向量的距離,對較活躍用戶分發,在冷啟動階段排序加權和重排限制。物品在冷啟動階段會有一個趨于穩定的點擊率(或其他綜合指標),該點擊率是它后續流量分配的依據——根據小流量的點擊率表現,表現好的物品進入下一個更大的流量池,表現差的物品被淘汰或降權。梯度流量分發策略是比較常見的個性化推薦“賽馬機制”。

用哪些指標評估物品冷啟動效果?

  1. 模型準確度
  2. 單位試投次數
  3. 有效分發覆蓋率
  4. 物品優質率
  5. 新物品推薦表現(點擊率、時長等)

另外一點,還需要注意用戶的上下文信息,包括時間信息、空間信息,走一些強規則。

例如電商APP,新用戶在夏天登陸,就不應該推出羽絨服;在中秋節登錄,就不應該推出端午節的資訊。但這不僅是在冷啟動階段,在整個推薦場景都應該留意用戶的上下文信息。

備注:參考文獻《推薦系統實踐》項亮 編著

 

本文由 @張小喵Miu 原創發布于人人都是產品經理,未經作者許可,禁止轉載。

題圖來自Unsplash,基于CC0協議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 贊 ~

    來自福建 回復
    1. 謝謝??

      回復