DCNv2论文阅读笔记

本文探讨了DCNV2如何改进早期DCN模型,解决输入尺寸受限和crossnetwork与DNN容量不平衡的问题。它引入了灵活的随机交叉模式,通过低秩矩阵分解优化模型容量,并借鉴MOE思想进行跨空间融合。关键点包括自定义的embedding层、增强的crossnetwork结构和loss函数调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems 这篇paper,不是指的图像里面的可形变卷积。

DCN v1可参考这篇blog,比较详细清晰。

 

前言

 

DCN V2提出是为了更好的在大型工业界的实践中应用,多项式的特征交叉仅仅被输入尺寸所表征(是指特征交叉是限定死的,按照输入的特征穷举交叉),大大的限制了其在随机交叉模式上的灵活性。而且,对于cross network和dnn之间限定好的容量是不平衡的,这些都局限了DCN在大规模的生产数据上的表现。

之前的工作都要致力于怎么联合好显式和隐式的表达,有parallel结构和stacked两种架构。

parallel架构,这里的开山之作就是wide&deep模型,deep部分使用dnn,dense特征,wide部分使用lr学习sparse交叉的特征,负责学习cross特征,两者联合训练。deepfm改善了wide部分,使用fm来替代学习特征交互。dcn介绍了一种cross network,强行用公式限定了交叉特征的部分。Xdeepfm通过生成多种特征图来增强了dcn部分的表现能力,增加了当前层和输入层的pairwise交互。

stacked架构,介绍了一种显式的交互层,在embedding layer和DNN 模型之间显式的增加了特征交互。如PNN,用了内积层和外积层做一个pairwise的交互层,但OPNN层的计算消耗太大。

 

proposed structure

embedding layer

输入:sparse+dense,输出:combined feature,dense会被norm。

sparse->hash到高维-〉用W来降维,本文不同的是embedding size是可以任意的。

 

cross network

这是dcn v1 的cross network。公式为

 

 

这是dcn v2 的cross network。公式如:

dcn v2的cross网络区别不大,增大了权重参数,当权重多行退化为一行时,该网络就退化成v1的。

 

deep layer

mlp+激活层

 

deep and cross combination

联合cross network和deep network有两种结构,一种是串行的,一种是并行的。哪一种结构更好,取决于数据是怎么分布的。

如下图所示,串行结构就是把cross network的输出喂给deep network,作为其输入。而并行结构,则是两个网络并行处理,最后用一层mlp来融合两个网络的输出。

 

最后网络的loss使用logloss(二分类的交叉熵)加上l2正则项。

 

将dcn中的低秩矩阵分解

在实际的工业模型中,模型的容量很重要,这会限制serving的资源和时延。低秩矩阵分解被广泛的用于降低计算量,一个dense martix M \in \mathbb{R}^{d\times d}分解成两个高瘦的矩阵U, V \in \mathbb{R}^{d \times r}。当r<d/2时,计算量就会减少。在实际中发现,学习的矩阵在数值上是低秩的。相比于初始化的矩阵,可学习的矩阵展示了一个更快的频谱衰减模式。Rt表示大多数达到了容忍度,被保存在top K的奇异值中。

作者这边提出将cross-layer的w分解(如下一个公式),用两个维度较低的矩阵来表示,这里可以有两个解释:1.我们学习在一个更小的特征空间学习feature cross;2.我们project输入到低维空间上,在把输出project回来。

这里借鉴MOE多专家系统的思路,将矩阵分解弄个N个,最后用一个gating来自适应的选择这K个专家系统,公式和可视化图如下,算是融合了K个小空间内的cross-layer的结果。

 

 

 

目前尚未有公开发布的 DCNv4 论文或学术出版物被广泛讨论或引用。最新的版本为 DCNv3,其主要改进集中在特征交互建模的可解释性、效率以及减少参数数量等方面[^4]。 尽管如此,在研究领域中,模型迭代通常基于现有版本的核心思想进行扩展和优化。如果未来可能出现 DCNv4,可以推测它可能会进一步解决当前版本中存在的局限性,例如: - 提高模型在更大规模数据集上的泛化能力。 - 增强对稀疏特征的支持与处理效果。 - 改进训练过程中的收敛速度与稳定性。 - 引入新的机制以更好地捕捉复杂的特征交互模式。 以下是可能的研究方向和技术手段,供参考: 1. **更高效的架构设计**:通过引入轻量化的组件降低计算复杂度,同时保持甚至提升性能。 2. **增强的正则化策略**:采用先进的技术如注意力机制引导重要特征的学习,从而减轻过拟合现象。 3. **跨域知识迁移**:利用预训练模型或者元学习方法实现快速适应新场景的能力。 对于寻找最新进展的方法建议如下: - 定期关注顶级会议(KDD, SIGIR, WWW等)及期刊发表的文章; - 浏览知名学者及其团队主页获取一手资料; - 参加相关领域的研讨会交流前沿动态。 ```python import tensorflow as tf # Example of a simplified implementation for LCN/ECN from DCNv3 which could inspire future versions like v4. def linear_cross_network(input_tensor, num_layers): x_0 = input_tensor x_l = x_0 for _ in range(num_layers): Wl = tf.Variable(tf.random.normal([input_dim])) Bk = tf.Variable(tf.zeros([input_dim])) xl_wxl = tf.tensordot(x_l, Wl, axes=1) x_l_plus_one = xl_wxl + Bk + x_0 x_l = x_l_plus_one return x_l ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值