聊聊Meta近期的推薦系統大模型
最近,Meta發表了兩篇和推薦系統相關的大模型工作,這類工作不是講NLP等領域的大模型應用到推薦系統,而是直接使用推薦系統的數據訓練大模型。一直以來,阻礙CTR預估等模型朝大模型發展的一個阻礙是,這類模型并不存在像NLP、CV領域模型中的scaling law,即模型的效果隨著模型尺寸增大、訓練數據增加而效果提升,單純增加模型尺寸看起來并不能提升效果。
今天就跟大家討論2篇近期Meta發表的大模型推薦系統工作,這兩篇工作設計了不同的方法,建立了推薦系統模型的scaling law。
1.推薦系統中的Scaling Law
論文標題:Wukong: Towards a Scaling Law for Large-Scale Recommendation
下載地址:??https://arxiv.org/pdf/2403.02545.pdf??
這篇文章探討了推薦系統中的模型為什么不遵循scaling law,并提出了一種新的模型結構,可以實現scaling law。從下圖可以看出,本文提出的Wukong模型隨著復雜度的提升,效果是持續提升的,而其他模型隨著復雜度提升,效果提升緩慢或者不再提升。
Wukong的模型結構如下圖所示,核心可以分為embedding層、Wukong Layer、深層網絡搭建三個部分。
embedding層:底層category特征經過embedding table得到對應向量,dense特征使用MLP進行映射,所有embedding都做成unit的形式,每個embedding的維度相同。對于重要的特征使用多個unit,對于不重要的特征多個使用一個unit;
Wukong Layer:由于FMB和LCB組成。FMB就是factorization machine,進行特征間的二階交叉,通過多層堆疊實現任意階特征交叉;LCB就是全連接;FMB和LCB的輸出embedding拼接到一起;
深層網絡:多層Wukong Layer堆疊,使用殘差網絡和Layer Normalization提升網絡訓練的穩定性。
2.大模型生成式推薦系統
論文標題:Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations
下載地址:??https://arxiv.org/pdf/2402.17152.pdf??
這篇文章最近也比較火,研究并在業務上落地了第一個生成式推薦系統大模型,對整個建模方式、任務定義都進行了大幅度的修改,可以說是近期推薦系統最具顛覆性的工作之一。由于論文中一些細節并沒有介紹,因此根據一些經驗大致還原文中的建模方法。主要從數據組織形式、任務定義、模型結構等3個方面進行介紹。
數據組織形式:所有輸入特征組織成序列的形式。選擇一個最長的序列作為主序列,這里一般就是用戶的歷史行為item,比如歷史觀看的視頻、歷史點擊或購買的商品。在每一個item后面,插入用戶對這個item的行為,可能是點擊、轉化、未點擊等。其他的序列作為輔助序列,也插入到主序列中,這些輔助序列變化比較緩慢,比如用戶的關注列表、地理位置等,在有變化的時候才插入到序列里。最終生成一個長序列,記錄了用戶歷史的所有交互行為、屬性變化。對于userid等靜態信息,后面通過類似position embedding的方式輸入Transformer中。對于數值類型特征,文中直接忽略掉,讓模型自動從長序列中學到相關信息。
任務定義:所有任務都嵌入到這個序列生成模型中。對于召回任務,利用自回歸的方式預測用戶下一個點擊item的概率分布,選擇topK個item;對于排序任務,在最后一個token上接不同的MLP head進行多個預估目標的多任務學習。每個位置的預測,都會利用到上面構建的歷史全序列信息。
模型結構:模型主體采用Transformer,將長序列輸入Transformer中進行信息交互。主要改動,一方面是將原來Transformer的softmax建模方法,修改為point-wise的方法,每個位置的Q*K內積結果后面接一個SiLU激活函數,得到非歸一化的打分,再和V相乘。另一方面是在QKV作用的結果之后,增加了一個layernorm和與U的點積,U也是和QKV類似的生成方式,這比較類似于MaskNet的結構,用來實現特征的進一步交叉。
該方案在Meta已經落地到相應場景中,取得了比原來的推薦系統模式更優的效果。
