写点什么

FGCNN 模型解读

2019 年 12 月 02 日

FGCNN模型解读

ABSTRACT

在一些深度学习推荐模型中,增加 artificial 的 features 通常会提升效果,比如 Wide & Deep 的 wide 测,但是人工设计特征代价很高。因此需要一种自动提取有效特征,丰富特征表示的方式。该工作提出了 Feature Generation by Convolutional Neural Network (FGCNN)模型解决该问题。FGCNN 有两个模块: Feature Generation 和 Deep Classifier。其中 Feature Generation 利用 CNN 去生成 local patterns 并且组合生成新的特征;Deep Classifier 则采用 IPNN 的结构去学习增强特征空间中的交互。该工作表明 CTR 预测的一个新方向:通过外部的模型减少 DNN 部分学习高阶特征的难度,本文就是通过 CNN+MLP 学习的特征,添加到 DNN 部分。如图 1 所示:



INTRODUCTION

文中解释了为什么 DNN 学习有效的特征交互有时候是比较困难的,因为有效的特征交互都是比较稀疏的。例如:现在有 4 个特征 Name, Age, Height, Gender,来预测用户是否下载一个电子游戏,因为只有 Age 和 Gender 这两个特征对是否下载游戏有影响,这时候 DNN 必须学习到 Name and Height 的 embedding 表示都是 0 才可以,这对于 DNN 是很难的。


当然 CNN 其实是不适合 CTR 预测问题的,因为特征之间不像图像、文本那样存在局部相关性。比如(Name, Age, Height, Gender) or (Age, Name, Height, Gender)其实是没什么区别的。因此作者在模型左侧 Feature Generation 部分结合使用了 CNN 和 MLP,互相取长补短吧。


Model


模型结构:


  • Feature Embedding:其实在输入到 Feature Generation 和 Deep Classifier 之前有一个 embedding 层,用于将特征映射到低维的空间中,embedding 做法和之前的一些模型都一样,比如 multi-values 的 id 特征,各自的 embedding 求和等。

  • Feature Generation:是 CNN+Recombination 结构,CNN 提取 useful neighbor feature patterns,recombination layer(全连接层)基于 CNN 提取的特征生成 global feature interactions。CNN+Recombination 包括:Convolutional Layer, Pooling layer 和 Recombination layer。Feature Generation 生成的特征和 raw features 最后需要合并。

  • Deep Classifier:使用 IPNN 模型(这里其实可以使用各种 advanced network)。IPNN 模型如下图所示:

  • Objective Function:


EXPERIMENTS


上图表明,FGCNN 模型的效果比其他模型都要好。



上图表明,FFCNN 模型可以作为现有模型的一个很好的补充,并且效果提升很明显。


总结:

本文的创新之处在于,利用 CNN+MLP 提出一种模块 Feature Generation,用于提取 DNN 难 get 到的交叉 feature,然后将生成的 new_features 和 old_features 拼接在一起,输入到其他任何 classifier(可以是 FM、DNN、IPNN、DeepFM 等)中,都能提升效果。


参考文献:


https://arxiv.org/pdf/1904.04447.pdf


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


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


2019 年 12 月 02 日 16:22339

评论

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

拥抱K8S系列-02-服务器部署应用和docker部署应用区别(nginx篇)

张无忌

nginx Docker 运维

极客时间架构师训练营-第十二周-总结

sljoai

极客大学架构师训练营 #第十二周#

架构师训练营——第12周学习总结

jiangnanage

架构师0期Week12总结

Nan Jiang

「架构师训练营」第 12 周作业 - 大数据

森林

oeasy教您玩转linux010202软件包管理apt

o

大数据应用业务

张磊

架构师训练营 第十二周 总结

CR

SpringBoot 缓存之 @Cacheable 详细介绍

hepingfly

Java spring 缓存 springboot

java安全编码指南之:Mutability可变性

程序那些事

Java java安全编码 编码指南 可变性

第12周作业

刘卓

甲方日常6

句子

工作 随笔杂谈 日常

第12周 大数据

陆不得

架构师训练营第 12 周作业

在野

架构师训练营 - 命题作业 第 12周

铁血杰克

极客大学

手机没网了,却还能支付,这是什么原理?

楼下小黑哥

支付宝 微信支付 支付

JDK8 Unsafe.java 源码

Darren

源码 并发 CAS 代码注释 unsafe

极客时间架构师训练营-第十二周-命题作业

sljoai

极客大学架构师训练营 #第十二周# #命题作业#

架构师0期Week12作业

Nan Jiang

「架构师训练营」第 12 周作业 - 总结

森林

拥抱K8S系列-01-CentOS7安装docker

张无忌

Docker centos 运维

Week12 总结

张磊

MapReduce

莫莫大人

极客大学架构师训练营

week12 小结

Geek_196d0f

第12周学习总结

刘卓

MapReduce

李广富

架构师训练营 第十二周 作业

CR

架构师训练营——第12周作业

jiangnanage

CPU中的程序是怎么运行起来的(预告篇)

良知犹存

cpu

vivo商城前端架构升级-总览篇

vivo互联网技术

node.js Vue 前端 架构设计

面经手册 · 第9篇《队列是什么?什么是双端队列、延迟对列、阻塞队列,全是知识盲区!》

小傅哥

数据结构 小傅哥 队列 ArrayDeque

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

FGCNN模型解读-InfoQ