写点什么

新浪微博 FiBiNET:结合特征重要性和双线性特征交互进行 CTR 预估

2019 年 11 月 29 日

新浪微博FiBiNET:结合特征重要性和双线性特征交互进行CTR预估

背景及简单介绍

基于深度学习的 CTR 预估模型用处已经很广泛,模型也提出了很多,比如 wide&deep,DCN,DIN 等等。但是许多模型在计算特征交互时用的还是较简单的方法:比如 Hadamard 乘积或者内积,而很少去关注特征的重要性。本文提出了一种新的 CTR 预估被称为 FiBiNET,该模型名是 Feature Importance and Bilinear feature Interaction NETwork 的缩写。一方面,FiBiNET 可通过 Squeeze-Excitation network 动态学习不同特征的重要性权重,因为不同的特征其实对目标预测的重要性是不一样的,比如在一个人的收入时,职业的特征肯定比爱好的特征来的更加重要;另一方面,通过双线性变换函数从更加细粒度的角度高效学习特征的交互。通过结合 DNN,deep FiBiNET 模型在 realworld datasets 上取得了很好的性能。


相关工作

Squeeze-and-Excitation Network(SENet)模块



上图是 SENet 的 Block 单元,图中的 [公式] 是传统的卷积结构,X 和 U 是[公式]的输入(C’H’W’)和输出(CHW),这些都是以往结构中已存在的。SENet 增加的部分是 U 后的结构:对 U 先做一个 Global Average Pooling(图中的 [公式] ,作者称为 Squeeze 过程),输出的 11C 数据再经过两层的全连接(图中的 [公式] ,作者称为 Excitation 过程),最后用 sigmoid(论文中的 self-gating mechanism)限制到[0,1]的范围,把这个值作为 scale 系数乘到 U 的 C 个通道上, 作为下一级的输入数据。这种结构的原理是想通过控制 scale 的大小,把重要的特征增强,不重要的特征减弱,从而让提取的特征指向性更强。


模型结构


Sparse Input and Embedding layer


首先是输入层和 Embedding 层,和常规的 DeepFM,AFM 等模型没什么区别,输出是 [公式] ,其中 f 是特征 fields 的数目, [公式] ,表示第 i 个 field 的 embedding 向量,维度为 k。


  1. SENET Layer



输入是 embedding 层输出的 [公式] ,SENET Layer 输出一个权重向量 [公式] ,每个值都对应一个特征 field。然后将该权重向量与 embedding 层的输出相乘得到: [公式] 。


展开来说,SENET 一共三个步骤:


squeeze step:计算每个 field embedding 的概况统计(summary statistics)。使用 max 或者 mean pool 针对每个 field 得到一个统计向量: [公式] 。其中 mean pool 的效果要好于 max pool,这也很好理解,因为 embedding 提取出来的 k 维度的向量,如果只是取最大的一个值是会损失很多信息的。


Excitation:根据向量 Z 计算每个 field embedding 的权重,使用的是两层 FC:



Re-Weight:将原来的 field embedding 与 Excitation 步骤输出的 A 向量逐元素相乘:



3. Bilinear-Interaction



传统的特征交叉方式广泛采用了内积(fm,ffm 等)和哈达玛积(AFM,NFM 等)。其中内积可被表示为:



哈达玛积可被表示为:[公式] 。而这两种方式在稀疏数据上很难有效对特征交叉进行建模。文章提出结合内积和哈达玛积并引入一个额外的参数矩阵 W 来学习特征交叉。如上图有半部分所示: [公式] 和 W 之间是内积,W 和 [公式] 之间是哈达玛积。


交叉向量 [公式] 可通过三种方式得到:


  • Field-All Type:这种情况下,所有特征组交叉时共享一个参数矩阵 W,额外参数量为 W 矩阵的大小 k×k。

  • Field-Each Type:每个特征组 field i 维护一个参数矩阵 Wi,额外参数量为(f-1)kk。

  • Filed-Interaction Type:每对交互特征[公式] 都有一个参数矩阵 [公式] 。额外参数量为 0.5*(f-1)kk。

  • 最终,交叉层由原始的特征组 embedding 向量 E 以及 SENET 层输出的 embedding 向量 V 分别得到交叉向量 p 和 q。


  1. Combination Layer


组合层将交叉向量 p 和 q 进行拼接操作:



若直接对 c 向量中的元素进行求和并使用一个 sigmoid 函数输出,则得到一个浅层的 CTR 预估模型,若将该向量输入深度神经网络,则得到一个深度 CTR 预估模型。


  1. Deep Network


输入是组合层的输出 c,通过几层的 MLP 转化,最后通过 sigmoid 函数输出 CTR 的预估值 [公式] 。


  1. Output Layer


实验

浅层 FiBiNET



深层 FiBiNET



参考文献:


https://arxiv.org/pdf/1905.09433.pdf


https://blog.csdn.net/u012151283/article/details/95234555


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


本文转载自 Alex-zhai 知乎账号。


原文链接:https://zhuanlan.zhihu.com/p/76698689


2019 年 11 月 29 日 13:23351

评论

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

CSS 排版与正常流 —— 重学CSS

三钻

CSS 排版

科普干货|漫谈鸿蒙LiteOS-M与HUAWEI LiteOS内核的几大不同

华为云开发者社区

华为 鸿蒙 IoT

小学妹问我:如何利用可视化工具排查问题?

田维常

可视化

一次 Java 进程 OOM 的排查分析(glibc 篇)

996小迁

Java 编程 架构 面试 计算机

分布式事务太繁琐?官方推荐Atomikos,5分钟帮你搞定

互联网应用架构

分布式事务 springboot

Jira停售Server版政策客观解读——如何最小化风险?

PingCode

项目管理 研发管理 Jira Atlassian

【活动回顾】WebRTC服务端工程实践和优化探索

ZEGO即构

WebRTC 服务端工程

synchronized 到底该不该用

古时的风筝

Java synchronized

Glide.with(view)挂在了谁的生命周期上

mengxn

生命周期 Glide Activity Fragment

#不吐不快# CV千千条,修改最重要。代码不规范,伙伴两行泪!

程序员小航

奇葩的经历 不吐不快

#不吐不快# 三观很正的Boss,你遇到过么?

架构精进之路

职场成长 奇葩的经历 不吐不快

一瞬间让我秒变“快男”!腾讯内部强推Java性能优化手册,快了不止一点点。

Java架构追梦

Java 架构 jdk 面试 性能优化

高性能利器!华为云MRS ClickHouse重磅推出!

华为云开发者社区

数据库 Clickhouse MRS

什么是云服务?

anyRTC开发者

音视频 WebRTC 云服务 RTC

MySQL从库维护经验分享

Simon

MySQL 主从复制

SQL数据库:窗口函数

正向成长

窗口函数

区块链在债券市场如何应用

CECBC区块链专委会

区块链 债券

圆通快递回应内鬼泄露用户信息:严打数据倒卖灰色产业

石头IT视角

年轻人不讲武德不仅白piao接口测试知识还白piao接口测试工具会员

测试人生路

接口测试

【涂鸦物联网足迹】涂鸦云平台消息服务—顺带Pulsar简单介绍

IoT云工坊

人工智能 物联网 云服务 Apache Pulsar 云平台

什么是低代码(Low-Code)?

应用研发平台EMAS

工具 研发效能 低代码 开发 代码

交易所做市机器人,自动跑K线机器人,市值管理

WX13823153201

《垃圾回收的算法与实现》.pdf

田维常

垃圾回收

Dubbo 接口,导出 Markdown ,这些功能 DocView 现在都有了!

程序员小航

markdown idea插件 IntelliJ IDEA 文档生成 Doc View

DàYé的CTO姗姗学步路

曲水流觞TechRill

管理 CTO

区块链,音乐,流媒体和版税

CECBC区块链专委会

区块链 艺术

云原生2.0时代下,DevOps实践如何才能更加高效敏捷?

华为云开发者社区

云计算 数字化 华为云

SpringBoot:整合Swagger3.0与RESTful接口整合返回值(2020最新最易懂)

比伯

Java 编程 架构 面试 计算机

前嗅教你大数据——什么是代理IP?

前嗅大数据

爬虫 数据采集 静态IP 代理IP 动态IP

Nginx-技术专题-技术介绍

李浩宇/Alex

IoT企业物联网平台,从设备端到云端业务系统全链路开发实战

苏堤嘉木

阿里云 最佳实践 物联网 IoT

新浪微博FiBiNET:结合特征重要性和双线性特征交互进行CTR预估-InfoQ