推荐系统背后的数学概述
你有没有想过视频网站是如何向你推荐电影的?你有没有想过,有时候很多推荐的电影都是你最近喜欢看的?
所有这些都是推荐系统的神奇之处,它利用机器学习为您提供了非常准确的推荐。推荐系统背后的想法是,它基本上会浏览你过去看过的所有电影,并给它们打分,了解你喜欢什么,并推荐你接下来想看哪部电影。
让我为你们详细介绍一下这两种著名的推荐系统;协同过滤和基于内容的过滤。
让我们先来看看协同过滤方法:
协同过滤系统:
协作过滤系统根据其他类似用户过去喜欢的内容预测您喜欢的内容。
在这种方法中,算法遵循如下步骤
1、考虑用户X
2、查找评分与X的评分“最相似”的其他用户的集合N(用户X的邻域)
3、根据N中用户的评分来估计X的评分
让我们将一组四个用户(U1,U2,U3,U4)视为表格的行和一组电影(M1,M2 ... M7)作为表格的列。想象一下从0到5的评分等级。我们有一些用户为单元格中相应电影给出的评分,而有些单元格为空或缺少值。
如果我们仔细查看上表,我们会注意到U1和U2只共同评价了一部电影(M1),但评分相当高。这意味着用户U1和UI具有相似的品味或兴趣。尽管用户U1和U3共同评价了两部电影,但相当低。因此,我们可以直观地得出结论,用户U1和U3是不相似的,U1和U2是相似的。
SIM (U1, U2) > SIM (U1, U3)
为了计算两个点U1和U2之间的相似度矩阵,我们使用余弦相似度:
SIM (U1, U2) = cosine (RU1, RU2)
其中RU1,RU2分别是U1和U2的评分向量。
但是为了实现余弦相似,我们需要计算并填充空值。所以,我们不需要余弦相似度,我们需要通过减去行均值来归一化评分,并使用所谓的“中心余弦相似度”。
下面是我们将评分归一化后得到的表格:
如果您观察到,您会注意到为特定用户添加的所有评分均为零。这是因为评分现在以零为中心。高于零的评级显示正或高评分,低于零的评分表示评分为负或低。现在,计算用户U1,U2和U1,U3之间的“中心余弦相似度”,我们得到:
SIM (U1, U2) = cosine (RU1, RU2) = 0.09, and
SIM (U1, U3) = cosine (RU1, RU3) = -0.56
SIM (U1, U2) > SIM (U1, U3)
结果表明U1和U2高度相似,而U1和U3彼此非常相似。
既然我们已经对相似和不同的用户进行了估算和分组,那么下一步就是为用户进行评分预测。
评分预测:
假设用户x具有评分向量Rx,并且我们需要为该用户对项目i进行评分预测。使用中心余弦相似度,我们找到与用户x最相似的一组k个用户(具有评级项目i)的neighborhood N. 为此,我们采用加权平均值。在该方法中,对于邻域N中的每个用户y ,我们对项目i的y评分进行加权并将其乘以x和y的相似度。最后,我们通过将乘积除以两者之间的相似度之和来对其进行归一化x和y。结果给出了用户x和项y的估计。
其中Sxy = SIM(x,y)
我们上面使用的技术有时也被称为 User-User Collaborative Filtering,因为我们试图找到具有类似兴趣的其他用户,以便为其他类似用户做出预测。协同过滤的双重方法是Item-Item协同过滤,其中不是从用户开始,而是从项目i开始并找到与i类似的一组其他项目。然后我们根据类似项目的评分估算项目i的评分。我们可以使用与User-User模型相同的类似度量和预测方法。
让我们考虑一组用户U1,U2 ... U12作为表的列和一组电影M1,M2 ... M6作为表的行。
黄色单元格具有已知的评分(在1至5的范围内),而白色未评分。我们的目标是通过用户5(U5)找到电影1(M1)的评分。第一步是找到与M1类似的其他电影。为了计算相似度,我们使用Pearson Correlation技术,它类似于我们之前使用的Centered Cosine技术。因此,我们获取所有电影并计算它们各自的中心余弦距离并将它们列入M1中。
如果我们考虑与M1具有正中心余弦相似性的电影,我们在邻域N中有两个邻居,即N = 2。使用与用户 - 用户协作过滤相同的方法, 我们计算M1和M3之间以及M1和M6之间的相似性。我们得到:
SIM(M1,M3)= 0.14,SIM(M1,M6)= 0.59
采用加权平均值(使用前面提到的公式),我们发现电影M1的用户U1的预测评级是2.6。
现在我们已经学习了Collaborative Filtering,让我们深入了解基于内容的推荐系统。
基于内容的推荐系统:
基于内容的推荐系统根据您过去喜欢的内容预测您喜欢的内容。
上图显示了基于内容的推荐系统的基本行动计划。我们在以下几点解释了它:
- 通过显式和隐式方法查找用户喜欢的一组items。例如,用户购买的物品
- 使用这些items集,构建Item Profile - 这实际上是用户购买的items的描述。在图中,为了简洁起见,使用了几何形状。因此,我们可以得出结论,用户喜欢红色的item,并且是圆形和三角形的形状
- 接下来,从Item Profile中,我们将推断用户喜好,其中包含有关用户关于他/她喜欢和购买的信息
现在我们有了用户和Item Profile,接下来的任务就是向用户推荐某些item。
- 给定用户,我们计算该用户与目录中可用的所有items之间的相似性。使用余弦相似性技术计算相似性。
- 然后我们选择具有最高余弦相似度的items,并向用户推荐这些items。