深度学习模型交叉特征建模不理想?试试DCNv2[论文笔记&源码解读]

DCNv2优化了DCN的cross layer,将权重参数从vector升级为matrix并引入MoE,增强表达能力。通过矩阵分解和低维空间的MoE,有效降低线上应用的耗时。文章讨论了DCNv2在点击率、转化率预估中的应用,以及如何结合多任务学习和MMoE架构。
摘要由CSDN通过智能技术生成

论文介绍

DCN-v2优化了DCN的cross layer,权重参数w由原来的vector变为方阵matrix,增加了网络层的表达能力;同时,为了保证线上应用的耗时不会因为cross layer参数量的增加而增加。观察到cross layer的matrix具有低秩性,使用矩阵分解,将方阵matrix转换为两个低维的矩阵、最后在低秩空间内,利用MoE多专家系统,对特征交叉做非线性变化,进一步增加对交叉特征的建模。vector -> matrix; moe

设想:DCNv2是不是可以结合多任务学习、MMoE架构,设计一个新的点击率、转换率模型。效果会不会很好呢?不过,这种方法对训练样本量可能要求比较高。可以尝试一下。

构建推荐系统的关键点在于学习有效的交叉特征。特征的交叉一般通过哈达玛积来表示,比如x1表示性别,男、女;x2表示是否喜欢体育;x1&x2联合特征,会有4种取值。通过特征交叉,可以给模型带来一定的非线性表示。DCN在实际应用中,当处理十亿级别的训练数据样本时,其Cross网络部分在建模特征交叉时表达能力受限。尽管,交叉特征建模在学术上已经提出了很多新的技术方法, 但在实际工程中,许多深度学习模型仍然是通过传统的前馈神经网络来实现特征交叉建模。

通盘考虑DCN网络的优缺点以及交叉特征的建模方式,这里提出了一种新模型架构DCNv2:优化DCN的Cross部分,丰富其对交叉特征的建模能力。

我们直接对比DCN、DCNv2的网络架构。、

dcn

DCN-v2

两者的差别在于Cross网络的建模方式。

DCN Cross layer:
cross layer-vector

DCNv2 Cross layer:
cross layer-matrix

网络层权重参数由原来的vector变为matrix。DCN网络的cross layer的建模是element-wise;DCNv2 cross layer可以实现element-wise和feature-wise的特征交叉。
待理解

我们先回归一下DCN网络模型。DCN借鉴Google的Wide&Deep模型结构,Deep部分是一个N的MLP,用于学习隐性高阶交叉特征;Cross网络通过显性的交叉公式建模高阶交叉特征。cross网络的参数为两个d维度的向量:w和b。通过公式优化,可以简化运算,不会影响模型的线上耗时。这是DCN网络的优点。

但是,DCN网络的Cross网络、Deep网络的参数量不平衡,Deep部分的参数占据DCN总参数的绝大部分。
eg

举例来说,对于1层cross和1层deep的DCN网络输入经过embedding和stack处理后维度为d,Cross部分网络参数为2d,Deep为d*d,当MLP的层数增多时,deep部分的参数量也急速增加。DCN网路的绝大部分参数都用于对隐性交叉特征进行建模。Cross部分的表达能力反而受限。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值