levycui 发表于 2024-2-19 18:58:22

一文梳理推荐系统如何应用大模型

问题导读:
1、大模型推荐系统背景和问题是什么?
2、何处运用大语言模型?
3、如何运用大语言模型?
4、大模型推荐的挑战和展望有哪些?

今天给大家分享下华为诺亚方舟实验室的talk:《推荐系统如何从大语言模型中取长补短:从应用视角出发》,个人感觉很有信息量,我们组内同学也做过交流分享,相关信息也可以从综述找到:"How Can Recommender Systems Benefit from Large Language Models: A Survey",在此分享给大家。



下面会围绕:背景和问题、何处运用大语言模型(特征工程、特征编码、打分排序、流程控制,共7个代表性工作)、如何运用大语言模型(如何给LLM注入协同信号:微调和不微调,2个代表性工作)、挑战和展望四个部分展开介绍。

1、背景和问题

传统的推荐模型(Conventional Recommendation Model,CRM)往往以Embedding+深度网络为backbone,通过拟合用户反馈信号提升推荐效果。CRM的主要特点是:


[*]    模型相对较小,时间空间开销低;
[*]    可以充分利用用户反馈信号;
[*]    只能利用数据集内的知识;
[*]    缺乏语义信息和深度意图推理。

相对的,大语言模型(LLM)以Transformer为backbone,通过大规模预训练语料和自监督训练提升通用语义理解和生成能力。LLM的主要特点是:


[*]    引入外部开放世界知识,语义信号丰富;
[*]    具备跨域推荐能力,适合冷启动场景;
[*]    用户反馈信号缺失;
[*]    计算复杂度高,难以处理海量样本。

因此,一个核心问题是推荐模型如何从大模型中取长补短,从而提升推荐性能,优化用户体验?

为了解答这一问题,作者从应用角度出发,将该问题进一步拆解为:


[*]    何处运用大语言模型(WHERE to adapt)
[*]    如何运用大语言模型(HOW to adapt)




下面会围绕这两个方面来展开介绍。

2、何处运用大语言模型:WHERE to Adapt

根据现代基于深度学习的推荐系统的流程,作者抽象出以下五个环节:


[*]    数据采集阶段:线上收集用户行为和记录,得到原始数据(raw data);
[*]    特征工程阶段:对原始数据进行筛选、加工、增强,得到可供下游深度模型使用的结构化数据(structured data);
[*]    特征编码阶段:对结构化数据进行编码,得到对应的稠密向量表示(neural embeddings);
[*]    打分排序阶段:对候选物品进行打分排序,得到要呈现给用户的排序列表(recommended items);
[*]    流程控制:作为中央控制器,把控推荐系统的整体流程。也可以细化到对排序阶段的召回、粗排、精排的控制。

大模型主要可以从特征工程、特征编码、打分排序和流程控制这几个部分来提升推荐系统的表现,对应的最近几年的工作如下图所示:



2.1、特征工程

现有工作中,LLM在特征工程阶段主要发挥如下作用:利用大语言模型的外部通用知识和逻辑推理能力,进行:


[*]    用户理解:利用LLM丰富用户画像,代表工作有GENRE、PALR、NIR等;
[*]    内容理解:利用LLM进行item画像抽取,代表工作有GENRE、OpenRec等;
[*]    样本扩充:利用LLM进行item生成,代表工作有AnyPredict、GENRE等。

代表性工作1:GENRE(PolyU, 2023)

代表性工作GENRE,出自香港理工大学,

同时涉及了用户理解、内容理解和样本扩充三个方向。



GENRE 基于GPT3.5进行新闻推荐:


[*]    内容理解:输入新闻标题、摘要、类目信息,生成简短内容描述;
[*]    用户理解:输入用户历史行为数据,生成用户感兴趣的话题和区域;
[*]    样本生成:对于历史行为数据稀疏的用户,基于少量行为样本生成相似的伪样本,用于扩充用户表征输入。

GENRE框架示意图:基于已生成伪样本增强用户理解,然后再生成更准确的伪样本。



通过prompting增强样本的过程示意:


整体架构:


2.2、特征编码

利用LLM的通用语义信息丰富推荐特征表示:


[*]    增强文本特征(用户表征、物品表征) 表示,代表工作有PLM-NR、UniSeqRep、VQ-Rec、PREC、U-BERT、UNBERT等;

改善基于ID的特征表示的跨场景迁移能力。


代表性工作2:U-BERT(Tencent, AAAI 2021)

代表性工作2:U-BERT: Pre-training user representations for improved recommendation 出自Tencent, AAAI'21,基于大模型进行用户表征学习。

    背景:电商推荐系统中如何使用用户和item侧丰富的文本特征

    技术方案:

[*]      Review Encoder:基于BERT对用户所写的评价进行语义编码;
[*]      User Encoder:基于attention网络对review token表征进行聚合;
[*]      两个子任务,rating & MLM。
[*]      输入:用户历史交互行为以及购买后的评价信息;
[*]      预训练阶段
[*]      微调阶段(训练):增加item侧编码网络,拟合用户反馈数据。

U-BERT预训练阶段:



U-BERT微调阶段:


代表性工作3:UniSRec(Alibaba, KDD 2022)

代表性工作3:UniSRec: Towards universal sequence representation learning for recommender systems,出自RUC&Alibaba, KDD'22,基于item文本信息进行序列模型预训练,实现跨域推荐的目标(inductive learning)。


[*]    Universal Textual Item Representation:基于BERT对item文本信息编码,通过MOE Adaptor实现跨越样本的Domain Fusion and Adaptation;
[*]    Universal Sequence Representation:基于MHA对序列信息进行聚合;
[*]    预训练阶段:对比学习任务,Sequence-sequence contrastive task & Sequence-item contrastive task;
[*]    微调阶段(新领域):inductive/transductive,fix parameter加速微调。





此外,KDD2023 Amazon的Text Is All You Need: Learning Language Representations for Sequential Recommendation,也属于该路径下的代表性工作。

2.3、打分排序

打分/排序是推荐系统的核心任务,目标是得到和用户偏好相符的物品(列表)。根据如何得到最终排序列表的形式,作者将大语言模型应用于打分/排序的工作分成以下三种:


[*]    物品评分任务(Item Scoring Task):大语言模型对候选物品逐一评分,最后根据分数排序得到最终的排序列表;
[*]    物品生成任务(Item Generation Task):通过生成式的方式生成下一个物品的ID,或者直接生成排序列表;
[*]    混合任务(Hybrid Task):大语言模型天然地适合多任务场景,因此很多工作会利用大语言模型来实现多个推荐任务,其中包括评分任务和生成任务。

代表性工作4:Google LLM+评分预测任务

代表性工作4:Do LLMs Understand User Preferences? Evaluating LLMs On User Rating Prediction(Google, 2023)


[*]    探究语言模型分别在零样本(Zero-Shot),少样本(Few-Shot)和微调场景下的评分预测的能力;
[*]    基于用户反馈数据进行LLM微调;

    结论:

[*]      zero-shot vs statistics:指标基本可比,说明LLM在推荐任务上有一定的zero-shot能力;
[*]      zero-shot vs few-shot:few-shot在AUC指标上胜出,说明few-shot有一定的提升作用;
[*]      fine-tuned LLM vs 传统模型:AUC胜出,说明LLM有用作推荐模型的潜力。

零样本和少样本prompt示例:


实验结果:


代表性工作5:PALR (Amazon, 2023)

PALR: Personalization Aware LLMs for Recommendation


[*]    利用用户历史交互得到用户画像,然后基于用户画像、历史交互和提前过滤得到的候选集信息生成推荐列表;
[*]    经过指令微调,PALR在公开数据集上显著超过传统推荐模型baseline。




prompt例子:


代表性工作6:P5(Recsys, 2022)

Recommendation as language processing (rlp): A unified pretrain, personalized prompt & predict paradigm (p5)


[*]    用一个统一的大语言模型在不同的推荐任务上进行预训练,针对不同任务使用不同推荐模版;
[*]    用自然语言为桥梁,规范不同推荐场景的输入输出,并在跨域样本上进行预训练,具备新场景下的zero-shot迁移能力。




2.4、流程控制
代表性工作7:RecLLM,Google 2023

Is chatgpt fair for recommendation? evaluating fairness in large language model recommendation

提出了一种使用LLM来集成推荐系统流程各模块(检索、排序、用户画像、用户模拟)的一个对话式推荐系统路线图。



3、如何运用大语言模型

从训练和推理两个阶段出发,作者根据以下的两个维度将现有工作分为四个象限:


[*]    在训练阶段,大语言模型是否需要微调。这里微调的定义包含了全量微调和参数高效微调。
[*]    在推理阶段,是否需要引入传统推荐模型(CRM)。其中,如果CRM知识作为一个预先过滤candidate的作用,则不被考虑在内。




由上图可以发现两个趋势:


[*]    模型:通过引入传统推荐模型(CRM)为语言模型注入协同信号。
[*]    数据:通过引入推荐场景的数据,结合微调技术,为语言模型注入协同信号。

3.1、不微调LLM、引入CRM

研究怎么把推荐模型的信号引入LLM,但是不进行LLM的微调,代表性工作KAR。
代表性工作8:KAR(SJTU, 2023)

Towards Open-World Recommendation with Knowledge Augmentation from Large Language Models.

背景:LLM具备强大的语义理解和推理能力,可以帮助推荐系统完成用户理解(推理能力)和item理解(理解能力)。为此提出了一种利用大语言模型开放知识辅助推荐的通用推荐框架KAR。

难点:


[*]    大语言模型的构成差距问题(Compositional Gap) 无法准确回答复合推理问题,但可以准确回答复合问题的各个子问题;
[*]    用户偏好复杂多面,世界知识混合海量,难以直接生成有效知识。




解法:受因式分解的启发,将开放知识生成问题动态分解为多个关键子因素,按因素分别进行用户兴趣推理和知识提取。

技术方案:

    知识推理和生成

[*]      基于推荐场景对于决定用户偏好,动态分解出相应的关键因素,对于用户偏好和物品外部知识分别对大语言模型提问;
[*]      生成相应的兴趣推理知识和物品事实知识文本。

    知识适配:

[*]      所生成的文本信息内容复杂多面(500~1000 tokens),且存在噪声和冗余问题,推荐系统无法直接理解和利用
[*]      设计多专家网络进行知识提取、压缩、映射,适配至推荐空间,输出结果鲁棒。

    知识利用:

[*]      将所生成的知识增强向量作为额外的特征域,结合原本数据特征,进行特征交互,输出最终结果。

效率问题:预存用户长期兴趣(或向量)和item知识(或向量),LLM不建模用户短期兴趣。

prompt工程:



系统架构:


实验:


总结下方法创新性:


[*]    有效结合大语言模型的通用世界知识与传统推荐系统的领域知识:通过Factorization Prompting,有效激发大语言模型针对用户兴趣
[*]    的推理和知识获取能力,缓解构成差距的问题。
[*]    提出混合多专家网络知识适配器,将语言模型生成的世界知识由语义空间适配至推荐空间,进行降维、噪声处理的同时保存有效信息。
[*]    推理复杂度与传统推荐模型一致。

3.2、微调LLM、引入CRM

研究怎么把LLM和推荐系统模型结合起来,让LLM也能拥有协同信号。代表性工作CTRL。

代表性工作9:CTRL(Huawei, 2023)

CTRL: Connect Tabular and Language Model for CTR Prediction,Huawei 2023

背景:仅使用语言模型进行推荐目前效果不理想,需要通过引入推荐场景的数据,结合微调技术,为语言模型注入协同信号。为此,华为提出了一种对齐语言模型和协同模型的框架CTRL。

具体技术方案:

    Prompt construction:通过7个模板把表格数据转换为文本数据。

[*]      用户和物品特征:特征名+连接词+特征值。
[*]      用户历史行为序列:用户的历史类型+动作连接词+历史1|历史2|历史3。
[*]      采用','作为特征之间的分隔符;采用'.'作为用户信息和物品信息的分隔符。

    Cross-model Knowledge Alignment:将协同模型和语言模型的知识进行对齐。

[*]      利用对比学习预训练融合两种模态的信息。

    Supervised Finetuning:在经过细粒度对比学习预训练之后,两种模态的信息已经进行充分融合。

[*]      使用监督信号使协同模型适配下游任务。
[*]      通过在不同的任务上微调,可以适配不同的推荐任务。

    Serving:仅使用更轻量的传统模型进行serving,不会对RT造成影响。



实验:


总结下方法创新性:


[*]    以混合粒度知识对齐的方式,同时建模协同信号和语义信号;
[*]    从数据角度进行双向知识注入,语言模型与推荐模型互相解耦;
[*]    可以单侧推理,推理复杂度低。

4、挑战和展望

4.1、工业应用场景下的挑战

    训练效率

[*]      问题:显存用量过大、训练时间过长
[*]      可能解决思路:1. 参数高效微调(PEFT)方案;2.调整模型更新频率(e.g.长短更新周期结合)

    推理时延

[*]      预存部分输出或中间结果,以空间换时间;
[*]      通过蒸馏、剪枝、量化等方法,降低推理模型的真实规模;
[*]      仅用于特征工程和特征编码,避免直接在线上做模型推理
[*]      问题:推理时延过高
[*]      可能解决思路:

    推荐领域的长文本建模

[*]      问题:长用户序列、大候选集、多元特征都会导致推荐文本过长,不仅难以被大模型有效捕捉,甚至可能会超过语言模型的上下文窗口限制(Context Window Limitation)
[*]      可能解决思路:通过过滤、选择、重构,提供真正简短有效的文本输入

    ID特征的索引和建模

[*]      问题:纯ID类特征(e.g. 用户ID)天然不具备语义信息,无法被语言模型理解
[*]      可能解决思路:探索更适合语言模型的ID索引和建模策略

4.2、展望

现有的语言模型在推荐系统中的应用存在以下两个发展趋势:


[*]    突破传统定位,重塑推荐流程:LLM在推荐系统中扮演的角色逐渐突破传统定位,从简单的编码器、打分器逐渐向外延伸,在特征工程,乃至推荐流程控制都发挥重要作用;
[*]    语义协同兼顾,跨域知识融合:需要通过微调大语言模型(数据层面)或引入传统推荐模型(模型层面)的方式来为语言模型注入推荐的域内知识。

LLM未来有可能在推荐系统中发挥重要作用的环节:


[*]    缓解稀疏场景:LLM的zero-shot和few-shot能力可以用于解决冷启动和长尾问题;
[*]    引入外部知识:LLM拥有大量关于Item的世界知识,对于资讯类场景这种通用知识的引入可以大大丰富Item侧的信息;
[*]    改善交互体验:用户可以主动通过交互式界面自由地描述他们的需求,从而实现精准搜索推荐。



作者:蘑菇先生
来源:https://mp.weixin.qq.com/s/3wvh3Xlz1LcUOqJ768uAFw

最新经典文章,欢迎关注公众号http://www.aboutyun.com/data/attachment/forum/201903/18/215536lzpn7n3u7m7u90vm.jpg

页: [1]
查看完整版本: 一文梳理推荐系统如何应用大模型