0%

CTR

MLPS

MPLS(Multiprotocol Label Switch)是使用标签为了做出数据转发决策的数据包转发技术。利用 MPLS 技术,只需一次(当数据包进入 MPLS 域时)即可完成第 3 层报头分析。标签检查可推动后续的数据包转发。MPLS 可为以下应用带来益处:虚拟专用网络 (VPN)
流量工程 (TE)
服务质量 (QoS)
任何基于 MPLS 的传输 (AToM)
另外,它还可减少核心路由器上的转发开销。MPLS 技术适用于任何网络层协议。

embedding

​ 简单来说,embedding就是用一个低维的向量表示一个物体,可以是一个词,或是一个商品,或是一个电影等等。这个embedding向量的性质是能使距离相近的向量对应的物体有相近的含义,比如 Embedding(复仇者联盟)和Embedding(钢铁侠)之间的距离就会很接近,但 Embedding(复仇者联盟)和Embedding(乱世佳人)的距离就会远一些。  
  除此之外Embedding甚至还具有数学运算的关系,比如Embedding(马德里)-Embedding(西班牙)+Embedding(法国)≈Embedding(巴黎)
  从另外一个空间表达物体,甚至揭示了物体间的潜在关系,上次体会这样神奇的操作还是在学习傅里叶变换的时候,从某种意义上来说,Embedding方法甚至具备了一些本体论的哲学意义。
  言归正传,Embedding能够用低维向量对物体进行编码还能保留其含义的特点非常适合深度学习。在传统机器学习模型构建过程中,我们经常使用one hot encoding对离散特征,特别是id类特征进行编码,但由于one hot encoding的维度等于物体的总数,比如阿里的商品one hot encoding的维度就至少是千万量级的。这样的编码方式对于商品来说是极端稀疏的,甚至用multi hot encoding对用户浏览历史的编码也会是一个非常稀疏的向量。而深度学习的特点以及工程方面的原因使其不利于稀疏特征向量的处理(这里希望大家讨论一下为什么?)。因此如果能把物体编码为一个低维稠密向量再喂给DNN,自然是一个高效的基本操作。

pooling

池化过程在一般卷积过程后。池化(pooling) 的本质,其实就是采样。Pooling 对于输入的 Feature Map,选择某种方式对其进行降维压缩,以加快运算速度。

激活函数

激活函数是用来加入非线性因素的,提高神经网络对模型的表达能力,解决线性模型所不能解决的问题。

sigmoid和softmax

sigmoid:image-20210927183028016

softmax:image-20210927183115523

sigmoid将一个real value映射到(0,1)的区间(当然也可以是(-1,1)),这样可以用来做二分类。而softmax把一个k维的real value向量(a1,a2,a3,a4…)映射成一个(b1,b2,b3,b4…)其中bi是一个0-1的常数,然后可以根据bi的大小来进行多分类的任务,如取权重最大的一维。

神经网络的Attention机制

注意力机制也称为:“神经网络的注意力”,或者更简单的:“注意力”。

人脑在工作时,其实是由一定的注意力的,比如我们在浏览器上搜索时,大部分的注意力都集中在搜索结果的左上角,这说明大脑在处理信号的时候是有一定权重划分的,而注意力机制的提出正是模仿了大脑的这种特性。神经网络的注意力就是说,神经网络具有将注意力集中到一部分输入(或特征)的能力。

(1)为什么引入注意力机制呢?

计算能力的限制:目前计算能力依然是限制神经网络发展的瓶颈,当输入的信息过多时,模型也会变得更复杂,通过引入注意力,可以减少处理的信息量,从而减小需要的计算资源。
优化算法的限制:虽然局部连接、权重共享以及 pooling 等优化操作可以让神经网络变得简单一些,有效缓解模型复杂度和表达能力之间的矛盾;但是,如循环神经网络中的长序列输入,信息“记忆”能力并不高。
(2)注意力机制的分类

注意力机制一般分为两种:

聚焦式(Focus)注意力:是一种自上而下的有意识的注意力,“主动注意” 是指有预定目的、依赖任务的、主动有意识地聚焦于某一对象的注意力;
显著性(Saliency-Based)注意力:是一种自下而上的无意识的注意力,“被动注意” 是基于显著性的注意力,是由外界刺激驱动的注意,不需要主动干预,也和任务无关;池化(Max Pooling) 和 门控(Gating) 可以近似地看作是自下而上的基于显著性的注意力机制。

在神经网络结构中加入注意力模型主要是基于三点考虑:首先是这些模型在众多的任务中取得了非常好的性能,比方说机器翻译、问答系统、情感分析、词性标注选民分析和问答系统。然后,在提升模型性能的同时,注意力机制增加了神经网络结构的可解释性。由于传统的神经网络是一个黑盒模型,因此提高其可解释性对机器学习模型的公平性、可靠性和透明性的提高至关重要。第三,其能够帮助缓解递归神经网络中的一些缺陷,比方说随着输入序列长度的增加导致的性能下降和对输入的顺序处理所导致的计算效率低下。

DIN模型

基准模型:基准模型就是比较常见的多层神经网络,即:(1)先对每个特征进行Embedding操作,得到一系列Embedding向量;(2)将不同Group的特征拼接组合起来之后得到一个固定长度的用户Embedding向量,和候选商品Embedding向量;(3)然后将(2)中的向量输入后续的全连接网络,最后输出pCTR值。具体网络结构见下图:

image-20210927194204860

base模型缺点:(1)用户的历史行为特征和当前的候选广告特征在全都拼起来给神经网络之前,是一点交互的过程都没有。

(2)拼起来之后给神经网络,虽然有了交互,但也丢失了部分信息,并引入了噪声。

DIN模型:DIN模型在基准模型的基础上,增加了注意力机制,就是模型在对候选商品预测的时候,对用户不同行为的注意力是不一样的。“相关”的行为历史看重一些,“不相关”的历史甚至可以忽略。下图展示了DIN模型的网络结构图。DIN的模型结构中增加了 Activation Unit模块,该模块主要提取当前候选商品与历史行为中的商品的权重值。image-20210927194403979

单层注意力模型与多层注意力模型

在最一般的情形下,注意力权重是仅仅是由注意力模型的原始的输入序列算出来的,这一注意力模型可被称为单层注意力模型。另一方面,我们可对输入序列进行多次抽象,这样可以使得底层抽象的上下文向量成为下一次抽象的查询状态。这种对输入数据叠加若干层注意力模块实现对序列数据多层抽象的方法可被称为多层注意力模型。更具体地来说,多层注意力模型又可按照模型的权重是自顶向下学习还是自底向上学习的方式进行划分。

多层注意力机制的一个典型应用是通过对文本进行两层抽象实现对文本的分类。这一模型称为“层次和注意力模型(Hierarchical Attention Model,HAM)”。文本是由不同的句子组合而成的,而每个句子又包含不同的单词,HAM能够对文章这种自然的层次化结构进行抽取。具体来说,其首先对每个句子建立一个注意力模型,该注意力模型的输入是每个句子中的基本单词,从而得到这个句子的特征表示;然后将句子的特征的表示输入到后续的注意力模型中来构建整段文本的特征表示。这一最后得到的整段文本的特征表示可以用于后面分类任务分类器的输入。

特征表示的数量

在大多数的应用场景下,我们只会对输入数据进行一种特征表示。然而在有些场景下,对输入数据进行单一的特征表示可能不能够为后续的过程提供足够的信息。在这种情形下,我们可以对同样的输入数据进行多种特征表示。利用注意力机制可以为这些不同的特征表示指定相关的权重,从而丢弃掉输入数据中的噪声信息和重复冗余信息。我们称这种模型为多表示注意力模型\。这种多表示注意力模型能够决定不同特征表示的权重从而有助于后面对这一表示的应用。最后得到的输入的特征表示是多个特征表示的加权组合,这一模型的一个优势在于针对不同的后处理任务能够决定哪些特征表示更适合当前的任务场景。

基于类似的想法,还有一种称为多维度注意力模型\的方法。其核心观点是对特征表示向量的各个维度之间的依赖关系进行建模,这样我们便能够选择特征中更为有用的属性来帮助我们处理后续的任务。这一思想在自然语言处理领域至关重要因为相同的单词往往会出现多义性。

AUC

本质是一个概率值,简单来说就是随机抽出一对样本(一个正样本一个负样本),然后用训练得到的分类器对这两个样本进行预测,预测得到正样本的概率大于负样本的概率的概率。

GAUC

优点:实现了用户级别的AUC计算

缺点:用户行为没有那么多的时候,GAUC会抖动,所以大部分公司还是会采用AUC

multi-hot编码

在做用户画像或为用户做兴趣标签的时候,往往会遇到这样的问题,就是multi-hot特征的处理。 multi-hot编码之后每个id对应的是多个的1,而且不同样本中1的个数还不一样。 对multi-hot特征的处理无非也是一种稀疏矩阵的降维压缩,因此可以使用embedding的方法。对于某个属性对应的分类特征,可能该特征下有多个取值,比如一个特征表示对哪些物品感兴趣,那么这个特征不是单个值,而是有多个取值。 例如我们现在有3个样本: - 样本1 在该属性下取值有1,2两种特征 - 样本2 在该属性下有2一种特征 - 样本3 在该属性下有3,4 两种特征。我们以multi-hot编码的形式来定义特征应为 - 样本1 [1,1,0,0] - 样本2 [0,1,0,0] - 样本3 [0,0,1,1] 但是这种变量不能够直接用 embedding_lookup 去做, embedding_lookup 只接受只有一个1的onehot编码,那么为了完成这种情况的embedding需要两个步骤:

  1. 将输入属性转化为类型one-hot编码的形式, 在tensorflow中这个过程是通过 tf.SparseTensor 来完成的,实际上就是构建了一个字典矩阵,key为坐标,value为1或者0表示是否有值,对于一个样本 如样本1来说就是构建了一个矩阵[[1,1,0,0]]表示有物品1和2,这个矩阵的规模为 [batch_size,num_items] ,这个过程即为 multi-hot 编码
  2. 将构建好的类似于one-hot编码的矩阵与embedding矩阵相乘, embedding矩阵的规模为 [num_items, embedding_size] ,相乘之后得到的输出规模为 [batchi_size, embedding_size] , 即对多维多属性的特征构建了embedding vector

CTR模型整理

说明

参考部分所列出的为遵循原论文所整理,若原论文中有源码则均以附出,实现基本均为tf实现。

pytorch统一接口部分所给出的链接,是一个pytorch实现的ctr库。

参考

1
2
3
4
https://github.com/shenweichen/DeepCTR
https://github.com/DSXiangLi/CTR
https://github.com/shenweichen/DeepCTR-Torch
https://github.com/qiaoguan/deep-ctr-prediction

Convolutional Click Prediction Model(卷积点击预测模型CCPM)

1
[CIKM 2015]A Convolutional Click Prediction Model

论文链接

1
http://wnzhang.net/share/rtb-papers/cnn-ctr.pdf

算法细节

数据集

1
2
3
Avazu:包括数天的广告点击数据,按时间顺序排列。在每一份点击数据中,有17个数据字段
如广告ID,网站ID,点击等。
Yoochoose:包含了一个在线零售商的许多浏览和购买事件的会议。其中每个会话封装了单个用户的点击事件。

结果分析

1
CCPM和其他竞争性方法在单一广告印象和连续广告印象上的点击预测性能相比较优。(FM,LR.RNN)

超参数

1
2
3
the parameter impacts of the filter width w and the number of feature map m in corresponding layer are studied
filter width 与feature map
具体在论文第四页有提及,没有说明修正位置、默认值以及可设置范围。

Factorization-supported Neural Network(因子分解支持的神经网络FNN)

1
[ECIR 2016]Deep Learning over Multi-field Categorical Data: A Case Study on User Response Prediction

论文链接

1
https://arxiv.org/pdf/1601.02376.pdf

带有演示数据的源代码

1
https://github.com/wnzhang/deep-ctr

算法细节

数据集

1
2
iPinYou:iPinYou数据集是一个公开的真实世界的显示广告数据集,其中有每个广告显示信息和相应的
用户点击反馈。

各种细节

1
2
3
4
5
6
1.使用随机梯度下降法来学习所有模型的大部分参数。
2.学习率,从1、0.1、0.01、0.001到0.0001
3.尝试了每个领域的负样本数m=1、2和4,并发现m=2在大多数情况下产生最好的结果。
4.对于激活函数(如公式(3)和(2)),我们尝试了线性函数、sigmoid函数和tanh函数,并发现tanh函数的结果是最优的。
5.通过固定3、4和5个隐藏层来研究架构,具有3个隐藏层(即总共5层)的架构在AUC性能方面是最好的。
6.每个隐藏层的训练范围是隐含单元的范围从100到500,增量为100。

Product-based Neural Network(PNN)

1
[ICDM 2016]Product-based neural networks for user response prediction

论文链接

1
https://arxiv.org/pdf/1611.00144.pdf

可重复的实验代码

1
2
https://github.com/Atomu2014/product-nets 
tensorflow

数据集

1
Criteo:一个著名的广告技术行业的基准数据集。

各种细节

1
2
3
4
1.在这个数据集上应用了负向下采样。定义下采样率为w,预测的CTR为p,重新校准的CTR q
2.在实验中比较了7个模型,它们是用TensorFlow4实现(LR,FM,FNN,CCPM,IPNN,OPNN,PNN),用随机梯度下降法(SGD)进行训练。采用了dropout作为正则化方法来防止训练神经网络时的过度拟合。
3.we set dropout rate at 0.5 on networkhidden layers.将网络隐层的滤除率设置为0.5。

使用方法

Follow the instructions and update the soft link data:

1
XXX/product-nets$ ln -sfn XXX/make-ipinyou-data/2997 data

run main.py:

1
2
cd python
python main.py

Wide & Deep

1
[DLRS 2016]Wide & Deep Learning for Recommender Systems

论文链接

1
https://arxiv.org/pdf/1606.07792.pdf

各种细节

1
1.模型训练时为每个分类特征学习一个 32 维嵌入向量

DeepFM

1
[IJCAI 2017]DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

论文链接

1
https://www.ijcai.org/proceedings/2017/0239.pdf

数据集

1
2
Criteo:包括4500万用户的点击记录。
Company

各种细节

1
2
1.for FNN and PNN: (1)dropout: 0.5; (2) network structure: 400-400-400; (3) optimizer: Adam; (4) activation function: tanh for IPNN, relu forother deep models.
2.研究了不同深度模型的不同超参数,对公司数据集的影响。顺序是:1)激活函数;2)辍学率;3)每层的神经元数量;4)隐藏层数量;5)网络形状。dropout设置为1.0、0.9、0.8、0.7。每层的神经元数量200,400,800。网络形状:constant, increasing,decreasing, and diamond.

注:这篇文章对于超参数进行了大量实验

Piece-wise Linear Model

1
[arxiv 2017]Learning Piece-wise Linear Models from Large Scale Data for Ad Click Prediction

论文链接

1
https://arxiv.org/abs/1704.05194

各种细节

1
2
1.LS-PLM是一个分片线性模型,割数m控制模型的容量。尝试m=6、12、24、36。m=12的测试AUC明显好于m=6,而m=24,36的改善相对较小。
温和。因此,在下面的所有实验中,LS-PLM模型的参数m被设定为12。

Deep & Cross Network

1
[ADKDD 2017]Deep & Cross Network for Ad Click Predictions

论文链接

1
https://arxiv.org/abs/1708.05123

数据集

1
Criteo Display Ads2

各种细节

1
2
3
4
5
1.batch size is set at 512
2.gradient clip norm was set at 100.
3.隐层的数量从2到5不等。
4.隐藏层大小从32到1024
5.初始学习率从0.0001到0.001,增量为0.0001

最佳超参数选择

1
2
ŒThe optimal hyperparameter seŠings were 2 deep layers of size 1024 and 6 cross layers for
the DCN model, 5 deep layers of size 1024 for the DNN, 5 residual units with input dimension 424 and cross dimension 537 forthe DC, and 42 cross features for the LR model

注:本文对于超参数有详细的实验,具体请参考原文。所列不全。

Attentional Factorization Machine(AFM)

1
[IJCAI 2017]Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks

论文链接

1
https://www.ijcai.org/proceedings/2017/0435.pdf

一个对该论文的实现

1
https://github.com/hexiangnan/attentional_factorization_machine

数据集

1
2
Frappe :被用于情境感知推荐,它包含了96,203个不同情境下的用户应用日志。该数据集包含96,203个用户在不同情境下的使用日志。
MovieLens:被用于个性化标签推荐

各种细节

1
1.对于AFM,Frappe和MovieLens上的最佳滤波率是0.2和0.5

to use

代码

1
2
3
AFM.py
FM.py
LoadData.py

数据

1
2
3
4
ml-tag
ml-tag.train.libfm
ml-tag.validation.libfm
ml-tag.test.libfm

训练

1
2
3
4
5
6
# step into the code folder
cd code
# train FM model with optimal parameters
python FM.py --dataset ml-tag --epoch 20 --pretrain -1 --batch_size 4096 --hidden_factor 16 --lr 0.01 --keep 0.7
# train AFM model with optimal parameters
python AFM.py --dataset ml-tag --epoch 20 --pretrain 1 --batch_size 4096 --hidden_factor [16,16] --keep [1.0,0.5] --lamda_attention 100.0 --lr 0.1

注:该复现非原作者

参考文章

1
https://zhuanlan.zhihu.com/p/110375283

Neural Factorization Machine

1
[SIGIR 2017]Neural Factorization Machines for Sparse Predictive Analytics

论文链接

1
https://arxiv.org/pdf/1708.05027.pdf

论文开源代码

1
https://github.com/hexiangnan/neural_factorization_machine

数据集

1
2
Frappe:包含96,203个应用程序在不同背景下的用户使用日志。
MovieLens

各种细节

1
2
3
1.学习率都在[0.005, 0.01, 0.02, 0.05],在[0, 0.1, 0.2, ..., 0.9]的辍学率
2.辍学率为NFM最重要的超参数,后设置为0.5
3.ReLU作为激活函数

to use

1
python NeuralFM.py --dataset frappe --hidden_factor 64 --layers [64] --keep_prob [0.8,0.5] --loss_type square_loss --activation relu --pretrain 0 --optimizer AdagradOptimizer --lr 0.05 --batch_norm 1 --verbose 1 --early_stop 1 --epoch 200

数据集

1
2
3
We use the same input format as the LibFM toolkit (http://www.libfm.org/).

Split the data to train/test/validation files to run the codes directly (examples see data/frappe/).

xDeepFM

1
[KDD 2018]xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems

论文链接

1
https://arxiv.org/pdf/1803.05170.pdf

源代码

1
https://github.com/Leavingseason/xDeepFM

数据集

1
2
3
Criteo:一个著名的行业基准数据集用于开发预测广告点击率的模型,并且可以公开访问
Dianping:中国最大的消费者评论网站。
Bing News:微软的必应搜索引擎的一部分

各种细节

1
2
3
1.学习率被设置为0.001
2.每一层的神经元数量的默认设置是。(1) 400个用于DNN层;(2)Criteo数据集的CIN层为200,大众点评和必应的CIN层为100。
3.对于超参数设置不同数据集有不同设置,详见论文第8页Q3

Deep Interest Network

1
[KDD 2018]Deep Interest Network for Click-Through Rate Prediction

论文链接

1
https://arxiv.org/pdf/1706.06978.pdf

源代码

1
https://github.com/zhougr1993/DeepInterestNetwork

数据集

1
Amazon

各种细节

1
2
1.学习率从1开始,衰减率设置为0.1。
2.小批量学习率从0.001开始,衰减率设置为0.001。

注:DIN这篇论文中,代码质量较差,不建议使用该版本,在后期DIEN论文中会进行调整。

Deep Interest Evolution Network

1
[AAAI 2019]Deep Interest Evolution Network for Click-Through Rate Prediction

论文链接

1
https://arxiv.org/pdf/1809.03672.pdf

源代码

1
https://github.com/mouna99/dien

数据集

1
public and industrial datasets

to use

准备数据

法一

从亚马逊网站获取数据,并使用脚本进行处理

1
sh prepare_data.sh

法二,推荐

解压后直接使用

1
2
3
4
5
6
tar -jxvf data.tar.gz
mv data/* .
tar -jxvf data1.tar.gz
mv data1/* .
tar -jxvf data2.tar.gz
mv data2/* .

训练模型

1
python train.py train [model name] 

AutoInt

1
[CIKM 2019]AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks

论文链接

1
https://arxiv.org/abs/1810.11921

数据集

1
2
3
4
Criteo:一个CTR预测的基准数据集,它有4500万用户的点击广告的记录。
Avazu:包含用户的移动行为,包括一个显示的移动广告是否被用户点击。
KDD12
MovieLens-1M

各种细节

1
2
1.在{0.1 - 0.9}范围内为MovieLens-1M数据集选择辍学率
2.文章分析了Influence of Residual Structure,nfluence of Network Depths.Influence of Different Dimensions.

ONN

1
[arxiv 2019]Operation-aware Neural Networks for User Response Prediction

论文链接

1
https://arxiv.org/pdf/1904.12579.pdf

数据集

1
2
Criteo
Tencent Ad

各种细节

1
2
3
4
1.非线性隐藏层的数量对于Criteo数据集,隐藏的大小被设置为[400, 400, 400],而非线性隐藏层的数量被设置为3。
2.对于腾讯广告数据集,隐藏尺寸被设置为[200,200, 200].
3.Adam学习率是通过网格搜索从[0.0001,0.00025, 0.0005, 0.00075, 0.001],

FiBiNET

1
[RecSys 2019]FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction

论文链接

1
https://arxiv.org/pdf/1905.09433.pdf

数据集

1
2
Criteo
Avazu:由数天的广告点击数据组成。

细节

1
2
3
4
5
6
7
对于嵌入层,Criteo数据集的嵌入层维度被设置为10,Avazu数据集的嵌入层维度被设置为50。
Avazu数据集为50。对于优化方法,我们使用Adam。
对于Criteo数据集和Avazu数据集,小型批次大小为1000,Avazu数据集为500。
学习率被设置为0.0001。对于所有的深度模型,层的深度设置为3,所有的激活函数都是RELU,每层的神经元数量为400。
每层的神经元数量在Criteo数据集为400个,在Avazu数据集为2000个。
数据集的每层神经元数量为400个,Avazu数据集为2000个,辍学率设置为0.5。对于SENET部分,两个FC的激活函数为
对于SENET部分,两个FC中的激活函数是RELU函数,还原率设置为3。

IFM

1
[IJCAI 2019]An Input-aware Factorization Machine for Sparse Prediction

论文链接

1
https://www.ijcai.org/Proceedings/2019/0203.pdf

源代码链接

1
https://github.com/gulyfish/Input-aware-Factorization-Machine

数据集

1
2
Frappe
MovieLens

各种细节

1
2
3
4
5
1.学习率:0.01
2. the number of hidden layers,the dropout ratio, activation functions
3.IFM的性能在开始时随着网络的增加而提高。然而,当网络的深度大于2(Frappe)或3(Movielens)时,模型的性能开始下降。
4.Fraith的Frappe和MovieLens的最佳辍学率分别为0.3和0.4,
5.ReLU更适合这两个数据集

注:本文进行了详细的超参数实验

DCN V2

1
[arxiv 2020]DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems

论文链接

1
https://arxiv.org/abs/2008.13535

数据集

1
2
3
Criteo
MovieLen-1M
Production

各种细节

1
2
3
4
1. learning rate was tuned from 10−4 to 10−1 ,再到10-4到5×10-4
2.隐蔽层的数量在{1,2,3,4}之间,大小为{562, 768, 1024}。
3.正则化参数𝜆的范围为{0, 3 × 10−5, 10−4}
4.研究的超参数:depth of cross layers,matrix rank of DCN-Mix,number of experts in DCN-Mix

DIFM

1
[IJCAI 2020]A Dual Input-aware Factorization Machine for CTR Prediction

论文链接

1
https://www.ijcai.org/Proceedings/2020/0434.pdf

数据集

1
2
Avazu
Criteo

各种细节

1
2
3
4
5
6
7
8
1.所有模型的学习都是通过使用Adam(学习率:0.001)
2.Criteo和Avazu的嵌入大小分别被设定为20和40。
3.批量大小对这两个数据集都设置为2000
4.所研究的超参数:the number of attention heads n,the attention key size dk, activation functions (the vector-wise part),the number of hidden layers in DNNs
5.the number of attention heads n,进行了从1-16的实验,最后将数量固定在16
6.the attention key size dk,在Avazu上将注意因子的大小从20增加到100时,Avazu数据集的模型性能稳步提高,而在Criteo数据集上,80是一个更合适的注意因子大小设置。为避免模型过于复杂,我们将Avazu的注意力系数固定为100,Criteo为80。
7.Relu作为向量部分的神经元的激活函数
8.对于Avazu最好的性能是我们只使用一个隐藏层,对于Criteo数据集采用两个

AFN

1
[AAAI 2020]Adaptive Factorization Network: Learning Adaptive-Order Feature Interactions

论文链接

1
https://arxiv.org/pdf/1909.03276.pdf

源代码

1
https://github.com/WeiyuCheng/AFN-AAAI-20

数据集

1
2
3
4
Criteo
Avazu
Movielens
Frappe

各种细节

1
2
1.超参数Number of logarithmic neurons,Depth of hidden layers,Number of neurons in hidden layers
2.Number of neurons in hidden layers超过600性能开始下降touse

to use

1
2
3
4
5
6
数据集
cd src
python download_criteo_and_avazu.py
代码
cd src
sh ./run_experiments.sh

pytorch统一接口

链接

1
https://github.com/shenweichen/DeepCTR-Torch

image-20220118172936135

统一视角

DeepCTR通过对现有的基于深度学习的点击率预测模型的结构进行抽象总结,在设计过程中采用模块化的思路,各个模块自身具有高复用性,各个模块之间互相独立。 基于深度学习的点击率预测模型按模型内部组件的功能可以划分成以下4个模块:输入模块,嵌入模块,特征提取模块,预测输出模块。

image-20220118173022237