|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
MovieLens数据集评分回归模型
|
|
|
|
|
=========================
|
|
|
|
|
===========================
|
|
|
|
|
|
|
|
|
|
这里我们在MovieLens数据集描述一种 **余弦相似度回归** 任务。
|
|
|
|
|
该示例将展示paddle如何进行词向量嵌入,处理相似度回归,针对文本
|
|
|
|
@ -12,9 +12,9 @@ MovieLens数据集评分回归模型
|
|
|
|
|
让这个示例变得更好,希望能让我们知晓。**
|
|
|
|
|
|
|
|
|
|
数据准备
|
|
|
|
|
```````
|
|
|
|
|
`````````
|
|
|
|
|
下载并解压数据集
|
|
|
|
|
''''''''''''''
|
|
|
|
|
'''''''''''''''''
|
|
|
|
|
这里我们使用 :ref:`demo_ml_dataset` 。
|
|
|
|
|
要下载和解压数据集,只需要简单的运行下面的命令即可。
|
|
|
|
|
|
|
|
|
@ -34,7 +34,7 @@ MovieLens数据集评分回归模型
|
|
|
|
|
+--- README # 数据集描述
|
|
|
|
|
|
|
|
|
|
字段配置文件
|
|
|
|
|
''''''''''
|
|
|
|
|
'''''''''''''
|
|
|
|
|
**字段配置文件** 用来具体说明数据集的字段和文件格式,
|
|
|
|
|
例如,说明每个特征文件具体字段是 **什么** 类型。
|
|
|
|
|
|
|
|
|
@ -50,7 +50,7 @@ ml-1m的字段配置文件在目录 :code:`demo/recommendation/data/config.json`
|
|
|
|
|
:literal:
|
|
|
|
|
|
|
|
|
|
准备数据
|
|
|
|
|
```````
|
|
|
|
|
`````````
|
|
|
|
|
你需要安装python的第三方库。
|
|
|
|
|
**强烈推荐使用VIRTUALENV来创造一个干净的python环境。**
|
|
|
|
|
|
|
|
|
@ -68,14 +68,14 @@ ml-1m的字段配置文件在目录 :code:`demo/recommendation/data/config.json`
|
|
|
|
|
下面介绍预处理过程具体的步骤。
|
|
|
|
|
|
|
|
|
|
提取电影或用户的特征并生成python对象
|
|
|
|
|
''''''''''''''''''''''''''''''''
|
|
|
|
|
'''''''''''''''''''''''''''''''''''''
|
|
|
|
|
|
|
|
|
|
在movielens 1m数据集中,电影和用户有许多的特征。
|
|
|
|
|
评分文件的每一行仅仅提供电影或用户的编号来代表相应的电影或用户。
|
|
|
|
|
我们首先处理电影或用户的特征文件,然后用pickle命令将特征( **Meta** )对象存储为文件。
|
|
|
|
|
|
|
|
|
|
Meta配置文件
|
|
|
|
|
...........
|
|
|
|
|
.............
|
|
|
|
|
|
|
|
|
|
**Meta配置文件** 用来具体描述 **如何** 解析数据集中的每一个字段。
|
|
|
|
|
该文件可以从字段配置文件生成,或是手动编辑生成。文件的格式可以
|
|
|
|
@ -185,7 +185,7 @@ meta文件 :code:`meta.bin` 的结构如下:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
分割训练/测试文件
|
|
|
|
|
'''''''''''''''
|
|
|
|
|
''''''''''''''''''
|
|
|
|
|
|
|
|
|
|
我们将 :code:`ml-1m/ratings.dat` 文件分割为训练和测试文件。分割文件的方法是:对于每位用户,我们将评分分成两部分。
|
|
|
|
|
这样的话每位用户在测试文件中将与训练文件含有同样的信息。
|
|
|
|
@ -208,10 +208,10 @@ meta文件 :code:`meta.bin` 的结构如下:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
神经网络结构配置
|
|
|
|
|
``````````````
|
|
|
|
|
`````````````````
|
|
|
|
|
|
|
|
|
|
训练器配置文件
|
|
|
|
|
''''''''''''
|
|
|
|
|
'''''''''''''''
|
|
|
|
|
|
|
|
|
|
网络结构如下图所示:
|
|
|
|
|
|
|
|
|
@ -251,7 +251,7 @@ meta文件 :code:`meta.bin` 的结构如下:
|
|
|
|
|
* 声明Python数据源, :ref:`api_trainer_config_helpers_data_sources`
|
|
|
|
|
|
|
|
|
|
数据提供脚本
|
|
|
|
|
'''''''''''
|
|
|
|
|
'''''''''''''
|
|
|
|
|
|
|
|
|
|
.. literalinclude:: ../../../demo/recommendation/dataprovider.py
|
|
|
|
|
:language: python
|
|
|
|
@ -264,7 +264,7 @@ meta文件 :code:`meta.bin` 的结构如下:
|
|
|
|
|
* use_seq\: :code:`dataprovider.py` 中的数据是否为序列模式。
|
|
|
|
|
* process\: 返回数据的每一条样本给 :code:`paddle` 。
|
|
|
|
|
|
|
|
|
|
数据提供脚本的细节文档可以参考 :ref:`api_pydataprovider` 。
|
|
|
|
|
数据提供脚本的细节文档可以参考 :ref:`api_pydataprovider2` 。
|
|
|
|
|
|
|
|
|
|
训练
|
|
|
|
|
````
|
|
|
|
@ -316,7 +316,7 @@ meta文件 :code:`meta.bin` 的结构如下:
|
|
|
|
|
模型被保存在 :code:`output/` 目录中。你可以在任何时候用 :code:`Ctrl-C` 来停止训练。
|
|
|
|
|
|
|
|
|
|
模型评估和预测
|
|
|
|
|
````````````
|
|
|
|
|
```````````````
|
|
|
|
|
|
|
|
|
|
在训练了几个轮次以后,你可以对模型进行评估,得到最好轮次下的模型。运行下面命令即可:
|
|
|
|
|
|
|
|
|
|