协同过滤与深度学习:原理、实现与应用
1. 协同过滤(CF)
1.1 协同过滤概述
协同过滤(CF)聚焦于用户的相似属性,通过相似性度量从大量用户中找出品味相似的人。实际应用中,CF 有基于内存和基于模型两种实现类型。
1.2 基于内存的协同过滤
基于内存的协同过滤主要依赖相似性算法,该算法通过查看相似用户喜欢的物品来创建推荐列表,然后对列表排序,向用户推荐前 n 个物品。用户相似度推荐算法可表示为:
[
pr_{m,x,k} = \frac{\sum_{y \in N(u)} sim(u_x, u_y) \cdot r_{y,k}}{\sum_{y \in N(u)} sim(u_x, u_y)}
]
1.3 示例代码
以下是一个推荐系统的示例代码,使用电影评分数据集进行用户和物品的推荐:
import numpy as np
import pandas as pd
df = pd.read_csv('Data/movie_rating.csv')
n_users = df.userID.unique().shape[0]
n_items = df.itemID.unique().shape[0]
print ('\nNumber of users = ' + str(n_users) + ' | Number of movies = ' + str(n_items))
# Create user-item similarity matrices
df_matrix = np.zeros((n_