NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2019-11-20 08:001640

评论

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

NFTScan 浏览器再升级:优质数据服务新体验来袭

NFT Research

NFT NFT\ nft工具

828 B2B企业节:ROMA Connect探究数字化转型之道

华为云PaaS服务小智

云计算 软件开发 华为云

PanGu-Coder2:从排序中学习,激发大模型潜力

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号9月PK榜

探讨前后端分离开发的优势、实践以及如何实现更好的用户体验

这我可不懂

前后端分离 前后端

讲清楚两个简单的概念之进程、线程

高端章鱼哥

线程 cpu 进程

大数据平台数据安全保护系统哪家好?咨询电话多少?

行云管家

大数据 数据安全 大数据平台 大数据安全

EDS从小白到专家丨打造数据交换的六边形卫士,让你的数据你做主

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号9月PK榜

研发挑战的解决之道

iSoftBook

软件工程 敏捷精益 研发团队 研发效能管理 研发管理平台

交易所搭建,交易所源码是怎么开发的?

V\TG【ch3nguang】

数字货币交易所系统开发

必备利器:可靠的 REST API 开发工具

Apifox

程序员 开发工具 Apifox API REST API

软件测试/测试开发丨跨平台 api 对接 学习笔记

测试人

Python 软件测试 jenkins API 测试开发

面试官:如何保证幂等性?

树上有只程序猿

Java 单机环境

为什么混合应用的热度高于原生应用

Onegun

混合应用开发 移动开发 原生开发

2023百度云智大会:百度网盘全面拥抱大模型,面向企业升级四大解决方案

Geek_2d6073

即时通讯技术文集(第19期):IM架构设计基础知识合集 [共13篇]

JackJiang

网络编程 即时通讯 IM

小灯塔系列-中小企业数字化转型系列研究——司库管理测评报告

向量智库

Navicat Premium 15 for Mac(数据库开发软件)v15.0.30中文版

mac

数据库开发工具 苹果mac Windows软件 Navicat Premium 15

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