一文看懂推荐系统:Gate网络(一):新浪微博GateNet,GateNet就是想用attention的方法去搞,和SENet一样,都是张俊林的杰作
新浪微博GateNet,GateNet就是想用attention的方法去搞,和SENet一样,都是张俊林的杰作
一文看懂推荐系统:Gate网络(一):新浪微博GateNet,GateNet就是想用attention的方法去搞,和SENet一样,都是张俊林的杰作
提示:最近系统性地学习推荐系统的课程。我们以小红书的场景为例,讲工业界的推荐系统。
我只讲工业界实际有用的技术。说实话,工业界的技术远远领先学术界,在公开渠道看到的书、论文跟工业界的实践有很大的gap,
看书学不到推荐系统的关键技术。
看书学不到推荐系统的关键技术。
看书学不到推荐系统的关键技术。
王树森娓娓道来**《小红书的推荐系统》**
GitHub资料连接:http://wangshusen.github.io/
B站视频合集:https://space.bilibili.com/1369507485/channel/seriesdetail?sid=2249610
基础知识:
【1】一文看懂推荐系统:概要01:推荐系统的基本概念
【2】一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户
【3】一文看懂推荐系统:召回01:基于物品的协同过滤(ItemCF),item-based Collaboration Filter的核心思想与推荐过程
【4】一文看懂推荐系统:召回02:Swing 模型,和itemCF很相似,区别在于计算相似度的方法不一样
【5】一文看懂推荐系统:召回03:基于用户的协同过滤(UserCF),要计算用户之间的相似度
【6】一文看懂推荐系统:召回04:离散特征处理,one-hot编码和embedding特征嵌入
【7】一文看懂推荐系统:召回05:矩阵补充、最近邻查找,工业界基本不用了,但是有助于理解双塔模型
【8】一文看懂推荐系统:召回06:双塔模型——模型结构、训练方法,召回模型是后期融合特征,排序模型是前期融合特征
【9】一文看懂推荐系统:召回07:双塔模型——正负样本的选择,召回的目的是区分感兴趣和不感兴趣的,精排是区分感兴趣和非常感兴趣的
【10】一文看懂推荐系统:召回08:双塔模型——线上服务需要离线存物品向量、模型更新分为全量更新和增量更新
【11】一文看懂推荐系统:召回09:地理位置召回、作者召回、缓存召回
【12】一文看懂推荐系统:排序01:多目标模型
【13】一文看懂推荐系统:排序02:Multi-gate Mixture-of-Experts (MMoE)
【14】一文看懂推荐系统:排序03:预估分数融合
【15】一文看懂推荐系统:排序04:视频播放建模
【16】一文看懂推荐系统:排序05:排序模型的特征
【17】一文看懂推荐系统:排序06:粗排三塔模型,性能介于双塔模型和精排模型之间
【18】一文看懂推荐系统:特征交叉01:Factorized Machine (FM) 因式分解机
【19】一文看懂推荐系统:物品冷启01:优化目标 & 评价指标
【20】一文看懂推荐系统:物品冷启02:简单的召回通道
【21】一文看懂推荐系统:物品冷启03:聚类召回
【22】一文看懂推荐系统:物品冷启04:Look-Alike 召回,Look-Alike人群扩散
【23】一文看懂推荐系统:物品冷启05:流量调控
【24】一文看懂推荐系统:物品冷启06:冷启的AB测试
【25】推荐系统最经典的 排序模型 有哪些?你了解多少?
【26】一文看懂推荐系统:排序07:GBDT+LR模型
【27】一文看懂推荐系统:排序08:Factorization Machines(FM)因子分解机,一个特殊的案例就是MF,矩阵分解为uv的乘积
【28】一文看懂推荐系统:排序09:Field-aware Factorization Machines(FFM),从FM改进来的,效果不咋地
【29】一文看懂推荐系统:排序10:wide&deep模型,wide就是LR负责记忆,deep负责高阶特征交叉而泛化
【30】一文看懂推荐系统:排序11:Deep & Cross Network(DCN)
【31】一文看懂推荐系统:排序12:xDeepFM模型,并不是对DeepFM的改进,而是对DCN的改进哦
【32】一文看懂推荐系统:排序13:FNN模型(FM+MLP=FNN),与PNN同属上海交大张楠的作品
【33】一文看懂推荐系统:排序14:PNN模型(Product-based Neural Networks),和FNN一个作者,干掉FM,加上LR+Product
【34】一文看懂推荐系统:排序15:DeepFM模型(Factorization-Machine),xDeepFM可不是对DeepFM的改编哦,而是对DCN的改编
【36】一文看懂推荐系统:经典双塔模型:微软DSSM模型(Deep Structured Semantic Models),无特征交互,后来美团改进了
提示:文章目录
文章目录
前言
CTR预估模型在学术界/工业界进化的路线有明显的几个节点:
1. 从单特征到交叉特征,围绕着如何学到更有用的交叉特征,诞生了一系列的模型。
2. attention火起来后,被迅速应用到CTR预估领域中,又有很多模型被提出。
3. gate网络火起来后,同样也催生了一些模型。
但话说,我其实一直没太搞明白『attention』和『gate』本质上的区别是什么?
有路过的大佬可以评论区帮忙解答下。
其实就是单体attention或者多提attention
言归正传,这篇博客将要介绍新浪微博张俊林大佬团队提出的GateNet模型,
这篇文章我只在arxiv上找到了,并没有找到公布发表的会议版本,应该是还没投。
整篇文章看起来比较简短,因为Gate网络实在没什么好讲的,
所以文章大量的笔墨都在实证研究上了,
不过遗憾的是,数据集都是用的公开的数据集,没有看到在新浪微博自己的数据集上的实验效果。
本篇博客将会从两个方面介绍下GateNet:
GateNet网络类型
1.1. embedding层Gate(Feature Embedding Gate)
1.2. 隐藏层Gate(Hidden Gate)
GateNet论文实验结论
自己实践中一些结论
一、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方式。
1.2、隐藏层Gate(Hidden Gate)
另外一种施加Gate网络的地方就是MLP的隐藏层,
计算步骤公式直接看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)实践结果来看,有几个结论仅供参考:
gate作用在embedding层与输入层之间效果比作用在隐藏层之间好。
gate使用bit-wise效果好于vector-wise。
gate网络的激活函数sigmoid无论在收敛性和auc增益上都要显著好于其它的激活函数。
骚
总结
提示:如何系统地学习推荐系统,本系列文章可以帮到你
(1)找工作投简历的话,你要将招聘单位的岗位需求和你的研究方向和工作内容对应起来,这样才能契合公司招聘需求,否则它直接把简历给你挂了
(2)你到底是要进公司做推荐系统方向?还是纯cv方向?还是NLP方向?还是语音方向?还是深度学习机器学习技术中台?还是硬件?还是前端开发?后端开发?测试开发?产品?人力?行政?这些你不可能啥都会,你需要找准一个方向,自己有积累,才能去投递,否则面试官跟你聊什么呢?
(3)今日推荐系统学习经验:GateNet就是想用attention的方法去搞
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)