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模型

MindSpore 21天实战营-Wide & Deep作业随记_第1张图片

二、使用GPU完成作业

下载wide & deep体验脚本

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

1234 git clone https://github.com/mindspore-ai/mindspore-21-days-tutorials.gitmkdir -p /root/workspace/wide_deepcp -r /root/mindspore-21-days-tutorials/chapter5/wide_deep_gpu /root/workspace/wide_deepcd /root/workspace/wide_deep

准备阶段

体验作业

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

12345 wget https://wide-deep-21.obs.cn-north-4.myhuaweicloud.com/train_demo.tar.gztar -zxvf train_demo.tar.gzmkdir -p data/ten_percentmv mindrecord data/ten_percentwget https://wide-deep-21.obs.cn-north-4.myhuaweicloud.com/wide_deep.ckpt

验证结果

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

进阶作业

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

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

训练启动阶段

启动GPU容器

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

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

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

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

处理数据

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

开始训练

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

验证结果

1 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:存放模型训练的输出文件

MindSpore 21天实战营-Wide & Deep作业随记_第2张图片

体验作业

体验作业的主要配置:

MindSpore 21天实战营-Wide & Deep作业随记_第3张图片

训练结果:

MindSpore 21天实战营-Wide & Deep作业随记_第4张图片

进阶作业

模型预训练环境配置:

MindSpore 21天实战营-Wide & Deep作业随记_第5张图片

预训练结果:

MindSpore 21天实战营-Wide & Deep作业随记_第6张图片

模型训练环境配置

MindSpore 21天实战营-Wide & Deep作业随记_第7张图片

训练结果

MindSpore 21天实战营-Wide & Deep作业随记_第8张图片

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

MindSpore 21天实战营-Wide & Deep作业随记_第9张图片

转自文章链接:MindSpore 21天实战营-Wide & Deep作业随记_MindSpore_昇腾论坛_华为云论坛

感谢作者的努力与分享,侵权立删!

你可能感兴趣的:(python,算法)