為什麼需要冷啟動
通常推薦系統通過協同過濾、矩陣分解或是深度學習模型來產生推薦候選集,這些召回演算法一般都依賴於使用者-物品行為矩陣。在真實的推薦系統中,會有源源不斷的新使用者、新物品加入,這些新加入系統的使用者和物品由於缺乏足夠豐富的歷史互動行為資料,常常不能獲得準確的推薦內容,或被準確推薦給合適的使用者。這就是所謂的推薦冷啟動問題。冷啟動對推薦系統來說是一個挑戰,究其原因是因為現有的推薦演算法,無論是召回、粗排還是精排模組,都對新使用者、新物品不友好,它們往往過度依賴系統收集到的使用者行為資料,而新使用者和新物品的行為資料是很少的。這就導致新物品能夠獲得的展現機會是偏少的;新使用者的興趣也無法被準確建模。
對於某些業務來說,及時推薦新物品,讓新物品獲得足夠的曝光量對於平台的生態建設和長期收益來說都是很重要的。比如,在新聞資訊行業的時效性要求很強,如不能及時獲得展現機會其新聞價值就會大大降低;自媒體UGC平台如果不能讓新發布的內容及時獲得足夠數量的展現就會影響內容創作者的積極性,從而影響平台在未來能夠收納的高品質內容的數量;相親交友平台如果不能讓新加入的使用者獲得足夠多的關注,那麼就可能不會有源源不斷的新使用者加入,從而讓平台失去活躍性。
綜上,冷啟動問題在推薦系統中至關重要,那麼如何解決冷啟動問題呢?
如何解決冷啟動問題
解決推薦系統的冷啟動問題的演算法(或策略)我總結為:“泛、快、遷、少” 四字口訣。

泛:即對新物品進行泛化,在屬性或主題上往更寬泛的概念上靠。比如,新上架一個商品,可以推薦給以往喜歡同品類的使用者,也就是從 ”商品“ 上推至 ”品類“;新上線一個短視頻,可以推薦給關注了該視頻作者的使用者,也就是從 ”短視頻“ 上推至 ”作者“;新發布的一篇新聞資訊,可以推薦給喜歡同一主題使用者,比如把介紹”殲20“的文章推薦給一個軍事迷,也就是從”新聞資訊“ 上推至 ”主題“。本質上,這是一種基於內容的推薦(Content Based Recommendation)。當然,為了更好的推薦效果,我們有時候需要同時上推至多個不同的 ”上位概念“,比如新商品除了上推至 ”品類“,還可以上推至 ”品牌“、”店鋪“、”款式“、”顏色“等。上推的概念有時候是新物品天然就具有的,這種情況比較簡單,比如商品的各種屬性一般在商品發布的時候商家就填好了;也有些概念並不是本來就有,比如文章的主題,這篇文章是屬於”軍事“、”體育“、”美妝“ 等哪個主題是需要另外的演算法來挖掘的。
除了在標籤或主題上的泛化,用某種演算法得到使用者和物品的embedding向量,再通過向量的距離/相似性來做使用者和物品的興趣匹配也是一種很常用的手段。矩陣分解、深度神經網路模型等演算法都可以產生使用者和物品的embedding向量,然而常規的模型還是需要依賴使用者和物品的互動行為資料來建模,並不能很好地泛化到冷啟動的使用者和物品上。現在也有一些可以用來為冷啟動使用者和物品產生embedding向量的模型,比如《冷啟動推薦模型DropoutNet深度解析與改進》。
上推或者泛化這種方法,雖然聽上去很簡單,也很好理解,不過,要往深了挖,也還是有很多工作可以做的。本質上,這是在利用物品的內容(屬性)資訊來彌補該新物品缺少歷史互動行為的問題。比如,可以使用物品的多模態資訊,如圖片、視頻等來做相關的推薦。例如,在相親平台,可以給新使用者(這裡看作被推薦的物品)的照片顏值打一個分,然後推薦給具有相關顏值偏好的使用者(這裡指瀏覽推薦列表的使用者)。
快:天下武功,唯快不破。所謂的冷啟動物品,也就是缺少歷史使用者互動行為的物品,那麼一個很自然的思路就是更快地收集到新物品的互動行為,並在推薦系統裡加以利用。常規的推薦演算法模型和資料都是以天為單位來更新,基於即時處理系統可以做到分鐘級、甚至秒級的資料及模型更新。這類的方法,通常是基於強化學習/contextual bandit 類的演算法。這裡給出參考文章,就不贅述了:《Contextual Bandit演算法在推薦系統中的實現及應用》 。
遷:遷移學習是一種通過調用不同情境中的資料來建立模型的方法。通過遷移學習可以將知識從源域遷移到目標域。比如,新開了某個業務,只有少量樣本,需要用其他情境的資料來建模。此時其他情境為源域,新業務情境為目標域。再比如,有些跨境電商平台在不同的國家有不同的網站,有些網站是新開的,只有很少的使用者互動行為資料,這個時候可以用其他比較成熟的其他國家的網站的互動行為資料來訓練模型,並用當前國家網站的少量樣本做fine-tune,也能起到不錯的冷啟動效果。使用遷移學習技術要注意的是源領域與目標領域需要具體一定的相關性,比如剛說的不同國家的網站可能賣的商品有很大一部分是重疊的。
少:少樣本學習(few-shot learning)技術顧名思義是只使用少量監督資料訓練模型的技術。其中一種典型的少樣本學習方法是元學習(meta learning)。鑒於本文的目的不是介紹這些學習技術,這裡不再過多介紹,有興趣的同學可以參考一下:《基於元學習(Meta-Learning)的冷啟動推薦模型》。