推荐系统(十八)Gate网络(一):新浪微博GateNet

推荐系统系列博客:

  1. 推荐系统(一)推荐系统整体概览
  2. 推荐系统(二)GBDT+LR模型
  3. 推荐系统(三)Factorization Machines(FM)
  4. 推荐系统(四)Field-aware Factorization Machines(FFM)
  5. 推荐系统(五)wide&deep
  6. 推荐系统(六)Deep & Cross Network(DCN)
  7. 推荐系统(七)xDeepFM模型
  8. 推荐系统(八)FNN模型(FM+MLP=FNN)
  9. 推荐系统(九)PNN模型(Product-based Neural Networks)
  10. 推荐系统(十)DeepFM模型
  11. 推荐系统(十一)阿里深度兴趣网络(一):DIN模型(Deep Interest Network)
  12. 推荐系统(十二)阿里深度兴趣网络(二):DIEN模型(Deep Interest Evolution Network)
  13. 推荐系统(十三)阿里深度兴趣网络(三):DSIN模型(Deep Session Interest Network)
  14. 推荐系统(十四)多任务学习:阿里ESMM(完整空间多任务模型)
  15. 推荐系统(十五)多任务学习:谷歌MMoE(Multi-gate Mixture-of-Experts )
  16. 推荐系统(十六)多任务学习:腾讯PLE模型(Progressive Layered Extraction model)
  17. 推荐系统(十七)双塔模型:微软DSSM模型(Deep Structured Semantic Models)

CTR预估模型在学术界/工业界进化的路线有明显的几个节点:1. 从单特征到交叉特征,围绕着如何学到更有用的交叉特征,诞生了一系列的模型。2. attention火起来后,被迅速应用到CTR预估领域中,又有很多模型被提出。3. gate网络火起来后,同样也催生了一些模型。但话说,我其实一直没太搞明白『attention』和『gate』本质上的区别是什么?有路过的大佬可以评论区帮忙解答下。

言归正传,这篇博客将要介绍新浪微博张俊林大佬团队提出的GateNet模型,这篇文章我只在arxiv上找到了,并没有找到公布发表的会议版本,应该是还没投。整篇文章看起来比较简短,因为Gate网络实在没什么好讲的,所以文章大量的笔墨都在实证研究上了,不过遗憾的是,数据集都是用的公开的数据集,没有看到在新浪微博自己的数据集上的实验效果。

本篇博客将会从两个方面介绍下GateNet:

  1. GateNet网络类型
    1.1. embedding层Gate(Feature Embedding Gate)
    1.2. 隐藏层Gate(Hidden Gate)
  2. GateNet论文实验结论
  3. 自己实践中一些结论

一、GateNet网络类型

这篇论文中依据Gate网络施加位置的不同,分为了两种类型:embedding层Gate(Feature Embedding Gate)和 隐藏层Gate(Hidden Gate)。下面来分别介绍一下:

1.1、embedding层Gate(Feature Embedding Gate)

顾名思义,embedding层Gate就是把Gate网络施加在embedding层,具体又可以分为两种:bit-wise和vector-wise。bit-wise就是每一个特征的embedding向量的每一个元素(bit)都会有一个对应的Gate参数,而vector-wise则是一个embedding向量只有一个Gate参数。假设样本有两个特征,每个特征embedding维度取3,用个图来形象的对比下bit-wise和vector-wise的gate的区别:

图1. embedding层bit-wise方式的gate

图2. embedding层vector-wise方式的gate

值得一提的是,论文中关于gate网络参数是否共享提出了两个概念:

  • field private: 所谓field private就是每个特征都有自己的一个gate(这意味着gate数量等于特征个数),这些gate之间参数不共享,都是独立的。图1、图2中gate的方式就是这种。
  • field sharing: 与field private相反,不同特征共享一个gate,只需要一个gate即可。优点就是参数大大减少,缺点也是因为参数大大减少了,性能不如field private。

通过论文中给出的实验表明,field private方式的模型效果要好于field sharing方式。

下面通过形式化的公式来看下embedding层Gate的流程(尽管我觉得上面两个图已经非常清晰的展示了细节,但配合公式来一波强化记忆吧),假设有nnn个特征,每个特征的embedding维度为ddd,则 E=[e1,e2,...,en]E=[e_1, e_2, ..., e_n]E=[e1,e2,...,en]eie_iei为特征iii对应的embedding向量,ei∈Rde_i \in R^deiRd,下面为整个计算步骤:
第一步:计算gate value:gi=σ(Wi⋅ei)g_i=\sigma(W_i \cdot e_i)gi=σ(Wiei),如果是bit-wise方式,则Wi∈RdW_i \in R^dWiRdW∈Rd×dW \in R^{d \times d}WRd×d是一个矩阵;如果vector-wise方式,则WiW_iWi为一个标量,W∈RdW \in R^{d}WRd是一个向量。

第二步:通过第一步中得到的gate value施加到原始embedding向量上,giei=gi⊙eig_ie_i = g_i\odot e_igiei=giei⊙\odot表示哈达玛积,也就是element-wise product,对应元素相乘。

最后,得到新的gate-aware embeddings,GE=[g1e1,g2e2,....,gnen]GE=[g_1e_1, g_2e_2,....,g_ne_n]GE=[g1e1,g2e2,....,gnen]输入到MLP中。

1.2、隐藏层Gate(Hidden Gate)

另外一种施加Gate网络的地方就是MLP的隐藏层,这个我也不上图了,直接参考图1吧,结构一模一样。计算步骤公式直接看1.1中bit-wise就可以。

二、GateNet论文实验结论

论文中做了大量的实验来验证了几个问题(只基于论文的实验结论,具体业务场景可能结论不一样,大家参考下就可以)

问题1:gate参数field private方式与field sharing方式那个效果好?

实验结果表明,field private方式的模型效果优于field sharing方式。

问题2:gate施加方式 bit-wise与vector-wise哪个效果好?

在Criteo数据集上,bit-wise的效果比vector-wise的好,但在ICME数据集上得不到这样的结论。

问题3:gate施加在embedding层和隐藏层哪个效果好?

论文中没有给出结论,但从给出的数据来看在隐藏层的比在embedding层效果好。此外,两种方式都用的话,相比较只用一种,效果提升不大。

问题4:gate网络用哪个激活函数好?

embedding层是linear,隐藏层是tanh。

三、自己实践中一些结论

我们自己的场景下(多任务下,ctcvr)实践结果来看,有几个结论仅供参考:

  1. gate作用在embedding层与输入层之间效果比作用在隐藏层之间好。
  2. gate使用bit-wise效果好于vector-wise。
  3. gate网络的激活函数sigmoid无论在收敛性和auc增益上都要显著好于其它的激活函数。

参考文献:

[1] Huang T , She Q , Wang Z , et al. GateNet: Gating-Enhanced Deep Network for Click-Through Rate Prediction[J]. 2020.

推荐系统(十八)Gate网络(一):新浪微博GateNet相关推荐

  1. 2022Java学习笔记八十八(网络编程:UDP通信,一发一收,多发多收消息接收实现)

    2022Java学习笔记七十八(网络编程:UDP通信,一发一收,多发多收消息接收实现) 一.快速入门 DatagramPacket:数据包对象 实例代码 定义发送端 package com.zcl.d ...

  2. Linux驱动开发(十八)---网络(网卡)驱动学习

    前文回顾 <Linux驱动开发(一)-环境搭建与hello world> <Linux驱动开发(二)-驱动与设备的分离设计> <Linux驱动开发(三)-设备树> ...

  3. JAVA零学习之基础归纳(十八)--网络编程、协议、IP、基本API、URL、socket等

    [Java程序可以非常方便的访问互联网上的 HTTP服务.FTP服务等,并可以直接取得互联网上的远程资源,还可以向远程资源发送 GET.POST请求] 一.网络编程 1.1 网络概念和分类 所谓计算机 ...

  4. Java Review(三十八、网络编程)

    文章目录 网络基础 IP地址 端口 域名 网络模型 常用协议 Java 的基本网络支持 使用 InetAddress URL. URLConnection 和 URLPermission 基于TCP协 ...

  5. tensorflow精进之路(十八)——python3网络爬虫(中)

    1.概述 上一节简单的介绍了一些python3网络爬虫的知识,这一节就运用上一节的知识写个小demo,用于爬去汽车之家网站的汽车厂商及车型名称. 2.打开待爬取网页 打开汽车之家官网, https:/ ...

  6. 一文看懂推荐系统:Gate网络(一):新浪微博GateNet,GateNet就是想用attention的方法去搞,和SENet一样,都是张俊林的杰作

    一文看懂推荐系统:Gate网络(一):新浪微博GateNet,GateNet就是想用attention的方法去搞,和SENet一样,都是张俊林的杰作 提示:最近系统性地学习推荐系统的课程.我们以小红书 ...

  7. 一文看懂推荐系统:Gate网络2:百度GemNN(Gating-Enhanced Multi-Task Neural Networks)

    一文看懂推荐系统:Gate网络2:百度GemNN(Gating-Enhanced Multi-Task Neural Networks) 提示:最近系统性地学习推荐系统的课程.我们以小红书的场景为例, ...

  8. 趣谈网络协议笔记-二(第十八讲)

    趣谈网络协议笔记-二(第十八讲) DNS协议:网络世界的地址簿 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 正文 DNS用于域名解析,但也不仅仅是用于域名解析,不仅仅是将域名转换成IP. 在 ...

  9. 深度学习之图像分类(二十八)-- Sparse-MLP(MoE)网络详解

    深度学习之图像分类(二十八)Sparse-MLP(MoE)网络详解 目录 深度学习之图像分类(二十八)Sparse-MLP(MoE)网络详解 1. 前言 2. Mixture of Experts 2 ...

  10. 基于eclipse的android项目实战—博学谷(十八)播放不同视频(网络视频)

    相信经过了这么长时间,小伙伴们应该都发现了博学谷这个项目存在问题,播放视频的时候,无论播放任何一个章节,他播放的视频都只是一个,也就是VideoPlayActivity.java里面写死的那个(myv ...

最新文章

  1. java compareandset 包_Java AtomicReferenceArray compareAndSet()用法及代码示例
  2. OpenFire源码学习之二十一:openfie对用户的优化(上)
  3. 吴恩达作业6:梯度检验
  4. java基础----变量与常量+作用域
  5. PAT 甲级 1003
  6. yolov4网络结构_上达最高精度,下到最快速度,Scaled-YOLOv4:模型缩放显神威
  7. Eclipse—如何为Eclipse开发工具中创建的JavaWeb工程创建Servlet
  8. solidworks 2018 SP2.0中文版
  9. 实现Modbus Rtu 服务端 通过RS485转4G方式 实现远程采集传输串口设备数据
  10. 如何在Mac计算机上添加删除打印机和扫描仪,以及高质量扫描文档
  11. 【FPGA】基于VGA的图像显示
  12. matlab实现大律法,Otsu算法(大律法或最大类间方差法)
  13. 如何批量查询百度指数
  14. CC2530基础实验:(2)外部中断控制LED亮灭
  15. css四种炫酷科技背景边框,颜色渐变,四角特效
  16. 大厂都有哪些●快速上手●项目管理秘籍?
  17. clips系列二-clips调用外部函数
  18. 7、数据恢复:文件误删、硬盘被格式化后的数据恢复
  19. python 读取pkl_如何打开.pkl的文件
  20. linux qq远程桌面连接,还在用QQ远程桌面?这款软件还能用手机控制电脑!

热门文章

  1. python变异系数_使用Python进行描述性统计 【目录】 1 描述性统计是什么? 2 使用NumPy和SciPy进行数 ......
  2. mysql+tinyint+符号_mysql中TINYINT的取值范围
  3. Hadoop1.0和2.0的主要区别
  4. NAS网络存储器(转)
  5. 台式计算机如何自动开关机,电脑怎么设置自动关机时间 电脑自动开机时间怎么设置...
  6. 2021年婴幼儿奶粉行业研究报告|洞见研报
  7. c语言 char * 遍历,使用指针遍历char数组
  8. dell云存储服务器,dell云存储服务器(戴尔存储服务器)
  9. Noip 2016 蛋碎一地晚节不保
  10. 【考前必读】致PMI项目管理认证系列考试考生