【推荐解决方案四部曲】请查收——第三部:基于深度学习模型Wide&Deep的推荐

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: Wide&Deep推荐算法出自一篇论文《Wide&Deep Learning for RecommenderSystems》,Wide&Deep由两部分组成,分别是Wide和Deep。先来说wide,表示的是generalized的推荐系统,传统的推荐系统都是通过线性算法基于离散特征来做推荐的。

Wide&Deep推荐算法出自一篇论文《Wide&Deep Learning for RecommenderSystems》,Wide&Deep由两部分组成,分别是Wide和Deep。先来说wide,表示的是generalized的推荐系统,传统的推荐系统都是通过线性算法基于离散特征来做推荐的。

Wide推荐通常是这样的:系统通过获得用户的购物日志数据,包括用户点击哪些商品,购买过哪些商品,然后通过one-hot编码的方式构成离散特征或者通过对业务的理解衍生出一些特征,并进行计算。这种wide推荐方式有非常多的好处,比如对于大规模的稀疏数据有很好的效果,而且模型的解释性很强。

什么叫模型的解释性呢?以逻辑回归为例,每个特征都对应模型中的一个权重值,每个特征的权重值的大小跟这个特征对结果的影响是有关的。那么wide方式同样有很多缺点,比如我们一直强调的,特征衍生需要很多人为操作,需要专家经验,另外这种推荐只对用户操作过的商品有效。

接着讲下deep,这里的deep表示的是通过深度学习学习出来的一些向量,这些向量是隐性特征,往往是没有明确可解释性的。这些向量也可以作为特征的一部分参与到训练中。通过deep方式产生的特征会有以下好处,其一可以拟补人为提取特征造成的人力思考维度的限制,试想下一个人可以轻易的思考出二阶乘法的结果,如果是五阶呢?其二这部分特征是深度学习框架自动生成的,无需人力干预。

image.png

既然Wide和Deep算法各有千秋,那如果可以将两种算法作为组合,那么一定可以生成更有效的推荐场景的模型,本文就介绍如何在PAI-DSW上实现基于Wide&Deep的预测。

一、业务场景描述

本节使用的是PAI-DSW云端深度学习训练平台和PAI-EAS模型服务平台,使用的是一份开源的基于人的各种背景的统计数据,解决的问题是基于人的各种基础数据预测每个人收入是否会超过50K。

本实验的全部代码和数据已经内置于PAI-DSW,只要打开DSW就可以安装下方的教程运行实验。

image.png

二、数据集介绍

数据源:引用UCI开源数据源

https://archive.ics.uci.edu/ml/datasets/Census+Income

具体特征字段如下:

image.png

目标字段:income是否超过50k

三、数据探索流程

首先进入PAI-DSW,找到左侧的Demo文件夹,下载Wide&Deep数据集及代码包。

image.png

1、工程描述

首先看下整个工程,

包含一个census_data文件夹,里面包含一个训练数据和一个测试数据

official文件夹是一个工具包

census_main.py为训练脚本

image.png

2、模型训练

打开一个terminal环境,执行

python census_main.py--export_dir wide_deep_saved_model

wide_deep_saved_model为输出模型所在的文件夹,训练完在文件目录下会找到相应文件,打开后可以看到checkpoint:

image.png

把这个checkpoint的号记住。

3、模型预测

现在已经生成了模型的checkpoint输出,接下来进入terminal,运行以下脚本:

saved_model_cli run --dir wide_deep_saved_model/${模型checkpoint号码}/ --tag_set serve --signature_def="predict" --input_examples='${预测数据}'

根据本文的案例可以执行以下脚本拿到预测结果:

saved_model_cli run --dir wide_deep_saved_model/1542168326/ --tag_set serve --signature_def="predict" --input_examples='examples=[{"age":[46.], "education_num":[10.], "capital_gain":[7688.], "capital_loss":[0.], "hours_per_week":[38.]}, {"age":[24.], "education_num":[13.], "capital_gain":[0.], "capital_loss":[0.], "hours_per_week":[50.]}]'

输入了两条预测数据,最终拿到预测结果:

image.png

输入了两条预测数据,可以得到预测输出,第一条预测结果为1,第二条结果为0,可以通过output key probabilities判断(注:矩阵第一行对应第一个预测结果,第二列0.9599956>第一列0.04000434,所以第一个预测结果是1。同理第二个预测结果是0)。

可以通过代码

official/wide_deep/census_dataset.py来看具体的特征工程的特征和目标值的构建,目标列>50k时目标值为1,目标列<50k时目标值为0。

于是预测结果第一条的人的预测收入为>50k,预测结果第二条的人的预测收入<50k。

4、模型在线部署

生成的模型是Tensorflow的标准模型格式,可以通过PAI-EAS将模型部署成Http服务供调用。

后续流程可以参考在线预测文档:

https://help.aliyun.com/document_detail/92917.html

部署成在线服务之后,这样就可以做到模型跟用户自身的业务结合,完成PAI模型训练和业务应用的打通。

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
2月前
|
机器学习/深度学习 算法 定位技术
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
本项目基于YOLOv8模型与C#界面,结合Baumer工业相机,实现裂缝的高效检测识别。支持图像、视频及摄像头输入,具备高精度与实时性,适用于桥梁、路面、隧道等多种工业场景。
227 0
|
2月前
|
机器学习/深度学习 人工智能 PyTorch
AI 基础知识从 0.2 到 0.3——构建你的第一个深度学习模型
本文以 MNIST 手写数字识别为切入点,介绍了深度学习的基本原理与实现流程,帮助读者建立起对神经网络建模过程的系统性理解。
192 15
AI 基础知识从 0.2 到 0.3——构建你的第一个深度学习模型
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AI 基础知识从 0.3 到 0.4——如何选对深度学习模型?
本系列文章从机器学习基础出发,逐步深入至深度学习与Transformer模型,探讨AI关键技术原理及应用。内容涵盖模型架构解析、典型模型对比、预训练与微调策略,并结合Hugging Face平台进行实战演示,适合初学者与开发者系统学习AI核心知识。
224 15
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习模型、算法与应用的全方位解析
深度学习,作为人工智能(AI)的一个重要分支,已经在多个领域产生了革命性的影响。从图像识别到自然语言处理,从语音识别到自动驾驶,深度学习无处不在。本篇博客将深入探讨深度学习的模型、算法及其在各个领域的应用。
338 3
|
3月前
|
机器学习/深度学习 存储 PyTorch
PyTorch + MLFlow 实战:从零构建可追踪的深度学习模型训练系统
本文通过使用 Kaggle 数据集训练情感分析模型的实例,详细演示了如何将 PyTorch 与 MLFlow 进行深度集成,实现完整的实验跟踪、模型记录和结果可复现性管理。文章将系统性地介绍训练代码的核心组件,展示指标和工件的记录方法,并提供 MLFlow UI 的详细界面截图。
98 2
PyTorch + MLFlow 实战:从零构建可追踪的深度学习模型训练系统
|
7月前
|
机器学习/深度学习 数据采集 自然语言处理
深度学习实践技巧:提升模型性能的详尽指南
深度学习模型在图像分类、自然语言处理、时间序列分析等多个领域都表现出了卓越的性能,但在实际应用中,为了使模型达到最佳效果,常规的标准流程往往不足。本文提供了多种深度学习实践技巧,包括数据预处理、模型设计优化、训练策略和评价与调参等方面的详细操作和代码示例,希望能够为应用实战提供有效的指导和支持。
|
9月前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型的分布式训练
使用Python实现深度学习模型的分布式训练
365 73
|
8月前
|
机器学习/深度学习 存储 人工智能
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式
MNN 是阿里巴巴开源的轻量级深度学习推理框架,支持多种设备和主流模型格式,具备高性能和易用性,适用于移动端、服务器和嵌入式设备。
1796 18
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式
|
9月前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品消费需求分析的深度学习模型
使用Python实现智能食品消费需求分析的深度学习模型
225 21
|
9月前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费模式预测的深度学习模型
使用Python实现智能食品消费模式预测的深度学习模型
179 2

热门文章

最新文章