当前位置: 首页 > news >正文

论文笔记-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相较于基线模型的优越预测性能和模型兼容性。

相关文章:

论文笔记-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.…...

53 基于单片机的8路抢答器加记分

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 首先有三个按键 分别为开始 暂停 复位,然后八个选手按键,开机显示四条杠,然后按一号选手按键,数码管显示30,这…...

【java数据结构】二叉树OJ题

【java数据结构】二叉树OJ题 一、检查两颗树是否相同二、另一颗树的子树三、翻转二叉树四、对称二叉树五、判断一颗二叉树是否是平衡二叉树六、给定一个二叉树, 找到该树中两个指定节点的最近公共祖先七、根据一棵树的前序遍历与中序遍历构造二叉树练习:八、二叉树前…...

IIC和SPI的时序图

SCL的变化快慢决定了通信速率,当SCL为低电平的时候,无论SDA是1还是0都不识别: ACK应答:当从设备为低电平的时候识别为从设备有应答: 谁接收,谁应答: 起始位和停止位: IIC的时序图&am…...

MySQL数据库表的操作

1、总述 今天我跟大家分享MySQL数据库中表的创建,查看,修改,删除。 2、创建表 create table table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; 说明&#xff1…...

.net core 创建linux服务,并实现服务的自我更新

目录 创建服务创建另一个服务,用于执行更新操作给你的用户配置一些systemctl命令权限 创建服务 /etc/systemd/system下新建服务配置文件:yourapp.service,内容如下: [Unit] Descriptionyourapp Afternetwork.target[Service] Ty…...

springboot338it职业生涯规划系统--论文pf(论文+源码)_kaic

毕 业 设 计(论 文) 题目:it职业生涯规划系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以…...

oracle将select作为字段查询

在Oracle中,如果你想将一个SELECT语句作为字段的值,你可以使用子查询或者使用WITH子句(也称为公用表表达式CTE)。以下是两种方法的示例: 方法1:使用子查询 语法如下: SELECTcolumn1,(SELECT …...

Java数据结构和算法相关面试题

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...

网络安全风险评估

项目背景 随着信息化技术的快速发展,特别是面向社会、政府机构、企业等业务系统的投入使用,各组织机构对网络和信息系统安全防护都提出了新的要求。为满足安全需求,需对组织机构的网络和信息系统的安全进行一次系统全面的评估,以…...

ADAM优化算法与学习率调度器:深度学习中的关键工具

深度学习模型的训练效果离不开优化算法和学习率的选择。ADAM(Adaptive Moment Estimation)作为深度学习领域中广泛应用的优化算法之一,以其高效性和鲁棒性成为许多任务的默认选择。而学习率调度器则是优化算法的“助推器”,帮助训…...

岛屿数量C++11新特性

每日一题 200. 岛屿数量 class Solution {//使用深度的优先搜索来搜索岛屿图//遍历整个图片 当char数组的值为1时开始从这个点开始往外扩散搜索//注意处理边界 图不是正方形 public:int ans;int d[4][2] {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};int N;int M;void dfs(vector<…...

Git 快速入门:全面了解与安装步骤

Git 快速入门&#xff1a;全面了解与安装步骤 一、关于Git 1.1 简介 Git 是一个开源的分布式版本控制系统&#xff0c;由 Linus Torvalds 于 2005 年创建&#xff0c;最初是为了更好地管理 Linux 内核开发而设计。 Git用于跟踪计算机文件的变化&#xff0c;特别是源代码文件…...

基于域自适应的双光融合

目录 引言DAF-Net编码器-解码器分支编码器部分融合层解码器部分 域自适应层概述多核最大均值差异&#xff08;MK-MMD&#xff09;第一阶段&#xff1a;编码器-解码器分支训练训练过程损失函数 第二阶段&#xff1a;融合层训练训练过程损失函数 实验与结果总结 文章声明&#xf…...

迭代器模式 (Iterator Pattern)

文章目录 迭代器模式 (Iterator Pattern)原理优点缺点示例代码场景描述1. 定义迭代器接口2. 定义集合接口3. 实现具体集合类4. 客户端代码输出结果 UML 类图使用场景优化与扩展小结 迭代器模式 (Iterator Pattern) 迭代器模式是一种 行为型设计模式&#xff0c;用于顺序访问集…...

039集——渐变色之:CAD中画彩虹()(CAD—C#二次开发入门)

&#xff08;来左边儿 跟我一起画个龙&#xff0c;在你右边儿 画一道彩虹 ~~~~~~~~~~~ &#xff09; 效果如下&#xff1a; namespace AcTools {public class Class1{public Wform.Timer timer;//定时器需建在类下面public static DateTime startTime;[CommandM…...

如何将 GitHub 私有仓库(private)转换为公共仓库(public)

文章目录 如何将 GitHub 私有仓库转换为公共仓库步骤 1: 登录 GitHub步骤 2: 导航到目标仓库步骤 3: 访问仓库设置步骤 4: 更改仓库可见性步骤 5: 确认更改步骤 6: 验证更改注意事项 如何将 GitHub 私有仓库转换为公共仓库 在软件开发领域&#xff0c;GitHub 是一个广受欢迎的…...

C++11 右值引用

目录 左值 右值 左值引用与右值引用比较 左值引用总结&#xff1a; 右值引用总结&#xff1a; 左值引用的使用场景&#xff1a; 引用传参和做返回值都可以提高效率(减少拷贝) 左值引用的短板&#xff1a; 右值引用和移动语义解决上述问题&#xff1a; 下面就是有移动…...

WPS表格学习计划与策略

一、学习目标 掌握WPS表格的基本操作:包括新建、打开、保存工作簿,单元格的编辑与格式化,数据的输入与验证等。熟练运用WPS表格的数据处理功能:包括数据排序、筛选、分类汇总,以及使用公式和函数进行计算和分析。学会制作图表与数据可视化:掌握不同类型图表(如柱状图、折…...

Android 引入 proto 项目及使用方法

Proto&#xff08;Protocol Buffers&#xff09;是Google开发的一种语言无关、平台无关的序列化结构数据的方法&#xff0c;它类似于JSON和XML&#xff0c;但相对于XML而言更小&#xff0c;相对于JSON而言解析更快&#xff0c;支持多语言。以下是将Proto引入Android项目的方法及…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...