• 论文阅读【3】Deep & Cross Network for Ad Click Predictions


    请添加图片描述

    特征工程是许多预测问题成功的关键,但这一过程需要大量人力开销并且依赖于经验知识。DNN是解决这一问题的方法,但这种方法表示特征之间的交互是隐式。本篇论文提出的Deep & Cross Network (DCN)在保证了DNN对于特征交互的基本表示的同时,通过引入cross network使得其在特定阶数的交互关系时更加节省空间,并用CTR实验证明了DCN的这一特性。

    问题描述

    CTR(Click-through rate)是广告推荐领域关注的指标,它关系到广告投放地点等推荐策略的重大决策。然而,使用机器学习模型预测CTR是困难的,原因在于这个机器学习任务中的特征高维且稀疏,简单将特征拼接在一起后进入一个神经网络学习效率低,因此在推荐系统领域会使用交叉特征来提升后续模型的效率1

    现有方法不足

    早期的特征交互耗费大量人力,这种方法可以得到显式且有高解释性的交叉特征,但成本高不适合广泛使用。因而后续DNN被直接简单粗暴地使用在编码交叉特征的模型中,这种模型虽然可以天然学出交叉特征,但这种交叉特征却是隐式的,并且DNN也被发现不能够高效提取交叉特征。后续发展出了一些显式提取交叉特征、且脱离人的经验的模型,它们分为3类。本文提出的DCN属于深度特征交互中的一种。

    本文核心思想

    在这里插入图片描述
    DCN中的交互特征指cross network中的每层输出,即 x 1 , x 2 . . . x_1, x_2... x1,x2...,在计算这些中间输出的过程中,起到关键作用的 w c , 0 w_{c,0} wc,0则代表了交叉系数的强度,随着层数增加,中间输出代表的交叉特征的阶数也随之增加。

    DCN主要包括4个模块:Embedding and stacking layerCross networkDeep networkCombination output layer。本文核心创新点在于Cross network的设计。

    具体实现细节

    Cross network

    在这里插入图片描述
    与传统的神经网络不同,Cross network中权重和原始层 x 0 x_0 x0以及上一层的输出结果相乘得到该层多学到的交叉特征与上一层的结果相加。
    x l + 1 = x 0 x l T w l + b l + x l = f ( x l , w l , b l ) + x l x_{l+1} =x_0 x_l^T w_l+b_l+x_l=f(x_l,w_l,b_l )+x_l xl+1=x0xlTwl+bl+xl=f(xl,wl,bl)+xl

    为什么有效

    论文从3个方面解释cross network的有效性:多项式拟合、与FM(Factorization Machines)的关系、映射关系。

    多项式拟合

    本文数学证明了cross network等价于一个交叉特征的多项式,并且cross network的巧妙设计使得多项式的表达更加高效2
    请添加图片描述

    与FM的关系

    FM类似,DCN也通过给2层之间的乘法加个权重来实现特征交叉。不同点在于FM3的权重计算基于向量乘法,而DCN则通过层传递矩阵乘法叠加而得到真实的交叉特征权重。

    映射关系

    每个cross network实现的功能是计算 x l x_l xl x 0 x_0 x0的交叉特征,其本质是计算任意层 x i x_i xi x j x_j xj的交互特征,DCN利用了网络结构的特点实现了高效计算每个 x i x_i xi x j x_j xj的权重。
    请添加图片描述

    实验结果

    本文主要通过CTR数据集上的表现来实验证明模型有效,实验结果证明DCN可以取得更好的准确性,同时与DNN比起网络结构更加高效,使用更少的参数能达到更好的结果。
    请添加图片描述
    请添加图片描述

    附录

    定理3.1其实本质是说明cross network相当于给 x 0 x_0 x0向量的每一个维度做多项式变换:这个多项式中的每一项是该维度和其他维度乘积的次方,用数学公式表达为:
    ∑ α c α ( w 0 , w 1 , . . . w l ) x 1 α 1 x 2 α 2 . . . x d α d ∣ 0 < = ∣ α ∣ < = l + 1 , α ∈ N d {\sum_\alpha c_\alpha(w_0, w_1, ...w_l)x_1^{\alpha_1}x_2^{\alpha_2}...x_d^{\alpha_d} | 0 <= |\alpha| <= l+1, \alpha\in N^d} αcα(w0,w1,...wl)x1α1x2α2...xdαd0<=α<=l+1,αNd
    其中, x = [ x 1 , ⋅ ⋅ ⋅ , x d ] T x=[x_1,···,x_d]^T x=[x1,,xd]T是一个 d ∗ 1 d*1 d1的向量。

    文中证明分2步:首先引入 g l ( x 0 ) : = x l T w l g_l(x_0):=x_l^T w_l gl(x0):=xlTwl并计算 g l ( x 0 ) g_l(x_0) gl(x0) x 0 x_0 x0, w 0 → l − 1 w_{0 \rightarrow l-1} w0l1表示,接着由 g l ( x 0 ) g_l(x_0) gl(x0)得到 x l x_l xl的表示。

    定理3.1的证明

    请添加图片描述


    1. 见博客:推荐系统》系列之七:一文梳理推荐广告特征交互模型进展:https://zhuanlan.zhihu.com/p/393379050 ↩︎

    2. 证明见论文附录 ↩︎

    3. 见论文:S. Rendle, “Factorization Machines,” 2010 IEEE International Conference on Data Mining, 2010, pp. 995-1000, doi: 10.1109/ICDM.2010.127. ↩︎

  • 相关阅读:
    计算机毕业设计(附源码)python制药企业人力资源管理系统
    【Java】集合(一)单列集合List
    Java集合01:Collection集合,List子集合,ArrayList实现类和LinkedList实现类
    Linux操作系统之进程间通信
    02-Redis持久化
    【学生管理系统】学生管理(重点)
    Netty——NIO(Selector处理read事件)代码示例
    拼多多API接口(附上我的可用API)
    Linux 中的程序部署
    查看react内置webpack版本的方法
  • 原文地址:https://blog.csdn.net/kullollo/article/details/125534324