推荐系统遇上深度学习(一四二)-[微软复旦]CTR预估中的对比学习框架CL4CTR

news2024/12/25 9:07:10

a4ed3269ecccd58db647253dd17d14e2.jpeg

今天分享的论文为《CL4CTR: A Contrastive Learning Framework for CTR Prediction》,从特征表示角度入手,将多种对比学习损失引入到CTR预估的模型训练中,一起来看一下。

1、背景

主流的CTR预估模型大致可以分为两类,一类是传统的模型,如逻辑回归,FM,FFM等,这些模型仅可以建模低阶的特征交互,另一类是基于深度学习的模型,如DeepFM、wide&Deep等,这些模型可以建模高阶的特征交互来提升模型的预估效果。对于深度学习类的CTR预估模型,大都基于三层的设计范式:Embedding层、特征交互(FI)层和预估层。在这种设计范式下,绝大多数的工作针对特征交互层展开,如xDeepFM、DCN等,对于Embedding层的研究却很少。但在实际训练过程中,大多数CTR模型面临的一个问题是:出现频率高的特征对应的Embedding会被充分学习,出现次数低的特征对应的Embedding无法被充分学习,进一步导致模型的表现是次优的。如在Frappe和ML-tag数据集中,可以看到明显的“长尾”现象,如下图所示:

b3a277d43b999fdfabb24893843e9577.jpeg

当然也有一些工作从特征表示的角度入手进行优化,在模型中引入了特征重要度模块来增强其表示(如FEN,Duel-FEN),但额外模块的引入会带来额外的学习参数以及线上推理耗时,同时,这些模型仅通过监督信号来优化特征表示,论文认为这也是远远不够的。

因此,从特征表示优化的角度出发,针对现有模型的一些问题,将多种对比学习的损失引入到模型当中,接下来对具体方法进行介绍。

2、CL4CTR介绍

论文提出了一种CTR预估中的对比学习框架CL4CTR,整体如下图所示:

9467c9b08135bd477eff2f9eb25a32bd.jpeg

预估部分的内容就不介绍了,主要对三种对比学习损失进行介绍。

2.1 Contrastive Loss

这一部分引入了Contrastive Moudle,基于数据增强的思路,对样本的embedding进行扰动,构造相似的正例样本,相似的embedding在经过相同的特征交互层和映射层之后,得到的结果也应该是相近的。

对于embedding扰动的方式,论文提出了三种方法,分别是随机mask,按特征mask,按维度mask,三种方式如下图所示:

4b8f11ffd7d27e4b1372338649ef0157.jpeg

对于扰动后的样本对,经过特征交互层和映射层之后,希望其得到的向量表示越近越好,数学表示如下:

569b30bfff54c0f9619843126ec39e3a.jpeg

d23f24a7d80c0c275cb6e6f55e85af39.jpeg

35ef6da90188482ff10dc9f0c91e9463.jpeg

2.2 Feature Alignment And Field Uniformity Loss

为了确保高频特征和低频特征都能够得到有效的学习,受CV和NLP领域中的思路的启发,通过引入正负样本对,引入alignment和uniformity两个约束来实现。针对CTR预估场景,本文将同一个field的特征类比为正样本对,不同field的特征类比为负样本对,在这样的假定下,Feature Alignment即来自相同域的embedding尽可能接近,Field Uniformity即来自不同域的特征embedding尽可能远。数学表示如下:

b3156d35dbd6ae3e49248984878cc870.jpeg

f5456c238bfe9fa2007163e03cf16b38.jpeg

其中,F表示field的个数,f表示某一个特定的域,相似度计算采用cosine距离。

2.3 Multi-task Training

在引入上述三个对比学习损失后,模型的整体损失函数包含四部分:

352f3c9f1f25d72c4ac0b00a9c447683.jpeg

首先,模型没有引入额外的参数,因此不影响预测耗时;其次,通过引入Contrastive Loss,提升了embedding的表达能力;最后,引入最后一部分损失,保证长尾特征的embedding也能得到有效的学习。

3、实验结果

最后来看下实验结果,首先是与baseline模型的对比:

824b7b88b3f7d7d3012ebbf8664719ed.jpeg

接下来论文进行了诸多消融实验验证模型的效果,首先是兼容性分析,将CL4CTR应用于不同的base模型上,均取得了AUC的提升:

b58618f179e9e6c8ac2655cb77702553.jpeg

其次是Contrastive Loss中不同的数据增强方式,针对不同的数据集和Base模型,最优的数据增强方式不同:

d815de16ffd864dd26e3a9d22cf32ad1.jpeg

最后是loss function,引入三种对比学习损失时,效果最优:

c52bc3c50d548c29cbff856d01ed0545.jpeg

好了,论文就介绍到这里,整体来说论文要解决的问题十分明确,所采取的对比学习方法具有一定的借鉴意义~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软件测试】遇到新产品的测试就懵了?这三部曲带你轻松快速上手新业务......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 初入一家公司&#…

FreeRTOS互斥量的实验

互斥量又称互斥信号量(本质是信号量),是一种特殊的二值信号量,它和 信号量不同的是,它支持互斥量所有权、递归访问以及防止优先级翻转的特性, 用于实现对临界资源的独占式处理。本章要实现的功能是&#xf…

算法训练营 day24 回溯算法 回溯算法理论基础 组合

算法训练营 day24 回溯算法 回溯算法理论基础 组合 回溯算法理论基础 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。 虽然回溯法很难,很不好理解,但是回溯法并不是什么高效的算法。 因为回溯的本质是穷举,穷举所有可能&am…

钉钉微应用 - - - - 如何本地开发调试?

钉钉微应用 - 本地开发调试1. 安装DingTalk-Design-CLI2. 初始化代码模版3. 启动开发、调试功能4. 遇到的问题4.1 对应企业没有xxx域名微应用??4.2 history、location的表现异常??4.3 本地已经存在了H5微应用,也想使用…

软件体系结构与架构技术知识点万字总结

文章目录页面技术一、Spring框架1. 三层体系架构2. Spring的核心3. Spring 的Bean中主要的装配方式(1)基于XML的装配:(2)基于Annotation的装配:(3)自动装配:4. Spring框架…

Linux 中启用 SSH 密码登录

Linux 中启用 SSH 密码登录 文章目录Linux 中启用 SSH 密码登录1、更改配置文件2、设置登录密码3、完成1、更改配置文件 首先使用 管理员 权限打开/etc/ssh/sshd_config文件。 sudo vi /etc/ssh/sshd_config找到 PasswordAuthentication 选项,耐心查找。 当然&am…

23种设计模式之十一种行为型模式

23种设计模式之十一种行为型模式1. 设计模式概述1.1 什么是设计模式1.2 设计模式的好处2. 设计原则分类3. 详解3.1 单一职责原则3.2 开闭原则3.3 里氏代换原则3.4 依赖倒转原则3.5 接口隔离原则3.6 合成复用原则3.7 迪米特法则4. Awakening1. 设计模式概述 我们的软件开发技术也…

车道线检测源码详解

源码链接见文末 1.车道数据与标签下载 数据下载地址:因为数据的规模比较大,源码中只包含了部分数据,能够供运行代码使用 CULane:https://xingangpan.github.io/projects/CULane.html tusimple:https://github.com/TuSimple/tusimple-benchmark/issues/3 2.项目环境配置 …

数据存储:MySQL之多表连接方式

在我们走出新手村,开始编写系统时,总会遇到各种复杂的场景需要多个数据库表的联查,这时我们就需要掌握多表查询有几种方式,以便我们在各种复杂的应用场景使用适宜的连接方式。 用于测试的表: student表 grade表 syst…

车载以太网 - SomeIP测试专栏 - 详细解析 - 02

对于介绍SomeIP协议,我还是想从最基础的协议解析来,所以今天还是先将SomeIP协议详解给大家列举一下,也方便大家在工作中如果不记得哪些信息随时可以查看学习,也算是留给我自己的笔记吧,毕竟确实容易忘记。 SomeIP数据&…

【GD32F427开发板试用】基于移植BP神经网络辨认花的种类

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:卢瑟 前言 很荣幸参与这次GD32的开发板试用活动(白嫖活动),由于在家条件比较有限,就移植了之前做过的项目。利用神经网…

【Java开发常用软件整理】

该博客整理了一些JAVA程序员常用的软件开发类软件、系统类软件,可以作为JAVA程序员配置Java开发基础环境的参考手册。 目录开发类软件Java8 安装IntelliJ IDEA 安装Maven 安装Git 安装MYSQL 安装系统类软件开发类软件 开发软件安装包下载地址:开发软件安…

ASP.NET Core Web应用程序项目部署流程

目录 一、准备ASP.NET Core应用程序部署文件 二、环境配置 三、测试 ASP.NET Core Web 应用程序 四、部署后访问失败问题 以下部署流程都是基于Windows服务器环境下进行的。 一、准备ASP.NET Core应用程序部署文件 使用 Visual Studio 开发工具创建 ASP.NET Core 的Web应…

盘点最近线程池的几个面试重要考点

有点惊叹最近的面试题,因为从之前的基础的面试题,到之后的一些涉及到分布式和微服务的面试题,再到现在的线程池的一些面试题,反正不同的面试官,就有不同的针对方向,可能现在的面试官比较想考验你的多方面的…

Hive(2):Apache Hive 安装部署

1 元数据相关名词 1.1 Metadata Metadata即元数据。元数据包含用Hive创建的database、table、表的位置、类型、属性,字段顺序类型等元信息。元数据存储在关系型数据库中。如hive内置的Derby、或者第三方如MySQL等。 1.2 Metastore Metastore即元数据服务。Metast…

Python中tqdm进度条的详细介绍(安装程序与耗时的迭代)

平时在做一些测试时候,是没有进度条出现的,这跟大家pip安装程序不一样(有安装进度条),比如做遍历的时候:for i in range(10):time.sleep(0.5)print(i)只是每过0.5秒就进行打印输出,在这个等待过程是没有任何提示的&…

SAP ADM100-2.1 SAP系统启停过程

一、SAP系统开启过程 在SAP系统使用过程中维护硬件和修改SAP系统配置文件后重启SAP系统是有必要的。开启SAP系统是每个SAP系统管理员应该熟悉的初始过程。 每个SAP系统包含一个数据库和至少一个实例,JAVA栈SAP系统还有一个CS中央服务实例,ABAP栈SAP系统含有一个ABAP CS中央服…

springboot2.5集成log4j2报错

报错信息: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 修改依赖 把依…

【01Studio MaixPy AI K210】22.ESP8266与服务器连接的问题及处理

目录 前提 问题 处理 前提 WiFi的账号密码输入正确 ESP8266的主题与服务器的主题一致 代码的服务器网址正确 ESP8266正确连接核心板的引脚 ESP8266返回“OK” simple.py文件以发送到开发板 WiFi已打开 问题 1.连接上WiFi,已输出IP信息,但是仍然…

48.Isaac教程--GMapping应用程序

GMapping应用程序 GMapping 是一个使用 OpenSlam 软件库的地图生成工具。 该应用程序允许您创建地图以在其他应用程序中使用。 GMapping 应用程序使用 Carter 参考机器人的 LIDAR 功能。 注意 建图是一项计算密集型和存储密集型活动,可能需要微调才能生成合适的…