关注我们,一起学习~
标题:Ada-Ranker: A Data Distribution Adaptive Ranking Paradigm for Sequential Recommendation 地址:https://arxiv.org/pdf/2205.10775.pdf 代码:https://github.com/RUCAIBox/Ada-Ranker 会议:SIGIR 2022 主要参与:微软,人大
1. 导读
现在主流的排序模型设计和使用方式是:离线训练模型,冻结参数,并将其部署到在线服务。但是实际上,候选商品是由特定的用户请求决定的,其中潜在的分布(例如,不同类别的商品比例,流行度或新商品的比例)在生产环境中彼此之间存在很大差异。经典的参数冻结推理方式无法适应动态服务环境,使得排序模型的表现受到影响。
本文提出了一种新的训练和推理范式,称为 Ada-Ranker,以应对动态在线服务的挑战。Ada-Ranker 可以根据当前候选商品组的数据分布自适应地调整排序模型ranker的参数,而不是使用参数冻结模型进行通用服务。首先从候选项目中提取分布模式。然后,通过模式调整ranker,使ranker适应当前的数据分布。最后,使用修改后的ranker对候选列表进行评分。
2. 懒人阅读
本文提出ada-ranker方法,该方法根据候选商品集合的数据分布自适应的调整排序模型中相应的参数,本文主要是考虑序列推荐,对于其他类型是否有效未知。通过神经过程编码对候选集的数据分布进行编码,通过重参数化将分布信息应用于整个网络。然后,利用分布信息分别修改序列编码层和最后的预测层,得到实现即插即用,模型无关的两个组件。
3. 问题定义
给定来自用户u的请求,召回模块使用多种方法(例如基于流行度、item-to-item,近似最近邻搜索)来检索一小部分(通常为数百或数千)候选商品:
。排序模型ranker 的目标是对C中的每个候选商品v进行评分,并返回(top-𝑘)有序列表作为推荐。
用户u的用户画像用
表示,它是基于历史活动得出的:
,其中𝑛是行为的长度。ranker 采用模型f来预测用户u对目标候选商品v的偏好分数:
,其中f通常包含三个主要层:embedding层Q(),序列编码层
和预测层
。在图 1(a) 中展示了 ranker 模型的典型架构f。用户行为序列将经过embedding层Q()得到商品embedding,公式如下,
序列编码层
对交互序列进行编码并生成一个embedding作为用户表征,公式如下,
与目标物品向量
(如果有一些属性特征,如物品类别,用户资料,也可以在这里附加)连接作为预测层的输入,通常为简单的两层MLP,公式如下,
总体而言可以表示为下式,
检索到(召回)的候选商品C可能具有来自不同召回请求的不同数据分布。现有方法采用全局排序模型f来服务所有请求,并且对于给定的用户,它将为项目v产生相同的分数,而不管它来自哪个候选集C。本文利用C作为排序的上下文,并让模型根据具体上下文进行自我调整,从而为当前的排序任务做出更细粒度和准确的预测分数。
4. 方法
自适应排序范式的本质是结合了一个专门设计的自适应机制,它对C的数据分布模式进行编码,并相应地将全局模型f修改为局部模型f',从而使f'具有更好的性能。因此,重点的是设计自适应机制,需要考虑一下几点要求:
基于此,
。由于全局模型f中有两个关键组件,即
和
,针对这两个组件提出了两个自适应方法,称为输入调制和参数调制,这可以结合数据分布z来分别调制上述两个组件。Ada-Ranker 的概述如图 1(b) 所示。
假设C中的候选商品是从随机过程F的特定实例中提取的。为了表征动态和多样化的数据分布,采用Neural Processes (NP) 的思想,用可学习的神经网络来近似随机过程。NP 的优势在于(1)提供了一种有效的方法来模拟基于观察数据表示的数据分布;(2) 由比高斯过程更有效的多层感知器 (MLP) 参数化。具体方式如下,
首先使用两层MLP为C中的每个商品j生成一个潜在embedding
,
。然后,NP 编码器将聚合这些潜在向量以通过均值池化生成置换不变表示r,
。
上述的表征r将用于生成均值向量和方差向量,公式如下,
最后,数据分布由一个随机变量z建模,
,通过重参数化简单理解就是将随机变量z中的随机性和数据正式信息解耦,即可以表示为下式,其中
表示逐元素相乘,
这部分是针对输入的
进行修改。为了根据数据分布修改商品表征,将上述的z作为调整相应输入表征的条件。采用了FiLM方法 [1],这是一种通用方法来模拟条件信息对神经网络的影响。以分布模式z为条件,对商品序列的潜在表示进行线性调制,以便将输入embedding调整为在候选集C中更易于区分的新表征。具体流程如下图,
通过条件表示z学习生成两个调制系数γ和β,公式如下,f公式如下,两个f包含不同的参数,两个f在交互序列中的所有商品中是共享的
调整后的潜在表征为下式,
这部分是针对预测的
进行修改。
基本思想是学习参数变化以适应新的输入或任务上下文,如上图所示,可以合并两个 MLP,根据数据分布z为预测层的第k个隐藏层生成参数补丁,然后对参数进行修改,
上面生成参数不定的方式存在一个主要问题是调制参数以无约束的方式生成,这样很难直接优化 MLP 以逼近任意实值向量,尤其是在训练样本不足时。因此构建一个由多个基本参数(向量或矩阵)组成的参数池,这是一个参数记忆网络。这些参数是基于多个基本参数的线性组合得出的。参数调制适应机制如图 3 (c) 所示。有一个带有L个基本参数的参数池M,
,其中每个
与排序模型的MLP参数W具有相同的形状。然后,参数补丁
由M的线性组合合成,公式如下,这里的q是可学习参数,用上述同样的方法可以得到对b的参数不定
。
经过上述步骤之后,原始模型可以改写为
,接下来是如何优化他。
损失函数采用交叉熵损失函数,
令
表示基础模型f的参数集,
表示自适应模块中的参数集(包括分布提取器、输入调制和参数调制)。可以采用以下三种训练策略,
,直接的方法是从头 (
)开始以端到端的方式训练整个 Ada-Ranker 模型。
,在第一阶段,训练基础模型直到收敛,在这个阶段只有
得到更新;在第二阶段,加载预训练的基础模型并训练整个 Ada-Ranker,因此
和
中的参数都会更新。
,在第一阶段,训练基础模型直到它收敛,所以在这个阶段只有
得到更新;在第二阶段,加载预训练的基础模型f并冻结其参数,并仅通过更新
来训练 Ada-Ranker。
为了实现第4.1节中提到的 (C3) 特性,采用最后一种训练策略。预训练基础模型的参数可以为 AdaRanker 的训练提供良好的参数初始化,因此第一个策略通常比其他两个策略差。第三种策略的主要优点是,经过 Ada-Ranker 的训练,基础模型的参数保持不变,工业系统可以灵活地开启或关闭自适应模块,以满足不同场景的不同需求。
伪代码如下,
5. 实验结果
对比实验
策略对比