0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FRNet:上下文感知的特征强化模块

深度学习自然语言处理 来源:深度学习自然语言处理 作者:汪方野 2022-11-24 11:24 次阅读

论文标题:Enhancing CTR Prediction with Context-Aware Feature Representation Learning

收录会议:

SIGIR 2022

论文链接:

https://arxiv.org/abs/2204.08758

简介与主要贡献

目前大多数提升点击率预估效果的模型主要是通过建模特征交互,但是如何设计有效的特征交互结构需要设计人员对数据特点以及结构设计等方面有很强的要求。目前的以建模特征交互为主的模型可以总结为三层范式:embedding layer, feature interaction layer, 以及 prediction layer。大多数论文改进集中在 Featrue interaction layer。

eab4ef38-6ba6-11ed-8abf-dac502259ad0.png

然而大部分的模型都存在一个问题:对于一个相同的特征,他们仅仅学到了一个固定的特征表示,而没有考虑到这个特征在不同实例中不同上下文环境下的重要性。例如实例 1:{female, white, computer, workday} 和实例 2:{female, red, lipstick, workday} 中,特征 “female” 在这两个实例中的重要性(对最后的预测结果的影响或者与其他特征的关系)是不同的,因此在输入特征交互层之前我们就可以调整特征 “female” 的重要性或者是表示。

现有的工作已经注意到了这个问题,例如 IFM、DIFM 等,但是他们仅仅在不同的实例中为相同特征赋予不同的权重(vector-level weights),导致不同实例中的相同特征的表示存在严格的线性关系,而这显然是不太合理的。

另一方面,本文希望一个理想的特征细化模块应该识别重要的跨实例上下文信息,并学习不同上下文下显著不同的表示。

给出了一个例子:{female, red, lipstick, workday} and {female, red, lipstick, weekend},在这两个实例汇总,如果使用self-attention(在 CTR 中很常用的模块,来识别特征之间的关系),那么因为 “female”和“red”以及“lipstick”的关系比“workday”或者“weekend”的更加紧密,所以在两个实例中,都会赋予“red”和“lipstick”更大的注意力权重,而对“workday”或者“weekend”的权重都很小。但是用户的行为会随着“workday”到“weekend”的变化而变化。

因此本文提出了一个模型无关的模块 Feature Refinement Network(FRNet)来学习上下文相关的特征表示,能够使得相同的特征在不同的实例中根据与共现特征的关系以及完整的上下文信息进行调整。主要贡献如下:

本文提出了一个名为 FRNet 的新模块,它是第一个通过将原始和互补的特征表示与比特级权值相结合来学习上下文感知特征表示的工作。

FRNet 可以被认为是许多 CTR 预测方法的基本组成部分,可以插入在 embedding layer 之后,提高 CTR 预测方法的性能。

FRNet 表现出了极强集兼容性和有效性。

FRNet模块

FRNet模型主要包含两个模块:

Information Extraction Unit (IEU):IEU 主要是来捕获上下文相关的信息(Self-Attention unit)以及特征之间的关系信息(Contextual Information Extractor)来共同学习上下文相关的信息。再 Integration unit 进行融合。

Complementary Selection Gate (CSGate):CSGate 可以自适应融合原始的和互补的特征表示,这种融合是在 bit-level 级别上的。

eadf05fc-6ba6-11ed-8abf-dac502259ad0.png

2.1 IEU

通过对以往模型的总结,FRNet 主要通过学习特征间的关系(vector-level)以及上下文相关的信息(bit-level)的信息来学习最后的 context-aware representation。首先在在 IEU 中使用以下两个模块:

Self-Attention unit:self-attention 善于学习特征之间的关联信息。FRNet 中使用了一个基本的 Self-attention 结构。

eaef793c-6ba6-11ed-8abf-dac502259ad0.png

Contextual Information Extractor:在 motivation 部分提到过,self-attention 虽然擅长学习特征之间的关系,但是无法学习整体的上下文信息。所以特地使用了一个简单的 DNN 模块来提取不同实例的上下文信息。一个之间的理由是 DNN 可以关注到所有的特征信息(bit-level 信息)。

eb306492-6ba6-11ed-8abf-dac502259ad0.png

以上两个单元分别学习了特征之间的关系,对输入信息进行压缩,保存了特征的上下文信息。接下来通过一个 Integration unit 对这两部分信息进行融合:

eb405708-6ba6-11ed-8abf-dac502259ad0.png

可以看到每个实例只有一个上下文信息维度为 d,而经过 self-attention 之后的关系信息维度是 f*d。所以融合之后相当于赋予了每个特征上下文信息,而这部分信息仅仅 self-attention 是无法获取的。

eb4e2900-6ba6-11ed-8abf-dac502259ad0.png

2.2 CSGate

从图 2 中可以看到,本文使用了两个 IEU 模型,其中 模块学习了一组 complementary feature representaion , 学习了一组权重矩阵 。基于 、 以及原始的特征表示 ,FRNet 通过一个选择门获得了最后的 context-aware feature representation:

eb6e39c0-6ba6-11ed-8abf-dac502259ad0.png

公式主要分为两部分:

Selected features:首先最后的结果并没有完全舍弃原有的特征表示 E,但是也没有像 ResNet 那样将原始表示 E 直接保留,而是通过权重矩阵进行自适应的选择。

Complementary features:另一方面,如果仅仅使用原有的特征也会导致模型的表达能力受限。现有的一些方法也仅仅通过分配一个权重的方法来对特征进行调整。同时仅仅分配权重没有考虑哪些 unselected information。在计算权重的时候使用可 sigmoid 方式,如果只使用选择的一部分信息,会导致最后的信息

“不完整”(这里有点借鉴 GRU 以及 LSTM 的设计思路)。因为我们从互补矩阵 上选择互补的信息。

实验分析

实验数据集:

3.1 整体分析

主要将 FRNet 应用到 FM 模型中说明 FRNet 的效果。 这一部分说明了 FRNet 的效果和效率。

eb8f89cc-6ba6-11ed-8abf-dac502259ad0.png

3.2 兼容性分析

将 FRNet 应用到其他模型中查看效果。 和其他模块进行对比。

ebaf3a88-6ba6-11ed-8abf-dac502259ad0.png

3.3 超参数分析

对 IEU 模块中的两个超参数进行了分析:

DNN 的层数

Self-attention 的 attention size

ebcb93fe-6ba6-11ed-8abf-dac502259ad0.png

3.4 消融分析

通过消融实验来说明 FRNet 中的设计都是有效的:

Learning context-aware feature representations是有效的。这里面所有的变式都对原始的特征进行改进,从而获得了更好的效果(和#1对比)

Cross-feature relationships and contextual information 是必要的。#2中学习了特征之间的关系,超过了 #1。#13 和 #3 学习了 contextual information,分别超过了 #4 和 #2。

Assigning weights to original features 是合理的。#5 移除了权重信息,发现 #10 和 #11 超过了 #5。同时 #6 和 #7 超过了 #1 也说明了相同的结论。

Learning bit-level weights is more effective than learning vector-level。(#7, #9, #11, #13)超过了对应的(#6, #8, #10, #12),前者学习位级别的权重,而后者学习向量级别的权重。

Complementary Features 也是很关键的. 添加了辅助特征 之后 #10,#11 分别超过了 #6 和 #7。而且 #12 和 #13 分别超过了 #10 和 #11,说明给辅助特征分配权重也是必要的。

ebda0df8-6ba6-11ed-8abf-dac502259ad0.png

3.5 特征表示可视化分析

本文的 context-aware feature representation 总结起来就是一句话:相同的特征在不同的实例下应该有不同的表示,而且不同实例下的表示不应该有严格的线性关系。为了说明这一点,本文通过可视化的方式进行了说明。图中都是同一个特征的原始表示和 1000 个不同实例中经过 FRNet(或者其他模块)之后的表示。

EGate 无法学习不同的表示;DIFM 学到的表示存在严格的线性关系。而 FRNet 学到的表示同时解决了这些问题。

#6 也是学习向量级别的权重,但是和 DIFM 比可以看到,使用 IEU 学到的权重可以使得特征空间更加分明。#6 中没有添加辅助特征,所以可以看到还是存在线性关系的,而 FRNet-vec 中添加了辅助特征,消除了线性关系。

FRNet 是学习 bit-level 的权重,而 FRNet-vec 是学习向量级别的权重,从分区的形状可以看到 FRNet 的非线性特征更加显著,即更加集中。

ebed139e-6ba6-11ed-8abf-dac502259ad0.png

3.6 IEU可视化分析

前面说到 Self-attention 中存在的问题:在大部分特征都相同的情况下,无法区分某些不重要的特征表示。在这个实验中,选择了两个特征(只有一个特征是不同的,其他特征都相同),在经过 self-attention 之后,获得的表示都是相同的。 但是在经过 CIE(DNN)压缩之后,可以看到仅仅因为这一个特征的不同,最后获得的表示是权重不同的,而这就是 self-attention 无法学习的上下文信息。最后 IEU 将上下文信息融合到 self-attention 中获得了图 8(c)的效果:两个实例中的每一组对应特征都有显著的差别。

ec20e3fe-6ba6-11ed-8abf-dac502259ad0.png

3.7 bit-level权重分析

汇总分析了权重矩阵 在 100K 个实例中分布情况。通过均值可以看出来 57.8% 的概率选择原始特征表示,而 42.2% 的概率选择互补特征。

ec67155e-6ba6-11ed-8abf-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3226

    浏览量

    48809
  • CTR
    CTR
    +关注

    关注

    0

    文章

    37

    浏览量

    14101
  • dnn
    dnn
    +关注

    关注

    0

    文章

    60

    浏览量

    9051

原文标题:FRNet:上下文感知的特征强化模块

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    SystemView上下文统计窗口识别阻塞原因

    SystemView工具可以记录嵌入式系统的运行时行为,实现可视化的深入分析。在新发布的v3.54版本中,增加了一项新功能:上下文统计窗口,提供了对任务运行时统计信息的深入分析,使用户能够彻底检查每个任务,帮助开发人员识别阻塞原因。
    的头像 发表于 08-20 11:31 431次阅读

    鸿蒙Ability Kit(程序框架服务)【应用上下文Context】

    [Context]是应用中对象的上下文,其提供了应用的一些基础信息,例如resourceManager(资源管理)、applicationInfo(当前应用信息)、dir(应用文件路径)、area
    的头像 发表于 06-06 09:22 488次阅读
    鸿蒙Ability Kit(程序框架服务)【应用<b class='flag-5'>上下文</b>Context】

    编写一个任务调度程序,在上下文切换后遇到了一些问题求解

    大家好, 我正在编写一个任务调度程序,在上下文切换后遇到了一些问题。 为下一个任务恢复上下文后: __builtin_tricore_mtcr_by_name(\"pcxi\"
    发表于 05-22 07:50

    鸿蒙开发接口Ability框架:【Context】

    Context模块提供开发者运行代码的上下文环境的能力,包括查询和设置应用信息、ResourceManager等信息。
    的头像 发表于 05-21 17:33 851次阅读
    鸿蒙开发接口Ability框架:【Context】

    鸿蒙开发接口Ability框架:【ServiceExtensionContext】

    ServiceExtensionContext模块是ServiceExtension的上下文环境,继承自ExtensionContext。
    的头像 发表于 05-20 16:26 820次阅读
    鸿蒙开发接口Ability框架:【ServiceExtensionContext】

    鸿蒙开发接口Ability框架:【ApplicationContext】

    ApplicationContext模块提供开发者应用级别的的上下文的能力,包括提供注册及取消注册应用内组件生命周期的监听接口。
    的头像 发表于 05-16 11:51 623次阅读
    鸿蒙开发接口Ability框架:【ApplicationContext】

    鸿蒙开发接口Ability框架:【Context】

    Context模块提供开发者运行代码的上下文环境的能力,包括查询和设置应用信息、ResourceManager等信息。
    的头像 发表于 05-15 15:29 566次阅读
    鸿蒙开发接口Ability框架:【Context】

    鸿蒙开发接口Ability框架:【 (Context模块)】

    Context模块提供了ability或application的上下文的能力,包括允许访问特定于应用程序的资源、请求和验证权限等。
    的头像 发表于 05-13 16:04 712次阅读
    鸿蒙开发接口Ability框架:【 (Context<b class='flag-5'>模块</b>)】

    鸿蒙开发接口Ability框架:【(AbilityContext)】

    AbilityContext是Ability的上下文环境,继承自Context。
    的头像 发表于 05-13 09:26 1006次阅读
    鸿蒙开发接口Ability框架:【(AbilityContext)】

    关于嵌入式C语言的弱符号和弱引用解析

     总之,__attribute__ 起到了给编译器提供上下文的作用,如果错误的使用 __attribute__ 指令,因为给编译器提供了错误的上下文,由此引起的错误通常很难被发现。
    发表于 05-03 10:48 223次阅读

    鸿蒙开发接口Ability框架:【@ohos.application.Ability (Ability)】

    Ability模块提供对Ability生命周期、上下文环境等调用管理的能力,包括Ability创建、销毁、转储客户端信息等。
    的头像 发表于 04-30 17:42 2254次阅读
    鸿蒙开发接口Ability框架:【@ohos.application.Ability (Ability)】

    OpenHarmony中SELinux使用详解

    )和上下文(context)。 我们可以通过ps -Z 命令来查看当前进程的域信息,也就是进程的SELinux信息: **# ps -Z LABEL PID TTY TIME CMD u:r:sh
    发表于 04-03 10:43

    TC397收到EVAL_6EDL7141_TRAP_1SH 3上下文管理EVAL_6EDL7141_TRAP_1SH错误怎么解决?

    我收到EVAL_6EDL7141_TRAP_1SH 3 类(TIN4-Free 上下文列表下溢)上下文管理EVAL_6EDL7141_TRAP_1SH错误。 请告诉我解决这个问题的办法。
    发表于 03-06 08:00

    请问risc-v中断还需要软件保存上下文和恢复吗?

    risc-v中断还需要软件保存上下文和恢复吗?
    发表于 02-26 07:40

    ISR的上下文保存和恢复是如何完成的?

    函数:ifxCPU_enableInterrupts ();如果我让更高优先级的 ISR 中断优先级较低的 ISR,那么 ISR 的上下文保存和恢复是如何完成的?
    发表于 01-22 06:28