前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LEARN:百川大模型在快手推荐中的应用

LEARN:百川大模型在快手推荐中的应用

作者头像
NewBeeNLP
发布2024-07-12 16:21:24
1320
发布2024-07-12 16:21:24
举报
文章被收录于专栏:NewBeeNLP

作者 | 冯卡门迪 整理 | NewBeeNLP https://zhuanlan.zhihu.com/p/705497209

后台留言『交流』,加入NewBee讨论组

这一两年推荐的论文工作离不开冷启和长尾问题,就像过去几年离不开序列和多目标一样,所套的壳子也从时序模型发展到对比学习和LLM,更像是“问题长期存在,我们现在有了更好的工具解决”,鸡生蛋与蛋生鸡总是这么的迷人和无所遁形。

关于冷启动和长尾推荐,以往推荐模型主要的问题是对于ID的依赖,大部分模型学到的价值都是ID对应的Embedding向量,由此数据量不够时就效果甚微。

分享一篇快手将百川大模型应用于推荐中的工作。

  • 论文:Knowledge Adaptation from LLM to Recommendation for Practical Industrial Application
  • 机构:快手
  • 链接:https://arxiv.org/pdf/2405.03988
  • 会议:论文里还是ACM的标准模板

LLM-Rec大模型推荐

大型语言模型(如GPT-3,文中使用的是Baichuan2-7B)在处理和理解自然语言方面表现出色,可以将其作为基座,认为具备更加普世的知识提取,从而使推荐系统更好地理解物品描述,提高推荐的准确性和多样性

Baichuan2-7B: https://huggingface.co/baichuan-inc/Baichuan2-7B-Base

将大语言模型引入到推荐中的工作在前几年也一直都有(指NLP模型,非要说BERT这类不算LLM那就不算),比如Bert4Rec、RankT5、RecFormer之类

过往使用大模型做推荐分为两种思路:

  • 冻结LLM参数并适应推荐领域数据 :利用LLM生成物品的内容嵌入,通常是通过处理生成物品的文本描述(如标题、说明、评论等),从而捕捉物品的语义信息,比如Chat-Rec。
  • 在推荐领域的特定文本数据集上微调LLM :利用LLM捕捉用户行为序列,通过设计提示prompt,使LLM学习用户和物品之间的潜在关系,在预测任务中理解用户的偏好变化和行为模式,从而更好地预测用户可能感兴趣的物品,比如TallRec。

文中认为以上其实都是将LLM的广域和推荐领域强行结合(Rec-to-LLM),可能会出现遗忘,即随着推荐任务的学习,模型会丢失在预训练过程中学到的知识。

由此有了新的这个LEARN框架(Llm-driven knowlEdge Adaptive RecommeNdation),旨在有效融合大模型和推荐系统(LLM-to-Rec),更像是一种特征提取,LEARN框架通过双塔结构(用户塔和物品塔),利用LLM生成的Embedding来改进推荐性能。

LEARN

LEARN模型的主要结构包括两个塔:用户塔(User Tower)和商品塔(Item Tower),每个塔由两个模块组成:内容嵌入生成模块(Content-Embedding Generation Module, CEG)和偏好理解模块(Preference Comprehension Module, PCH)。

商品文本描述

首先对每个商品按标题、品类、品牌、价格、关键词和属性进行文本描述:

耳环文本

智力板文本

内容Embedding生成模块(CEG)

通过主谓宾将item描述转为句子后使用大模型抽取token的高维向量,通过均一池化生成Embedding,在训练阶段,冻结LLM以防止其遗忘广域知识:

CEG

偏好理解模块(PCH)

其实是用户Embedding生成,将内容Embedding映射到推荐系统的协作域:使用来自用户历史交互的商品内容Embedding序列作为输入,传入Transformer中做时序预测,最终生成用户Embedding。在训练时,使用自监督对比学习作为训练目标,以增强模型区分用户偏好商品和非偏好商品的能力。

PCH

历史序列和目标序列

感觉是对行为序列做截断,当前曝光之前的作为历史序列,当前曝光之后的作为目标序列,对于第i个用户,其历史交互序列和目标交互序列分别定义如下:

  • 历史交互序列:U_hist_i = {Item_i1, Item_i2, ..., Item_iH}
  • 目标交互序列:U_tar_i = {Item_i(H+1), Item_i(H+2), ..., Item_i(H+T)}

用户塔和商品塔

用户塔就是PCH,商品塔给了三种样式:

用户塔、商品塔

  1. Variant 1 :使用与用户塔相同的架构和模型权重,但输入的是用户目标交互序列(user target interactions)。这种方法通过使用相同的因果注意机制(causal attention)来处理用户历史交互,从而对齐用户和商品Embedding。
  2. Variant 2 :使用自注意机制(self-attention mechanism),只关注商品本身。独立处理每个商品,不考虑商品之间的顺序依赖。
  3. Variant 3 :直接使用CEG生成的内容Embedding,在训练阶段使用用户目标交互序列,在推理阶段只使用商品的文本描述作为输入。

在训练阶段,Variant 1 使用用户目标交互序列作为输入,Variant 2 和Variant 3 独立处理每个商品。

在推理阶段,这三种变体只使用一个商品的文本描述作为输入,独立输出Embedding。

损失和实际模型

实际的使用还是要预测cvr,因此训练时再加一个传统的关于CVR任务的MLP结构:

实际模型

由此,损失包含主损失和辅助损失。

主损失(Main Loss)

主损失用于直接指导模型,利用用户和商品Embedding来预测用户对商品的偏好。主损失的目标是最小化推荐结果与实际用户行为之间的误差,从而提高模型的推荐准确度。通过模型的主塔计算,输入为用户Embedding和商品Embedding。正样本是用户实际与之交互的商品,负样本则是用户没有交互的商品。通过对比正负样本,模型能够更好地学习用户偏好的特征,因此损失为InfoNCE:

InfoNCE

辅助损失(Auxiliary Loss)

辅助损失用于进一步提升模型性能,帮助模型更好地融合不同类型Embedding,是一个转换率(CVR)损失,交叉熵吧。

实验

H代表命中率(hit rate),R代表召回率(recall rate):

命中率

召回率

商品Embedding:

商品Embedding

训练方式:

训练方式对比

和SOTA比较:

和SOTA对比

三个商品塔:

商品塔

PCH消融:

PCH

线上AB的AUC:

AUC

CVR提升:

CVR提升

冷启和长尾:

冷启和长尾

整体上就像曾经的ResNet、Attention、LSTM、GNN等,推荐领域紧跟时事,提一嘴Diffusion-Model,现在各家都在搞对比学习,为啥不给推荐序列加噪音呢??

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LLM-Rec大模型推荐
  • LEARN
    • 商品文本描述
      • 内容Embedding生成模块(CEG)
        • 偏好理解模块(PCH)
          • 历史序列和目标序列
            • 用户塔和商品塔
            • 损失和实际模型
              • 主损失(Main Loss)
                • 辅助损失(Auxiliary Loss)
                • 实验
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档