基于RBM受限玻尔兹曼机实现推荐系统

  • 内容
  • 评论
  • 相关

网络零售商利用推荐系统向顾客推荐产品,例如,亚马逊会告诉你购买这个产品的其他顾客对哪些产品感兴趣,Netflix 根据你观看的内容以及其他有同样兴趣的 Netflix 用户观看过的内容向你推荐电视剧和电影。

这些推荐系统都是基于协同过滤进行推荐的,在协同过滤中,系统根据用户过去的行为建立一个模型。这里利用上一节中的 RBM 模型,建立一个基于协同过滤的推荐系统用于推荐电影。存在的主要问题就是大多数用户不会评价所有的产品/电影,大部分数据是缺失的。如果有 M 个产品和 N 个用户,那么需要建立一个 N×M 的矩阵,矩阵中包括用户已知的评分,未知则置为 0。

准备工作

使用协同过滤构建推荐系统,首先准备数据。

此处使用从 https://grouplens.org/datasets/movielens/ 获取的电影数据为例,该数据由 movies.dat 和 ratings.dat 两个.dat文件组成,movies.dat 文件包含三列,分别为 3883 部电影的影片 ID、标题和类型,ratings.dat 文件包含四列,分别为用户 ID、影片 ID、评分和时长。

现在合并这两个数据文件来构建一个矩阵,其中,每个用户都拥有对所有 3883 个电影的评分。但是用户通常不会对所有电影进行评分,所以只有某些电影的评分是非零的(需要标准化),而其余的则是零,为 0 的这部分将不会对隐藏层产生影响。

具体做法

  1. 使用上一节中创建的 RBM 类。先定义 RBM 网络,可见单元的数量是电影的数量 3883(movies_df 是从 movies.dat 文件读取的数据结构):



     

本文标题:基于RBM受限玻尔兹曼机实现推荐系统

本文地址:http://www.hosteonscn.com/4268.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注