From 685a85683ed3874f09a24f13f04a782a64f1febc Mon Sep 17 00:00:00 2001 From: chengmo Date: Wed, 13 May 2020 22:54:18 +0800 Subject: [PATCH] update --- doc/custom_dataset_reader.md | 4 +- doc/distributed_train.md | 103 ------- doc/imgs/fleet-ps.png | Bin 0 -> 177651 bytes doc/imgs/ps-overview.png | Bin 0 -> 56226 bytes doc/ps_background.md | 140 +++++++++ doc/rec_background.md | 538 +---------------------------------- readme.md | 14 +- 7 files changed, 152 insertions(+), 647 deletions(-) create mode 100644 doc/imgs/fleet-ps.png create mode 100644 doc/imgs/ps-overview.png create mode 100644 doc/ps_background.md diff --git a/doc/custom_dataset_reader.md b/doc/custom_dataset_reader.md index 13f2e775..c6dba951 100644 --- a/doc/custom_dataset_reader.md +++ b/doc/custom_dataset_reader.md @@ -179,7 +179,9 @@ class TrainReader(Reader): 3. 在`init(self)`函数中声明一些在数据读取中会用到的变量,如示例代码中的`cont_min_`、`categorical_range_`等,必要时可以在`config.yaml`文件中配置变量,通过`env.get_global_env()`拿到。 4. 继承并实现基类中的`generate_sample(self, line)`函数,逐行读取数据。该函数应返回一个可以迭代的reader方法(带有yield的函数不再是一个普通的函数,而是一个生成器generator,成为了可以迭代的对象,等价于一个数组、链表、文件、字符串etc.) 5. 在这个可以迭代的函数中,如示例代码中的`def reader()`,我们定义数据读取的逻辑。以行为单位的数据进行截取,转换及预处理。 -6. 最后,我们需要将数据整理为特定的格式,才能够被dataset正确读取,并灌入的训练的网络中。简单来说,数据的输出顺序与我们在网络中创建的`inputs`必须是严格一一对应的,并转换为类似字典的形式。在示例代码中,我们使用`zip`的方法将参数名与数值构成的元组组成了一个list,并将其yield输出。如果展开来看,我们输出的数据形如`[('dense_feature',[value]),('C1',[value]),('C2',[value]),...,('C26',[value]),('label',[value])]` +6. 最后,我们需要将数据整理为特定的格式,才能够被dataset正确读取,并灌入的训练的网络中。简单来说,数据的输出顺序与我们在网络中创建的`inputs`必须是严格一一对应的,并转换为类似字典的形式。在示例代码中,我们使用`zip`的方法将参数名与数值构成的元组组成了一个list,并将其yield输出。如果展开来看,我们输出的数据形如 + + `[('dense_feature',[value]),('C1',[value]),('C2',[value]),...,('C26',[value]),('label',[value])]` ### 调试Reader diff --git a/doc/distributed_train.md b/doc/distributed_train.md index 22897d4a..c28425f7 100644 --- a/doc/distributed_train.md +++ b/doc/distributed_train.md @@ -1,107 +1,4 @@ # PaddleRec 分布式训练 -## 分布式原理基本介绍 -> 占位 - -## 单机代码转分布式代码 - -> 占位 -### 训练代码准备 -参数服务器架构,有两个重要的组成部分:Server与Worker。为了启动训练,我们是否要准备两套代码分别运行呢?答案是不需要的。Paddle Fleet API将两者运行的逻辑进行了很好的统一,用户只需使用`fleet.init(role)`就可以判断当前启动的程序扮演server还是worker。使用如下的编程范式,只需10行,便可将单机代码转变为分布式代码: -``` python -role = role_maker.PaddleCloudRoleMaker() -fleet.init(role) - -# Define your network, choose your optimizer(SGD/Adam/Adagrad etc.) -strategy = StrategyFactory.create_sync_strategy() -optimizer = fleet.distributed_optimizer(optimizer, strategy) - -if fleet.is_server(): - fleet.init_server() - fleet.run_server() -if fleet.is_worker(): - fleet.init_worker() - # run training - fleet.stop_worker() -``` - -### 运行环境准备 -- Paddle参数服务器模式的训练,目前只支持在`Liunx`环境下运行,推荐使用`ubuntu`或`CentOS` -- Paddle参数服务器模式的前端代码支持`python 2.7`及`python 3.5+`,若使用`Dataset`模式的高性能IO,需使用`python 2.7` -- 使用多台机器进行分布式训练,请确保各自之间可以通过`ip:port`的方式访问`rpc`服务,使用`http/https`代理会导致通信失败 -- 各个机器之间的通信耗费应尽量少 - -假设我们有两台机器,想要在每台机器上分别启动一个`server`进程以及一个`worker`进程,完成2x2(2个参数服务器,2个训练节点)的参数服务器模式分布式训练,按照如下步骤操作。 - -### 启动server -机器A,IP地址是`10.89.176.11`,通信端口是`36000`,配置如下环境变量后,运行训练的入口程序: -```bash -export PADDLE_PSERVERS_IP_PORT_LIST="10.89.176.11:36000,10.89.176.12:36000" -export TRAINING_ROLE=PSERVER -export POD_IP=10.89.176.11 # node A:10.89.176.11 -export PADDLE_PORT=36000 -export PADDLE_TRAINERS_NUM=2 -python -u train.py --is_cloud=1 -``` -应能在日志中看到如下输出: - -> I0318 21:47:01.298220 188592128 grpc_server.cc:470] Server listening on 127.0.0.1:36000 selected port: 36000 - -查看系统进程 -> 8624 | ttys000 | 0:02.31 | python -u train.py --is_cloud=1 - -查看系统进程及端口占用: - -> python3.7 | 8624 | paddle | 8u | IPv6 | 0xe149b87d093872e5 | 0t0 | TCP | localhost:36000 (LISTEN) - -也可以看到我们的`server`进程8624的确在`36000`端口开始了监听,等待`worker`的通信。 - -机器B,IP地址是`10.89.176.12`,通信端口是`36000`,配置如下环境变量后,运行训练的入口程序: -```bash -export PADDLE_PSERVERS_IP_PORT_LIST="10.89.176.11:36000,10.89.176.12:36000" -export TRAINING_ROLE=PSERVER -export POD_IP=10.89.176.12 # node B: 10.89.176.12 -export PADDLE_PORT=36000 -export PADDLE_TRAINERS_NUM=2 -python -u train.py --is_cloud=1 -``` -也可以看到相似的日志输出与进程状况。(进行验证时,请务必确保IP与端口的正确性) - -### 启动worker - -接下来我们分别在机器A与B上开启训练进程。配置如下环境变量并开启训练进程: - -机器A: -```bash -export PADDLE_PSERVERS_IP_PORT_LIST="10.89.176.11:36000,10.89.176.12:36000" -export TRAINING_ROLE=TRAINER -export PADDLE_TRAINERS_NUM=2 -export PADDLE_TRAINER_ID=0 # node A:trainer_id = 0 -python -u train.py --is_cloud=1 -``` - -机器B: -```bash -export PADDLE_PSERVERS_IP_PORT_LIST="10.89.176.11:36000,10.89.176.12:36000" -export TRAINING_ROLE=TRAINER -export PADDLE_TRAINERS_NUM=2 -export PADDLE_TRAINER_ID=1 # node B: trainer_id = 1 -python -u train.py --is_cloud=1 -``` - -运行该命令时,若pserver还未就绪,可在日志输出中看到如下信息: -> server not ready, wait 3 sec to retry... -> -> not ready endpoints:['10.89.176.11:36000', '10.89.176.12:36000'] - -worker进程将持续等待,直到server开始监听,或等待超时。 - -当pserver都准备就绪后,可以在日志输出看到如下信息: -> I0317 11:38:48.099179 16719 communicator.cc:271] Communicator start -> -> I0317 11:38:49.838711 16719 rpc_client.h:107] init rpc client with trainer_id 0 - -至此,分布式训练启动完毕,将开始训练。 - ## PaddleRec分布式运行 > 占位 diff --git a/doc/imgs/fleet-ps.png b/doc/imgs/fleet-ps.png new file mode 100644 index 0000000000000000000000000000000000000000..c82141ea9ff43ed670927ed853fd4c766496a949 GIT binary patch literal 177651 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�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 D=&+m9 literal 0 HcmV?d00001 diff --git a/doc/imgs/ps-overview.png b/doc/imgs/ps-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..8e9509cb3e2b63bec46b40dcf39d8876ac41500e GIT binary patch literal 56226 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 #$4(}>$de~9 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 t+2hdw2c@ + +

+ +参数服务器是主要解决两类问题: + +- 模型参数过大:单机内存空间不足,需要采用分布式存储。 +- 训练数据过多:单机训练太慢,需要加大训练节点,来提高并发训练速度。 设想,当训练数据过多,一个Worker训练太慢时,可以引入多个Worker同时训练,这时Worker之间需要同步模型参数。直观想法是,引入一个Server,Server充当Worker间参数交换的媒介。但当模型参数过大以至于单机存储空间不足时或Worker过多导致一个Server是瓶颈时,就需要引入多个Server。 + + +具体训练流程: + +- 将训练数据均匀的分配给不同的Worker。 +- 将模型参数分片,存储在不同的Server上。 +- Worker端:读取一个minibatch训练数据,从Server端拉取最新的参数,计算梯度,并根据分片上传给不同的Server。 +- Server端:接收Worker端上传的梯度,根据优化算法更新参数。根据Server端每次参数更新是否需要等待所有Worker端的梯度,分为同步训练和异步训练两种机制。 + + +飞桨的参数服务器框架也是基于这种经典的参数服务器模式进行设计和开发的,同时在这基础上进行了SGD(Stochastic Gradient Descent)算法的创新(GEO-SGD)。目前飞桨支持3种模式,分别是同步训练模式、异步训练模式、GEO异步训练模式,如图2所示。 + +

+ +

+ +## 同步训练 + +Worker在训练一个batch的数据后,会合并所有线程的梯度发给Server, Server在收到所有节点的梯度后,会统一进行梯度合并及参数更新。同步训练的优势在于Loss可以比较稳定的下降,缺点是整个训练速度较慢,这是典型的木桶原理,速度的快慢取决于最慢的那个线程的训练计算时间,因此在训练较为复杂的模型时,即模型训练过程中神经网络训练耗时远大于节点间通信耗时的场景下,推荐使用同步训练模式。 + +## 异步训练 + +在训练一个batch的数据后,Worker的每个线程会发送梯度给Server。而Server不会等待接收所有节点的梯度,而是直接基于已收到的梯度进行参数更新。异步训练去除了训练过程中的等待机制,训练速度得到了极大的提升,但是缺点也很明显,那就是Loss下降不稳定,容易发生抖动。建议在个性化推荐(召回、排序)、语义匹配等数据量大的场景使用。 尤其是推荐领域的点击率预估场景,该场景可能会出现千亿甚至万亿规模的稀疏特征,而稀疏参数也可以达到万亿数量级,且需要小时级或分钟级流式增量训练。如果使用异步训练模式,可以很好的满足该场景的online-learning需求。 + +## GEO异步训练 + +GEO(Geometric Stochastic Gradient Descent)异步训练是飞桨自研的异步训练模式,其最大的特点是将参数的更新从Server转移到Worker上。每个Worker在本地训练过程中会使用SGD优化算法更新本地模型参数,在训练若干个batch的数据后,Worker将发送参数更新信息给Server。Server在接收后会通过加和方式更新保存的参数信息。所以显而易见,在GEO异步训练模式下,Worker不用再等待Server发来新的参数即可执行训练,在训练效果和训练速度上有了极大的提升。但是此模式比较适合可以在单机内能完整保存的模型,在搜索、NLP等类型的业务上应用广泛,推荐在词向量、语义匹配等场景中使用。 + +> 运行策略的详细描述可以参考文档:[PaddlePaddle Fluid CPU分布式训练(Trainspiler)使用指南](https://www.paddlepaddle.org.cn/tutorials/projectdetail/454253) + +## 单机代码转分布式 + +### 训练代码准备 +参数服务器架构,有两个重要的组成部分:Server与Worker。为了启动训练,我们是否要准备两套代码分别运行呢?答案是不需要的。Paddle Fleet API将两者运行的逻辑进行了很好的统一,用户只需使用`fleet.init(role)`就可以判断当前启动的程序扮演server还是worker。使用如下的编程范式,只需10行,便可将单机代码转变为分布式代码: +``` python +role = role_maker.PaddleCloudRoleMaker() +fleet.init(role) + +# Define your network, choose your optimizer(SGD/Adam/Adagrad etc.) +strategy = StrategyFactory.create_sync_strategy() +optimizer = fleet.distributed_optimizer(optimizer, strategy) + +if fleet.is_server(): + fleet.init_server() + fleet.run_server() +if fleet.is_worker(): + fleet.init_worker() + # run training + fleet.stop_worker() +``` + +### 运行环境准备 +- Paddle参数服务器模式的训练,目前只支持在`Liunx`环境下运行,推荐使用`ubuntu`或`CentOS` +- Paddle参数服务器模式的前端代码支持`python 2.7`及`python 3.5+`,若使用`Dataset`模式的高性能IO,需使用`python 2.7` +- 使用多台机器进行分布式训练,请确保各自之间可以通过`ip:port`的方式访问`rpc`服务,使用`http/https`代理会导致通信失败 +- 各个机器之间的通信耗费应尽量少 + +假设我们有两台机器,想要在每台机器上分别启动一个`server`进程以及一个`worker`进程,完成2x2(2个参数服务器,2个训练节点)的参数服务器模式分布式训练,按照如下步骤操作。 + +### 启动server +机器A,IP地址是`10.89.176.11`,通信端口是`36000`,配置如下环境变量后,运行训练的入口程序: +```bash +export PADDLE_PSERVERS_IP_PORT_LIST="10.89.176.11:36000,10.89.176.12:36000" +export TRAINING_ROLE=PSERVER +export POD_IP=10.89.176.11 # node A:10.89.176.11 +export PADDLE_PORT=36000 +export PADDLE_TRAINERS_NUM=2 +python -u train.py --is_cloud=1 +``` +应能在日志中看到如下输出: + +> I0318 21:47:01.298220 188592128 grpc_server.cc:470] Server listening on 127.0.0.1:36000 selected port: 36000 + +查看系统进程 +> 8624 | ttys000 | 0:02.31 | python -u train.py --is_cloud=1 + +查看系统进程及端口占用: + +> python3.7 | 8624 | paddle | 8u | IPv6 | 0xe149b87d093872e5 | 0t0 | TCP | localhost:36000 (LISTEN) + +也可以看到我们的`server`进程8624的确在`36000`端口开始了监听,等待`worker`的通信。 + +机器B,IP地址是`10.89.176.12`,通信端口是`36000`,配置如下环境变量后,运行训练的入口程序: +```bash +export PADDLE_PSERVERS_IP_PORT_LIST="10.89.176.11:36000,10.89.176.12:36000" +export TRAINING_ROLE=PSERVER +export POD_IP=10.89.176.12 # node B: 10.89.176.12 +export PADDLE_PORT=36000 +export PADDLE_TRAINERS_NUM=2 +python -u train.py --is_cloud=1 +``` +也可以看到相似的日志输出与进程状况。(进行验证时,请务必确保IP与端口的正确性) + +### 启动worker + +接下来我们分别在机器A与B上开启训练进程。配置如下环境变量并开启训练进程: + +机器A: +```bash +export PADDLE_PSERVERS_IP_PORT_LIST="10.89.176.11:36000,10.89.176.12:36000" +export TRAINING_ROLE=TRAINER +export PADDLE_TRAINERS_NUM=2 +export PADDLE_TRAINER_ID=0 # node A:trainer_id = 0 +python -u train.py --is_cloud=1 +``` + +机器B: +```bash +export PADDLE_PSERVERS_IP_PORT_LIST="10.89.176.11:36000,10.89.176.12:36000" +export TRAINING_ROLE=TRAINER +export PADDLE_TRAINERS_NUM=2 +export PADDLE_TRAINER_ID=1 # node B: trainer_id = 1 +python -u train.py --is_cloud=1 +``` + +运行该命令时,若pserver还未就绪,可在日志输出中看到如下信息: +> server not ready, wait 3 sec to retry... +> +> not ready endpoints:['10.89.176.11:36000', '10.89.176.12:36000'] + +worker进程将持续等待,直到server开始监听,或等待超时。 + +当pserver都准备就绪后,可以在日志输出看到如下信息: +> I0317 11:38:48.099179 16719 communicator.cc:271] Communicator start +> +> I0317 11:38:49.838711 16719 rpc_client.h:107] init rpc client with trainer_id 0 + +至此,分布式训练启动完毕,将开始训练。 \ No newline at end of file diff --git a/doc/rec_background.md b/doc/rec_background.md index 7ea7cbbc..be3e2a81 100644 --- a/doc/rec_background.md +++ b/doc/rec_background.md @@ -18,21 +18,7 @@ - 基于内容过滤推荐[[4](#参考文献)](Content-based Filtering Recommendation):该方法利用商品的内容描述,抽象出有意义的特征,通过计算用户的兴趣和商品描述之间的相似度,来给用户做推荐。优点是简单直接,不需要依据其他用户对商品的评价,而是通过商品属性进行商品相似度度量,从而推荐给用户所感兴趣商品的相似商品;缺点是对于没有任何行为的新用户同样存在冷启动的问题。 - 组合推荐[[5](#参考文献)](Hybrid Recommendation):运用不同的输入和技术共同进行推荐,以弥补各自推荐技术的缺点。 -近些年来,深度学习在很多领域都取得了巨大的成功。学术界和工业界都在尝试将深度学习应用于个性化推荐系统领域中。深度学习具有优秀的自动提取特征的能力,能够学习多层次的抽象特征表示,并对异质或跨域的内容信息进行学习,可以一定程度上处理个性化推荐系统冷启动问题[[6](#参考文献)]。本教程主要介绍个性化推荐的深度学习模型,以及如何使用PaddlePaddle实现模型。 - -## 效果展示 - -我们使用包含用户信息、电影信息与电影评分的数据集作为个性化推荐的应用场景。当我们训练好模型后,只需要输入对应的用户ID和电影ID,就可以得出一个匹配的分数(范围[0,5],分数越高视为兴趣越大),然后根据所有电影的推荐得分排序,推荐给用户可能感兴趣的电影。 - -``` -Input movie_id: 1962 -Input user_id: 1 -Prediction Score is 4.25 -``` - -## 模型概览 - -本章中,我们首先介绍YouTube的视频个性化推荐系统[[7](#参考文献)],然后介绍我们实现的融合推荐模型。 +近些年来,深度学习在很多领域都取得了巨大的成功。学术界和工业界都在尝试将深度学习应用于个性化推荐系统领域中。深度学习具有优秀的自动提取特征的能力,能够学习多层次的抽象特征表示,并对异质或跨域的内容信息进行学习,可以一定程度上处理个性化推荐系统冷启动问题[[6](#参考文献)]。 ### YouTube的深度神经网络个性化推荐系统 @@ -47,22 +33,7 @@ YouTube是世界上最大的视频上传、分享和发现网站,YouTube个性 候选生成网络将推荐问题建模为一个类别数极大的多类分类问题:对于一个Youtube用户,使用其观看历史(视频ID)、搜索词记录(search tokens)、人口学信息(如地理位置、用户登录设备)、二值特征(如性别,是否登录)和连续特征(如用户年龄)等,对视频库中所有视频进行多分类,得到每一类别的分类结果(即每一个视频的推荐概率),最终输出概率较高的几百个视频。 -首先,将观看历史及搜索词记录这类历史信息,映射为向量后取平均值得到定长表示;同时,输入人口学特征以优化新用户的推荐效果,并将二值特征和连续特征归一化处理到[0, 1]范围。接下来,将所有特征表示拼接为一个向量,并输入给非线形多层感知器(MLP,详见[识别数字](https://github.com/PaddlePaddle/book/blob/develop/02.recognize_digits/README.cn.md)教程)处理。最后,训练时将MLP的输出给softmax做分类,预测时计算用户的综合特征(MLP的输出)与所有视频的相似度,取得分最高的$k$个作为候选生成网络的筛选结果。图2显示了候选生成网络结构。 - -

-
-图2. 候选生成网络结构 -

- -对于一个用户$U$,预测此刻用户要观看的视频$\omega$为视频$i$的概率公式为: - -

-
-

- -其中$u$为用户$U$的特征表示,$V$为视频库集合,$v_i$为视频库中第$i$个视频的特征表示。$u$和$v_i$为长度相等的向量,两者点积可以通过全连接层实现。 - -考虑到softmax分类的类别数非常多,为了保证一定的计算效率:1)训练阶段,使用负样本类别采样将实际计算的类别数缩小至数千;2)推荐(预测)阶段,忽略softmax的归一化计算(不影响结果),将类别打分问题简化为点积(dot product)空间中的最近邻(nearest neighbor)搜索问题,取与$u$最近的$k$个视频作为生成的候选。 +首先,将观看历史及搜索词记录这类历史信息,映射为向量后取平均值得到定长表示;同时,输入人口学特征以优化新用户的推荐效果,并将二值特征和连续特征归一化处理到[0, 1]范围。接下来,将所有特征表示拼接为一个向量,并输入给非线形多层感知器(MLP,详见[识别数字](https://github.com/PaddlePaddle/book/blob/develop/02.recognize_digits/README.cn.md)教程)处理。最后,训练时将MLP的输出给softmax做分类,预测时计算用户的综合特征(MLP的输出)与所有视频的相似度,取得分最高的K个作为候选生成网络的筛选结果。 #### 排序网络(Ranking Network) 排序网络的结构类似于候选生成网络,但是它的目标是对候选进行更细致的打分排序。和传统广告排序中的特征抽取方法类似,这里也构造了大量的用于视频排序的相关特征(如视频 ID、上次观看时间等)。这些特征的处理方式和候选生成网络类似,不同之处是排序网络的顶部是一个加权逻辑回归(weighted logistic regression),它对所有候选视频进行打分,从高到底排序后将分数较高的一些视频返回给用户。 @@ -74,510 +45,8 @@ YouTube是世界上最大的视频上传、分享和发现网站,YouTube个性 卷积神经网络经常用来处理具有类似网格拓扑结构(grid-like topology)的数据。例如,图像可以视为二维网格的像素点,自然语言可以视为一维的词序列。卷积神经网络可以提取多种局部特征,并对其进行组合抽象得到更高级的特征表示。实验表明,卷积神经网络能高效地对图像及文本问题进行建模处理。 -卷积神经网络主要由卷积(convolution)和池化(pooling)操作构成,其应用及组合方式灵活多变,种类繁多。本小结我们以如图3所示的网络进行讲解: - -

-
-图3. 卷积神经网络文本分类模型 -

- -假设待处理句子的长度为$n$,其中第$i$个词的词向量为$x_i\in\mathbb{R}^k$,$k$为维度大小。 - -首先,进行词向量的拼接操作:将每$h$个词拼接起来形成一个大小为$h$的词窗口,记为$x_{i:i+h-1}$,它表示词序列$x_{i},x_{i+1},\ldots,x_{i+h-1}$的拼接,其中,$i$表示词窗口中第一个词在整个句子中的位置,取值范围从$1$到$n-h+1$,$x_{i:i+h-1}\in\mathbb{R}^{hk}$。 - -其次,进行卷积操作:把卷积核(kernel)$w\in\mathbb{R}^{hk}$应用于包含$h$个词的窗口$x_{i:i+h-1}$,得到特征$c_i=f(w\cdot x_{i:i+h-1}+b)$,其中$b\in\mathbb{R}$为偏置项(bias),$f$为非线性激活函数,如$sigmoid$。将卷积核应用于句子中所有的词窗口${x_{1:h},x_{2:h+1},\ldots,x_{n-h+1:n}}$,产生一个特征图(feature map): - -

-
-

- -接下来,对特征图采用时间维度上的最大池化(max pooling over time)操作得到此卷积核对应的整句话的特征$\hat c$,它是特征图中所有元素的最大值: - -

-
-

- -#### 融合推荐模型概览 - -在融合推荐模型的电影个性化推荐系统中: - -1. 首先,使用用户特征和电影特征作为神经网络的输入,其中: - - - 用户特征融合了四个属性信息,分别是用户ID、性别、职业和年龄。 - - - 电影特征融合了三个属性信息,分别是电影ID、电影类型ID和电影名称。 - -2. 对用户特征,将用户ID映射为维度大小为256的向量表示,输入全连接层,并对其他三个属性也做类似的处理。然后将四个属性的特征表示分别全连接并相加。 - -3. 对电影特征,将电影ID以类似用户ID的方式进行处理,电影类型ID以向量的形式直接输入全连接层,电影名称用文本卷积神经网络得到其定长向量表示。然后将三个属性的特征表示分别全连接并相加。 - -4. 得到用户和电影的向量表示后,计算二者的余弦相似度作为个性化推荐系统的打分。最后,用该相似度打分和用户真实打分的差异的平方作为该回归模型的损失函数。 - -

-
-图4. 融合推荐模型 -

- -## 数据准备 - -### 数据介绍与下载 - -我们以 [MovieLens 百万数据集(ml-1m)](http://files.grouplens.org/datasets/movielens/ml-1m.zip)为例进行介绍。ml-1m 数据集包含了 6,000 位用户对 4,000 部电影的 1,000,000 条评价(评分范围 1~5 分,均为整数),由 GroupLens Research 实验室搜集整理。 - -Paddle在API中提供了自动加载数据的模块。数据模块为 `paddle.dataset.movielens` - - -```python -from __future__ import print_function -import paddle -movie_info = paddle.dataset.movielens.movie_info() -print(list(movie_info.values())[0]) -``` - - -```python -# Run this block to show dataset's documentation -# help(paddle.dataset.movielens) -``` - -在原始数据中包含电影的特征数据,用户的特征数据,和用户对电影的评分。 - -例如,其中某一个电影特征为: - - -```python -movie_info = paddle.dataset.movielens.movie_info() -print(list(movie_info.values())[0]) -``` - - - - -这表示,电影的id是1,标题是《Toy Story》,该电影被分为到三个类别中。这三个类别是动画,儿童,喜剧。 - - -```python -user_info = paddle.dataset.movielens.user_info() -print(list(user_info.values())[0]) -``` - - - - -这表示,该用户ID是1,女性,年龄比18岁还年轻。职业ID是10。 - - -其中,年龄使用下列分布 - -* 1: "Under 18" -* 18: "18-24" -* 25: "25-34" -* 35: "35-44" -* 45: "45-49" -* 50: "50-55" -* 56: "56+" - -职业是从下面几种选项里面选则得出: - -* 0: "other" or not specified -* 1: "academic/educator" -* 2: "artist" -* 3: "clerical/admin" -* 4: "college/grad student" -* 5: "customer service" -* 6: "doctor/health care" -* 7: "executive/managerial" -* 8: "farmer" -* 9: "homemaker" -* 10: "K-12 student" -* 11: "lawyer" -* 12: "programmer" -* 13: "retired" -* 14: "sales/marketing" -* 15: "scientist" -* 16: "self-employed" -* 17: "technician/engineer" -* 18: "tradesman/craftsman" -* 19: "unemployed" -* 20: "writer" - -而对于每一条训练/测试数据,均为 <用户特征> + <电影特征> + 评分。 - -例如,我们获得第一条训练数据: - - -```python -train_set_creator = paddle.dataset.movielens.train() -train_sample = next(train_set_creator()) -uid = train_sample[0] -mov_id = train_sample[len(user_info[uid].value())] -print ("User %s rates Movie %s with Score %s"%(user_info[uid], movie_info[mov_id], train_sample[-1])) -``` - - User rates Movie with Score [5.0] - - -即用户1对电影1193的评价为5分。 - -## 模型配置说明 - -下面我们开始根据输入数据的形式配置模型。首先引入所需的库函数以及定义全局变量。 -- IS_SPARSE: embedding中是否使用稀疏更新 -- PASS_NUM: epoch数量 - - -```python -import math -import sys -import numpy as np -import paddle -import paddle.fluid as fluid -import paddle.fluid.layers as layers -import paddle.fluid.nets as nets - -IS_SPARSE = True -BATCH_SIZE = 256 -PASS_NUM = 20 -``` - -然后为我们的用户特征综合模型定义模型配置 - -```python -def get_usr_combined_features(): - """network definition for user part""" - - USR_DICT_SIZE = paddle.dataset.movielens.max_user_id() + 1 - - uid = fluid.data(name='user_id', shape=[None], dtype='int64') - - usr_emb = fluid.embedding( - input=uid, - dtype='float32', - size=[USR_DICT_SIZE, 32], - param_attr='user_table', - is_sparse=IS_SPARSE) - - usr_fc = layers.fc(input=usr_emb, size=32) - - USR_GENDER_DICT_SIZE = 2 - - usr_gender_id = fluid.data(name='gender_id', shape=[None], dtype='int64') - - usr_gender_emb = fluid.embedding( - input=usr_gender_id, - size=[USR_GENDER_DICT_SIZE, 16], - param_attr='gender_table', - is_sparse=IS_SPARSE) - - usr_gender_fc = layers.fc(input=usr_gender_emb, size=16) - - USR_AGE_DICT_SIZE = len(paddle.dataset.movielens.age_table) - usr_age_id = fluid.data(name='age_id', shape=[None], dtype="int64") - - usr_age_emb = fluid.embedding( - input=usr_age_id, - size=[USR_AGE_DICT_SIZE, 16], - is_sparse=IS_SPARSE, - param_attr='age_table') - - usr_age_fc = layers.fc(input=usr_age_emb, size=16) - - USR_JOB_DICT_SIZE = paddle.dataset.movielens.max_job_id() + 1 - usr_job_id = fluid.data(name='job_id', shape=[None], dtype="int64") - - usr_job_emb = fluid.embedding( - input=usr_job_id, - size=[USR_JOB_DICT_SIZE, 16], - param_attr='job_table', - is_sparse=IS_SPARSE) - - usr_job_fc = layers.fc(input=usr_job_emb, size=16) - - concat_embed = layers.concat( - input=[usr_fc, usr_gender_fc, usr_age_fc, usr_job_fc], axis=1) - - usr_combined_features = layers.fc(input=concat_embed, size=200, act="tanh") - - return usr_combined_features -``` - -如上述代码所示,对于每个用户,我们输入4维特征。其中包括user_id,gender_id,age_id,job_id。这几维特征均是简单的整数值。为了后续神经网络处理这些特征方便,我们借鉴NLP中的语言模型,将这几维离散的整数值,变换成embedding取出。分别形成usr_emb, usr_gender_emb, usr_age_emb, usr_job_emb。 - -然后,我们对于所有的用户特征,均输入到一个全连接层(fc)中。将所有特征融合为一个200维度的特征。 - -进而,我们对每一个电影特征做类似的变换,网络配置为: - - -```python -def get_mov_combined_features(): - """network definition for item(movie) part""" - - MOV_DICT_SIZE = paddle.dataset.movielens.max_movie_id() + 1 - - mov_id = fluid.data(name='movie_id', shape=[None], dtype='int64') - - mov_emb = fluid.embedding( - input=mov_id, - dtype='float32', - size=[MOV_DICT_SIZE, 32], - param_attr='movie_table', - is_sparse=IS_SPARSE) - - mov_fc = layers.fc(input=mov_emb, size=32) - - CATEGORY_DICT_SIZE = len(paddle.dataset.movielens.movie_categories()) - - category_id = fluid.data( - name='category_id', shape=[None], dtype='int64', lod_level=1) - - mov_categories_emb = fluid.embedding( - input=category_id, size=[CATEGORY_DICT_SIZE, 32], is_sparse=IS_SPARSE) - - mov_categories_hidden = layers.sequence_pool( - input=mov_categories_emb, pool_type="sum") - - MOV_TITLE_DICT_SIZE = len(paddle.dataset.movielens.get_movie_title_dict()) - - mov_title_id = fluid.data( - name='movie_title', shape=[None], dtype='int64', lod_level=1) - - mov_title_emb = fluid.embedding( - input=mov_title_id, size=[MOV_TITLE_DICT_SIZE, 32], is_sparse=IS_SPARSE) - - mov_title_conv = nets.sequence_conv_pool( - input=mov_title_emb, - num_filters=32, - filter_size=3, - act="tanh", - pool_type="sum") - - concat_embed = layers.concat( - input=[mov_fc, mov_categories_hidden, mov_title_conv], axis=1) - - mov_combined_features = layers.fc(input=concat_embed, size=200, act="tanh") - - return mov_combined_features -``` - -电影标题名称(title)是一个序列的整数,整数代表的是这个词在索引序列中的下标。这个序列会被送入 `sequence_conv_pool` 层,这个层会在时间维度上使用卷积和池化。因为如此,所以输出会是固定长度,尽管输入的序列长度各不相同。 - -最后,我们定义一个`inference_program`来使用余弦相似度计算用户特征与电影特征的相似性。 - -```python -def inference_program(): - """the combined network""" - - usr_combined_features = get_usr_combined_features() - mov_combined_features = get_mov_combined_features() - - inference = layers.cos_sim(X=usr_combined_features, Y=mov_combined_features) - scale_infer = layers.scale(x=inference, scale=5.0) - - return scale_infer -``` - -进而,我们定义一个`train_program`来使用`inference_program`计算出的结果,在标记数据的帮助下来计算误差。我们还定义了一个`optimizer_func`来定义优化器。 - -```python -def train_program(): - """define the cost function""" - - scale_infer = inference_program() - - label = fluid.data(name='score', shape=[None, 1], dtype='float32') - square_cost = layers.square_error_cost(input=scale_infer, label=label) - avg_cost = layers.mean(square_cost) - - return [avg_cost, scale_infer] - - -def optimizer_func(): - return fluid.optimizer.SGD(learning_rate=0.2) -``` - - -## 训练模型 - -### 定义训练环境 -定义您的训练环境,可以指定训练是发生在CPU还是GPU上。 - -```python -use_cuda = False -place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace() -``` - -### 定义数据提供器 -下一步是为训练和测试定义数据提供器。提供器读入一个大小为 `BATCH_SIZE`的数据。`paddle.dataset.movielens.train` 每次会在乱序化后提供一个大小为`BATCH_SIZE`的数据,乱序化的大小为缓存大小`buf_size`。 - -```python -train_reader = fluid.io.batch( - fluid.io.shuffle( - paddle.dataset.movielens.train(), buf_size=8192), - batch_size=BATCH_SIZE) - -test_reader = fluid.io.batch( - paddle.dataset.movielens.test(), batch_size=BATCH_SIZE) -``` - -### 构造训练过程(trainer) -我们这里构造了一个训练过程,包括训练优化函数。 - -### 提供数据 - -`feed_order`用来定义每条产生的数据和`paddle.layer.data`之间的映射关系。比如,`movielens.train`产生的第一列的数据对应的是`user_id`这个特征。 - -```python -feed_order = [ - 'user_id', 'gender_id', 'age_id', 'job_id', 'movie_id', 'category_id', - 'movie_title', 'score' -] -``` - -### 构建训练程序以及测试程序 -分别构建训练程序和测试程序,并引入训练优化器。 - -```python -main_program = fluid.default_main_program() -star_program = fluid.default_startup_program() -[avg_cost, scale_infer] = train_program() - -test_program = main_program.clone(for_test=True) -sgd_optimizer = optimizer_func() -sgd_optimizer.minimize(avg_cost) -exe = fluid.Executor(place) - -def train_test(program, reader): - count = 0 - feed_var_list = [ - program.global_block().var(var_name) for var_name in feed_order - ] - feeder_test = fluid.DataFeeder( - feed_list=feed_var_list, place=place) - test_exe = fluid.Executor(place) - accumulated = 0 - for test_data in reader(): - avg_cost_np = test_exe.run(program=program, - feed=feeder_test.feed(test_data), - fetch_list=[avg_cost]) - accumulated += avg_cost_np[0] - count += 1 - return accumulated / count -``` - -### 构建训练主循环并开始训练 -我们根据上面定义的训练循环数(`PASS_NUM`)和一些别的参数,来进行训练循环,并且每次循环都进行一次测试,当测试结果足够好时退出训练并保存训练好的参数。 - -```python -# Specify the directory path to save the parameters -params_dirname = "recommender_system.inference.model" - -from paddle.utils.plot import Ploter -train_prompt = "Train cost" -test_prompt = "Test cost" - -plot_cost = Ploter(train_prompt, test_prompt) - -def train_loop(): - feed_list = [ - main_program.global_block().var(var_name) for var_name in feed_order - ] - feeder = fluid.DataFeeder(feed_list, place) - exe.run(star_program) - - for pass_id in range(PASS_NUM): - for batch_id, data in enumerate(train_reader()): - # train a mini-batch - outs = exe.run(program=main_program, - feed=feeder.feed(data), - fetch_list=[avg_cost]) - out = np.array(outs[0]) - - # get test avg_cost - test_avg_cost = train_test(test_program, test_reader) - - plot_cost.append(train_prompt, batch_id, outs[0]) - plot_cost.append(test_prompt, batch_id, test_avg_cost) - plot_cost.plot() - - if batch_id == 20: - if params_dirname is not None: - fluid.io.save_inference_model(params_dirname, [ - "user_id", "gender_id", "age_id", "job_id", - "movie_id", "category_id", "movie_title" - ], [scale_infer], exe) - return - print('EpochID {0}, BatchID {1}, Test Loss {2:0.2}'.format( - pass_id + 1, batch_id + 1, float(test_avg_cost))) - - if math.isnan(float(out[0])): - sys.exit("got NaN loss, training failed.") -``` -开始训练 -```python -train_loop() -``` - -## 应用模型 - -### 生成测试数据 -使用 create_lod_tensor(data, lod, place) 的API来生成细节层次的张量。`data`是一个序列,每个元素是一个索引号的序列。`lod`是细节层次的信息,对应于`data`。比如,data = [[10, 2, 3], [2, 3]] 意味着它包含两个序列,长度分别是3和2。于是相应地 lod = [[3, 2]],它表明其包含一层细节信息,意味着 `data` 有两个序列,长度分别是3和2。 - -在这个预测例子中,我们试着预测用户ID为1的用户对于电影'Hunchback of Notre Dame'的评分 - -```python -infer_movie_id = 783 -infer_movie_name = paddle.dataset.movielens.movie_info()[infer_movie_id].title -user_id = np.array([1]).astype("int64").reshape(-1) -gender_id = np.array([1]).astype("int64").reshape(-1) -age_id = np.array([0]).astype("int64").reshape(-1) -job_id = np.array([10]).astype("int64").reshape(-1) -movie_id = np.array([783]).astype("int64").reshape(-1) # Hunchback of Notre Dame -category_id = fluid.create_lod_tensor(np.array([10, 8, 9], dtype='int64'), [[3]], place) # Animation, Children's, Musical -movie_title = fluid.create_lod_tensor(np.array([1069, 4140, 2923, 710, 988], dtype='int64'), [[5]], - place) # 'hunchback','of','notre','dame','the' -``` - -### 构建预测过程并测试 -与训练过程类似,我们需要构建一个预测过程。其中, `params_dirname`是之前用来存放训练过程中的各个参数的地址。 - -```python -place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace() -exe = fluid.Executor(place) - -inference_scope = fluid.core.Scope() -``` - -### 测试 -现在我们可以进行预测了。我们要提供的`feed_order`应该和训练过程一致。 - - -```python -with fluid.scope_guard(inference_scope): - [inferencer, feed_target_names, - fetch_targets] = fluid.io.load_inference_model(params_dirname, exe) - - results = exe.run(inferencer, - feed={ - 'user_id': user_id, - 'gender_id': gender_id, - 'age_id': age_id, - 'job_id': job_id, - 'movie_id': movie_id, - 'category_id': category_id, - 'movie_title': movie_title - }, - fetch_list=fetch_targets, - return_numpy=False) - predict_rating = np.array(results[0]) - print("Predict Rating of user id 1 on movie \"" + infer_movie_name + - "\" is " + str(predict_rating[0][0])) - print("Actual Rating of user id 1 on movie \"" + infer_movie_name + - "\" is 4.") -``` - -## 总结 +卷积神经网络主要由卷积(convolution)和池化(pooling)操作构成,其应用及组合方式灵活多变,种类繁多。 -本文介绍了传统的个性化推荐系统方法和YouTube的深度神经网络个性化推荐系统,并以电影推荐为例,使用PaddlePaddle训练了一个个性化推荐神经网络模型。个性化推荐系统几乎涵盖了电商系统、社交网络、广告推荐、搜索引擎等领域的方方面面,而在图像处理、自然语言处理等领域已经发挥重要作用的深度学习技术,也将会在个性化推荐系统领域大放异彩。 ## 参考文献 @@ -588,7 +57,6 @@ with fluid.scope_guard(inference_scope): 4. [Peter Brusilovsky](https://en.wikipedia.org/wiki/Peter_Brusilovsky) (2007). *The Adaptive Web*. p. 325. 5. Robin Burke , [Hybrid Web Recommender Systems](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.435.7538&rep=rep1&type=pdf), pp. 377-408, The Adaptive Web, Peter Brusilovsky, Alfred Kobsa, Wolfgang Nejdl (Ed.), Lecture Notes in Computer Science, Springer-Verlag, Berlin, Germany, Lecture Notes in Computer Science, Vol. 4321, May 2007, 978-3-540-72078-2. 6. Yuan, Jianbo, et al. ["Solving Cold-Start Problem in Large-scale Recommendation Engines: A Deep Learning Approach."](https://arxiv.org/pdf/1611.05480v1.pdf) *arXiv preprint arXiv:1611.05480* (2016). -7. Covington P, Adams J, Sargin E. [Deep neural networks for youtube recommendations](https://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/45530.pdf)[C]//Proceedings of the 10th ACM Conference on Recommender Systems. ACM, 2016: 191-198.
diff --git a/readme.md b/readme.md index 69f2fbc9..4c63fc12 100644 --- a/readme.md +++ b/readme.md @@ -57,7 +57,7 @@ python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple ``` - 2. 源码安装Fleet-Rec + 2. 源码安装PaddleRec ``` git clone https://github.com/PaddlePaddle/PaddleRec/ @@ -68,7 +68,7 @@

快速启动

-### 直接启动内置模型的默认配置 +### 启动内置模型的默认配置 目前框架内置了多个模型,简单的命令即可使用内置模型开始单机训练和本地1*1模拟训练,我们以`ctr-dnn`为例介绍PaddleRec的简单使用。 @@ -96,11 +96,11 @@ python -m paddlerec.run -m paddlerec.models.rank.dnn -e local_cluster python -m paddlerec.run -m paddlerec.models.rank.dnn -e cluster ``` -### 启动内置模型自定配置 +### 启动内置模型的自定配置 若您复用内置模型,对**yaml**配置文件进行了修改,如更改超参,重新配置数据后,可以直接使用paddlerec运行该yaml文件。 -例如在paddlerec代码目录下,修改了dnn模型yaml的配置后,运行`ctr-dnn`模型: +例如在paddlerec代码目录下,修改了dnn模型`config.yaml`的配置后,运行`ctr-dnn`模型: ```bash python -m paddlerec.run -m ./models/rank/dnn/config.yaml -e single ``` @@ -133,10 +133,8 @@ python -m paddlerec.run -m ./models/rank/dnn/config.yaml -e single

文档

### 新手教程 -* [环境要求](#环境要求) -* [安装命令](#安装命令) -* [快速开始](#一行命令启动训练) -* [推荐系统背景知识](doc/rec_background.md) +* [推荐系统背景介绍](doc/rec_background.md) +* [分布式-参数服务器背景介绍](doc/ps_background.md) ### 进阶教程 * [自定义数据集及Reader](doc/custom_dataset_reader.md) -- GitLab