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