CTR Stacking Models

深度学习CTR

stacking_nn_models_envolution_network

Deep Crossing

Deep Crossing:深度学习CTR模型最典型、基础性模型

deep_crossing_structure

  • multiple residual units:残差网络

Factorization Machine based Neural Network

FNN:使用FM隐层作为embedding向量,避免完全从随机状态训练 embedding

fnn_structure

  • 输入特征为高维稀疏特征,embeddingd层与输入层连接数量大、 训练效率低、不稳定

  • 提前训练embedding提高模型复杂度、不稳定性

Product-based Neural Network

PNN:在embedding层、全连接层间加入product layer,完成 针对性特征交叉

pnn_structure

  • product layer:在不同特征域间进行特征组合,定义有 inner、outer product以捕捉不同的交叉信息,提高表示能力

  • 传统DNN中通过多层全连接层完成特征交叉组合,缺乏针对性

    • 没有针对不同特征域进行交叉
    • 不是直接针对交叉特征设计

Wide&Deep Network

Wide&Deep:结合深层网络、广度网络平衡记忆、泛化

wide_and_deep_structure

  • deep models:基于稠密embedding前馈神经网络
  • wide models:基于稀疏特征、特征交叉、特征转换线性模型
  • 基于记忆的推荐通常和用户已经执行直接相关;基于泛化的推荐 更有可能提供多样性的推荐
  • memorization:记忆,学习频繁出现的物品、特征,从历史 数据中探索相关性
  • generalization:泛化,基于相关性的transitivity,探索 较少出现的新特征组合

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

  • wide&deep系模型应该都属于stacking集成

Google App Store实现

wide_and_deep_logit_structure

  • wide部分:cross product transformation

    • 输入
      • 已安装Apps
      • impression Apps
      • 特征工程交叉特征
    • 优化器:带L1正则的FTRL
  • Deep部分:左侧DNN

    • 输入
      • 类别特征embedding:32维
      • 稠密特征
      • 拼接:拼接后1200维 (多值类别应该需要将embedding向量平均、极大化)
    • 优化器:AdaGrad
    • 隐层结构
      • 激活函数relu优于tanh
      • 3层隐层效果最佳
      • 隐层使用塔式结构

DeepFM

DeepFM:用FM替代wide&deep中wide部分,提升其表达能力

deepfm_structure

  • Dense Embeddings:FM中各特征隐向量,FM、DNN公用
  • FM Layer:FM內积、求和层
  • 特点(和Wide&Deep关键区别)

    • wide部分为FM (deep&wide中wide部分有特征交叉,但依靠特征工程实现)
    • FM、DNN部分共享embedding层
  • 同时组合wide、二阶交叉、deep三部分结构,增强模型表达能力

    • FM负责一阶特征、二阶特征交叉
    • DNN负责更高阶特征交叉、非线性

实现

  • DNN部分隐层

    • 激活函数relu优于tanh
    • 3层隐层效果最佳
    • 神经元数目在200-400间为宜,略少于Wide&Deep
    • 在总神经元数目固定下,constant结构最佳
  • embedding层

    • 实验中维度为10

Deep&Cross Network

Deep&Cross:用cross网络替代wide&deep中wide部分,提升其 表达能力

deep_and_cross_structure

  • 特点(和WDL、DeepFM区别)

    • 使用交叉网络结构提取高阶交叉特征
      • 无需特征工程(WDL)
      • 不局限于二阶交叉特征(DeepFM)
  • 交叉网络可以使用较少资源提取高阶交叉特征

https://arxiv.org/pdf/1708.05123.pdf

交叉网络

交叉网络:以有效地方式应用显式特征交叉,由多个交叉层组成

cross_network_cross_layer

  • $x_l$:第$l$交叉层输出
  • $w_l, b_l$:第$l$交叉层参数
  • 借鉴残差网络思想

    • 交叉层完成特征交叉后,会再加上其输入
    • 则映射函数$f(x_l, w_l, b_l)$即拟合残差
  • 特征高阶交叉

    • 每层$x_0 x_l^T$都是特征交叉
    • 交叉特征的阶数随深度$l$增加而增加,最高阶为$l+1$
  • 复杂度(资源消耗)

    • 随输入向量维度、深度、线性增加
    • 受益于$x_l^T w$为标量,由结合律无需存储中间过程矩阵

Nueral Factorization Machine

NFM:用带二阶交互池化层的DNN替换FM中二阶交叉项,提升FM的 非线性表达能力

  • $f_{DNN}(x)$:多层前馈神经网络,包括Embedding LayerBi-Interaction LayerHidden LayerPrediciton Layer
  • $h^T$:DNN输出层权重

模型结构

nfm_structure

Embedding Layer

全连接网络:将每个特征映射为稠密向量表示

  • $v_i$:$k$维embedding向量
  • 只需要考虑非0特征,得到一组特征向量
  • 特征向量会乘以特征值以反映真实值特征 (一般embedding特征取0/1,等价于查表)

Bi-Interaction Layer

BI层:将一组embedding向量转换为单个向量

  • $\odot$:逐元素乘积
  • 没有引入额外参数,可在线性时间$\in O(kM_x)$内计算
  • 可以捕获在低层次二阶交互影响,较拼接操作更 informative,方便学习更高阶特征交互
  • 将BI层替换为拼接、同时替换隐层为塔型MLP(残差网络) 则可以得到wide&deepDeepCross
  • 拼接操作不涉及特征间交互影响,都交由后续深度网络学习 ,实际操作中比较难训练

Hidden Layer

隐层:普通多层嵌套权重、激活函数

  • $l=0$没有隐层时,$f_{\sigma}$原样输出,取$h^T$为 全1向量,即可得FM模型

Attentional Factorization Machines

AFM:引入Attention网络替换FM中二阶交互项,学习交互特征的 重要性,剔除无效的特征组合(交互项)

  • $\varepsilon$:隐向量集,同上
  • $p^T$:Attention网络输出权重

模型结构

afm_structure

Pair-Wise Interaction Layer

成对交互层:将m个embedding向量扩充为$m(m-1)/2$个交互向量

  • $R_X = {(i,j) | i \in X, j \in X, j > i }$
  • $v_i$:$k$维embedding向量

Attention-based Pooling

注意力池化层:压缩交互作用为单一表示时,给交互作用赋不同权重

  • $a{i,j}$:交互权重$w{i,j}$的注意力得分
  • $\odot$:逐元素乘积
  • 考虑到特征高维稀疏,注意力得分不能直接训练,使用MLP attention network参数化注意力得分

    • $W \in R^{t*k}, b \in R^t, h \in R^T$:模型参数
    • $t$:attention network隐层大小

Deep Interest Network

DIN:融合Attention机制作用于DNN

模型结构

din_stucture

activation unit

激活单元

  • 相较于上个结构仅多了直接拼接的用户、上下文特征 din_stucture_comparision

模型训练

Mini-batch Aware Regularization

  • 以Batch内参数平均近似$L_2$约束
  • $W \in R^{K * M}, W_i$:embedding字典、第$i$embedding 向量
  • $K, M$:embedding向量维数、特征数量
  • $B, B_j$:batch数量、第$j$个batch
  • 则参数迭代

Data Adaptive Activation Function

PReLU在0点处硬修正,考虑使用其他对输入自适应的函数替代,以 适应不同层的不同输入分布

Deep Interest Evolution Network

DIEN:引入序列模型AUGRU模拟行为进化过程

模型结构

dien_structure

  • Interest Extractor Layer:使用GRU单元建模历史行为依赖 关系

? 关系

Author

UBeaRLy

Posted on

2019-07-29

Updated on

2021-07-16

Licensed under

Comments