【深度学习】推荐系统算法
+ + +推荐系统
+-
+
- 搭建音视频系统 +
- 数据收集对用户进行建模,对视频建模 +
- 内嵌推荐系统算法 +
协同过滤算法
+经典算法
+基本思想:根据用户之前的喜好以及其他兴趣相近的用户的选择来给用户推荐物品
+分类:
+-
+
- 基于用户的协同过滤算法(UserCF): +给用户推荐和他兴趣相似的其他用户喜欢的产品 +
- 基于物品的协同过滤算法(ItemCF): +给用户推荐和他之前喜欢的物品相似的物品、 +
基于用户的协同过滤算法
+计算向量之间的相似性
+-
+
杰卡德相似性系数
+衡量两个集合的相似度一种指标。 +两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数
+余弦相似度
+用户向量i和j之间的向量夹角的大小, 夹角越小, 说明相似度越大, +两个用户越相似
+1
2
3
4from sklearn.metrics.pairwise import cosine_similarity
i = [1, 0, 0, 0]
j = [1, 0.5, 0.5, 0]
consine_similarity([a, b])
+皮尔逊相关系数
+相比余弦相似度, +皮尔逊相关系数通过使用用户平均分对个独立评分进行修正, +减少了用户评分偏置的影响(每个向量先进行处理,减去了向量之间的均值)
+1
2
3
4from scipy.stats import pearsonr
i = [1, 0, 0, 0]
j = [1, 0.5, 0.5, 0]
pearsonr(i, j)
+
最终结果预测
+-
+
- 利用用户相似度和相似用户的评价加权平均获得用户的评价预测 +
\[ +\mathrm{R}_{\mathrm{u}, \mathrm{p}}=\frac{\sum_{\mathrm{s} \in +\mathrm{S}}\left(\mathrm{w}_{\mathrm{u}, \mathrm{s}} \cdot +\mathrm{R}_{\mathrm{s}, \mathrm{p}}\right)}{\sum_{\mathrm{s} \in +\mathrm{S}} \mathrm{w}_{\mathrm{u}, \mathrm{s}}} +\]
+ 权重 \(w_{u,s}\)是用户\(u\)和用户\(s\)的相似度,\(R_{s,p}\) 是用户\(s\)对物品\(p\)的评分
+-
+
- 推荐物品评分与此用户的所有评分的差值进行加权平均, +这时候考虑用户内心的评分标准不一 \[ +\mathrm{P}_{\mathrm{i}, +\mathrm{j}}=\overline{\mathrm{R}}_{\mathrm{i}}+\frac{\sum_{\mathrm{k}=1}^{\mathrm{n}}\left(\mathrm{S}_{\mathrm{i}, +\mathrm{k}}\left(\mathrm{R}_{\mathrm{k}, +\mathrm{j}}-\overline{\mathrm{R}}_{\mathrm{k}}\right)\right)}{\sum_{\mathrm{k}=1}^{\mathrm{n}} +\mathrm{S}_{\mathrm{j}, \mathrm{k}}} +\] 权重 \(S_{j,k}\)是用户\(i\)和用户\(k\)的相似度,获得用户u +uu对不同物品的评价预测后, 最终的推荐列表根据预测评分进行排序得到。 +
方法的缺点
+-
+
数据稀疏性:
+大型的电子商务推荐系统一般有非常多的物品,用户可能买的其中不到1%的物品,不同用户之间买的物品重叠性较低,导致算法无法找到一个用户的邻居,即偏好相似的用户
+算法的扩展性
+基于用户的协同过滤需要维护用户相似度矩阵以便快速的找出Topn相似用户, +该矩阵的存储开销非常大,存储空间随着用户数量的增加而增加,不适合用户数据量大的情况使用。
+
+