推荐系统中的相似度度量

简介: 推荐系统中的相似度度量

效用矩阵

协同过滤的重要部分是识别出具有相似偏好的观众。尽管Netflix采用多种方式来收集有关用户喜好的信息,但为简单起见,我们假设它已要求观众以1-5的评分来评价电影。我们进一步假设只有7部电影需要考虑(哈利·波特三部曲,《暮光之城》和《星球大战》三部曲),并且只有四名观众被要求对其评分。

1显示了四个精选观众提供的评分。这样的表(每一种产品的评分按列排列,每一位用户的评分按行排列)被称为效用矩阵。空格表示某些用户未对某些电影进行评分。

image.png


1:一个实用矩阵,捕获四个用户对七部电影的评分。每一种电影的评分按列排列。

实际上,Netflix每天都有成千上万的节目供数百万观众使用。相应地,它的实际效用矩阵将具有数百万行,跨越数千列。此外,随着系统不断收集有关用户行为的信息,矩阵会动态更新。

通过查看图1中的效用矩阵,我们可以得出一些显而易见的结论:

·    观众A喜欢《哈利·波特1》和《暮光之城》,但不喜欢《星际大战1

·    观众B喜欢《哈利·波特》三部曲的所有电影,但她不喜欢什么似乎是一个秘密

·    观众C喜欢《星球大战1》和《星球大战2》,但不喜欢《暮光之城》

·    观众D不介意在无聊的日子里观看《哈利·波特2》和《星球大战2》但他们都不是她的最佳选择。

 

总之,观众AB的口味相似,就像他们都喜欢《哈利·波特1》。相反,观众AC的口味不同,因为观众A喜欢暮光之城,但观众C根本不喜欢。同样,A不喜欢《星球大战》,但C喜欢。推荐系统需要用一种方法来比较不同观众的评分,并告诉我们他们的口味有多接近。

量化相似度

有很多不同的指标可以比较两个观众提供的评分,并判断他们是否具有相似的品味。在本文中,我们将学习其中两个:Jaccard距离和余弦距离,具有相似品味的观众距离更近。

Jaccard距离

Jaccard距离是另一个量的函数,这个量被称为Jaccard相似度。根据定义,集合STJaccard相似度是ST的交集大小与它们的并集大小之比。从数学上讲,它可以写成:

image.png


集合AB之间的Jaccard距离d (x, y)由下式给出:

image.png


余弦距离

两个向量AB之间的余弦距离是角度d (AB),由下式给出:

image.png


其中

image.png


分别是向量AB范数,n是要考虑的产品(在这种情况下为电影)的数量。余弦距离在0180度之间变化。

计算效用矩阵的距离度量

为了更好地理解这些距离度量,让我们使用效用矩阵(1)中显示的数据来计算距离。

计算Jaccard距离

计算Jaccard距离的第一步是以集合的形式写出用户评过分的电影。与观众AB对应的集合是:

A = {HP1, TW, SW1}

B = {HP1, HP2, HP3}

集合A和集合B的交集是这两个集合共有的元素集。AB的并集是AB中所有元素的集合。因此,

AB= {HP1}

AB= {HP1,HP2, HP3, TW, SW1}.

AB之间的Jaccard距离为:

image.png


类似地,AC之间的Jaccard距离。根据此度量,与观众AB相比,观众AC之间有更多相似之处。这与通过效用表直观分析所揭示的完全相反。因此,Jaccard 距离不适用于我们正在考虑的数据类型。

计算余弦距离:

现在让我们计算观众AB之间以及观众AC之间的余弦距离。为此,我们首先创建一个代表其评分的向量。为简单起见,我们假定空格等于零评分。这是一个值得商榷的选择,因为评分为零也可能表示观众给出的较差的评分。与观众ABC对应的向量为:

A=[4,0,0,5, 1,0,0]

B=[5,5,4,0,0,0,0]

C=[0,0,0,2,4,5, 0] .

AB之间的余弦距离为:

image.png


类似地,AC之间的余弦距离为:

image.png


这是合理的,因为它表明A稍微靠近B比于与C的距离。

评分转换

通过对矩阵中的每个元素应用定义明确的规则,我们还可以转换效用矩阵中捕获的数据。在本文中,我们将学习两个转换:舍入和标准化。

输入数据

观众通常会对相似的电影给予类似的评分。例如,观众B对所有哈利.波特电影都给予了很高的评分,而观众C对“星球大战1”和“星球大战2”给予了很高的评价,可以通过将规则四舍五入来消除评分的相似性。例如,我们可以设置一个规则,将评分345舍入为1,并将等级12视为空白。应用此规则后,我们的效用矩阵变为:      

image.png


在评分舍入的情况下,观众AC对应的集合的交集为空集合。这会将Jaccard相似度降低到最小值零,并且将Jaccard距离升高到最大值1。而且,与观众AB对应的集合之间的Jaccard距离小于1,这使AB更接近C。请注意,当使用原始用户评分来计算距离时,Jaccard距离度量无法提供这种对用户行为的了解。找到具有舍入值的余弦距离会得出相同的结论。

标准化评级

转换原始观众评分的另一种方法是对其进行标准化。通过标准化,我们的意思是从每个评分中减去该对应观众的平均评分。例如,让我们找到平均评分为10/3的观众A的标准化评分。因此,她的标准化评分为

image.png


下面给出了所有值均经过标准化的效用矩阵。请注意,这会将较高的评分值转换为正值,而将较低的评分转换为负值。


image.png


3:具有标准化值的效用矩阵

由于效用矩阵中的各个值都发生了变化,因此我们预期余弦距离会发生变化。但是,Jaccard 距离保持不变,因为它仅取决于两个用户都评价的电影数量,而不取决于给定的评价。

使用标准化值,对应于观众ABC的向量为:


 

image.png

AB之间以及AC之间的余弦距离为:

image.png


虽然针对标准化评分的余弦距离计算不会改变原始结论(A更接近B,而不是C),但确实会放大向量之间的距离。向量AC似乎在标准化评分之下,距离特别远,尽管两者(BCA的距离)都不是很接近。

总结

推荐系统是互联网经济的核心。它们是使我们迷上社交媒体以及在线购物和娱乐平台的计算机程序。推荐系统的工作是预测特定用户可能会购买或消费的东西。做出预测所依赖的两种广泛方法之一是查看其他人(尤其是那些与所讨论的用户具有相似偏好的人)购买或消费的东西。该方法的关键部分是量化用户之间的相似性。

计算Jaccard和余弦距离是用来量化用户之间相似度的各种方法中的两种。Jaccard距离考虑了用户评分的产品数量,但未考虑评分本身的实际值。相反地,余弦距离会考虑评分的实际值,但不会考虑两个用户都评价的产品数量。由于在计算距离方面存在这种差异,因此,Jaccard 和余弦距离度量有时会导致相互矛盾的预测。在某些情况下,我们可以通过根据明确定义的舍入规则来避免此类冲突。

也可以从用户给出的每个评分中减去该用户给出的平均评分来转换评分,这个过程称为标准化,不会影响Jaccard距离,但是会放大余弦距离。

目录
相关文章
|
8月前
|
机器学习/深度学习 算法 数据可视化
机器学习-特征选择:如何使用相关性分析精确选择最佳特征?
本文致力于利用相关性分析来辅助特征选择过程。相关性分析作为一种用于量化特征之间关系的方法,可以帮助我们理解数据中的潜在模式和相互作用。通过分析特征之间的相关性,我们可以更加准确地选择具有高预测能力和独立性的特征,从而提高特征选择的效果和结果。
902 0
|
6月前
|
机器学习/深度学习 自然语言处理 搜索推荐
常用的相似度度量总结:余弦相似度,点积,L1,L2
相似性度量在机器学习中起着至关重要的作用。这些度量以数学方式量化对象、数据点或向量之间的相似性。理解向量空间中的相似性概念并采用适当的度量是解决广泛的现实世界问题的基础。本文将介绍几种常用的用来计算两个向量在嵌入空间中的接近程度的相似性度量。
212 1
|
数据挖掘 Python
统计学中的相关性分析
统计学中的相关性分析
|
机器学习/深度学习 人工智能 算法
机器学习算法-聚类(一、性能度量和距离计算)
机器学习算法-聚类(一、性能度量和距离计算)
206 0
机器学习算法-聚类(一、性能度量和距离计算)
|
监控 搜索推荐 Python
推荐系统的PMF - 概率矩阵分解和协同过滤(二)
推荐系统的PMF - 概率矩阵分解和协同过滤(二)
122 1
推荐系统的PMF - 概率矩阵分解和协同过滤(二)
|
机器学习/深度学习 搜索推荐 算法
推荐系统的PMF - 概率矩阵分解和协同过滤(三)
推荐系统的PMF - 概率矩阵分解和协同过滤(三)
169 0
推荐系统的PMF - 概率矩阵分解和协同过滤(三)
|
搜索推荐 算法
推荐系统的PMF - 概率矩阵分解和协同过滤(一)
推荐系统的PMF - 概率矩阵分解和协同过滤(一)
249 1
推荐系统的PMF - 概率矩阵分解和协同过滤(一)
|
人工智能 开发者
案例:特征相关性 | 学习笔记
快速学习案例:特征相关性
139 0
案例:特征相关性 | 学习笔记
|
机器学习/深度学习 算法
②机器学习推荐算法之关联规则(Apriori)——支持度;置信度;提升度
机器学习推荐算法之关联规则(Apriori)——支持度;置信度;提升度
863 0
②机器学习推荐算法之关联规则(Apriori)——支持度;置信度;提升度
|
机器学习/深度学习 存储 算法
①机器学习推荐算法之关联规则(Apriori)——支持度;置信度;提升度
机器学习推荐算法之关联规则(Apriori)——支持度;置信度;提升度
959 0
①机器学习推荐算法之关联规则(Apriori)——支持度;置信度;提升度