论文介绍
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的网络架构。、
两者的差别在于Cross网络的建模方式。
DCN Cross layer:
DCNv2 Cross layer:
网络层权重参数由原来的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总参数的绝大部分。
举例来说,对于1层cross和1层deep的DCN网络输入经过embedding和stack处理后维度为d,Cross部分网络参数为2d,Deep为d*d,当MLP的层数增多时,deep部分的参数量也急速增加。DCN网路的绝大部分参数都用于对隐性交叉特征进行建模。Cross部分的表达能力反而受限。