美文网首页
推荐系统 - DCN模型

推荐系统 - DCN模型

作者: nlpming | 来源:发表于2021-07-23 00:38 被阅读0次

    简介

    DCN(Deep Cross Network)由谷歌和斯坦福联合发表在AdKDD 2017会议上。DCN网络在wide & deep模型基础上进行改进,将wide部分替换成cross network,自动学习高阶的特征交叉并且引入的参数规模成线性增加。 wide & deep模型中wide部分,需要人工设计一些交叉特征,DCN网络通过引入Cross Network避免了人工做特征交叉。

    Deep & Cross模型结构

    1. Embedding and Stacking Layer

    • Deep & Cross模型的输入为Dense, Sparse特征,Sparse特征通过Embedding层的映射转换为低维dense特征,然后与归一化后的dense特征concate在一起输入到后续网络。k为sparse特征的数量。x_0的维度为d
      x_0 = \left[ x_{embed, 1}^T, ..., x_{embed, k}^T, x_{dense}^T \right]

    2. Cross Network

    • Cross Network的递推公式为如下。cross网络的每一层拟合的是残差x_{l+1} - x_l, 假设cross network的层数为L_c,则网络的参数数量为:2 * d *L_c,其中w_l, b_l维度为d
      x_{l+1} = x_0x_l^Tw_{l} + b_l + x_l = f(x_l, w_l, b_l) + x_l
    Cross Network计算示意图.png

    3. DNN Network

    • DNN网络的递推公式如下。假设DNN网络每层的维度为m,网络的层数为L_d。则DNN网络的参数数量为:d \times m + m + (L_d - 1) * (m^2 + m)。第一层的参数数量为:d \times m + m
      h_{l+1} = Relu(W_lx_l + b_l)

    4. Combination Layer

    • 输出层将Cross Network和DNN Network输出拼接在一起,输入到sigmoid函数得到预估概率。输出概率计算公式如下:
      p = sigmoid \left( [X_{Cross}^T, h_{DNN}^T] W_{logits} \right)
    • 最终模型的损失函数如下,损失函数中加入了参数的L_2正则化:
      loss function.png
    Deep & Cross结构.png

    Cross Network设计初衷

    • 假设x_0为一个2维的向量:x_0 = [x_{0,1}, x_{0,2}]^T,则x_1的计算公式如下:为了计算简便省略b。从下面的公式可以看出x_1包含原始特征x_{0,1}, x_{0,2}从一阶到二阶的所有可能的交叉。x_2包含所有原始特征一阶到三阶的交叉。
    • 并且Cross Network具有以下特点:
      (1)有限的特征交叉: cross网络相当于对特征做了有限的特征交叉,特征交叉的阶数为cross网络的层数L_c
      (2)参数数量呈线性增长: cross网络的参数数量为 2 * d * L_c
      (3)特征参数共享: cross特征网络中,不同的特征权重不是完全不一样的,部分参数是共享的;
      QQ20210723-0.png

    参考资料

    相关文章

      网友评论

          本文标题:推荐系统 - DCN模型

          本文链接:https://www.haomeiwen.com/subject/zcxumltx.html