前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KDD'23 | 大厂推荐系统如何提升两阶段建模一致性

KDD'23 | 大厂推荐系统如何提升两阶段建模一致性

作者头像
圆圆的算法笔记
发布2023-08-17 08:52:02
5300
发布2023-08-17 08:52:02
举报

今天介绍两篇大厂推荐系统中提升两阶段建模一致性的文章,都是今年KDD'23上录用的论文。第一篇文章是快手发表的工作,对超长用户历史行为序列建模中,两阶段的用户行为筛选目标不一致问题进行优化,让第一阶段产出的用户行为有更高的比例在第二阶段打高分。第二篇文章是美团发表的工作,对两阶段重排建模进行优化,让第一阶段筛选出的重排组合有更高的比例成为第二阶段的高分结果。

这两个工作虽然涉及到推荐系统中的不同技术点,但是核心都是在处理大量样本的topK选择时,由于计算复杂度太高需要采用两阶段方式,第一阶段粗筛,第二阶段精排,但是第一阶段和第二阶段目标不一致,如何提升一致性进而提升整体效果的问题,其原理是相通的。

1、快手:长周期用户行为建模一致性

论文标题:TWIN: TWo-stage Interest Network for Lifelong User Behavior Modeling in CTR Prediction at Kuaishou

下载地址:https://arxiv.org/pdf/2302.02352.pdf

在CTR预估模型中,用户历史行为序列已经被证明是对效果提升最显著的特征之一,并且越长周期的历史行为引入,越能提升模型整体的效果。用户历史行为由用户历史交互(如点击、转化)过的item构成,对于当前的user-item预测,使用当前item和历史行为序列item进行交互,选择和历史行为序列item最相关的部分信息引入。

然而,用户的近几个月历史行为序列可能在万级别,一般引入用户历史行为都需要使用attention进行计算,这导致整体的计算复杂度太高,是无法实现的。因此,业内引入长周期历史行为序列主要采用了两阶段的方式,第一阶段被称为 General Search Unit (GSU),即用一些粗略的方法先从完整历史序列中筛选最相关的百量级的用户行为,例如将与目标item相同属性的历史item筛选出来,或者用item的预训练embedding做内积筛选topK;第二阶段被称为Exact Search Unit (ESU) ,使用attention来在这100个行为中进行精确的用户行为建模。

这种两阶段方法中,GSU阶段和ESU阶段存在不一致问题,即GSU筛选的打分和ESU筛选的打分并不是相同的计算逻辑,导致GSU筛选出的TopK不是全局最优解,可能在ESU中认为最优的结果在GSU中被过滤掉了。下图也展示了这种不一致性。

为了解决这个问题,快手提出了一种统一的两阶段长周期用户历史行为序列建模方法,让GSU阶段的排序指标和ESU阶段更一致,也使用attention进行topK的筛选,整体的模型结构如下图所示,具体做法如下。在GSU部分,将特征分为内部特征和交叉特征。内部特征指的是item本身的特征,例如商品id、视频作者等,这部分特征不随着用户交互变化,因此可以直接缓存起来,线上不用每次都计算。对于交叉特征部分,对于每一维特征,使用一个全连接层映射成1维。通过这种方式,将attention计算的时间复杂度从𝑂(𝐿 × (𝐻 + 𝐶) × 𝑑𝑜𝑢𝑡)降低到𝑂(𝐿 × 𝐶),其中L为序列长度,H为内在特征维度,C为交叉特征维度,H一般占据特征的主要部分。

计算attention的公式如下,query和key使用内在特征,交叉特征维度为1因此这里作为bias加入到attention score的计算中。

2、美团:重排建模一致性

论文标题:PIER: Permutation-Level Interest-Based End-to-End Re-ranking Framework in E-commerce

下载地址:https://arxiv.org/pdf/2302.03487.pdf

在推荐系统的点击率预估中,重排位于精排之后,用来根据上下文信息,对精排产出的打分结果进行进一步矫正,提升点击率预估效果。

重排的核心是考虑上下文信息,重排的输入根据精排打分选择的topK个商品,输出是这topK个商品的某种排列组合,使得用户点击率最高。因此,整个过程是从全部的排列组合中,选择一个最优的排列组合。但是候选排列组合的数量很多,线上没办法给所有排列组合打分。目前主流做法采用两阶段建模的方式,第一阶段产出潜在的点击率较高的一部分排列组合,第二阶段精细化优选最优的排列组合。但是目前的做法,存在第一阶段优选标准和第二阶段有gap的问题,导致第二阶段认为最优的组合不一定能从第一阶段脱颖而出,造成效果损失。

为了解决这个问题,美团的这篇文章提出一种基于用户兴趣的重排建模方法,整体网络结构如下图,仍然是两阶段建模。

在第一阶段的topK筛选中,文中利用每一个排列组合,与用户历史的排列组合点击情况计算距离,选择距离最小的topK个排列组合,送入第二阶段的模型中。对于某个排列组合,生成其表征向量,生成方式为使用预训练模型生成每个商品的表征,并结合当前排列组合下每个商品的位置编码,融合成一个统一的表征向量。对于用户的历史点击排列组合,也使用相似的方式生成表征向量。最后使用SimHash算法,进行高效的向量距离度量,检索出topK个排列组合。这里的假设是,用户历史的点击情况反映了其倾向于点击的排列组合类型。例如用户对价格敏感,从历史来看便宜的商品排在贵的商品前面,点击率更高,那么当前的排列组合也将便宜的商品排在前面,其可能的点击率也更高。

在第二阶段,文中设计了一种分解的重排预估模型。用户关注不同维度的特征,例如价格、星级、配送费等,同一页面的不同商品在这些特征上有竞争关系。因此,可以把建模筛分成每个特征维度。本文将每个特征分别进行建模,对重排商品每一维度特征使用一个self-attention,最后再使用一个特征间的self-attention进行信息融合。最后,将用户历史的排列点击偏好作为输入,和当前的排列组合结果进行target attention,类似用户历史行为建模,最终预测当前排列组合各个商品的pctr。

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

本文分享自 圆圆的算法笔记 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档