一文总结特征增强&个性化在CTR预估中的经典方法和效果对比

在ctr预估中,主流都采用特征embedding+mlp的方式,其中特征非常关键。然而对于相同的特征,在不同的样本中,表征是相同的,这种方式输入到下游模型,会限制模型的表达能力。

为了解决这个问题,CTR预估领域提出了一系列相关工作,被称为特征增强模块。特征增强模块根据不同的样本,对embedding层的输出结果进行一次矫正,以适应不同样本的特征表示,提升模型的表达能力。

最近,复旦大学和微软亚洲研究院合作发布了一篇关于特征增强工作的综述,对比了不同特征增强模块的实现方法及其效果。现在,我们来介绍一下几种特征增强模块的实现方法,以及本文所进行的相关对比实验

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

一文总结特征增强&个性化在CTR预估中的经典方法和效果对比论文标题:A Comprehensive Summarization and Evaluation of Feature Refinement Modules for CTR Prediction

下载地址:https://arxiv.org/pdf/2311.04625v1.pdf

1、特征增强建模思路

特征增强模块,旨在提升CTR预估模型中Embedding层的表达能力,实现相同特征在不同样本下的表征差异化。特征增强模块可以用下面这个统一公式表达,输入原始的Embedding,经过一个函数后,生成这个样本个性化的Embedding。

一文总结特征增强&个性化在CTR预估中的经典方法和效果对比图片

这类方法的大致思路为,在得到初始的每个特征的embedding后,使用样本本身的表征,对特征embedding做一个变换,得到当前样本的个性化embedding。下面给大家介绍一些经典的特征增强模块建模方法。

2、特征增强经典方法

An Input-aware Factorization Machine for Sparse Prediction(IJCAI 2019)这篇文章在embedding层之后增加了一个reweight层,将样本初始embedding输入到一个MLP中得到一个表征样本的向量,使用softmax进行归一化。Softmax后的每个元素对应一个特征,代表这个特征的重要程度,使用这个softmax结果和每个对应特征的初始embedding相乘,实现样本粒度的特征embedding加权。

一文总结特征增强&个性化在CTR预估中的经典方法和效果对比图片

FiBiNET: 结合特征重要性和二阶特征交互的点击率预测模型(RecSys 2019)也采用了类似的思路。该模型为每个样本学习了一个特征的个性化权重。整个过程分为挤压(squeeze)、提取(extraction)和重新加权(reweight)三个步骤。在挤压阶段,通过池化方法将每个特征的嵌入向量得到一个统计标量。在提取阶段,将这些标量输入到多层感知机(MLP)中,得到每个特征的权重。最后,将这些权重与每个特征的嵌入向量相乘,得到加权后的嵌入结果,相当于在样本级别上进行特征重要性的筛选

Calliper 文档对比神器 Calliper 文档对比神器

文档内容对比神器

Calliper 文档对比神器 28 查看详情 Calliper 文档对比神器

一文总结特征增强&个性化在CTR预估中的经典方法和效果对比图片

A Dual Input-aware Factorization Machine for CTR Prediction(IJCAI 2020)和上一篇文章类似,也是利用self-attention对特征进行一层增强。整体分为vector-wise和bit-wise两个模块。Vector-wise将每个特征的embedding当成序列中的一个元素,输入到Transformer中得到融合后的特征表示;bit-wise部分使用多层MLP对原始特征进行映射。两部分的输入结果相加后,得到每个特征元素的权重,乘到对应的原始特征的每一位上,得到增强后的特征。

一文总结特征增强&个性化在CTR预估中的经典方法和效果对比图片

GateNet:增强门控深度网络用于点击率预测(2020)利用每个特征的初始嵌入向量通过一个MLP和sigmoid函数生成其独立的特征权重分数,同时使用MLP将所有特征映射为按位的权重分数,将两者结合起来对输入特征进行加权。除了特征层外,在MLP的隐藏层中,也利用类似的方法对每个隐藏层的输入进行加权

一文总结特征增强&个性化在CTR预估中的经典方法和效果对比图片

Interpretable Click-Through Rate Prediction through Hierarchical Attention(WSDM 2020)也是利用self-attention实现特征的转换,但是增加了高阶特征的生成。这里面使用层次self-attention,每一层的self-attention以上一层sefl-attention的输出作为输入,每一层增加了一阶高阶特征组合,实现层次多阶特征提取。具体来说,每一层进行self-attention后,将生成的新特征矩阵经过softmax得到每个特征的权重,根据权重对原始特征加权新的特征,再和原始特征进行一次点积,实现增加一阶的特征交叉。

一文总结特征增强&个性化在CTR预估中的经典方法和效果对比图片

ContextNet: A Click-Through Rate Prediction Framework Using Contextual information to Refine Feature Embedding(2021)也是类似的做法,使用一个MLP将所有特征映射成一个每个特征embedding尺寸的维度,对原始特征做一个缩放,文中针对每个特征使用了个性化的MLP参数。通过这种方式,利用样本中的其他特征作为上下位增强每个特征。

一文总结特征增强&个性化在CTR预估中的经典方法和效果对比图片

Enhancing CTR Prediction with Context-Aware Feature Representation Learning(SIGIR 2022)采用了self-attention进行特征增强,对于一组输入特征,每个特征对于其他特征的影响程度是不同的,通过self-attention,对每个特征的embedding进行一次self-attention,实现样本内特征间的信息交互。除了特征间的交互,文中也利用MLP进行bit级别的信息交互。上述生成的新embedding,会通过一个gate网络,和原始的embedding进行融合,得到最终refine后的特征表示。

一文总结特征增强&个性化在CTR预估中的经典方法和效果对比图片

3、实验效果

进行了各类特征增强方法的效果对比后,得出整体结论:在众多特征增强模块中,GFRL、FRNet-V、FRNetB表现最优,且效果优于其他特征增强方法

一文总结特征增强&个性化在CTR预估中的经典方法和效果对比图片

以上就是一文总结特征增强&个性化在CTR预估中的经典方法和效果对比的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/628995.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月11日 10:15:25
下一篇 2025年11月11日 10:16:31

相关推荐

  • Go项目导入本地另一个模块提示找不到路径?

    go项目找不到本地模块通常是因为模块管理配置问题或路径设置不正确。1.检查go.mod文件,确保本地模块被正确声明和引用;2.确认导入路径与模块路径一致;3.更新ide索引以识别本地模块;4.避免项目意外使用gopath模式;5.在go.mod中正确使用replace指令指定本地模块的相对路径;6.…

    2025年12月15日 好文分享
    000
  • 如何让Go项目同时支持旧版GOPATH和模块?

    要让go项目同时支持旧版gopath和模块,核心在于启用go modules并保留gopath结构;1. 初始化go modules并在根目录创建go.mod文件;2. 保持原有gopath目录结构;3. 使用replace指令处理本地依赖;4. 使用go build/go install进行构建;…

    2025年12月15日 好文分享
    000
  • Python中的模块和包有什么区别?

    模块是.py文件,实现代码复用与命名空间隔离;包是含__init__.py的目录,通过层级结构管理模块,解决命名冲突、提升可维护性,支持绝对与相对导入,便于大型项目组织与第三方库分发。 Python中的模块和包,说白了,模块就是你写的一个个 .py 文件,里面装着你的函数、类或者变量,是代码复用的基…

    2025年12月14日
    000
  • Python中的模块和包是如何工作的?

    Python中的模块和包是如何工作的? Python作为一门强大的编程语言,拥有丰富的标准库,同时也支持自定义的模块和包,这使得程序的组织和复用更加简单和高效。本文将介绍Python中模块和包的基本概念,并通过具体的代码示例来说明它们是如何工作的。 一、模块的概念与使用 在Python中,模块是一个…

    2025年12月13日
    000
  • 2025年年末收官之战:值得重仓的加密货币盘点!

    binance币安交易所 注册入口: APP下载: 欧易OKX交易所 注册入口: APP下载: 火币交易所: 注册入口: APP下载: 随着2025年步入尾声,加密市场迎来了新周期的关键节点。投资者正积极寻找具备高增长潜力的资产,为年末的收官之战做好关键布局。本文将盘点几个值得关注的核心赛道。 人工…

    2025年12月9日
    000
  • 热点追踪:2025年最受关注的山寨币板块

    Binance币安 欧易OKX ️ Huobi火币️ 2025年,山寨币市场不再是普涨行情,而是由几个具备真实需求和机构资金流入的核心板块主导。从链上数据到宏观环境,这些领域正展现出强劲的增长势头,成为当前投资的焦点。 Layer 2与模块化区块链:解决以太坊瓶颈的基础设施 随着以太坊网络活动日益频…

    2025年12月9日
    100
  • ylbtech-QQ(腾讯)-Account-账户模块, Role-角色、权限模块, Message-消息模块, Qz

    use qq_wap_qq — ylb:1,角色、权限访问关系设计 — — 1,角色表【器官|组织】 — (role_id , — 编号【PK】 rolen_ame varchar ( 20 ), — 角色名称 role_des…

    数据库 2025年12月2日
    000
  • spring 有哪些主要模块?

    Spring框架由核心容器、数据访问/集成、Web、AOP、Instrumentation、消息传递和测试等模块组成,各模块可独立或组合使用。核心容器包括Beans、Core、Context和SpEL模块,提供IoC和DI功能,是整个框架的基础。Beans模块通过BeanFactory管理Bean生…

    2025年11月27日 java
    000
  • 华人团队成功开发AI预测癌症患者适用药物,成果发表在Nature子刊上

    只需一个AI,9808名癌症患者对药物的临床反应,全能预测。 而且结果和临床观察表现一致。 这就是由纽约市立大学Lei Xie团队带来的最新成果CODE-AE(context-aware deconfounding autoencoder)。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免…

    2025年11月9日 科技
    100
  • linux有哪些模块

    linux有5大模块:1、进程调度模块,主要是对进程用的处理机进行管理和控制;2、进程间通信模块,主要用于控制不同进程间在用户空间的同步、数据共享和交换;3、内存管理模块,采用先进的虚拟存储机制,实现对多进程的存储管理;4、文件系统模块等。 本教程操作环境:linux5.9.8系统、Dell G3电…

    2025年11月9日 运维
    100
  • 分析Vue框架中使用闭包的模块特点

    Vue框架中使用闭包的模块分析 在Vue框架中,闭包是一种十分常见的编程技术,它可以帮助我们模块化地组织和封装代码。本文将通过具体的代码示例,分析Vue框架中如何使用闭包进行模块化开发。 首先让我们来看一个简单的示例。假设我们有一个Vue组件,需要在模板中显示一个计数器,在点击按钮后可以实现增加计数…

    2025年11月8日 web前端
    000
  • Angular实现预加载延迟模块实例分享

    本文主要介绍angular实现预加载延迟模块的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 在使用路由延迟加载中,我们介绍了如何使用模块来拆分应用,在访问到这个模块的时候, Angular 加载这个模块。但这需要一点时间。在用户第一次点击的时候…

    2025年11月6日 数据库
    000
  • thinkphp无法加载模块怎么办

    thinkphp报无法加载模块的错误,如图: 相关推荐:《ThinkPHP教程》 解决办法:只需在Application目录下的common下的conf.php里设置下设置默认目录就可以了。 无涯·问知 无涯·问知,是一款基于星环大模型底座,结合个人知识库、企业知识库、法律法规、财经等多种知识源的企…

    2025年11月6日 PHP框架
    000
  • Nginx替换过滤文本模块实例教程

    1.安装此模块需要先安装sregex运行库apt-get update;apt-get install git make gcc -y #Centos改成yumgit clone https://github.com/agentzh/sregexcd sregexmakemake installcd…

    运维 2025年11月4日
    000
  • linux内核的五大模块分别是什么

    一、进程调度模块 (推荐教程:linux教程) Linux以进程作为系统资源分配的基本单位,并采用动态优先级的进程高级算法,保证各个进程使用处理机的合理性。进程调度模块主要是对进程使用的处理机进行管理和控制。 【进程创建】: 在Linux环境编程时,一般采用fork()/vfork()函数(fork…

    2025年11月4日 运维
    000
  • thinkphp模块不存在怎么解决

    thinkphp模块不存在怎么解决? 解决方案: 1.在applicationCommonController目录下添加“EmptyBaseController.class.php”文件。     <?php/***@Author:HTL*@Email:Huangyuan413026@163.…

    2025年11月3日 PHP框架
    000

发表回复

登录后才能评论
关注微信