小紅書為何讓歪果仁上頭?推薦算法超牛,2篇核心論文揭秘
最近歪果朋友瘋狂涌入「Xiaohongshu」,網友直呼,一夜之間與國際接軌。
這場史稱「美洲大遷徙」的互聯網奇象,也離不開小紅書本身過硬的內容推薦算法技術。而歪果網友也毫不吝嗇對于「Xiaohongshu」推薦算法的贊美。
小紅書如何「投你所好」
接下來讓我們看看,小紅書的推薦算法是怎么不斷地成功「投你所好」。
一般來講,為了構建出用戶所喜歡的推薦內容列表,經典的推薦系統構成為:
- 從內容數據庫中檢索候選內容
- 通過排序模塊衡量每個事件的質量,即預測特定內容將為用戶提供的效用程度
- 高質量內容將被發送至策略模塊進行進一步篩選和重新排序,以構建最終的推薦列表
推薦系統的典型結構
目前能夠檢索到的小紅書官方發表的推薦算法相關的技術論文共有兩篇,接下來就讓我們一起揭開小紅書內容推薦機制的「神秘面紗」。
發現你的興趣:NoteLLM
推薦契合用戶興趣的筆記是一項關鍵任務。NoteLLM是一種用于解決內容到內容(I2I)筆記推薦問題的創新統一框架,旨在為用戶提供更精準的筆記推薦服務。
研究者在小紅書開展了為期一周的在線I2I推薦實驗。
與先前使用SentenceBERT的方法相比,NoteLLM的點擊率提升了16.20%,召回性能的增強使評論數增加1.10%,平均每周發布者數量增加0.41%。
這些結果顯示,將LLM用于I2I筆記推薦任務能顯著提升推薦性能和用戶體驗。同時,新筆記一天內評論數顯著增加3.58%,表明LLM的泛化能力對冷啟動筆記有積極作用。
目前,NoteLLM已部署在小紅書的I2I筆記推薦任務中。
具體來說,通過「筆記壓縮提示詞」將筆記濃縮成特殊的單一token,再借助對比學習方法,進一步學習潛在相關筆記的嵌入關系。同時,NoteLLM還能對筆記進行總結,通過指令調優自動生成標簽或類別。
經大量實際場景驗證,NoteLLM在小紅書推薦系統里效果顯著。
論文鏈接:https://arxiv.org/pdf/2403.01744
基于BERT模型的在線I2I筆記推薦方法存在局限性,它們僅把標簽/類別當作筆記內容的普通部分,未深挖其潛在價值。標簽/類別蘊含著筆記的核心要點,對判斷筆記間內容相關性至關重要。
生成標簽/類別與生成筆記嵌入具有相似性,二者都能將筆記關鍵信息凝練為有限內容。學習生成標簽/類別,有助于提升嵌入質量。
NoteLLM框架由三個關鍵部分組成:筆記壓縮提示構建、生成對比學習(GCL)和協作監督微調(CSFT)。
研究者采用統一的筆記壓縮提示,旨在將筆記內容壓縮成一個特殊的單一token,來助力I2I推薦和生成任務。
利用這個壓縮后的特殊token,通過生成對比學習(GCL)挖掘其中的協作知識。之后,借助協作監督微調(CSFT),運用這些知識生成標簽和類別。
構建筆記壓縮提示
研究者用以下提示模板,實現了對筆記的通用壓縮以及標簽和類別的生成:
在這個模板里,[BOS]、[EMB] 和 [EOS] 是特殊的 token 。而<Instruction>(指令)、<Input Note>(輸入筆記)、<Output Guidance>(輸出引導)和<Output>(輸出結果)是占位符,后續會被具體內容替換。
類別生成的具體內容定義如下:
標簽生成的模板如下:
完成提示構建后,對其進行標記化處理并輸入LLM,LLM會將協作信號與關鍵語義信息提煉到壓縮詞中,依據筆記核心思想生成標簽或類別。
生成對比學習(GCL)
研究者提出生成式對比學習(GCL),目的是增強LLM捕獲更強協作信號的能力。GCL不同于從特定答案或獎勵模型中學習,它采用對比學習,從整體視角考量筆記之間關系的緊密程度。
為了將協作信號融入LLM,采用基于用戶行為的共現機制來構建相關筆記對。這一機制基于這樣的假設:若兩篇筆記常被用戶一起閱讀,那么它們很可能存在關聯。
在構建相關筆記對之后,訓練NoteLLM基于文本語義和協作信號判斷筆記的相關性。
GCL的損失函數計算如下:
其中,??????表示GCL的損失,??為可學習的溫度參數,??????(??,??)=?????/(∥??∥*∥??∥) 表示向量??和??的相似度。
協作監督微調(CSFT)
生成標簽/類別和生成筆記嵌入類似,都是對筆記內容的總結:前者從文本生成角度提取關鍵信息,后者從協作視角將筆記壓縮為虛擬詞用于I2I推薦。
NoteLLM把GCL和CSFT任務結合起來建模,旨在潛在地提高嵌入的質量。研究者將這兩個任務整合到一個提示中,給它們提供額外信息,同時簡化訓練流程。
具體而言,研究者用協作監督微調(CSFT),通過筆記的語義內容和壓縮標記中的協作信號生成標簽/類別。
CSFT損失的計算方式如下:
其中,????????為CSFT損失,??是輸出序列的長度,????表示輸出序列??中的第??個標記,??是輸入序列。
最后,把GCL和CSFT結合,得到NoteLLM的總損失函數:
通過模型更新,NoteLLM可在筆記推薦場景中同時開展I2I推薦任務和標簽/類別生成任務。
實現多樣化推薦:SSD
論文鏈接:https://arxiv.org/pdf/2107.05204
該論文主要是提出了滑動頻譜分解(SSD)方法,以解決小紅書中「多樣化信息流推薦」的問題。并且文中也提出了計算嵌入向量的策略CB2CF,以應對實際推薦場景中的長尾效應。
滑動頻譜分解
推薦系統通常提供很長的內容序列,而用戶當前的瀏覽窗口只能占據整個序列的一部分。因此用戶需要不斷滑動當前瀏覽窗口才能獲取推薦內容序列中其余內容。
如下圖所示,用戶閱覽窗口的處理步驟為:首先,一個固定大小為ω的窗口在整個原始內容序列中滑動。然后將內容的多個窗口以內容矩陣的形式堆疊在一起。最后將每個內容映射到其d維內容嵌入,得到軌跡張量??。
在推薦場景中,作者將軌跡矩陣推廣到三階情況,將d維內容嵌入視為多元觀測,并借助單變量時間序列奇異譜分析(SSA),對??進行奇異值分解。
其中,??的體積代表了基于整個序列以及滑動窗口的多樣性,奇異矩陣可以看作是推薦內容呈現的正交方向,而奇異值則指的是這些方向在用戶對多樣性感知中的權重。
作者繼續通過這些內容所跨越的超平行體的體積來定義多樣性,由于多樣化的內容嵌入更加正交,這意味著它能夠跨越更大的體積。
一方面,推薦系統通常計算質量分數來表示用戶的預期效用,例如視頻觀看時間或參與度。另一方面,多樣性有時被視為探索以發現更多關于用戶的信息
其中為三階張量??的體積,γ是一個超參數,用于調整質量和多樣性之間的權衡。該目標函數利用貪心算法進行推理求解。
由于該方法將整個內容序列視為用戶觀察到的時間序列,并通過頻譜分析分解其滑動表示。因此,作者將提出的方法稱為滑動頻譜分解(SSD,Sliding Spectrum Decomposition)。
作者也利用在線實驗論證了相比于DPP(Determinantal Point Process)推薦算法,SSD分別在駐留時間、互動次數、ILAD、MRT四個指標分別進步了+0.25%,+0.71%,+0.37%,+0.53%。
其中ILAD是通過用戶查看筆記內容之間的平均成對相異性來衡量多樣性。MRT則使用用戶點擊的內容類別的平均數量來描述多樣性。
這說明SSD算法能夠更進一步地解決小紅書中「多樣化信息流推薦」的問題,給用戶更多類別的個性化推薦內容。
計算嵌入向量的CB2CF
協同過濾(CF,Collaborative Filtering)是一種常用的推薦系統算法,它基于用戶的行為數據來計算內容之間的相似度,并據此為用戶提供個性化推薦。
在CF策略的基礎上,作者提出了采用如下圖所示的孿生網絡結構CB2CF策略來計算內容嵌入向量。
嵌入模型CB2CF的網絡架構
對于給定的一個筆記內容,分別利用預訓練的BERT模型提取文本描述的特征,Inception-V3模型提取封面圖像的特征,將兩者特征拼接后通過全連接層得到目標嵌入向量。
在訓練數據收集上,僅使用筆記內容本身作為特征,避免長尾效應的影響。對于有用戶互動的筆記,將通過 ItemCF方法檢索且在推薦結果中曝光足夠的筆記,與組成的筆記對作為正樣本;隨機采樣ItemCF檢索的筆記與組成的筆記對作為負樣本。
為適應SSD方法,采用余弦相似度作為距離度量,并對嵌入向量進行歸一化,通過在歸一化后的向量后附加一個元素為1的額外維度,解決余弦距離與體積定義的不匹配問題。
最后,作者將這個問題視為一個二分類任務,并使用交叉熵損失作為目標函數。
在實驗中,作者將注意力限制在僅有少量互動的長尾內容上,并隨機抽取了100,000個筆記,這些內容在一個月內的互動次數均少于3次。
下圖展示了給定一個描述中國書法的低參與度內容時,從CF和CB2CF生成的最相似內容的示例。顯然,在這種情境下,所提出的CB2CF方法能夠檢索到更多相似內容,而CF則檢索到了與娛樂和繪畫相關的內容。
這說明將SSD與CB2CF嵌入相結合,能夠實現更好地捕捉用戶在長序列場景下對多樣性的感知,且在長尾效應下精確衡量內容相似度,給用戶提供符合興趣且廣泛多樣的個性化推薦內容。