【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

SeqFM:基于多视图自注意力的动态序列感知 CTR 预测模型

  • 2019-11-20
  • 本文字数:4166 字

    阅读完需:约 14 分钟

SeqFM:基于多视图自注意力的动态序列感知 CTR 预测模型

导读:本文由来自昆士兰大学,格里菲斯大学和国立交通大学联合发表在 ICDE2020 上的一篇文章,题目为:


Sequence-Aware Factorization Machines for Temporal Predictive Analytics


主要提出了一种同时结合了特征交互中的顺序依赖和保持 DNN 的非线性表达能力的 FM based 模型 SeqFM,在建模特征交互和动态行为序列时使用了多视图的自注意力机制。


下面将从论文背景,模型结构,实验对比以及个人总结几个方面为大家介绍这篇文章~

——背景和动机——

  • 背景


在广告和推荐场景中,通常存在着大量的稀疏类别型特征变量。基于因子分解机的方法 ( DeepFM,DCN,xDeepFM 等 ) 能够有效的捕获稀疏类别变量之间的高阶特征交互,减轻了算法工程师手工构造交叉特征的压力。 然而,除了类别特征和稠密值特征外,还有大量动态的行为序列类型的特征。现有的基于 FM 的模型在处理这样的序列时,大多忽略了行为之间的顺序,即将其当作一个行为集合进行建模处理,因此无法有效捕获动态行为序列特征的序列依赖性和内在的模式。 因此提出 Sequence-Aware FM 模型,通过建模数据中的序列依赖关系来对蕴含时序特征的数据进行建模分析。


  • 举例说明 SeqFM 与传统的 FM-based 方法的区别



传统的 FM-based 模型和 SeqFM 对比


本文使用了一个简单的例子来说明 SeqFM 相比于传统的 FM based 方法的改进,假设用户购买过 [裤子,外套,显示器,鼠标]。


由于目前大部分 FM-based 模型大多假设了序列数据是无序的,即这些属于动态特征的序列中的每一个 item 都被同等的对待了,因此模型很难区分当用户接下来会购买腰带还是键盘,因为序列集合中都有和这两个相似的商品,动态特征的序列属性难以被捕获。


  • SeqFM


如上图所示,SeqFM 使用了一个多视图学习机制。 由于静态特征和动态特征中包含了不同的信息,使用三个不同的视图来进行特征交互的建模。


由于使用 CNN 或者 RNN 来进行序列建模计算时间和存储需求都较高,SeqFM 在每个视图内部采用了 self attention 机制。


对于动态视图和交叉视图,使用 mask self attention 单元分别保留动态特征序列的时间方向属性并屏蔽不相关的特征交互。


在通过 multi view self attention 机制编码特征之间的高阶交互后,使用一个参数共享的残差连接神经网络从特征交互中提取更多的隐含信息,最后输出模型得分。

——Sequence-Aware FM 模型——

这里特征划分为两大部分,静态特征 ( 如用户画像特征,用户性别 ) 和动态特征 ( 如用户历史上有过行为的商品 )。


这里需要注意的是动态特征 是按时间顺序构造的。在特征矩阵 中,若行号 i<j 那么特征 对应的行为总是发生在 对应的行为之前。


使用 表示动态特征序列的最大长度,如果实际长度大于 ,那么取最近的 个特征。如果少于 ,那么在矩阵 中从上到下 ( 从行为发生时间远到近 ) 填充零向量。


SeqFM 的形式化表示为:



其中 是全局偏置项,中间 为对应的一次项线性特征 为本文提出的多视图自注意力因子分解机制。


下面详细介绍 SeqFM 模型的细节。



SeqFM 模型结构


1. Embedding Layer


将特征划分为静态特征 和动态特征 ,分别经过 embedding 后得到


2. Static View With Self-Attention



其中


,分别是由输入的 embedding 矩阵 经过线性变换得到。


这里关于 self attention 原理和实现有疑问的同学可以参考我之前写的另一篇文章,里面有详尽的说明:


AutoInt:使用 Multi-head Self-Attention 进行自动特征学习的 CTR 模型


https://zhuanlan.zhihu.com/p/53462648


3. Dynamic View with Self-Attention


在 Dynamic View 中,由于 个动态特征中天然具有序列依赖关系,第 i 个动态特征 () 只会和处于位置 的前序特征发生交互。


也就是说特征交互在 dynamic 视图中是具有方向性的,只存在前向特征交互。 为了实现这样的功能,采用了 masked self attention 机制



其中 是一个常量矩阵,其作用是只允许动态特征 的交互发生在 j≤i 的时候。


对于矩阵 中的元素,当且仅当 i≥j 的时候 取 0,其余均取



通过添加注意力 mask 矩阵 ,对于第 i 个特征,它与第 i+1 个特征开始的后面的特征交互分数为 ,第 i-1 及其前面的特征交互分数保持不变。


因此经过 softmax 层后,能够确保第 i 个特征只和相对于它自身的历史特征 j≤i 存在非 0 的交互得分。


4. Cross View with Self-Attention



这里的 是由 垂直拼接而成的,与 Dynamic View 不同的是,这里的 attention mask 矩阵的构造是这样的



cross view self-attention mask 屏蔽了相同类别特征内部的特征交互,只允许跨类别的特征交互 ( 静态特征和动态特征之间 )。


5. Intra-View Pooling Operation


在经过三个视图得到特征交互的表示后,将这些表达向量输入到 intra-view pooling layer 中,这一层将所有的交互向量压缩成一个向量:



其中 表示每个视图内部的特征组个数, 为视图内第 i 个特征向量, 是经过池化操作后得到的压缩表示向量。


6. Shared Residual Feed-Forward Network Work


这里使用一个共享参数的残差全连接神经网络,还使用了 Layer Normalization 和 Dropout 等训练技巧。


  • 残差连接可以将低层的特征传递高高层。

  • Layer Normalization 归一化可以让网络的训练过程更加稳定以及加速训练。

  • Dropout 起到了一定的正则化和集成学习的作用。


7. View-Wise Aggregation


在输出得到最终的 logit 之前,通过水平拼接三个视图产生的隐向量得到最终的聚合向量:



这里得到的 ,是一个一维的长向量。


8. Output Layer


通过一个向量内积操作得到最终的得分:


——实验对比——

1. 离线实验


作者在不同的任务和不同的数据集上均进行了大量实验,验证了本文提出的 SeqFM 的有效性,也验证了本文提出的 SeqFM 在处理动态序列特征时相比于传统的基于 FM 的方法简单的将所有动态特征作为普通无序集合特征处理对于时序预测分析更有帮助。


实验选取的 baseline 方法对比目前较为主流的方法,如 Wide&Deep,NFM,xDeepFM 及 DIN 等,在分类任务中选取了 recsys2019 挑战赛和淘宝的公开数据集,具有一定代表性。


  • 分类任务



  • 排序任务



  • 回归任务



2. 关键组件的重要性


这里 SV,DV,CV 分别代表本文中提出的三种不同的视图,RC 代表残差连接,LN 代表 Layer Normalization。



这里 ↓ 标记里严重的 ( 相对 5% ) 指标相对下降。


  • 去掉 Static View 下跌很容易理解,相当于丢失了很多基础的特征组合。

  • 去掉 Dynamic View 后在分类任务中有非常严重的指标下跌 Trivago ( 10% )和 Taobao ( 12% )。作者给出的解释是这些数据集中包含大量的点击行为日志,这些动态特征序列携带着每个用户的长期偏好信息。

  • 去掉 Cross View 后的下跌说明了 Cross View 中静态特征和动态特征之间的自注意力机制对于模型的最终表现是有贡献的。

  • 去掉 Residual Connections 说明了残差连接确实有助于将低层的信息继续传递给高层并且得到有效的保留。

  • 去掉 Layer Normalization 说明特征的归一化会带来更好的结果。

——个人总结——

  • 本文提出的 SeqFM 是第一个同时结合了特征交互中的顺序依赖和保持 DNN 的非线性表达能力的 FM based 模型,之前的工作大多侧重于建模特征的高阶交互或捕捉动态行为序列中蕴含的信息。

  • SeqFM 中的 Static View 应该可以替换成其他特征交互组件,如 FM,CrossNet 及 CIN 等,具有一定扩展性。

  • 相比于传统的直接将序列特征拼接静态特征输入全连接网络,SeqFM 分别在动态序列特征内部和静态特征与动态特征之间进行了特征交互,保留了更多的信息。

  • 建模动态特征使用 mask self-attention,相比于 rnn basd 方法提升了计算效率也避免了可能存在的长期依赖问题。不过没有将 SeqFM 和一些 rnn basd 方法进行对比。

  • 本文不是第一个使用 self attention 对序列建模的方法,没有将 SeqFM 和使用 self attention 的其他序列建模方法进行对比实验。

  • Shared FFN 在减少模型参数的同时不知道相对于非共享参数对模型效果的影响如何,这里如果有进行过对比就更好了。

——参考资料——

Sequence-Aware Factorization Machines for Temporal Predictive Analytics


https://arxiv.org/abs/1911.02752


作者在论文里给出了代码链接,不过访问好像问题,大家可以先关注下 deepctr 的代码仓库,之后我会更新在这里:


https://github.com/shenweichen/deepctr


作者介绍


沈伟臣,阿里巴巴算法工程师,硕士毕业于浙江大学计算机学院。对机器学习,强化学习技术及其在推荐系统领域内的应用具有浓厚兴趣。


本文来自 DataFun 社区


原文链接


https://mp.weixin.qq.com/s/6Dfz6d1QIDw6XVhNTC3PxA


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2019-11-20 08:001633

评论

发布
暂无评论
发现更多内容

头脑风暴:最长连续递增序列

HelloWorld杰少

算法 LeetCode 数据结构, 8月月更

开源一夏 | 实战Node.js之GET/POST请求在Web 应用架构在客户端的使用

恒山其若陋兮

开源 8月月更

消费大众网民的审丑心理,如何拯救扭曲化的自媒体行业

石头IT视角

《Dubbo3.0.8源码解析》15-Dubbo的三大中心之元数据中心源码解析

宋小生

dubbo Dubbo3

IPv4向IPv6的过渡技术

穿过生命散发芬芳

ipv6 8月月更

详解CAN总线:常用CAN连接器的使用方法

不脱发的程序猿

汽车电子 嵌入式开发 CAN连接器

在线XML转TSV工具

入门小站

工具

坚叔:让科幻片的概念变成产品丨编程挑战赛 x 嘉宾分享

声网

人工智能 编程‘

开源一夏|三步注册gitee

坚果

开源 8月月更

架构实战营|模块9

KDA

#架构实战营

开源一夏 | 阿里云ECS之Linux 文本操作命令

六月的雨在InfoQ

vim Linux 开源 8月月更 more

Spring进阶(一):SpringMVC常用注解标签详解

No Silver Bullet

springmvc 注解 8月月更

智能化运维场景分析

阿泽🧸

智能运维 8月月更

架构训练营毕业总结

joak

开源无界 携手共创|观测云参加 SUSECON 2022 北京开源技术峰会

观测云

阿里云ECS之MySQL基础操作

六月的雨在InfoQ

MySQL ECS 8月月更

加密市场由阴转晴,Zebec或成2022后半段黑马

鳄鱼视界

知识库如何进行定期检查?

Geek_da0866

架构实战营|毕业总结

KDA

#架构实战营

开源一夏 | 阿里云ECS之Linux 文件管理命令

六月的雨在InfoQ

Linux 开源 8月月更 文件管理命令 磁盘命令

在线诺基亚短信图片生成器工具

入门小站

工具

从一条更新SQL的执行过程窥探InnoDB之REDOLOG

京东科技开发者

MySQL 数据库

C++多态的基本概念与原理刨析

CtrlX

c c++ 面向对象 代码 8月月更

文件管理-Linux系统文件属性

Albert Edison

Linux centos 运维 文件管理 8月月更

6.18秒杀系统架构设计

joak

物联网平台如何支持设备的多样化接入——设备接入类

阿里云AIoT

网络协议 存储 数据采集 JSON库 传感器

聚焦2022全球边缘计算大会·深圳站,揭秘火山引擎新一代边缘云解决方案

火山引擎边缘云

分布式 CDN 边缘计算 渲染 边缘云

LabVIEW LINX Toolkit控制Arduino设备(拓展篇—1)

不脱发的程序猿

嵌入式 单片机 LabVIEW Arduino LINX Toolkit

详解CAN总线:什么是CAN总线?

不脱发的程序猿

嵌入式 汽车电子 CAN总线协议

一次minerd肉鸡木马的排查思路

京东科技开发者

安全 木马病毒

开源一夏 | 阿里云ECS之Linux 系统工作命令

六月的雨在InfoQ

Linux 开源 8月月更 系统命令

SeqFM:基于多视图自注意力的动态序列感知 CTR 预测模型_AI&大模型_DataFunTalk_InfoQ精选文章