导读:本文是“数据拾光者”专栏的第七十七篇文章,这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇主要调研了www'24「快手」连续特征建模论文调研《Enhancing Interpretability and Effectiveness in Recommendation with Numerical Features via Learning to Contrast the Counterfactual samples》。
欢迎转载,转载请注明出处以及链接,更多关于自然语言处理、推荐系统优质内容请关注如下频道。
知乎专栏:数据拾光者
公众号:数据拾光者
摘要
我们提出了一个通用的模型无关的对比学习框架,名为对比样本合成(CCSS),用于模拟神经网络输出与数值特征之间的单调性,这对于推荐系统的可解释性和有效性至关重要。CCSS通过两个阶段的过程来模拟单调性:合成对比样本和对比对比样本。这两种技术自然地集成到一个模型无关的框架中,形成了一个端到端的训练过程。我们在公开可用的数据集和真实的工业数据集上进行了大量实证测试,结果很好地证明了我们提出的CCSS的有效性。此外,CCSS已部署在我们真正的大规模工业推荐器中,成功服务于超过数亿用户。
关键词
推荐系统,数值特征,单调性,CTR预测
1 引言
配备深度学习模型的推荐系统已在工业上广泛部署,以缓解信息过载问题。工业推荐系统中的深度模型,例如CTR预测模型和点赞预测模型,采用数值特征和分类特征作为输入。数值特征学习已成为工业推荐系统中的一个活跃研究任务。数值特征对于深度模型的性能至关重要,它们说明了用户、项目和特定用户与项目之间交互的活动水平。
在实践中,数值特征的学习方法可以分为两组:
(1) 非离散化:直接使用原始值或其转换作为密集输入;
(2) 离散化:通过离散化策略将连续数值特征转换为分类特征,并像分类策略一样分配嵌入。
一般来说,上述两种数值特征的学习方法都采用在单一深度神经网络中,如图 1所示:
大多数现有的数值特征研究集中在离散化和表示技术,以保留类似特征的连续性,但是先前的语义关系,即神经网络输出与数值输入之间的单调性很少公开讨论。模型输出与数值输入之间的单调性对于神经网络的可解释性至关重要。在工业推荐系统中,具有相同上下文时,用户与项目之间的交互活动水平越高,神经网络预测得分越高。特别是在基于用户生成内容的平台,例如Tiktok、Kuaishou等,消费者期望看到由数值特征说明的高质量UGC(User-Generated Content)。此外,在UGC平台中,高质量的内容通过更多展示机会得到回报,这对于激励生产者至关重要。此外,神经网络输出与数值输入之间的单调性是推荐系统的先验知识之一,它有助于提高模型的准确性。
传统的方法对神经网络输出与数值输入之间的单调性建模有两种类型:
(1) 仅采用数值输入作为密集特征,并与DNN输出线性融合;
(2) 仅采用数值输入作为密集特征,并保留单调性的精心设计网络。
上述方法都要求数值特征只能通过非离散化方法作为密集值使用。在真正的工业推荐系统中,除了作为非离散化方法的密集特征外,数值特征也通过离散化方法作为嵌入学习,如图 1所示,其中传统方法不再适用。
为了明确模拟神经网络输出与数值输入之间的单调性并更好地利用这一先验知识,我们提出了一个模型无关的对比学习框架:CCSS(Contrastive learning framework with Counterfactual Samples Synthesizing)。CCSS由一个对比样本合成器和一个对比目标函数模块组成,可以共同作为插入到任何神经网络的组件即插即用。对比合成器通过扰乱原始样本的数值特征值并保持其他特征不变来生成对比样本和事实样本。为了使生成的样本尽可能逼真,可以最大程度地利用对比损失,我们只扰乱每个原始样本的一个数值特征。此外,为了生成尽可能有信息量的样本,我们引入特征重要性作为特定指标,以量化每个数值特征被扰乱的概率。对比学习目标函数对生成样本和原始样本的模型输出进行排名,使模型能够在端到端的方式中学习模型输出与数值特征之间的单调性。我们总结主要贡献如下:
是第一个阐明神经网络输出与数值特征之间单调性对神经网络可解释性和有效性的重要性;
提出了一个通用的模型无关对比学习框架,名为对比样本合成(CCSS)。对比样本和事实样本是基于原始样本本地生成的,这使得CCSS可以在在线学习方案中采用。对比样本、事实样本和原始样本之间的对比损失使其能够端到端地模拟单调性。
在公共基准数据集和大规模工业数据集上进行广泛的实验来验证我们提出的CCSS的有效性和适应性,并成功将其应用于现实世界的大规模推荐系统中,带来了相当大的性能提升。
2 相关工作
这部分将从三个方面介绍相关工作:推荐系统中的可解释性、推荐中的数值特征建模和对比样本合成。
2.1 推荐系统中的可解释性
推荐系统在网络应用和服务中广泛使用扮演着至关重要的角色,用于向目标用户分发他们可能感兴趣的在线内容。推荐系统中的大部分工作都投入到开发更有效的模型结构以取得更好的性能,而可解释性,即推荐系统的可解释性却很少被讨论。推荐系统的可解释性提供了理由来阐明为什么会得到这样的结果,这对推荐系统有两方面的好处:
1)可解释性帮助系统维护者诊断和完善推荐流程。
2)通过增加透明度,可解释性促进说服力和客户满意度。
推荐系统中的可解释性研究可以分为两个方向:通过事后方法给出推荐原因和构建可解释模型或添加可解释组件以给出合理的推荐。最近,推荐可解释性的工作集中在引入更多结构信息作为模型输入。本论文属于第二个方向。本文提出从模型输出与数值特征之间建立单调性的角度改进推荐模型的可解释性,这一研究领域是有限的。
2.2 推荐中的数值特征建模
在推荐系统中,例如,CTR预测模型,数值特征的学习是热门研究课题之一。大部分工作旨在通过解决SBD(相似值但不同的嵌入)和DBS(不同的值但相同的嵌入)问题,采用离散化方法更好地学习数值特征的嵌入。关于SBD和DBS如下图所示:
本文提出学习模型输出与数值特征之间的单调性,这是数值特征的另一种先验信息。它有助于推导更合理的推荐,以模拟神经网络输出与数值特征之间的先验单调性。为了解释这一点,我们以常用的数值特征点赞量 _ _ 为例。在其他特征相同的情况下,具有较高 _ _ 的视频应该在同一上下文中排名高于另一个。我们的工作以模型无关的方法端到端地模拟单调性,这是数值特征学习研究领域的首次尝试。
2.3 对比样本合成
对比样本最近已用于视觉问答(VQA)和自然语言处理(NLP)中的数据增强。在VQA中,通过屏蔽图像中的关键对象或问题中的单词来合成对比样本,这比传统的基于对手的数据增强方法更可采用。在NLP中,通过删除短语来合成对比样本,生成的对比样本也已用于深度学习的解释,即可解释性。在推荐系统中,我们通过有向扰乱原始样本的数值特征值来合成对比样本。对于每个样本,根据其特征重要性作为采样概率,对要扰乱的数值特征进行采样。此外,为了模拟模型输出与数值特征之间的单调性,我们引入了辅助对比目标,对对比样本和事实样本的模型输出进行排名。
3 提出的方法
在第3.1节中,我们首先回顾了工业推荐系统中深度模型的背景,以CTR预测为例进行说明。然后我们在第3.2节中描述了如何在我们提出的框架中合成对比样本。我们进一步深入到第3.3节中的训练期间的实施细节。符号总结在表 1中。
3.1 预备知识
给定一个用户,一个候选项目以及在展示场景中的上下文,CTR预测是要推断点击事件发生的概率。CTR预测模型主要被制定为一个监督的逻辑回归任务,并且用从历史展示中收集的独立同分布数据集D进行训练。每个实例 = ( , ) ∈ D包含特征x意味着{ , , }的信息,以及从用户隐式反馈中观察到的标签 ∈ {0, 1}。 = 1表示具有正标签的实例,而带有负标签的实例由 = 0表示。实例特征x是包含M个数值字段和N个分类字段的多字段数据记录:
对于第i个分类特征字段,可以通过嵌入查找操作获得特征嵌入:
其中 Ei是第i个分类字段的嵌入矩阵,vi和d是词汇量和嵌入大小。数值特征既作为非离散化方法的稠密特征使用,也作为离散化方法的嵌入使用。对于第j个数值特征字段,可以通过两阶段操作获得特征嵌入:离散化和嵌入查找。
其中Ej是可学习的嵌入矩阵或第j个数值字段,wi是离散化后桶的数量。然后,所有分类特征和数值特征的嵌入,以及数值特征的密集值都连接起来,形成MLP模块的输入,即,
随后,可以通过以下判别模型获得估计的CTR ˆ ,
其中 f (·)指MLP模块的函数,由 参数化, (·)是sigmoid激活函数。模型参数E和 通过使用基于梯度的优化方法最大化目标函数L(E, )来学习。在传统的点估计CTR预测模型中,目标函数等于负对数似然l(E, ):
3.2 对比样本合成
为了最大程度地利用对比损失,我们合成尽可能逼真的生成样本,即生成样本与原始样本之间的差异尽可能小。因此,我们只扰乱每个原始样本的一个数值特征。为了生成尽可能有信息量的样本,我们引入特征重要性作为特定指标,以量化每个数值特征被扰乱的概率。在本章中,我们描述了合成逼真和有信息量的生成样本的实施细节,以及如何使用它们进行训练,如图 2所示:
3.2.1 解释特征重要性
在机器学习中,特征重要性是衡量每个特征对模型决策边际贡献的特定指标。当模型的决策受到特定特征的强烈影响时,我们期望模型的输出与该特定特征之间的可解释性更强。为了尝试符合期望,我们在合成对比样本时引入了特征重要性。我们使用Shapley值来解释每个数值特征的特征重要性,这是最广泛采用的特征重要性度量之一,因为它有坚实的理论基础。
3.2.2 特征值扰乱
我们通过扰乱每个原始样本的一个数值特征来合成一个对比样本和一个事实样本。合成过程可以分为以下步骤:
1)获得每个数值特征的特征重要性 ,其中i是数值特征的索引。
2)计算每个数值特征被扰乱的概率pi,其中i是数值特征的索引。
3)给定一个训练样本,通过在[0, 1)上均匀分布的浮点数抽签,选择要扰乱的数值特征的索引。4)对于一个带有正标签的原始训练样本,我们通过将特征值扰乱到左侧邻近桶的中心,同时保持其他特征不变,来合成一个对比样本C,对比样本没有已知标签。同时,我们通过将特征值扰乱到右侧邻近桶的中心,同时保持其他特征不变,来合成一个事实样本F,事实样本带有正标签。相反,对于一个带有负标签的原始训练样本O,通过将特征值扰乱到右侧邻近桶的中心,合成一个没有已知标签的对比样本,并通过将特征值扰乱到左侧邻近桶的中心,合成一个带有负样本的事实样本。这里,我们以模型输出和数值输入之间的单调递增关系为例进行说明。表 2详细演示了单调递减场景。
边界条件设置。 对于一个带有正标签的原始训练样本,当要扰乱的特征值位于最右桶时,我们只合成一个对比样本,通过将特征值扰乱到左侧邻近桶。类似地,对于一个带有负标签的原始训练样本,当要扰乱的特征值位于最左桶时,我们只合成一个对比样本,通过将特征值扰乱到右侧邻近桶。
3.3 使用对比样本进行训练
本章描述了使用合成样本和原始样本的训练实施细节,如图 2所示。
3.3.1 学习对比
这里,我们也以模型输出和数值输入之间的单调递增关系为例进行说明。对于带有正标签的训练实例,单调性意味着我们期望其合成的事实样本F由模型评分高于这个原始样本O,而这个原始样本又高于其合成的对比样本C。为了在CTR预测模型中解决单调性期望,我们增加了成对损失来对比(F, O)对和(O, C)对:
其中 P表示pairwise loss,本文采用了hinge loss。我们引入了一个超参数 来控制训练期间point-wise loss和pairwise loss之间的权衡。类似地,对于带有负标签的训练实例,我们期望其合成的对比样本C的评分高于这个原始样本O,而这个原始样本O又高于其合成的事实样本F。因此,带有负标签的训练实例O的损失函数公式化为:
3.3.2 使用事实样本进行数据增强
根据先验单调性,合成的事实样本具有已知标签。例如,根据先验递增单调性,对于带有正标签的训练实例合成的事实样本已知为正标签,而对于带有负标签的训练实例则为负标签。在本文中,我们利用这些带有已知标签的合成事实样本来增强训练数据。因此,我们的损失函数可以重写为:
4 实验
本节的实验目标是回答以下三个研究问题:
RQ1 CCSS在提高推荐系统中深度模型的可解释性和有效性方面表现如何?
RQ2 CCSS在插入不同网络骨干时表现如何?
RQ3 在CCSS中,随机策略选择要扰乱的特征、对比损失、数据增强损失和超参数 的效果是什么?
4.1 数据集
在一个公共基准数据集和我们的真实工业数据集上评估了我们提出的方法的性能。
KuaiRand-Pure:这个数据集是从视频分享移动应用Kuaishou的推荐日志中收集的。它包含许多表示用户行为和视频行为的统计信息的数值特征。我们采用 _ 作为二元标签,并采用其全部特征集进行训练和测试。05-01之前的样本用于训练,05-01和05-08期间的样本用于测试。
真实工业数据集:这个数据集是从我们在线视频分享平台的实时数据流中采样和收集的。它包含在8天内由4398万用户生成的12.9亿视频播放记录。此数据集的特征包括用户ID、视频ID和14维数值特征,其中包含丰富的用户活动级别、视频流行度和用户-项目交互活动级别信息。我们真实工业数据集的特征描述显示在表 3中:
此数据集中的每个实例都包含一个二元标签 _ ,表示用户是否在此实例中将此视频收集到她的收藏列表中。我们在二元分类模型上进行实验,以预测 _ 。使用最初7天的样本进行训练,使用第8天的样本进行测试。真实工业数据集的统计数据可以在表 4中找到:
对于KuaiRand和真实工业数据集,输入数值特征与估计目标之间存在强烈的语义相关性,我们期望“输入值越大,输出结果应该越大”。
4.2 基线
为了证明方法的即插即用特性,在不同的主干上进行了充分的测试:
(1) DNN是最轻量的模型结构,只包含一个MLP和一些非线性激活函数。
(2) Wide & Deep [3]共同开发宽线性模型和深度神经网络,以增强它们各自的能力。
(3) DeepFM [9]是一种深度推荐方法,学习字段之间的低层次和高层次交互。
(4) DCN [20]基于DNN,在每层显式应用特征交叉,消除了人工特征工程的需要。
(5) PNN [14]采用特征提取器来研究字段类别之间的特征交互。
4.3 实验设置
在本章中,我们描述了实验中的实现细节和评估指标。
4.3.1 实现细节
我们在每个数据集上为所有方法使用相同的模型设置,以提供公平的比较。对于所有三个数据集,我们将嵌入大小固定为32,DNN为4个FC层,隐藏单元分别为[512, 255, 127, 127]。此外,对于DCN,我们将交叉层数设置为3。我们使用小批量Adam优化所有方法,学习率为0.05,衰减率为0.9。此外,所有模型的批量大小设置为1024。我们为所有离线和在线评估采用超参数 = 1.0。
4.3.2 评估指标
我们采用AUC和Mono_rate来评估我们模型的有效性和可解释性。
AUC是推荐系统中常用的指标。它通过预测对所有项目进行排名来衡量排序的好坏。因此我们采用AUC作为主要指标。
GAUC通过平均用户AUC来衡量用户内排序的好坏,并被证明与推荐系统中的在线性能更相关。
我们实验中采用了这个指标,gauc定义为:
其中n是用户数量,#impressioni和AUCi分别是第i个用户的展示次数和AUC。此外,我们遵循引入RelaImpr指标来衡量模型的相对改进。对于随机猜测者,AUC或GAUC的值为0.5。因此,RelaImpr定义为:
Mono_rate:定义Mono_rate来评估模型输出与数值特征之间的单调性(即可解释性):
其中 _ ( )表示根据模型输出有效的预测单调对集合,monotonic pairs表示预期单调对的完整集合,包括所有的(F, O)对和(C, O)对。对于带有正标签的原始样本,有效的预测单调对包括(F, O)对,其中ˆ F > ˆ O,以及(C, O)对,其中ˆ C < ˆ O。相反,对于带有负标签的原始样本,有效的预测单调对包括(F, O)对,其中ˆ F < ˆ O,以及(C, O)对,其中ˆ C > ˆ O。
4.4 与基线的比较(RQ1, RQ2)
4.4.1 离线评估
为了证明我们提出的CCSS的有效性和适应性,我们将CCSS插入许多代表性网络进行二元分类任务,如DNN、Wide&Deep、DCN、DeepFM和PNN。根据表 5,CCSS可以在两个大规模数据集上改进所有基线。CCSS至少带来了6.0%的AUC提升和4.5%的GAUC提升。
为了评估CCSS在推理期间提高模型输出与数值特征之间单调性的有效性,我们使用测试数据集计算Mono_rates。为了简化,我们计算并比较了KuaiRand和我们工业数据集中前7个重要数值特征的Mono_rates。根据表 5,Mono_rate的改进非常明显,这意味着通过我们提出的CCSS可以增强神经网络的可解释性。
4.4.2 在线评估
为了检验CCSS在真正的工业推荐场景中的有效性,进行了基于 _ 预测模型的在线A/B测试。表 6显示了实验结果。当插入到已经为我们的在线系统高度优化并具有丰富特征的DCN中时,CCSS贡献了3.93%的 _ 增益。
4.5 消融研究(RQ3)
在本节中,我们展示了我们提出的随机策略选择要扰乱的特征、对比损失、数据增强损失在CCSS中的优势。我们在真实的工业数据集上通过评估基于DNN的几个模型进行了消融研究,DNN是最轻量级的结构:
(1) CCSS(仅数据增强):仅采用事实样本的辅助点损失。
(2) CCSS(仅事实对比损失):仅采用事实-原始样本对的辅助铰链损失。
(3) CCSS(仅对比对比损失):仅采用对比-原始样本对的辅助铰链损失。
(4) CCSS(等概率随机策略):以等概率选择要扰乱的数值特征。我们在表 7中报告了5次运行的平均AUC和GAUC结果,结果证实了我们提出的随机策略选择要扰乱的特征、对比损失、数据增强损失在CCSS中的优势。
超参数 的影响。我们评估了控制成对损失和点损失之间权衡的超参数 的影响。根据图 3,旨在提高模型可解释性的对比损失,可以帮助在适当比例下提升模型的有效性。
5 结论
在本文中,我们提出了一个通用的模型无关对比学习框架,名为对比样本合成(CCSS),用于模拟神经网络输出与数值特征之间的单调性。CCSS通过合成对比样本和事实样本,并学习在对比样本、事实样本和原始样本之间的对比来引入和模拟单调性。此外,为了生成尽可能有信息量的样本,我们引入了特征重要性作为特定指标,以量化每个数值特征被扰乱的概率。我们提出的CCSS可以轻松适应各种代表性网络,并享有端到端的学习方式。丰富的离线和在线实验表明,采用CCSS的推荐神经网络可以实现更好的可解释性和性能。
参考资料
https://dl.acm.org/doi/pdf/10.1145/3589335.3648345
最新最全的文章请关注我的微信公众号或者知乎专栏:数据拾光者。
码字不易,欢迎小伙伴们关注和分享。