快手在召回场景GPT范式的尝试

47350566fe85211ee6e3c2de6d919f79.jpeg

作者 | 丁炜杰 

整理 | NewBeeNLP

https://zhuanlan.zhihu.com/p/695506377

RecGPT: Generative Personalized Prompts for Sequential Recommendation via ChatGPT Training Paradigm

Highlights

  1. 快手2023年7月上线的工作,2024年4月投稿,序列推荐问题,在召回场景落地;

  2. 将序列推荐中的item_id视作token,仿照ChatGPT的预训练-微调范式得到模型;

  3. 相比传统的序列推荐,在自回归训练后,对序列做增广来微调,并结合这个增广方法,设计了二阶段的检索方法来融合两种检索结果;

  4. 在一个比较小、序列比较短的离线数据集上,相比基线在HR等离线指标有提升,在快手系统上线,有轻微的互动收益;

  5. 消融实验显示微调和两阶段检索方法都有收益;

  6. 实验数据集、实验指标、细节有较多未交代的,或者与基线论文没有严格对齐;

Problem

将ChatGPT类似的技术应用在序列推荐问题中。
形式化的说,是给定用户历史的交互序列,希望最大化序列下一个item的概率打分。

Related work

  1. 序列推荐:参考NLP,使用RNN/Transformer等结构,有GRU4Rec、SASRec、BERT4Rec等工作;

  2. LLM4Rec:近期新兴的范式,把推荐问题转换成一段自然语言描述,调用LLM来做推荐,有Chat-REC、GPT4Rec等工作,大部分是基于openAI的api的,没法基于item_id开展;

Approach

一共分为三个步骤/模块。

预训练:Pre-training auto-regressive generative model

  1. 朴素的自回归序列推荐,基于transfomer block,序列中的每个item与前文计算attention得到截止到该item为止的表示,要求能预测下一个item。

  2. 结合序列内的每个正样本,采样出对应的负样本集,binary交叉熵计算损失函数;

个性化微调:Personalized Prompt-tuning

作者认为,可以给每个人的序列,产生一些特殊的Prompt,来辅助训练;

  1. 基于预训练好的模型,在相邻两个item之间,做一轮item-id的插入,推理出最有可能成为下一个item的K个结果,得到一个新的扩展序列;

  2. 在新的序列下,要求能准确预测_实际的下一个item_,用negative log-likelihood计算损失函数;

两阶段召回:Inference-validating auto-regressive recall

  1. 把本来召回top K的问题,拆成了两个阶段,每个阶段得到一个user-emb,分别召回N+M=K个item作为最终结果;

  2. 一阶段召回N个:在扩展序列中,对最后一个item不扩展;

  3. 二阶段召回M个:N作为最后一个item的扩展项,拼接到序列尾部,再次召回M个;

Experiments

离线实验

  1. 用到了亚马逊Sports,Beauti,Toys三个数据集,以及Yelp数据集,用户规模3W,物品规模2w,序列长度10,30w条互动记录;

  2. 基线包括热门、SASRec、BERT4Rec等;

  3. 评估使用HR和NDCG,分别取5和10;

  4. 只使用预训练的方法,大约能跟SASRec打平,结合了个性化微调和两阶段召回后,相比SASRec方法大约有3~5%左右的提升;

  5. 消融实验显示

  • 个性化微调的辅助序列长度在1~3之间较好,太长了可能引入过多不相关序列,效果变差;

  • 两阶段检索的最佳超参,固定返回数量为10的情况下,N=9、8是最好的;

  • 如果在不加入个性化微调的情况下,强行打开两阶段检索,效果甚至更差;

在线实验

在快手场景,替换现有的ComiRec,跑了5天,评论+0.77%,转发+0.33%,视频播放+0.15%,关注和播放时长持平;

读后记

  1. 论文中没有交代的细节

  • 序列的具体特征,除了item-id还包括哪些side-info;

  • 第一步预训练时,具体的负样本采样方法;

  • 第一步预训练和第二步微调时,为何不使用相同的loss;

  • 微调阶段,是否冻结部分参数;

  • 两阶段检索的M和N,与第二步微调的辅助prompt长度K的关系;

  • 具体在快手的什么场景进行的线上实验;

  • 为何采用HR@5和HR@10这样偏短的召回序列评估,而不是对齐ComiRec的@20和@50;

  • 经典方法论文中提及的实验数据:SasRec,Dien,TWIN,ComicRec;

看知乎某专栏[1]的摘要,似乎是投在了DASFAA,The International Conference on Database Systems for Advanced Applications (DASFAA) is a leading international forum for discussing the latest research on database systems and advanced applications;

离线实验的数据集还是偏小的,召回典型数据集Amazon Books和Taobao没有用,最新发布的KuaiRec、KuaiRand等快手自身的数据集也没有用,序列平均长度10在当前的工业推荐系统里显然是不够看的;

References

  1. arxiv第一稿,2024.04.06第一次提交[2];

本文参考资料

[1]

知乎某专栏: https://zhuanlan.zhihu.com/p/694700684

[2]

arxiv第一稿,2024.04.06第一次提交: https://arxiv.org/pdf/2404.08675A

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)

66915f47e09d9e6247232d63c8207f85.jpeg

d6879b7eda995ab9ed74a0844fee6617.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值