Py学习  »  机器学习算法

推荐系统遇上深度学习(八十六)-[腾讯&微博]GateNet:使用门机制提升点击率预估效果

小小挖掘机 • 3 年前 • 503 次点击  

本文介绍的论文是《GateNet:Gating-Enhanced Deep Network for Click-Through Rate Prediction》
下载地址为:https://arxiv.org/pdf/2007.03519.pdf

1、背景

深度学习在CTR预估中已经有了广泛的应用。在深度学习模型中,大都包括embedding layer和MLP hidden layers。同时,门机制(gating mechanism)在CV和NLP领域也有广泛的应用,最为大家熟知的就是在LSTM和GRU中的应用。

关于门机制的介绍,大家可以参考张俊林老师(同时也是本文介绍的论文的作者之一)下面的博文:https://blog.csdn.net/malefactor/article/details/51183989#0-tsina-1-86888-397232819ff9a47a7b7e80a40613cfe1

一些实验证明门机制可以提升非凸深神经网络的可训练性,那么将门机制应用在深度学习CTR预估模型中,会碰出怎样的火花呢?本文介绍的便是二者的结合:GateNet。

2、GateNet介绍

推荐系统中常用的深度学习模型入Wide & Deep,YoutubeNet,DeepFM等,可以看到这些模型都包括embedding layer和MLP hidden layers,那么将门机制和这两种layer相结合,便产生了Feature Embedding Gate和Hidden Gate,接下来对二者分别介绍。

2.1 Feature Embedding Gate

Feature Embedding Gate主要是在embedding layer增加门机制,用于从特征中选择更为重要的特征。如果模型中带有Feature Embedding Gate,其网络结构如下图所示:

假设输入的离散特征,经过Embedding layer得到E=[e1,e2,e3,...,ei,...ef],其中f代表特征域的个数,ei代表第i个域的embedding向量,长度为K。

接下来,embedding向量会通过Feature Embedding Gate进行转换。首先,对每一个embedding向量,通过下面的公式来计算门值gi,代表该向量的重要程度:

然后,将embedding向量ei和门值gi计算哈达玛积,得到gei,并得到最终的输出GE。

上面只是对Feature Embedding Gate的一个概要介绍,其具体的做法包括多种,比如输出的gi是一个跟ei同样长度的向量,那么此时我们称门为bit-wise gate,如果输出的gi是一个值,那么此时称门为vector-wise gate。二者的区别如下:

另一种就是是否所有的域都用同一个参数矩阵W,如果每个域的参数矩阵都不相同,那么我们称之为field private,如果所有域的参数矩阵相同,我们称之为field sharing。

那么bit-wise gate和vector-wise gate,field private和field sharing哪种效果更好呢,在实验部分告诉你答案。

2.2 Hidden Gate

Hidden Gate主要是在MLP中增加门机制,用于选择更加重要的特征交互传递到更深层的网络。如果模型中带有Hidden Gate,其网络结构如下图所示:

假设a(l)是第l层隐藏层的输出:

接下来将a(l)输入到hidden gate中,计算方式如下:

好,Feature Embedding Gate和Hidden Gate的介绍就到这里了,接下来看下实验部分。

3、实验结果

首先来看下在网络中单独加入Feature Embedding Gate的效果:

可以看到,加入Feature Embedding Gate后,在多个模型以及多个数据集中都取得了更好的AUC。

接下来回答前文提出的问题,field private和field sharing,以及bit-wise gate和vector-wise gate哪种效果更好。实验结果如下:

可以看到,field private的结果是明显好于field sharing的,但在不同的数据集中,bit-wise gate和vector-wise gate表现有所差异。

然后看下在MLP中加入Hidden Gate的效果,加入Hidden Gate后AUC也有一定的提升:

最后看下将两种gate进行结合的效果:

可以看到,同时加入两种gate,效果并没有比单独只加一种gate更好,具体的原因有待进一步实验。

好了,本文就介绍到这里了,对原文感兴趣的可以自行阅读。

推荐系统遇上深度学习(八十五)-[阿里]长用户行为序列建模探索:MIMN

2020-06-14

推荐系统遇上深度学习(八十四)-[阿里]抽取用户多维度兴趣的DHAN网络介绍

2020-06-06

推荐系统遇上深度学习(八十三)-[阿里]记忆增强网络—MA-DNN模型介绍

2020-05-23



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/71268
 
503 次点击