MindSpore 21天实战营-Wide & Deep

举报
JeffDing 发表于 2020/11/10 12:23:39 2020/11/10
【摘要】 MindSpore 21天实战营-Wide & Deep

一、Wide And Deep介绍

Wide模型介绍

在目前大规模线上推荐排序系统中,通用的线性模型如LR被广泛应用。线性模型通常输入二进制的one-hot稀疏表示特征进行训练。比如特征“user_installed_app=netflix”为1,表示用户已安装netflix。交叉特征AND(user_installed_app=netflix,impresion_app=Pandora)表示既安装了netflix app同时又浏览过Pandora的用户特征为1,否则为0。wide模型可以通过利用交叉特征高效的实现记忆能力,达到准确推荐的目的。wide模型通过加入一些宽泛类特征实现一定的泛化能力。但是受限与训练数据,wide模型无法实现训练数据中未曾出现过的泛化。

Deep 模型介绍

像FM和DNN这种Embedding类的模型,可以通过学习到的低纬度稠密向量实现模型的泛化能力,包括可以实现对未见过的内容进行泛化推荐。当模型query-item矩阵比较稀疏时,模型的会过分泛化,推荐出很多无相关性的内容,准确性不能得到保证。

W&D模型


二、使用GPU完成作业

下载wide & deep体验脚本

# 在root用户主目录下执行如下命令

git clone https://github.com/mindspore-ai/mindspore-21-days-tutorials.git
mkdir -p /root/workspace/wide_deep
cp -r /root/mindspore-21-days-tutorials/chapter5/wide_deep_gpu /root/workspace/wide_deep
cd /root/workspace/wide_deep

准备阶段

体验作业

下载事先准备好的mindrecord和.ckpt文件

wget https://wide-deep-21.obs.cn-north-4.myhuaweicloud.com/train_demo.tar.gz
tar -zxvf train_demo.tar.gz
mkdir -p data/ten_percent
mv mindrecord data/ten_percent
wget https://wide-deep-21.obs.cn-north-4.myhuaweicloud.com/wide_deep.ckpt

验证结果

cd /wide_deep
python eval.py --data_path=data/ten_percent/mindrecord --ckpt_path=wide_deep.ckpt

进阶作业

准备Criteo数据集(非全量),从华为云obs上下载Criteo数据集mini_demo.txt(全量数据的1%)

mkdir -p data/one_percent
wget https://wide-deep-21.obs.cn-north-4.myhuaweicloud.com/mini_demo.txt
mv mini_demo.txt ./data/one_percent

训练启动阶段

启动GPU容器

使用GPU mindspore-1.0.0版本镜像,将训练脚本及数据集所在目录挂载到容器环境中

docker run -it -v /root/workspace/wide_deep:/wide_deep --runtime=nvidia --privileged=true mindspore/mindspore-gpu:1.0.0 /bin/bash
安装环境依赖项
pip install pandas
pip install scikit-learn

注:如果环境中没有安装docker

ubuntu系统可以使用apt-get install docker进行安装

处理数据

python src/preprocess_data.py --data_path=/wide_deep/data/one_percent/ --data_file=mini_demo.txt

开始训练

python train.py --data_path=data/one_percent/mindrecord

验证结果

python eval.py --data_path=data/one_percent/mindrecord --ckpt_path=widedeep_train-1_42.ckpt

三、使用昇腾环境进行训练

1.数据准备

wide_deep.ckpt:https://wide-deep-21.obs.cn-north-4.myhuaweicloud.com/wide_deep.ckpt

train_demo.tar.gz:https://wide-deep-21.obs.cn-north-4.myhuaweicloud.com/train_demo.tar.gz

demo.txt:https://wide-deep-21.obs.cn-north-4.myhuaweicloud.com/mini_demo.txt

脚本源代码通过git clone https://github.com/mindspore-ai/mindspore-21-days-tutorials.git

2.将代码上传到OBS中

ckpt_file存放体验作业需要的wide_deep.ckpt文件

mindrecoder: 存放train_demo.tar.gz文件

minddemo:mini_demo目录存放进阶作业需要的mini_demo.txt文件

output: 存放进阶作业在ModelArts平台上执行任务时生成的ckpt文件

code:存放模型训练的输出文件

体验作业

体验作业的主要配置:

训练结果:

进阶作业

模型预训练环境配置:

预训练结果:

模型训练环境配置

训练结果

验证结果(验证的配置同体验作业):



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。