首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
01 | 你真的需要个性化推荐系统吗?
02 | 个性化推荐系统有哪些绕不开的经典问题?
03 | 这些你必须应该具备的思维模式
04 | 画鬼容易画人难:用户画像的“能”和“不能”
05 | 从文本到用户画像有多远
06 | 超越标签的内容推荐系统
07 | 人以群分,你是什么人就看到什么世界
08 | 解密“看了又看”和“买了又买”
09 | 协同过滤中的相似度计算方法有哪些
10 | 那些在Netflix Prize中大放异彩的推荐算法
11 | Facebook是怎么为十亿人互相推荐好友的
12 | 如果关注排序效果,那么这个模型可以帮到你
13 | 经典模型融合办法:线性模型和树模型的组合拳
14 | 一网打尽协同过滤、矩阵分解和线性模型
15 | 深度和宽度兼具的融合模型 Wide and Deep
16 | 简单却有效的Bandit算法
17 | 结合上下文信息的Bandit算法
18 | 如何将Bandit算法与协同过滤结合使用
19 | 深度学习在推荐系统中的应用有哪些?
20 | 用RNN构建个性化音乐播单
21 | 构建一个科学的排行榜体系
22 | 实用的加权采样算法
23 | 推荐候选池的去重策略
24 | 典型的信息流架构是什么样的
25 | Netflix个性化推荐架构
26 | 总览推荐架构和搜索、广告的关系
27 | 巧妇难为无米之炊:数据采集关键要素
28 | 让你的推荐系统反应更快:实时推荐
29 | 让数据驱动落地,你需要一个实验平台
30 | 推荐系统服务化、存储选型及API设计
31 | 推荐系统的测试方法及常用指标介绍
32 | 道高一尺魔高一丈:推荐系统的攻防
33 | 和推荐系统有关的开源工具及框架介绍
34 | 推荐系统在互联网产品商业链条中的地位
35 | 说说信息流的前世今生
36 | 组建推荐团队及工程师的学习路径
当前位置:
首页>>
技术小册>>
推荐系统概念与原理
小册名称:推荐系统概念与原理
### 第九章 协同过滤中的相似度计算方法有哪些 在推荐系统领域,协同过滤(Collaborative Filtering, CF)是一种广泛应用且极其有效的技术,它基于用户或物品之间的相似性来预测用户对未接触物品的偏好。协同过滤的核心在于如何准确度量这种相似性,即相似度计算。本章将深入探讨协同过滤中几种主流的相似度计算方法,包括基于用户的协同过滤(User-Based CF)和基于物品的协同过滤(Item-Based CF)中常用的相似度度量技术,以及它们各自的优缺点和适用场景。 #### 9.1 引言 协同过滤的基本思想是“物以类聚,人以群分”。基于用户的协同过滤假设如果两个用户在过去对一系列物品的评分相似,那么他们未来对同一物品的评分也可能相似;而基于物品的协同过滤则假设如果用户喜欢某个物品,那么他们也可能喜欢与该物品相似的其他物品。这两种方法都依赖于相似度计算的准确性来提升推荐质量。 #### 9.2 相似度计算基础 在深入具体方法之前,先介绍几个基本的相似度计算概念: - **相似度(Similarity)**:衡量两个对象(用户或物品)之间相似程度的指标,通常是一个介于0(完全不相似)到1(完全相同)之间的数值。 - **距离(Distance)**:与相似度相反的概念,表示两个对象之间的差异大小。在某些情况下,可以通过将距离转换为相似度(如使用距离的倒数或指数衰减函数)来使用。 #### 9.3 基于用户的协同过滤中的相似度计算方法 ##### 9.3.1 余弦相似度(Cosine Similarity) 余弦相似度是最常用的相似度计算方法之一,它通过计算两个向量在向量空间中的夹角的余弦值来评估它们之间的相似性。在推荐系统中,用户评分可以视为多维空间中的向量,每个维度代表一个物品,向量的值是该用户对物品的评分。余弦相似度不受用户评分尺度的影响(如某用户习惯打高分,另一用户习惯打低分),只关注评分方向的一致性。 公式:\[ \text{sim}(u, v) = \frac{\sum_{i \in I_{uv}} r_{ui} \cdot r_{vi}}{\sqrt{\sum_{i \in I_{u}} r_{ui}^2} \cdot \sqrt{\sum_{i \in I_{v}} r_{vi}^2}} \] 其中,\(u\) 和 \(v\) 是两个用户,\(I_{uv}\) 是他们共同评分过的物品集合,\(r_{ui}\) 是用户 \(u\) 对物品 \(i\) 的评分,\(I_u\) 和 \(I_v\) 分别是用户 \(u\) 和 \(v\) 评分过的所有物品集合。 ##### 9.3.2 皮尔逊相关系数(Pearson Correlation Coefficient) 皮尔逊相关系数是衡量两个变量线性相关程度的指标,取值范围也是-1到1。在推荐系统中,它用于评估两个用户评分行为之间的线性关系。与余弦相似度不同,皮尔逊相关系数在计算时会先对用户评分进行中心化处理(即减去各自评分的平均值),从而进一步减少评分尺度差异的影响。 公式:\[ \text{sim}(u, v) = \frac{\sum_{i \in I_{uv}} (r_{ui} - \bar{r}_u) \cdot (r_{vi} - \bar{r}_v)}{\sqrt{\sum_{i \in I_{u}} (r_{ui} - \bar{r}_u)^2} \cdot \sqrt{\sum_{i \in I_{v}} (r_{vi} - \bar{r}_v)^2}} \] 其中,\(\bar{r}_u\) 和 \(\bar{r}_v\) 分别是用户 \(u\) 和 \(v\) 评分的平均值。 ##### 9.3.3 杰卡德相似度(Jaccard Similarity) 杰卡德相似度主要用于处理二值数据(如用户是否购买过某物品),它通过计算两个集合交集的大小与并集大小的比值来衡量相似性。在推荐系统中,可以将用户的购买记录或评分记录(将评分转化为二值数据,如是否评分超过某个阈值)视为集合,然后计算集合之间的杰卡德相似度。 公式:\[ \text{sim}(u, v) = \frac{|I_u \cap I_v|}{|I_u \cup I_v|} \] 其中,\(I_u\) 和 \(I_v\) 分别是用户 \(u\) 和 \(v\) 对应的集合。 #### 9.4 基于物品的协同过滤中的相似度计算方法 ##### 9.4.1 余弦相似度与皮尔逊相关系数(同9.3节) 在基于物品的协同过滤中,余弦相似度和皮尔逊相关系数同样适用,只是此时计算的是物品之间的相似度,而非用户之间的相似度。计算方法与基于用户的协同过滤相同,只是将用户替换为物品,评分矩阵的行代表物品,列代表用户。 ##### 9.4.2 调整的余弦相似度(Adjusted Cosine Similarity) 调整的余弦相似度是对余弦相似度的一种改进,它考虑了不同用户评分尺度的差异。在计算物品间的相似度时,不是直接比较用户对不同物品的评分,而是先对每个用户的评分进行中心化处理(即减去该用户对所有已评分物品的平均分),然后再计算余弦相似度。 公式:\[ \text{sim}(i, j) = \frac{\sum_{u \in U_{ij}} (r_{ui} - \bar{r}_u) \cdot (r_{uj} - \bar{r}_u)}{\sqrt{\sum_{u \in U_i} (r_{ui} - \bar{r}_u)^2} \cdot \sqrt{\sum_{u \in U_j} (r_{uj} - \bar{r}_u)^2}} \] 其中,\(i\) 和 \(j\) 是两个物品,\(U_{ij}\) 是同时对这两个物品评分的用户集合,\(r_{ui}\) 是用户 \(u\) 对物品 \(i\) 的评分,\(\bar{r}_u\) 是用户 \(u\) 对所有已评分物品的平均分,\(U_i\) 和 \(U_j\) 分别是对物品 \(i\) 和 \(j\) 评分的用户集合。 #### 9.5 相似度计算的优化与挑战 - **稀疏性问题**:在大型推荐系统中,用户-物品评分矩阵往往是高度稀疏的,这会导致相似度计算的不准确。解决策略包括使用矩阵分解、填充缺失值、或引入额外的用户/物品特征。 - **计算复杂度**:随着用户和物品数量的增加,相似度计算的计算量会急剧上升。可以通过优化算法(如使用近似方法、并行计算等)来降低计算复杂度。 - **冷启动问题**:新用户或新物品由于缺乏历史数据,难以计算其相似度。解决方法包括引入内容信息、社交网络数据或利用群体智慧进行初始化。 #### 9.6 结论 协同过滤中的相似度计算是推荐系统构建的关键环节,它直接决定了推荐结果的质量。不同的相似度计算方法各有优缺点,适用于不同的应用场景。在实际应用中,需要根据数据特性、系统规模和性能要求等因素综合选择最合适的相似度计算方法,并不断优化以提升推荐效果。此外,随着大数据和人工智能技术的发展,新的相似度计算方法和优化策略不断涌现,为推荐系统的研究与应用提供了更广阔的空间。
上一篇:
08 | 解密“看了又看”和“买了又买”
下一篇:
10 | 那些在Netflix Prize中大放异彩的推荐算法
该分类下的相关小册推荐:
ChatGPT与提示工程(下)
ChatGPT原理与实战:大型语言模型(下)
人工智能超入门丛书--知识工程
NLP自然语言处理
AI 时代的软件工程
我的AI数据分析实战课
大规模语言模型:从理论到实践(上)
深度强化学习--算法原理与金融实践(一)
ChatGPT与提示工程(上)
与AI对话:ChatGPT提示工程揭秘
巧用ChatGPT轻松学演讲(下)
深度强化学习--算法原理与金融实践(五)