為什么需要冷啟動
通常推薦系統通過協同過濾、矩陣分解或是深度學習模型來生成推薦候選集,這些召回算法一般都依賴于用戶-物品行為矩陣。在真實的推薦系統中,會有源源不斷的新用戶、新物品加入,這些新加入系統的用戶和物品由于缺乏足夠豐富的歷史交互行為數據,常常不能獲得準確的推薦內容,或被準確推薦給合適的用戶。這就是所謂的推薦冷啟動問題。冷啟動對推薦系統來說是一個挑戰,究其原因是因為現有的推薦算法,無論是召回、粗排還是精排模塊,都對新用戶、新物品不友好,它們往往過度依賴系統收集到的用戶行為數據,而新用戶和新物品的行為數據是很少的。這就導致新物品能夠獲得的展現機會是偏少的;新用戶的興趣也無法被準確建模。
對于某些業務來說,及時推薦新物品,讓新物品獲得足夠的曝光量對于平臺的生態建設和長期收益來說都是很重要的。比如,在新聞資訊行業的時效性要求很強,如不能及時獲得展現機會其新聞價值就會大大降低;自媒體UGC平臺如果不能讓新發布的內容及時獲得足夠數量的展現就會影響內容創作者的積極性,從而影響平臺在未來能夠收納的高質量內容的數量;相親交友平臺如果不能讓新加入的用戶獲得足夠多的關注,那么就可能不會有源源不斷的新用戶加入,從而讓平臺失去活躍性。
綜上,冷啟動問題在推薦系統中至關重要,那么如何解決冷啟動問題呢?
如何解決冷啟動問題
解決推薦系統的冷啟動問題的算法(或策略)我總結為:“泛、快、遷、少” 四字口訣。
泛:即對新物品進行泛化,在屬性或主題上往更寬泛的概念上靠。比如,新上架一個商品,可以推薦給以往喜歡同品類的用戶,也就是從 ”商品“ 上推至 ”品類“;新上線一個短視頻,可以推薦給關注了該視頻作者的用戶,也就是從 ”短視頻“ 上推至 ”作者“;新發布的一篇新聞資訊,可以推薦給喜歡同一主題用戶,比如把介紹”殲20“的文章推薦給一個軍事迷,也就是從”新聞資訊“ 上推至 ”主題“。本質上,這是一種基于內容的推薦(Content Based Recommendation)。當然,為了更好的推薦效果,我們有時候需要同時上推至多個不同的 ”上位概念“,比如新商品除了上推至 ”品類“,還可以上推至 ”品牌“、”店鋪“、”款式“、”顏色“等。上推的概念有時候是新物品天然就具有的,這種情況比較簡單,比如商品的各種屬性一般在商品發布的時候商家就填好了;也有些概念并不是本來就有,比如文章的主題,這篇文章是屬于”軍事“、”體育“、”美妝“ 等哪個主題是需要另外的算法來挖掘的。
除了在標簽或主題上的泛化,用某種算法得到用戶和物品的embedding向量,再通過向量的距離/相似度來做用戶和物品的興趣匹配也是一種很常用的手段。矩陣分解、深度神經網絡模型等算法都可以生成用戶和物品的embedding向量,然而常規的模型還是需要依賴用戶和物品的交互行為數據來建模,并不能很好地泛化到冷啟動的用戶和物品上?,F在也有一些可以用來為冷啟動用戶和物品生成embedding向量的模型,比如《冷啟動推薦模型DropoutNet深度解析與改進》。
上推或者泛化這種方法,雖然聽上去很簡單,也很好理解,不過,要往深了挖,也還是有很多工作可以做的。本質上,這是在利用物品的內容(屬性)信息來彌補該新物品缺少歷史交互行為的問題。比如,可以使用物品的多模態信息,如圖片、視頻等來做相關的推薦。例如,在相親平臺,可以給新用戶(這里看作被推薦的物品)的照片顏值打一個分,然后推薦給具有相關顏值偏好的用戶(這里指瀏覽推薦列表的用戶)。
快:天下武功,唯快不破。所謂的冷啟動物品,也就是缺少歷史用戶交互行為的物品,那么一個很自然的思路就是更快地收集到新物品的交互行為,并在推薦系統里加以利用。常規的推薦算法模型和數據都是以天為單位來更新,基于實時處理系統可以做到分鐘級、甚至秒級的數據及模型更新。這類的方法,通常是基于強化學習/contextual bandit 類的算法。這里給出參考文章,就不贅述了:《Contextual Bandit算法在推薦系統中的實現及應用》 。
遷:遷移學習是一種通過調用不同場景中的數據來建立模型的方法。通過遷移學習可以將知識從源域遷移到目標域。比如,新開了某個業務,只有少量樣本,需要用其他場景的數據來建模。此時其他場景為源域,新業務場景為目標域。再比如,有些跨境電商平臺在不同的國家有不同的站點,有些站點是新開的,只有很少的用戶交互行為數據,這個時候可以用其他比較成熟的其他國家的站點的交互行為數據來訓練模型,并用當前國家站點的少量樣本做fine-tune,也能起到不錯的冷啟動效果。使用遷移學習技術要注意的是源領域與目標領域需要具體一定的相關性,比如剛說的不同國家的站點可能賣的商品有很大一部分是重疊的。
少:少樣本學習(few-shot learning)技術顧名思義是只使用少量監督數據訓練模型的技術。其中一種典型的少樣本學習方法是元學習(meta learning)。鑒于本文的目的不是介紹這些學習技術,這里不再過多介紹,有興趣的同學可以參考一下:《基于元學習(Meta-Learning)的冷啟動推薦模型》。