论文笔记-WWW2024-ClickPrompt

论文笔记-WWW2024-ClickPrompt: CTR Models are Strong Prompt Generators for Adapting Language Models to CTR Prediction

  • ClickPrompt: CTR模型是大模型适配CTR预测任务的强大提示生成器
  • 摘要
  • 1.引言
  • 2.预备知识
    • 2.1传统CTR预测
    • 2.2基于PLM的CTR预测
  • 3.方法
    • 3.1概述
    • 3.2模态转换
    • 3.3Prompt生成
    • 3.4Prompt融合
    • 3.5学习策略
      • 3.5.1提示增强掩码语言建模
      • 3.5.2使用PLM进行微调
      • 3.5.3不使用PLM进行微调
  • 4.实验
    • 4.1实验设置
    • 4.2性能试验
    • 4.3模型兼容性
    • 4.4消融实验
      • 4.4.1提示策略
      • 4.4.2协作和语义知识融合策略
    • 4.5长尾分析
  • 5.总结

ClickPrompt: CTR模型是大模型适配CTR预测任务的强大提示生成器

论文下载链接: ClickPrompt
代码: ClickPrompt

摘要

传统的CTR模型通过one-hot编码将多领域分类数据转换为ID特征,存在语义信息丢失的问题。另一个研究方向将输入数据转换为文本句子,尽管保留了语义信息,但无法捕获协作信息,而且推理开销大。

本文提出了一种新颖的模型无关框架ClickPrompt,结合CTR模型生成与交互相关的软提示供PLMs使用。同时设计了一种提示增强的掩码语言建模预训练任务PA-MLM,其中PLM根据上下文信息以及CTR模型生成的软提示恢复被掩码的标记。然后,选择将CTR模型与PLM一起调优以获得更好的性能,或者单独调优CTR模型而不使用PLM以提高推理效率。

1.引言

本文旨在捕捉语义知识和协作知识以实现准确的CTR预测,同时解决推理效率问题。通过设计prompt增强的掩码语言模型PA-MLM,模型首先掩码ID特征的文本,然后PLM利用ID生成的软提示和文本上下文恢复被掩码的信息。这种双向信息流动允许ID的协作信息传递给PLM,同时保持文本的语义信息回流至CTR模型。

如图1所示,通过软提示,基于ID的协作知识将通过前向传播传递给PLM,而基于文本的语义知识将通过反向传播流回CTR模型。预训练后,本文提出两种不同的微调策略用于CTR预测:使用PLM微调和不使用PLM微调。
在这里插入图片描述
本文主要贡献:

  • 提出了一个新颖的框架ClickPrompt,其中CTR模型充当PLM的软提示生成器。PA-MLM通过软提示对协作知识和语义知识之间的交互和显式对齐进行建模,从而显著提高CTR性能。

  • ClickPrompt与模型无关,并且与各种CTR模型和PLM兼容。此外,通过单独对CTR模型进行微调,ClickPrompt可以提高预测准确性,而无需改变CTR模型结构或增加额外的推理成本。

2.预备知识

2.1传统CTR预测

大多数传统CTR模型的结构分为三层:嵌入层、特征交互层和预测层。嵌入层将稀疏独热编码转化为低维嵌入向量,特征交互层捕获高阶特征交互从而生成相应的特征表示,预测层根据特征交互层的特征表示计算用户的点击概率。预测层之后,CTR模型使用二元交叉熵损失进行训练。

2.2基于PLM的CTR预测

与传统模型不同,基于PLM的CTR模型通过硬提示模版将输入转换为文本。根据任务类型和真实标签表述,基于PLM的CTR模型可以分为两类。

第一类将CTR预测视为二进制文本分类任务,其中真实标签仍然与传统设置相同,为0或1。第二类将CTR预测视为序列到序列任务,其中真实标签被转换为二进制关键词,即是或否。这类方法利用编码器解码器或仅解码器的PLM来遵循指令并回答附加在文本输入后面的二进制问题(例如,用户会喜欢该项目吗?)。本文主要关注第一类。

3.方法

3.1概述

在这里插入图片描述

如图2所示,ClickPrompt的模型架构设计主要分为三个阶段:模态转换、提示生成和提示融合。首先,模态转换层将输入数据 x i x_i xi 转换为独热ID特征 x i I D ​ x_i^{ID}​ xiID 和文本特征 x i t e x t ​ x_i^{text}​ xitext。其次,ID特征 x i I D ​ x_i^{ID}​ xiID被输入到CTR模型中,随后经过提示生成层以产生独立的软提示向量。最后,在提示融合阶段,软提示作为PLM每个变换层的前缀隐藏状态,使得协作知识和语义知识之间能够实现显式对齐。

关于学习策略,ClickPrompt采用常见的预训练-微调方案。本文首先设计了一个提示增强的掩码语言建模任务PA-MLM用于预训练,其中PLM需要根据文本上下文和由CTR模型生成的软提示来恢复被掩码的标记。预训练之后,进行有监督的微调,既可以与PLM一起,也可以单独进行。前者实现了协作信息和语义信息之间的显式互动,从而提升性能,而后者则解决了推理效率问题。

3.2模态转换

将输入 x i x_i xi 转换为两种不同的模态:ID特征 x i I D ​ x_i^{ID}​ xiID 和文本特征 x i t e x t ​ x_i^{text}​ xitext,ID特征使用one-hot编码获得:
在这里插入图片描述

表格数据的复杂模板可能会误导模型,使其无法掌握文本中的关键信息。因此,本文采用“什么是什么”的硬提示模板:
在这里插入图片描述
其中 f j n a m e ​ f_j^{name}​ fjname 是第 j j j 个字段的字段名称, f i , j f_{i,j} fi,j 是第 i i i 个数据实例中第 j j j 个字段的特征值, [ ⋅ ] [ \cdot ] [] 表示连接操作符,用于将列表中的元素用空格“ ”连接起来。

3.3Prompt生成

通过CTR模型的嵌入和特征交互层FI获得特征表示:
在这里插入图片描述
然后,维护一组并行投影网络 { g l , k ( ⋅ ) } \{g_{l,k}(\cdot)\} {gl,k()} 用于软提示生成:
在这里插入图片描述
其中 p i , l , k p_{i,l,k} pi,l,k 是PLM第 l l l 层的第 k k k 个提示向量。 L L L 是PLM的层数, K K K 是每层的软提示数量。每个投影网络 g l , k ( ⋅ ) g_{l,k}(\cdot) gl,k() 是一个多层感知机MLP,用于维度一致性和空间转换。

3.4Prompt融合

如图2所示,获得的软提示将作为PLM每个转换器层的前缀隐藏状态。具体来说,文本特征 x i t e x t ​ x_i^{text}​ xitext 被分词为 Z Z Z 个单词标记,PLM 的第 l l l 层可以表示为:
在这里插入图片描述
其中 [ h i , l , z ] z = 1 Z ​ [h_{i,l,z}]_{z=1}^{Z}​ [hi,l,z]z=1Z 是第 l l l 层的标记隐藏状态。通过每一层的自注意力机制,来自CTR模型的协作信号可以通过提示接口与文本侧的语义知识显式对齐和融合。

最后,在经过 L L L 层传播后,在PLM的输出状态上应用池化和预测层:
在这里插入图片描述
输出维度以及激活和损失函数取决于采用的任务和学习策略。

3.5学习策略

如图2所示,ClickPrompt采用常见的预训练-微调方案作为学习策略。具体而言,将提示增强的掩码语言建模PA-MLM作为预训练任务,通过软提示的链接交融协作知识和语义知识,从而改善参数初始化。然后,选择与PLM进行有监督的微调,以获得更好的CTR性能,或者仅微调CTR模型而不使用PLM,以保持改进的预测准确性和推理效率。

3.5.1提示增强掩码语言建模

如图2所示,对文本特征进行标记掩码处理,以获得损坏的文本输入 x ^ i t e x t ​ \hat{x}_i^{text}​ x^itext,同时保留原始的ID特征。然后,PLM根据语言上下文以及从完整的ID特征生成的软提示来恢复被掩码的标记。

因此,公式8中的池化和预测层被设计为语言模型的经典解码器模块,然后是softmax函数和交叉熵损失。参考以往的工作,本文对每个输入 x i t e x t ​ x_i^{text}​ xitext 均匀采样15%的标记,并以8:1:1的比例执行三种不同的操作,即:(1) [MASK] 替换,(2) 随机单词替换,(3) 保持不变。

为了完成对被掩码标记的填空任务,PLM必须提取并整合嵌入在软提示中的相应“正确答案”,从而在CTR模型和PLM之间实现对同一输入 x i x_i xi 的对齐。

3.5.2使用PLM进行微调

集成CTR模型和PLM的预测,同时与软提示向量显式交互:
在这里插入图片描述

其中 α α α 是一个可学习的参数,用于平衡预测的权重, σ ( ⋅ ) σ(⋅) σ() 是sigmoid函数。通过这种方式,来自两个模态的协作知识和语义知识在微调过程充分融合,从而提升了性能。

3.5.3不使用PLM进行微调

为进一步解决推理效率问题,可以仅微调CTR模型而不使用PLM。在PA-MLM预训练过程中,通过反向传播将PLM中的语义知识注入到CTR模型中。因此,这种语义感知的参数初始化将能够实现协作知识和语义知识之间的隐式交互,从而提升CTR性能,而无需更改CTR模型结构或增加额外的推理成本:
在这里插入图片描述

对于这两种微调策略,在估计点击概率时应用二元交叉熵损失。

4.实验

4.1实验设置

数据集:MovieLens-1M、BookCrossing、Amazon-Toys 和 GoodReads

评估指标:AUC和Log Loss

基线:

  • 传统的CTR模型:FM、DNN、DeepFM、xDeepFM、PNN、DCN、AutoInt、FiGNN、FGCNN和 DCNv2。

  • 基于PLM的CTR模型:CTR-BERT、P5、PTab和CTRL。

实现细节:选择DCNv2作为CTR模型,RoBERTa-base作为预训练语言模型。

4.2性能试验

在这里插入图片描述
结论:

  1. 传统CTR模型的性能显著优于基于PLM的CTR模型,除了CTRL。这表明特征交叉模式中嵌入的协作信息对CTR预测至关重要。

  2. CTRL在所有基线模型中表现最佳。CTRL采用基于CLIP的框架,并通过对比预训练将PLM中的语义知识提炼到CTR模型中。

  3. ClickPrompt_with PLM在所有基线模型中实现了显著的性能提升,验证了协作知识和语义知识之间的显式对齐和交互的有效性。

  4. ClickPrompt_w/o PLM性能仅次于ClickPrompt_with PLM,提高了预测准确性,同时没有增加推理延迟。

4.3模型兼容性

为了研究模型兼容性,本文在CTR模型和PLM方面的不同主干上应用了ClickPrompt框架。对于CTR模型,选择DCNv2、AutoInt和DNN。对于PLM,选择TinyBERT (14.5M)、RoBERTa-base(125M)和 RoBERTa-large(335M)。
在这里插入图片描述
结论:

  1. ClickPrompt在所有基础模型上相对于原始CTR模型实现了显著提升,这验证了其在CTR模型和PLM之间的优越模型兼容性。

  2. 随着PLM模型规模的增加,ClickPrompt对原始CTR模型的性能提升逐渐增加。因为较大的PLM拥有更广泛的开放世界知识,有助于语义信号与协作信号之间的融合和对齐。

  3. 更大规模的PLM并不一定会导致CTR预测性能的成比例改善。因此,考虑训练开销,建议使用RoBERTa-base作为ClickPrompt的更合适和经济的选择。

4.4消融实验

本节主要分析提示策略以及协作与语义知识融合策略的影响。选择DCNv2、AutoInt和DNN作为基础CTR模型,并选择RoBERTa-base作为PLM基础。

4.4.1提示策略

在这里插入图片描述
本文比较了图3所示的两种不同的提示策略,结果如表3。
在这里插入图片描述
结论:

逐层提示策略的表现优于不使用逐层提示的策略。如果提示向量仅放置在浅层输入层,模型的协作知识可能在PLM的前向传播过程中被淹没,从而导致与语义知识的不平衡交互,最终造成性能下降。

4.4.2协作和语义知识融合策略

协作知识和语义知识之间的交互和对齐有两个关键技术点:

(1)从模型架构的角度来看,分层软提示是CTR模型和PLM之间显式交互的桥梁。

(2)从学习策略的角度来看,PA-MLM预训练任务中,PLM提取并合并嵌入提示向量中的有用协作信息,从而产生细粒度的对齐。

三个变体:

  1. 没有提示

  2. 没有预训练

  3. 两者都没有

在这里插入图片描述

结论:

删除提示或预训练后,性能下降。这表明协作知识和语义知识之间的显式交互和细粒度对齐可以更好地从两种输入模式中提取和融合信息,从而提高点击率预测性能。

4.5长尾分析

根据用户和项目在训练集中出现的频率排序。频率排在后10%的被归类为长尾低频用户和项目。
在这里插入图片描述
结论:

  1. 长尾低频用户或项目可能会导致传统的CTR 模型性能显著下降。

  2. 在长尾问题更严重的情况下(例如,用户和项目都是长尾的子集),ClickPrompt 可以比主干 CTR 模型带来显着更大的改进。这证实了ClickPrompt在解决推荐的冷启动或长尾问题方面是有效的。

5.总结

本文提出了一种新颖的模型无关框架ClickPrompt,其中CTR模型充当PLM的软提示生成器。设计了一种预训练-微调方案,以实现来自独热ID模态的协作知识与来自文本模态的语义知识之间的显式互动和对齐,从而显著提高CTR预测性能。此外,提供了另一种轻量级的微调策略,仅训练CTR模型以用于下游任务,而不使用PLM,从而有效解决推理效率问题。对四个真实世界数据集的广泛实验验证了ClickPrompt相较于基线模型的优越预测性能和模型兼容性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

循环神经网络(RNN)详解

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

【微服务】Nacos

一、安装 1、官网地址:https://nacos.io/download/nacos-server/ 2、启动:找到bin目录下的startup.cmd双击启动,或者打开一个命令窗口输入: startup.cmd -m standalone双击启动后如下:可以访问控制台地址 访问后的…

混沌工程/混沌测试/云原生测试/云平台测试

背景 私有云/公有云/混合云等具有复杂,分布式,环境多样性等特点,许多特殊场景引发的线上问题很难被有效发现。所以需要引入混沌工程,建立对系统抵御生产环境中失控条件的能力以及信心,提高系统面对未知风险得能力。 …

DM-VIO(ROS)+t265配置运行记录(ubuntu18.04+ros melodic)

在工作中需要对DM-VIO算法进行测试,于是配置并记录了一下: 首先运行ros接口的dm-vio,一定要先配置源码 https://github.com/lukasvst/dm-vio在这个网址把源码下载下来并解压,并安装一下依赖: sudo apt-get install …

自动化运维(k8s)之微服务信息自动抓取:namespaceName、deploymentName等全解析

前言:公司云原生k8s二开工程师发了一串通用性命令用来查询以下数值,我想着能不能将这命令写成一个自动化脚本。 起初设计的 版本一:开头加一条环境变量,执行脚本后,提示输入:需要查询的命名空间&#xff0c…

【数据分析】布朗运动(维纳过程)

文章目录 一、概述二、数学布朗运动2.1 数学定义2.2 布朗运动的数学模型2.21 标准布朗运动2.22 布朗运动的路径2.23 布朗运动的方程 三、布朗运动在金融学中的应用四、数学构造(以傅里叶级数为例)4.1 傅里叶级数的基本思想4.2 构造布朗运动 一、概述 布…

Mybatis Plus 增删改查方法(一、增)

先定义一个简单的测试表,执行脚本如下: create table user(id bigint primary key auto_increment,name varchar(255) not null,age int not null default 0 check (age > 0) ); 根据Spingbootmybatisplus的结构根据表自行构建结构,大致…

基于Matlab的图像去噪算法仿真(二)

在信息化的社会里,图像在信息传播中所起的作用越来越大。所以,消除在图像采集和传输过程中而产生的噪声,保证图像受污染度最小,成了数字图像处理领域里的重要部分。 本文主要研究分析邻域平均法、中值滤波法、维纳滤波法及模糊小…

鸿蒙Next星河版基础代码

目录: 1、鸿蒙箭头函数的写法2、鸿蒙数据类型的定义3、枚举的定义以及使用4、position绝对定位及层级zIndex5、字符串的拼接转换以及数据的处理(1)字符串转数字(2)数字转字符串(3)布尔值转换情况(4)数组的增删改查 6、三元表达式7、鸿蒙for循环的几种写法7.1、基本用…

Node.js的url模块与querystring模块

新书速览|Vue.jsNode.js全栈开发实战-CSDN博客 《Vue.jsNode.js全栈开发实战(第2版)(Web前端技术丛书)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) 4.3.1 http模块——创建HTTP服务器、客户端 要使用http模块&#xff0…

Conda 管理python开发环境

同步发布于我的网站 🚀 故事起因: 在公司使用Requests多任务并行开发时遇到了问题,使用 ProcessPoolExecutor 时不能正常发出网络请求,会卡在网络请求发不出去,但是善于用 ThreadPoolExecutor 时是可以的,纠结了很久,一…

LLamafactory 批量推理与异步 API 调用效率对比实测

文章目录 背景数据集构造LLamafactory 批量推理yaml 参数设置批量推理启动 LLamafactory API 部署结论项目开源 背景 在阅读 LLamafactory 的文档时候,发现它支持批量推理: 推理.https://llamafactory.readthedocs.io/zh-cn/latest/getting_started/inference.html…

Android通过摄像头检测心率

话不多说,先看效果 Android通过摄像头测量心率 借鉴文章如下 Android通过摄像头计算心率、心率变异性 该文章的核心功能点已经很全了,为了方便使用,我这边整理成了工具类可直接使用 该功能全网文章还是比较少的,还是要感谢下借鉴…

测绘坐标数据封装处理

1、测绘数据 2、数据处理 public void dealData() {List<Map<String, Object>> shyqzdMapList 截图数据;Map<String, List<Map<String, Object>>> groupMap shyqzdMapList.stream().collect(Collectors.groupingBy(item -> String.valueOf…

一个开源轻量级的服务器资源监控平台,支持告警推送

大家好&#xff0c;今天给大家分享一款开源的轻量级服务器资源监控工具Beszel&#xff0c;提供历史数据记录、Docker容器统计信息监控以及多种警报功能&#xff0c;用于监控服务器资源。 项目介绍 Beszel由hub&#xff08;中心服务器端应用&#xff0c;基于PocketBase构建&…

SVG无功补偿装置MATLAB仿真模型

“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介 SVG&#xff08;又称ASVG 或STATCOM&#xff09;是Static Var Generator 的缩写&#xff0c;叫做静止无功发生器。也是做无功补偿的&#xff0c;比SVC 更加先进。其基本原理是将自换相桥式电路通过电抗器或…

el-cascader 使用笔记

1.效果 2.官网 https://element.eleme.cn/#/zh-CN/component/cascader 3.动态加载&#xff08;官网&#xff09; <el-cascader :props"props"></el-cascader><script>let id 0;export default {data() {return {props: {lazy: true,lazyLoad (…

CQ 社区版 2024.11 | 新增“审批人组”概念、可通过SQL模式自定义审计图表……

CloudQuery 社区 11 月新版本来啦&#xff01;本月版本依旧是 CUG&#xff08;CloudQuery 用户组&#xff09;尝鲜版的更新。 针对审计模块增加了 SQL 模式自定义审计图表&#xff1b;在流程模块引入了“审批人组”概念。此外&#xff0c;在 SQL 编辑器、连接管理等模块都涉及…

【论文阅读】 Learning to Upsample by Learning to Sample

论文结构目录 一、之前的上采样器二、DySample概述三、不同上采样器比较四、整体架构五、设计过程&#xff08;1&#xff09;初步设计&#xff08;2&#xff09;第一次修改&#xff08;3&#xff09;第二次修改&#xff08;4&#xff09;第三次修改 六、DySample四种变体七、复…

微积分复习笔记 Calculus Volume 2 - 3.1

The first 2 chapters of volume 2 are the same as those in volume 1. Started with Chapter 3. 3.1 Integration by Parts - Calculus Volume 2 | OpenStax