前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >奥创纪元:当推荐系统遇到大模型LLM

奥创纪元:当推荐系统遇到大模型LLM

作者头像
NewBeeNLP
发布2023-12-04 20:08:28
1.3K0
发布2023-12-04 20:08:28
举报
文章被收录于专栏:NewBeeNLP
https://zhuanlan.zhihu.com/p/668673674

大家好,我是kaiyuan。

大模型LLM在越来越多的领域开始崭露头角,比如我们在今年上半年曾在某电商平台落地过较为直观简单的LLMx搜索项目(我们称之为LLM应用的第一阶段),同时拿到线上收益,LLM的潜力可见一斑。

如果你也对LLM颠覆搜推广范式充满期待(虽然可能还要不少时间),持续梳理follow大模型在推荐系统中的应用工作,欢迎一起讨论!

  1. 未完,持续更新中...
  2. 标题奥创纪元来自漫威复联2主题,Ultron是一个human-made具有自我意识的强AI;

1. LLM v.s. Rec

既然是大模型在推荐系统中的应用,那么首先要梳理对比下传统推荐模型和LLM的优缺点,推荐到底在 "馋" LLM的什么?

推荐系统

大模型

场景

千人千面、领域各异

通用模型,one for all

输入

物品(百万、千万)

字词文本(十万)

参数规模

亿级别

千亿、万亿(计算复杂度高)

学习范式

Online learning

Pretrain-finetuning Prompt learning

模型能力

缺乏语义信息、推理能力、可解释性等;可以充分利用协同信号

引入外部世界知识,语义信号丰富;可解释性强;缺少协同信号;冷启动友好

placeholder

placeholder

placeholder

challenge

Mismatch between LLM pretrain objective and RS; LLM rely more on semantics, omit collaborative information;

  1. Mismatch between LLM pretrain objective and RS;
  2. LLM rely more on semantics, omit collaborative information;

2. LLM in Rec

从应用视角出发,将LLM应用拆解到传统推荐系统的各个模块。参考自上交和华为合作的工作:How Can Recommender Systems Benefit from Large Language Models: A Survey。

一般推荐系统都包括以下几个关键流程:

  • 数据采集 :推荐系统展示结果给用户后,通过在线系统收集用户反馈数据,得到原始数据(raw data);
  • 特征工程 :主要是对原始数据进行处理,例如特征选择、增强、转换等,得到结构化数据;
  • 特征编码 :一般就是常说的 embedding 层,例如 one-hot encoding 等;
  • 打分排序 :对候选进行排序返回一个列表,也是推荐系统中比较关键的部分,各种层出不穷的网络魔改设计都可以在这个部分看到;
  • 推荐流程控制 :LLM作为集成控制器,操控推荐系统的整体流程。也可以细化到对排序阶段的召回、粗排、精排的控制

2.1 LLM for feature engineering

用大模型做特征工程:利用LLM的外部通用知识和逻辑推理能力,将原始的输入信息生成额外的辅助信息,可以是对item或user的描述、标签、知识图谱补全等等。

2.1.1 GPT4Rec

  • GPT4Rec: A Generative Framework for Personalized Recommendation and User Interests Interpretation
  • https://arxiv.org/pdf/2304.03879.pdf
Motivation

ID-based 推荐系统存在一些问题

  1. 不能很好地利用item的文本信息,缺乏NLP模型的语言建模能力;
  2. 无法做到很好的解释性,从而提高相关性和多样性;
  3. 冷启动问题无法很好地克服;
Solution

GPT4Rec通过用户的商品交互序列(title文本),通过合适的promt方式,生成虚拟query交给搜索引擎,检索出要推荐的商品。

  1. query generation :利用LLM生成多个相关query(for多样性)。prompt形式
代码语言:javascript
复制
Previously, the customer has bought:
<ITEM TITLE 1>. <ITEM TITLE 2>...
In the future, the customer wants to buy
  1. query search :用上述生成的m个query,交给搜索引擎检索出最相关的top-K个商品
    • 首先从分数最高的query-1的检索结果中选取K/M个
    • 然后依次按query打分顺序,选择不重复的K/M个
  2. 训练策略 :两阶段训练,
    • 第一步微调LLM,利用用户前(t-1)个交互商品标题和第t个商品构成prompt训练预料
    • 第二步,grid search优化BM25模型的参数

2.1.2 GNERE

  • A First Look at LLM-Powered Generative News Recommendation
  • https://arxiv.org/pdf/2305.06566v4.pdf
Motivation

传统新闻推荐系统受限于冷启动、用户特征建模、新闻内容理解等问题,无法很好地捕捉用户兴趣。利用LLM强大的能力,通过prompt的方式丰富新闻数据和理解能力。

Solution

GENRE(GEnerative News REcommendation),使用已有新闻数据的标题、摘要、分类等信息,构建合适的prompt喂给LLM,生成更丰富的信息特征。

论文中主要使用了三种利用LLM强化RS特征的方式:

  • 新闻内容总结 :通过输入原新闻标题、摘要和分类,构造prompt让chatgpt生成新title,然后在推荐模型训练时替换原始title特征;
  • 用户画像生成 :受限于隐私等问题,推荐系统很难精准获取用户画像;LLM通过理解用户历史行为序列,生成用户感兴趣话题以及用户位置信息等,同样这些用户信息会被用于模型网络建模学习;
  • 新用户个性化内容生成 :冷启动问题是RS领域一大难题,而LLM自带few-shot learning能力,我们可以通过喂给chatgpt少量用户历史阅读list,让其个性化生成用户感兴趣内容;

2.1.3 KAR

  • Towards Open-World Recommendation with Knowledge Augmentation from Large Language Models
  • https://arxiv.org/pdf/2306.10933.pdf
Motivation

传统推荐系统通常是domain-specific,无法融入世界/外部知识。有两种外部知识有助于推荐系统:

  • reasoning knowledge:从用户行为画像推理得到的关于用户偏好的知识;
  • factual knowledge:可以直接获取的关于item的客观知识;
Solution

KAR(Knowledge Augmented Recommendation),

2.1.4 MINT

  • 【RecSys】Large Language Model Augmented Narrative Driven Recommendations
  • https://arxiv.org/pdf/2306.02250.pdf
  • https://github.com/iesl/narrative-driven-rec-mint/
Motivation

Narrative-driven recommendation (NDR) ,叙述驱动推荐系统,指用户通过自然语言的方式描述偏好和需求,推荐系统给出合适的结果。但目前研究大多都是基于用户历史行为数据的推荐,缺乏对NDR场景下长文本的处理能力。

Solution

NDR问题定义,给定用户u及其需求表述q,推荐系统f需要从候选集C中推荐出合适结果R。假设候选集和需求是相同领域的。

MINT(Data augMentation with INteraction narraTives),

  1. LLM for query generation:通过输入用户交互item的文本描述,利用InstructGPT(text-davinci-003)设置合适的prompt生成query。
  2. PLM for q-i filter:利用FLAN-T5为上述LLM生成的query和候选打分,选出top-M个最相关的候选,有点像召回;
  3. MPNet for final retrieval:利用MPNet(可以认为是BERT的变体)对上述topM个Q-I排序

相当于针对有描述类推荐的场景里(NDR),弥补了传统id-based推荐系统的文本处理能力;有点像推荐搜索化,将用户长本文通过LLM生成搜索query,然后去候选集里检索。

2.1.5 LLMRec

  • 【WSDM'24】LLMRec: Large Language Models with Graph Augmentation for Recommendation
  • https://arxiv.org/pdf/2311.00423.pdf
Motivation

百度和港大合作的工作,用LLM解决推荐系统的数据稀疏性问题(论文讨论对象是基于图神经网络的推荐系统)。传统普遍做法是引入知识图谱、社交关系等,但在引入信息的同时也会引入噪声。

Solution

借用LLM的强大世界知识和推理能力,来辅助生成增强信息。包括以下增强方式

  1. 数据增强:输入用户的历史行为信息和side info,通过LLM构建prompt的方式输出用户喜欢和不喜欢的商品。(由于LLM受限于「max_token_len」无法打分所有候选,候选集来自baseline模型先打分选出)构成三元组加入到原始数据集进行模型训练。
  2. Side information增强:通过prompt生成user profile和item attribute,接着将生成的user profile和item attribute过LLM得到embedding表征,最后将编码作为推荐系统user/item的feature。

2.2 LLM for feature encoder

使用大模型的通用语义表达能力进行编码,弥补传统推荐系统的信息缺失(例如文本等),进一步丰富user/item侧的语义表征。

2.2.1 ERNIE-RS

  • 【KDD'21】Pre-trained Language Model for Web-scale Retrieval in Baidu Search
  • https://arxiv.org/pdf/2106.03373.pdf

场景是百度搜索召回,建模query-doc之间的相关性匹配。

简单说就是用ERNIE替代了传统双塔中的MLP等编码器,更好地建模q-i表征。双塔顶层交互方式参考了poly-encoder的模型,在训练和预测有一些不同,以适应模型上线需求。

更多详细参考:大规模搜索+预训练,百度是如何落地的?

2.2.2 UniSRec

  • 【KDD'22】Towards Universal Sequence Representation Learning for Recommender Systems
  • https://arxiv.org/pdf/2206.05941.pdf
  • https://github.com/RUCAIBox/UniSRec
Motivation

人大和阿里合作的序列表征工作,发表在KDD'22。现有的推荐系统多基于item-id,导致其很难迁移到新场景(需要重训)。作者认为自然语言文本信息可以作为不同领域场景的桥梁,解决上述问题。

  • 如何合理地利用item text,直接引入作为特征不是最优解;
  • 如何利用多域数据来提高目标域任务,缓解"跷跷板现象";
Solution

UniSRec,通过预训练方式建模通用item表征和通用序列表征,进而学习跨不同推荐场景的可迁移表征。

通用Item表征
  1. 输入是用户交互item的文本描述序列
    • 由于不同domain差异巨大,因此将不同domain的行为作为不同的序列
  2. 接着将文本序列送入PLM(例如BERT)学习embedding表征
    • 参数白化:有研究表明BERT会导致各向异性(On the Sentence Embeddings from Pre-trained Language Models),将本身就存在语义鸿沟的不同domain文本混合会加剧这种现象;通过简单的白化(whitening)可以缓解这种问题
    • 专家网络MoE:融合不同domain的信息,使用多个白化模块作为Expert,然后通过Gate加权求和;
通用序列表征

由于存在域间差异,简单地将不同域序列表征混合起来不会有很好的效果(因为多个域学习到的表征很可能是冲突的,会导致跷跷板现象)。

在传统self-attention网络的基础上,引入两个对比任务:sequence-item and sequence-sequence,缓解多领域序列表征之间的融合。

  • sequence-item :输入是 <上文物品序列s,下一个真实物品v>,v作为正样本,通过构造in-batch negative选取不是当前域的物品作为负样本
\ell_{S-I}=-\sum_{j=1}^B \log \frac{\exp \left(s_j \cdot v_j / \tau\right)}{\sum_{j^{\prime}=1}^B \exp \left(s_j \cdot v_{j^{\prime}} / \tau\right)}
  • sequence-sequence :对原序列进行增强(随机drop序列中的item 或者 item中的单词),然后将增强的序列作为正样本,batch内其他多个域的序列作为负样本,构造对比学习
\ell_{S-S}=-\sum_{j=1}^B \log \frac{\exp \left(s_j \cdot \widetilde{s}_j / \tau\right)}{\sum_{j^{\prime}=1}^B \exp \left(s_j \cdot s_{j^{\prime}} / \tau\right)}

训练时将两种任务以多任务学习方式进行联合优化:

\mathcal{L}_{P T}=\ell_{S-I}+\lambda \cdot \ell_{S-S}

高效微调 :固定模型主要架构参数,在domain transfer时仅微调MoE的参数。

  • 如果遇到某些域数据非常稀疏?
  • 一般是多少个域?训练时数据量会不会爆炸?

2.2.3 MoRec v.s. IDRec

  • 【SIGIR'23】Where to Go Next for Recommender Systems? ID- vs. Modality-based Recommender Models Revisited
  • https://arxiv.org/pdf/2303.13835.pdf

来自西湖大学SIGIR'23的工作,探索基于多模态大模型的推荐系统能否和经典基于ID范式的推荐系统硬刚【探索讨论向】。

Motivation

作者指出很多之前的工作有尝试将NLP/CV预训练模型引入推荐系统,但往往都是关注在冷启动和新物品场景。这对于IDRec而言是不公平的,如果在非冷启场景,MoRec也能打败IDRec,那么推荐系统将有望迎来经典范式的变革。

Solution

实验设置:MoRec和IDRec唯一的不同之处是使用预训练的模态编码器来替代IDRec中的ID embedding向量。同时使用了两种常用的推荐网络模式,DSSM 和 SASRec。

Q1:在常规场景(非冷启动)MoRec能够打败IDRec吗? A1:与推荐模式有关,SASRec可以,但DSSM不行。意味着MoRec需要一个强大的推荐骨干(SASRec优于DSSM)和训练方法(seq2seq优于 <u,i> pair)才能激发基于模态的项目编码器的优势

Q2:对于推荐场景,NLP、CV的预训练模型产生的表征有足够的通用能力吗?我们应该怎样使用预训练模型生成的表征? A2:尝试两种方案,two-stage(先用预训练模型提取模态表征,然后作为特征加入推荐模型训练)和end2end(同时训练预训练编码器和推荐模型网络)。结果表明,end2end的方式效果更好,说明nlp、cv预训练得到的表征还没有做到真正的通用性和泛化性。

其他:

  1. 为什么对比ID和多模态?不能全用吗?【只要包含ID就不能很好地迁移,无法真正实现one4all model】
  2. TwoStage的方式效果低于IDRec,END2END的方式效果好,但很耗资源?【有一些加速优化的研究,例如GRAM: Fast Fine-tuning of Pre-trained Language Models for Content-based Collaborative Filtering】
  3. END2END的方式联合训练,编码器也一样fix住了当前场景?无法zero-shot迁移【??】

2.2.4 TCF

  • Exploring the Upper Limits of Text-Based Collaborative Filtering Using Large Language Models: Discoveries and Insights
  • https://arxiv.org/pdf/2305.11700.pdf 上一个工作的延续性工作,将BERT/ResNet等PLM网络替换为更大的LLM网络(如GPT-3)。

几个结论:

  1. 使用的LLM encoder参数越大,效果越好;
  2. 和上文一样,即使175B参数的LLM也无法生成很好的通用物品表征(还是需要微调);
  3. 上个工作Morec必须要end-to-end才能达到ID水平,但是TCF(千亿LLM)只需要冻住的表征就可以跟ID comparable,是很大的进步;
  4. LLM具有一定的迁移能力,但远远不够成为通用的推荐模型,比NLP/CV更具挑战性;

2.3 LLM for scoring function

把大模型作为打分工具,得到最终排序好的候选list。通常是通过在LLM训练中引入相关的任务来实现,可以分为三种研究方向:

  • 候选打分:一种方式是user/item特征过LLM后再过一层网络得到最终score;另一种是直接将LLM训练为输出最终score的模型;
  • 候选生成:直接生成排序好的列表(非常考验LLM的推理能力);
  • 混合任务:LLM are multi-task learners,使用者通过prompt执行对应任务。

2.3.1 候选打分任务

RecFormer

  • 【KDD'23】Text Is All You Need: Learning Language Representations for Sequential Recommendation
  • https://arxiv.org/pdf/2305.13731v1.pdf

亚马逊在KDD'23的工作,针对序列推荐场景的冷启动和场景迁移问题,提出了用自然语言的方式对用户行为和商品进行建模。具体地

  • 将商品的属性key-value自然语言flatten后作为句子(替代原来的商品ID),用相同的方法可以将用户商品ID序列转为商品句子序列。
  • 建模框架:Recformer。
    • 输入层:构造用户序列时按时间由近到远排列,避免最近交互的行为被截断。
X=\left\{[C L S], T_n, T_{n-1}, \ldots, T_1\right\}
  • Embedding层:有4种emb形式,目的是从自然语言和推荐模型两个角度充分表征输入
    • Token Embedding:NLP中的单词embedding表征;
    • Token Position Embedding:对输入单词的位置进行编码;
    • Token Type Embedding:用于区分当前单词属于哪个类别,有 [CLS]、key 和value三类;
    • Item Position Embedding:由于每一个商品被拆分成单词,我们需要知道哪一部分属于同一个商品;
  • Encoder:Longformer。
  • 预训练:需要同时考虑NLP和推荐,因此设置两个对应的预训练任务
    • MLM:源自BERT
\mathcal{L}_{\mathrm{MLM}}=-\sum_{i=0}^{|\mathcal{V}|} y_i \log \left(p_i\right)
  • item对比学习:真实下一个交互item为正样本,batch内随机采样为负样本,构造对比学习。
\mathcal{L}_{\text {IIC }}=-\log \frac{e^{\operatorname{sim}\left(\mathbf{h}_s, \mathbf{h}_i^{+}\right) / \tau}}{\sum_{i \in \mathcal{B}} e^{\operatorname{sim}\left(\mathbf{h}_s, \mathbf{h}_i\right) / \tau}}
  • 两阶段微调:由于不同于ID-based方法,recformer不再有一个item embedding表,于是微调的关键是获得item feature matrix I。
    • Stage 1:更新I,也更新模型参数M。
    • Stage 2:不更新I,只更新模型参数M。
    • 模型更新loss function为item 对比学习,和预训练阶段不同的是,这里使用除正样本外的所有item。

  1. 这里item matrix是 Ixd 维的,如果不用id作为index的话,是怎么访问获得对应item emb的?
  2. 为什么微调需要设置成两步?【每次epoch训练时re-encode item的话,会很耗时且浪费资源,不如一步到位训练一个完整的item emb matrix】
Prompt4N
PBNR
LMRecSys
Zero-shot GPT
TALLRec

2.3.2 候选生成任务

P5-ID
GPTRec
PALR
VIP5
Large Language Models are Zero-Shot Rankers for Recommender Systems

2.3.3 混合任务

P5
M6-Rec
Uncovering ChatGPT's Capabilities in Recommender Systems

2.4 LLM for pipeline controller

随着LLM参数的越来越大,涌现出小模型所不具有的很多能力(in-context learning 、logical reasoning等),于是可以通过大模型进行推荐系统的整体流程控制。

2.4.1 Chat-REC

2.4.2 RecLLM

3. FT OR NOT FT

从大模型训练和推理两个阶段出发,将现有工作分为四个象限

  • 训练阶段是否需要微调?
  • 推理阶段是否使用传统推荐模型?

4. 展望

  • 新推荐范式:Generative Recommendation: Towards Next-generation Recommender Paradigm
  • 避免大模型偏见:Can ChatGPT Make Fair Recommendation? A Fairness Evaluation Benchmark for Recommendation with Large Language Model

推荐阅读

  • A Survey on Large Language Models for Recommendation
  • How Can Recommender Systems Benefit from Large Language Models: A Survey
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NewBeeNLP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. LLM v.s. Rec
    • 2. LLM in Rec
      • 2.1 LLM for feature engineering
        • 2.1.1 GPT4Rec
        • 2.1.2 GNERE
        • 2.1.3 KAR
        • 2.1.4 MINT
        • 2.1.5 LLMRec
      • 2.2 LLM for feature encoder
        • 2.2.1 ERNIE-RS
        • 2.2.2 UniSRec
        • 2.2.3 MoRec v.s. IDRec
        • 2.2.4 TCF
      • 2.3 LLM for scoring function
        • 2.3.1 候选打分任务
        • 2.3.2 候选生成任务
        • 2.3.3 混合任务
      • 2.4 LLM for pipeline controller
        • 2.4.1 Chat-REC
        • 2.4.2 RecLLM
    • 3. FT OR NOT FT
    • 4. 展望
    相关产品与服务
    灰盒安全测试
    腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档