深度学习中的DCN双塔模型在推荐系统排序中的应用
版权申诉
118 浏览量
更新于2024-10-13
收藏 13KB ZIP 举报
资源摘要信息:"人工智能-项目实践-推荐系统-将DCN双塔模型应用于排序过程.zip"
人工智能领域中,推荐系统是实现个性化服务的核心技术,它能够根据用户的历史行为、偏好、上下文信息等为用户推荐可能感兴趣的内容或商品。推荐系统技术的进步,特别是深度学习模型在这一领域中的应用,极大提升了推荐的准确性和效率。
DCN双塔模型(Deep & Cross Network),是推荐系统中用于学习特征交叉(feature interactions)的一种神经网络结构,它结合了深度神经网络(DNN)和交叉网络(Cross Network)的优点。DCN通过并行的双塔结构,有效地提取了输入特征的高层表示并保持了特征间的交叉关系,使得模型在处理海量特征和复杂数值关系方面具有显著优势。
(1)input:连续型变量 + 离散型embedding
在深度学习模型中,输入数据通常分为两类:连续型变量和离散型变量。连续型变量指的是那些在一定范围内可以取任意值的变量,如年龄、价格等;离散型变量则通常具有有限的、非连续的取值,如商品类别、用户性别等。在推荐系统中,离散型变量经常通过 embedding 层将高维的类别型数据映射到低维的稠密向量中,这个过程可以学习到类别特征的语义表示。
(2)resnet残差模块特征交叉:x‘ = x0xT w + b + x = f(x,w,b) + x
DCN模型在特征交叉部分使用了类似残差网络(ResNet)中的残差模块。这种结构允许输入直接流过网络层,有助于缓解深层网络训练时的梯度消失问题,使得网络能够更深、更有效地学习复杂的特征表示。在这里,x0xT 表示特征的交叉操作,w 和 b 为模型参数,f(x,w,b) 表示经过线性变换和非线性变换后得到的特征交叉部分,而 x 则是输入特征,通过残差连接保留了原始输入信息。
(3)权重共享w 对X0XT进行降维 + 减少参数量
在DCN模型中,权重共享是一种常见的参数减少技术,通过让不同的网络层共享相同的权重参数,来减少模型的总参数量,这样不仅可以降低过拟合的风险,同时也能提升模型的训练效率。权重共享通常用于矩阵X0X^T的降维操作中,这样可以减少特征交叉计算时产生的参数数量,从而简化模型结构。
personal小结部分提到了几个关键点:
- 中间拟合残差,类似GDBT:这可能是指模型在进行特征交叉时,保留了原始特征的表示,并与交叉特征组合,类似于梯度提升决策树(Gradient Boosting Decision Tree, GBDT)的残差拟合思路。
- 增加cross,避免梯度反向传播时梯度消失,可以使深层模型更易训练:指的是DCN模型通过交叉网络增加模型的深度,以达到提升特征交叉能力的目的,同时避免了梯度消失的问题,这使得即使是深层的模型也能较为容易地进行训练。
- DeepCrossing论文--提到归一化作用,在sample size变化时候表现:这里可能指DeepCrossing模型在样本大小变化时能够通过归一化保持性能稳定,这是在实际应用中非常重要的特性。
- X0与X隐形特征交叉(embedding交叉),相对于FM来说提高交叉程度,相对于mlp来说减少参数:DCN模型通过显式的特征交叉操作,相比于因子分解机(Factorization Machines, FM)提供了更丰富的交叉特征组合;而相比于多层感知机(Multi-Layer Perceptron, MLP),DCN又在保持复杂特征交互的同时显著减少了模型的参数量。
【标签】:"人工智能 强化学习 DCN双塔 推荐排序"
这些标签指出了该资源与人工智能领域中强化学习、DCN双塔模型、推荐系统排序任务的关系。强化学习是机器学习的一个分支,主要关注如何基于与环境的交互来做出决策。而DCN双塔模型和推荐排序任务,则指出了这种模型在构建推荐系统时,如何有效进行排序过程的设计和优化。
【压缩包子文件的文件名称列表】: rec-sort_DCN-master
该文件列表暗示了压缩包中可能包含名为rec-sort_DCN的主目录,在这个目录下可能会有关于推荐系统排序过程的DCN模型应用的源代码、数据集、文档、模型参数以及其他辅助文件。这个目录可能是开发人员在进行项目实践时的仓库名称,包含了实践过程中生成的全部相关资源。
2023-08-23 上传
2021-07-10 上传
2024-01-31 上传
2023-07-25 上传
2024-11-02 上传
2024-10-30 上传
2023-04-28 上传
2024-11-02 上传
2023-07-20 上传
博士僧小星
- 粉丝: 2393
- 资源: 5995
最新资源
- TypeScript-Algo
- NTS-Net-keras:学习导航以进行细粒度分类
- TinyVM-开源
- ghostbustermx.github.io:在线开发版本
- 四元数:适用于Matrix的基于Qt5的IM客户端
- mm-imx21.rar_Linux/Unix编程_Unix_Linux_
- autosar:一组用于处理AUTOSAR XML文件的python模块
- hidviz:深入分析USB HID设备通信的工具
- ippsample:IPP示例实施
- PaddlePaddle-GloVe:基于Paddle框架的GloVe模型的实现
- 将Tailwind CSS库移植到Clojure中的Garden格式-JavaScript开发
- TaoQuick:一个很酷的QtQuickqml组件库和演示(一套酷炫的QtQuickQml基础库和示例)
- stepper-motot.rar_单片机开发_Visual_C++_
- Ruzu Anki pop-ups-crx插件
- boyer-moore-string-search:C语言中的Boyer Moore字符串搜索实现
- plugin-endpoints