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

2024-05-22 16:07:57 浏览数 (1)

作者 | 丁炜杰 整理 | 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;
  2. 看知乎某专栏[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;
  3. 离线实验的数据集还是偏小的,召回典型数据集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

0 人点赞