前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SIGIR'23 阿里 | 基于对比学习做转化率预估

SIGIR'23 阿里 | 基于对比学习做转化率预估

作者头像
秋枫学习笔记
发布2023-08-18 12:37:47
4590
发布2023-08-18 12:37:47
举报
文章被收录于专栏:秋枫学习笔记秋枫学习笔记

标题:Contrastive Learning for Conversion Rate Prediction 地址:https://arxiv.org/pdf/2307.05974.pdf 代码:https://github.com/DongRuiHust/CL4CVR 会议:SIGIR 2023 公司:阿里

1.导读

本文是针对cvr预估所提出的方法,在现实数据中,从曝光到点击再到转化,数据是不断变少的,转化往往只是点击的一小部分,数据的稀疏性会限制模型的能力。本文提出了用于CVR预测的对比学习(CL4CVR)框架,将CVR预测与对比学习结合,利用丰富的未标记数据学习更好的数据表征,以此更准确的预测cvr。

  • 基于对比学习的思想,作者采用embedding mask(EM),而不是特征mask,通过mask来创建视图,从而构建对比学习任务。
  • 提出了一个false negative eliminate(FNE)组件来消除与锚点样本具有相同特征的样本,以说明用户行为数据中的自然属性。
  • 提出监督正样本包含(SPI)组件,为每个锚样本包含额外的正样本,以充分利用稀疏但宝贵的用户转化事件。

2.方法

图1a为在整体框架,总体是利用对比学和监督学习来促进cvr的预估。本文的重点在于对比学习的使用,在监督学习模型部分采用的是常用的cvr预测模型ESMM,当然也可以用其他cvr模型,图1b为ESMM的结构,ctr的预估为y,cvr的预估为z,损失函数为

L_{\text {pred }}=\frac{1}{N} \sum_{n=1}^{N} l\left(\hat{y}_{n}, y_{n}\right)+\frac{1}{N} \sum_{n=1}^{N} l\left(\hat{y}_{n} \hat{z}_{n}, y_{n} z_{n}\right)$ $l\left(\hat{y}_{n}, y_{n}\right)=-y_{n} \log \left(\hat{y}_{n}\right)-\left(1-y_{n}\right) \log \left(1-\hat{y}_{n}\right)

image.png

2.1 embedding mask(EM)

对比学习中的一个重点是如何增广数据,从而构建对比学习任务,以往常见的作法是对于同一样本mask掉一些不同的特征来构建正样本对,本文提出的方法是在embedding维度上进行mask。

在EM中,在拼接的embedding e向量中mask掉不同位置的元素。假设存在F个特征,每个特征的embedding维度为K。则特征mask的维度为F(因为它是在F个特征中mask掉某个特征),但是emb mask具有维度FK(是对于每个特征的emb mask掉一部分)。这样做的想法是,即使mask掉了一部分,但是是剩余的emb维度仍然可以很好地表示整个样本,并且CL损失将迫使学习的emb更具代表性。将同一样本的两个增广emb表示为

\tilde{e_i}

,

\tilde{e}_j

2.2 编码器和对比损失

以MLP为编码器,将得到的emb进一步进行表征编码得到

h_i=f(\tilde{e}_i)

,

h_j=f(\tilde{e}_j)

。鉴于batch size为N的样本,可以得到2N个增广后的样本。给定锚点样本

\tilde{e}_i

,可以将另一个增广样本

\tilde{e}_j

作为正样本,而其他样本的增广样本作为负样本。可以构建经典的对比学习损失函数为下式,其中s()为余弦相似度,τ是温度系数。

L_0=-\frac1{2N}\sum_{i=1}^{2N}\log\frac{\exp\left(s(\mathbf{h_i},\mathbf{h_j})/\tau\right)}{\sum_{k\neq i}\exp\left(s(\mathbf{h_i},\mathbf{h_k})/\tau\right)},

2.3 False Negative Eliminate

用户行为存在不确定性,可能点击了

a_1

次,转化

a_2

次,其中

a_2<=a_1

。这其中存在的问题就是,可能存在点击了相同过的商品,但是未必全部都转化了,也就是说特征相同的商品具有正负两类转化标签,当CL包含这样的样本时,学习过程中就会有矛盾。因此,本届提出了一种假阴性消除(FNE)组件。对于锚点样本i ,它生成一个集合

M(i)

(图3(b))。FNE仅影响CL任务,有监督预测模型仍然使用所有原始样本进行训练,否则,所学习的转换概率是不正确的。使用

o(\tilde{e}_i)

表示

\tilde{e}_i

的原始样本i。引入了一个重复指标,

o(\tilde{e}_i)

o(\tilde{e}_k)

具有相同的特征, 则

I(o(\tilde{e}_i),o(\tilde{e}_k))=1

,否则为0。给定锚点样本i, 定义集合为:

M(i)=\{j\}\cup\{k|I(o(\tilde{e}_i),o(\tilde{e}_k))=0\}

简而言之就是用和当前样本特征不一样的样本来做对比学习, 防止用到特征一样而转化标签不一致的样本.

2.4 有监督正样本包含(SPI)

由于转化标签是稀疏的,也是宝贵的,本届进一步提出了一种有监督正样本包含(SPI)组件来有效地利用标签信息。为锚点样本i生成一个集合S(i)包含有监督正样本,基于有监督对比学习方法,当锚点样本的转化标签为1时,包括额外正样本(图第3(c)段)。在传统的对比学习中,锚点样本

\tilde{e}_i

具有单个正样本

\tilde{e}_j

, 此方法为锚点样本找到多个正样本

S(i)=\{j\}\cup\{k|z(\tilde{\mathbf{e}}_k)=z(\tilde{\mathbf{e}}_i)=1,k\neq i,k\neq j\},

也就是说, 为转化的锚点样本额外增加其他转化样本作为正样本, 如下图所示

2.5 损失函数

对比学习损失函数如下, 其中

Q(i)=M(i)\cap S(i)

, 总体损失函数为

L=L_{pred}+\alpha L_{cl}
\begin{aligned}L_{cl}&=-\frac{1}{2N}\sum_{i=1}^{2N}\left[\frac{1}{|Q(i)|}\sum_{q\in Q(i)}\log\frac{\exp\left(s(\mathbf{h}_i,\mathbf{h}_q)/\tau\right)}{\sum_{k\in\mathcal{M}(i)}\exp\left(s(\mathbf{h}_i,\mathbf{h}_k)/\tau\right)}\right],\end{aligned}

3.结果

image.png

4.总结

本文针对转化率预估任务中的数据稀疏问题, 即点击数据远少于曝光, 转化远少于点击. 采用对比学习的方式来增强特征的表征, 整体框架就是使用cvr预估模型如ESMM结合对比学习. 在使用对比学习的时候, 考虑以下几点

  • 采用emb mask而不是特征mask, 特征的emb中的元素进行mask 得到增广后的样本进行对比学习
  • 假阴性样本排除, 由于用户行为存在不确定性, 同一用户点击了同一item也不一定每次都会转化, 而这类样本如果直接用到对比学习中则会影响表征的学习, 因此需要去掉
  • 额外正样本的补充, 使用同样转化的样本作为当前转化的锚点样本的正样本补充
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.导读
  • 2.方法
    • 2.1 embedding mask(EM)
      • 2.2 编码器和对比损失
        • 2.3 False Negative Eliminate
          • 2.4 有监督正样本包含(SPI)
            • 2.5 损失函数
            • 3.结果
            • 4.总结
            相关产品与服务
            智能数据分析
            腾讯云智能数据分析 Intellectual Data Analysis 是新一代云原生大数据敏捷分析解决方案。产品具备存算分离、动态扩缩容等特点,并内置事件、转化、留存、行为路径等成熟分析模型,提供高可用、低成本的全场景敏捷分析服务,可同时满足数据分析师、数据开发工程师和业务决策人的关键分析需求,帮助企业大幅降低数据分析成本,支撑业务更高效决策。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档