标题:Contrastive Learning for Conversion Rate Prediction 地址:https://arxiv.org/pdf/2307.05974.pdf 代码:https://github.com/DongRuiHust/CL4CVR 会议:SIGIR 2023 公司:阿里
本文是针对cvr预估所提出的方法,在现实数据中,从曝光到点击再到转化,数据是不断变少的,转化往往只是点击的一小部分,数据的稀疏性会限制模型的能力。本文提出了用于CVR预测的对比学习(CL4CVR)框架,将CVR预测与对比学习结合,利用丰富的未标记数据学习更好的数据表征,以此更准确的预测cvr。
图1a为在整体框架,总体是利用对比学和监督学习来促进cvr的预估。本文的重点在于对比学习的使用,在监督学习模型部分采用的是常用的cvr预测模型ESMM,当然也可以用其他cvr模型,图1b为ESMM的结构,ctr的预估为y,cvr的预估为z,损失函数为
image.png
对比学习中的一个重点是如何增广数据,从而构建对比学习任务,以往常见的作法是对于同一样本mask掉一些不同的特征来构建正样本对,本文提出的方法是在embedding维度上进行mask。
在EM中,在拼接的embedding e向量中mask掉不同位置的元素。假设存在F个特征,每个特征的embedding维度为K。则特征mask的维度为F(因为它是在F个特征中mask掉某个特征),但是emb mask具有维度FK(是对于每个特征的emb mask掉一部分)。这样做的想法是,即使mask掉了一部分,但是是剩余的emb维度仍然可以很好地表示整个样本,并且CL损失将迫使学习的emb更具代表性。将同一样本的两个增广emb表示为
,
。
以MLP为编码器,将得到的emb进一步进行表征编码得到
,
。鉴于batch size为N的样本,可以得到2N个增广后的样本。给定锚点样本
,可以将另一个增广样本
作为正样本,而其他样本的增广样本作为负样本。可以构建经典的对比学习损失函数为下式,其中s()为余弦相似度,τ是温度系数。
用户行为存在不确定性,可能点击了
次,转化
次,其中
。这其中存在的问题就是,可能存在点击了相同过的商品,但是未必全部都转化了,也就是说特征相同的商品具有正负两类转化标签,当CL包含这样的样本时,学习过程中就会有矛盾。因此,本届提出了一种假阴性消除(FNE)组件。对于锚点样本i ,它生成一个集合
(图3(b))。FNE仅影响CL任务,有监督预测模型仍然使用所有原始样本进行训练,否则,所学习的转换概率是不正确的。使用
表示
的原始样本i。引入了一个重复指标,
和
具有相同的特征, 则
,否则为0。给定锚点样本i, 定义集合为:
简而言之就是用和当前样本特征不一样的样本来做对比学习, 防止用到特征一样而转化标签不一致的样本.
由于转化标签是稀疏的,也是宝贵的,本届进一步提出了一种有监督正样本包含(SPI)组件来有效地利用标签信息。为锚点样本i生成一个集合S(i)包含有监督正样本,基于有监督对比学习方法,当锚点样本的转化标签为1时,包括额外正样本(图第3(c)段)。在传统的对比学习中,锚点样本
具有单个正样本
, 此方法为锚点样本找到多个正样本
也就是说, 为转化的锚点样本额外增加其他转化样本作为正样本, 如下图所示
对比学习损失函数如下, 其中
, 总体损失函数为
image.png
本文针对转化率预估任务中的数据稀疏问题, 即点击数据远少于曝光, 转化远少于点击. 采用对比学习的方式来增强特征的表征, 整体框架就是使用cvr预估模型如ESMM结合对比学习. 在使用对比学习的时候, 考虑以下几点