电影推荐系统

成员

  • 郭媛
  • 周盼
  • 林仁俊
  • 赵树阳

目标

  1. 计算每位用户对一类电影的评分情况。
  2. 根据用户的感兴趣程度向用户推荐最可能受其欢迎的电影。

测试驱动

  1. data/movie-tags.csv

每部电影的相关属性。它是步骤1中模型建立的基础。

  1. data/movie-titles.csv

从电影ID到电影标题的映射。

  1. data/ratings.csv

用户和他们的电影评分。每一行对应的数据内容顺序为:用户ID,电影ID,评分。

  1. data/users.csv

从用户ID到用户名的映射。

测试数据已经被内嵌到项目的CBFMain.java中的configureRecommender()方法中。

算法介绍

  1. 计算个体-标签矢量(模型)

在模型构建器(get()方法中的TFIDFModelBuilder)中实现,为数据集中的每部电影计算单位标准化TF-IDF载体。该模型包含每一项从ID到TF-IDF向量的映射,这一映射标准化为单位向量。

  1. 为每个查询用户建立用户档案

TFIDFItemScorer中的makeUserVector(long型)方法由输入的用户ID产生代表该用户的个人档案的向量。在最初的实现方案中,该配置文件是用户评为所有项的个体-标签矢量中大于等于3.5星的数量之和。后来我们使用了加权用户配置文件对原有方案进行改善。加权信息由所有项的项矢量加权和计算出来,其权值基于用户的评分。

  1. 为每个用户计算个体分数

在许多LensKit推荐系统中,推荐过程的核心是个体打分器的计分方法,在本案例中是TFIDFItemScorer。此方法通过余弦相似性为每一项打分,每一项的分数为那一项的标签向量与用户资料向量夹角的余弦值。

项目分工:

  • 周盼:计算个体-标签矢量
  • 郭媛、林仁俊:为每个查询用户建立用户档案
  • 赵树阳:为每个用户计算个体分数