DCN模型

背景

特征交叉最早是基于 LR方法,通过人工设计交叉项作为LR的输入,这种方法原理简单,可解释性强,但对人工经验依赖强,且推荐场景的特征高维稀疏,导致LR难以学好稀疏特征的交叉性。

基于FM的方法通过引入隐向量的方式,不同交叉项之间可以共享隐向量,从而解决了LR中稀疏特征交叉项难学的问题,同时也可以通过模型对所有特征组合项学习,摆脱了对人工经验的强依赖,此外,FM方法经过计算优化,计算速度快,实现了特征自动显式交叉。基于FM的方法也存在明显的不足。这些方法的显式交叉往往只局限于二阶,更高阶的交叉会导致交叉项呈指数形式增加,计算复杂度高,使用成本高。推荐中数据交叉模式复杂,不仅限于二阶,如例1所示,而更高阶的数据交叉模式难以被FM这类方法挖掘出。

DCN系列的模型,整体的结构框架简单,采用Wide&Deep的设计思路,包括特征交叉(Cross Net)和DNN两部分结构。特征交叉部分实现特征的显式高阶交叉,其输出和DNN模块的输出结合,得到最终结果。

特征交叉部分是DCN系列模型的关键结构,它的核心思想是通过多层网络对特征向量进行加和乘等操作,得到特征的显式高阶交叉

 

DCN 网络结构

Embedding and Stacking Layer

一般情况下,模型输入主要有两类特征:dense feature、sparse feature

把每个 sparse feature field 压缩成一个embedding然后concat dense feature送入下一层

Cross Network

模型的中间部分包括:cross network、deep network

deep network 和其它模型没有什么不同

cross network的结构如下:

注意:这里的向量都是列向量

 Combination Layer

Loss function 

 

 总结

DCN主要同过bit粒度的乘积、加和达到特征交叉的目的,并通过引入残差网络类似的实现高阶的交叉特征

DCN 优点:

  • 实现了通过模型自动进行特征的显式高阶交叉,摆脱了对人工设计交叉特征的依赖;
  • 特征交叉的阶数由cross net网络深度决定,灵活可调,一般设为3-4,可根据具体业务调整;
  • 模型参数的增加量小,新增参数的复杂度为O(NL),和cross net的深度呈线性关系。

DCN 缺点:

  • 特征交叉为bit-wise,忽略了特征的域信息,对该方法进行一定的改进,可以实现field-wise的特征交叉;
  • 特征交叉中使用vector形式的参数,对的特征交叉项形成的feature map中所有行进行无差别的线性组合,无法使模型捕捉不同交叉项组合的差异性。

 

参考资料

https://zhuanlan.zhihu.com/p/597346245

https://zhuanlan.zhihu.com/p/597345829

https://zhuanlan.zhihu.com/p/591007890

posted @ 2021-08-16 13:19  xd_xumaomao  阅读(673)  评论(0编辑  收藏  举报