推荐系统(十九)Gate网络(二):百度GemNN(Gating-Enhanced Multi-Task Neural Networks)
推荐系统(十九)Gate网络(二):百度GemNN(Gating-Enhanced Multi-Task Neural Networks)
推荐系统系列博客:
- 推荐系统(一)推荐系统整体概览
- 推荐系统(二)GBDT+LR模型
- 推荐系统(三)Factorization Machines(FM)
- 推荐系统(四)Field-aware Factorization Machines(FFM)
- 推荐系统(五)wide&deep
- 推荐系统(六)Deep & Cross Network(DCN)
- 推荐系统(七)xDeepFM模型
- 推荐系统(八)FNN模型(FM+MLP=FNN)
- 推荐系统(九)PNN模型(Product-based Neural Networks)
- 推荐系统(十)DeepFM模型
- 推荐系统(十一)阿里深度兴趣网络(一):DIN模型(Deep Interest Network)
- 推荐系统(十二)阿里深度兴趣网络(二):DIEN模型(Deep Interest Evolution Network)
- 推荐系统(十三)阿里深度兴趣网络(三):DSIN模型(Deep Session Interest Network)
- 推荐系统(十四)多任务学习:阿里ESMM(完整空间多任务模型)
- 推荐系统(十五)多任务学习:谷歌MMoE(Multi-gate Mixture-of-Experts )
- 推荐系统(十六)多任务学习:腾讯PLE模型(Progressive Layered Extraction model)
- 推荐系统(十七)双塔模型:微软DSSM模型(Deep Structured Semantic Models)
- 推荐系统(十八)Gate网络(一):新浪微博GateNet
我司这篇文章老实讲,创新点是弱了点,这应该也是被SIGIR’21录用为短文的原因吧。个人认为这篇文章最让人感兴趣的反而不是这个模型结构,而是文章中笔墨不多的凤巢目前模型架构的一些trick,然而遗憾的是不知道是因为短文篇幅受限的原因还是不想过多描述的原因(大概率是这个原因),这部分没有被过多的介绍。
一、GemNN模型中Gate
关于GemNN中gate如图1所示,他这里有三个显著的特点:1. gate的位置在embedding层到MLP全连接层之间。2. 他没有对每个feature单独做gate,而是把所有的feature拼接(concatenation)后,再做gate。3. gate的方式是bit-wise的。
关于第2个特点,可以形式化的来表述下。假设用E=[e1,e2,...,en]TE = [e_1, e_2,...,e_n]^TE=[e1,e2,...,en]T来表示concatenated embeddings,nnn表示特征的数量,ei∈Rde_i \in R^dei∈Rd表示每个field(比如『性别』作为一个feature,那么『男』就是为性别这个feature的一个field,同样『女』也是为一个filed)的embedding维度为ddd维。然后对EEE以bit-wise方式做gate,G=[g1,g2,...,gn]T=act(W∗E+b)G=[g_1, g_2,...,g_n]^T=act(W*E +b)G=[g1,g2,...,gn]T=act(W∗E+b),act(⋅)act(\cdot)act(⋅)为激活函数,WWW的维度为R(nd)×(nd)R^{(nd)\times(nd)}R(nd)×(nd)。这个地方,WWW的维度需要好好理解下,我再来上个公式帮助大家理解:
[g1g2...gn]=act([w1,1w1,2...w1,ndw2,1w2,2...w2,nd............wnd,1wnd,2...wnd,nd]⋅[e1,1e1,2...e1,d...en,1en,2...en,d]+[b1b2...bnd])(1)\begin{bmatrix} g_1\\ g_2\\ ... \\ g_n \\ \end{bmatrix} = act(\begin{bmatrix} w_{1,1}& w_{1,2}& ...&w_{1,nd} \\ w_{2,1}& w_{2,2}& ...&w_{2,nd} \\ ...& ...& ...& ...\\ w_{nd,1}& w_{nd,2}& ...&w_{nd,nd} \\ \end{bmatrix}\cdot \begin{bmatrix} e_{1,1}\\ e_{1,2}\\ ... \\ e_{1,d} \\ ...\\ e_{n,1}\\ e_{n,2}\\ ... \\ e_{n,d} \\ \end{bmatrix} + \begin{bmatrix} b_1\\ b_2\\ ... \\ b_{nd} \\ \end{bmatrix}) \tag{1} ⎣⎢⎢⎡g1g2...gn⎦⎥⎥⎤=act(⎣⎢⎢⎡w1,1w2,1...wnd,1w1,2w2,2...wnd,2............w1,ndw2,nd...wnd,nd⎦⎥⎥⎤⋅⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡e1,1e1,2...e1,d...en,1en,2...en,d⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤+⎣⎢⎢⎡b1b2...bnd⎦⎥⎥⎤)(1)
计算得到GGG后,再与原来的embedding向量做哈达玛积(element-wise product),即[g1⊗e1,g2⊗e2,...,gn⊗en][g_1\otimes e_1, g_2\otimes e_2,...,g_n\otimes e_n][g1⊗e1,g2⊗e2,...,gn⊗en]
二、GemNN中一些经验
凤巢在自己的场景下实验得出一些经验,仅供参考:
- gate作用在embedding层与输入层之间效果比作用在隐藏层之间好。
- gate使用bit-wise效果好于vector-wise。
- gate网络的激活函数sigmoid无论在收敛性和auc增益上都要显著好于其它的激活函数。
据我所知,凤巢那边为了降低线上耗时,还做了网络参数量化压缩,大概压缩了50%的参数量,AUC持平。
三、其他
这篇论文最核心的我觉得下面这张图,但是非常遗憾的是这个地方在这篇论文中描述的比较少,我们能看到的就是链路上相同的特征embedding会被shared的,这里的shared不是训练时share,而是类似于预训练热启。结合图来说,就是user-ad ranking模型、ad-mt matching模型、user-ad-mt模型一些公共的特征会被共享。
参考文献
[1] . Fei H , Zhang J , Zhou X , et al. GemNN: Gating-enhanced Multi-task Neural Networks with Feature Interaction Learning for CTR Prediction[C]// SIGIR '21: The 44th International ACM SIGIR Conference on Research and Development in Information Retrieval. ACM, 2021.
推荐系统(十九)Gate网络(二):百度GemNN(Gating-Enhanced Multi-Task Neural Networks)相关推荐
- CCNP-第十九篇-ISIS(二)
CCNP-第十九篇-ISIS(二) 首先来个对比的通信机制 首先呢,工作环境中,他没OSPF那么复杂哈,然后 底层启了ISIS,通了就不用管它了 实验环境 注意,上图是错误示范哦! 为什么呢? 为啥呢 ...
- 轻量化网络(一)MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
轻量化网络研究(一)MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 研究过深度学习的 ...
- tensorflow精进之路(十九)——python3网络爬虫(下)
1.概述 这一节,我们将在百度图片中爬取需要训练的图片数据:猪.蛇.狗.大象.老虎. 2.打开待爬取网页 打开百度图片首页: http://image.baidu.com/ 在搜索框中输入" ...
- pytorch学习笔记(十九):二维卷积层
文章目录 1. 二维互相关运算 2. 二维卷积层 3. 图像中物体边缘检测 4. 通过数据学习核数组 卷积神经网络(convolutional neural network)是含有卷积层(convol ...
- 安卓Andriod使用入门(十九)【网络视频播放器】
有时侯明白人的一生当中,深刻的思念是维系自己与记忆的纽带.它维系着所有的过往.悲喜,亦指引我们深入茫茫命途.这是我们宿命的背负.但我始终甘之如饴地承受它的沉沉重量,用以平衡轻浮的生. MainActi ...
- 猪猪的机器学习(十九)卷积神经网络
卷积神经网络 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第十九次课在线笔记.卷积神经网络(Convolutional Neural Network,CNN)是一种前馈 ...
- 一文看懂推荐系统:Gate网络2:百度GemNN(Gating-Enhanced Multi-Task Neural Networks)
一文看懂推荐系统:Gate网络2:百度GemNN(Gating-Enhanced Multi-Task Neural Networks) 提示:最近系统性地学习推荐系统的课程.我们以小红书的场景为例, ...
- 趣谈网络协议笔记-二(第十九讲)
趣谈网络协议笔记-二(第十九讲) HttpDNS:网络世界的地址簿也会指错路 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 引用 dns缓存刷新时间是多久?dns本地缓存时间介绍 - 东大网管 ...
- 【Microsoft Azure 的1024种玩法】二十九.基于Azure VM快速实现网络入侵检测 (IDS) 及网络安全监视 (NSM)
[简介] 数据包捕获是一个重要组件,可以实施网络入侵检测系统 (IDS) 并执行网络安全监视 (NSM). 我们可以借助开源 IDS 工具来处理数据包捕获,并检查潜在网络入侵和恶意活动的签名. 使用网 ...
- osgEarth的Rex引擎原理分析(七十九)如何加载百度、高德、谷歌、微软的在线地图
目标:(七十八)中的问题155 瓦片生成后,就是一堆图片.怎么对这堆图片进行编号,是目前主流互联网地图商分歧最大的地方.总结起来分为四个流派: 谷歌XYZ:Z表示缩放层级,Z=zoom:XY的原点在左 ...
最新文章
- 首尔日记——5月25日,出发
- wcf服务和寄主的关系
- 【数据竞赛】Kaggle实战之特征工程篇-20大文本特征(上)
- HDU - 6599 I Love Palindrome String (回文树+Manacher、回文树+hash)
- LeetCode 217 存在重复元素
- sql server 利用 For Xml Path('') 多行数据拼接成一个字符串
- 中国自主可免费使用的一站式 IoT 集成开发环境 RT-Thread Studio 发布!
- 【CCCC】L3-012 水果忍者 (30分),,枚举斜率
- FastStone Capture 7.7 截图工具下载地址及使用
- SpringCloud-粪发涂墙90
- OpenCV视频处理操作
- 详解Unity中的生命周期函数
- Qt 实现按钮点击切换按钮图片
- 漫画:如何给女朋友解释灭霸的指响并不是真随机消灭半数宇宙人口的?
- 致远互联:以数智化指引破局之道
- 【OI做题记录】【BZOJ】【Usaco2008 Mar】土地购买
- 关于CDN和DNS技术的解析以及搭建智能DNS的方法
- matlab 离散阶跃函数,matlab阶跃函数
- Jenkins的Git配置
- idea配置factets和Artifacts