电影推荐系统
成员
- 郭媛
- 周盼
- 林仁俊
- 赵树阳
目标
- 计算每位用户对一类电影的评分情况。
- 根据用户的感兴趣程度向用户推荐最可能受其欢迎的电影。
测试驱动
- data/movie-tags.csv
每部电影的相关属性。它是步骤1中模型建立的基础。
- data/movie-titles.csv
从电影ID到电影标题的映射。
- data/ratings.csv
用户和他们的电影评分。每一行对应的数据内容顺序为:用户ID,电影ID,评分。
- data/users.csv
从用户ID到用户名的映射。
测试数据已经被内嵌到项目的CBFMain.java中的configureRecommender()方法中。
算法介绍
- 计算个体-标签矢量(模型)
在模型构建器(get()方法中的TFIDFModelBuilder)中实现,为数据集中的每部电影计算单位标准化TF-IDF载体。该模型包含每一项从ID到TF-IDF向量的映射,这一映射标准化为单位向量。
- 为每个查询用户建立用户档案
TFIDFItemScorer中的makeUserVector(long型)方法由输入的用户ID产生代表该用户的个人档案的向量。在最初的实现方案中,该配置文件是用户评为所有项的个体-标签矢量中大于等于3.5星的数量之和。后来我们使用了加权用户配置文件对原有方案进行改善。加权信息由所有项的项矢量加权和计算出来,其权值基于用户的评分。
- 为每个用户计算个体分数
在许多LensKit推荐系统中,推荐过程的核心是个体打分器的计分方法,在本案例中是TFIDFItemScorer。此方法通过余弦相似性为每一项打分,每一项的分数为那一项的标签向量与用户资料向量夹角的余弦值。
项目分工:
- 周盼:计算个体-标签矢量
- 郭媛、林仁俊:为每个查询用户建立用户档案
- 赵树阳:为每个用户计算个体分数