Advertisement

Item-to-Item Collaborative Filtering

阅读量:

Amazon.com Recommendations Item-to-Item Collaborative Filtering

个人感受:

这篇论文系统性地综述了历史上的三大推荐算法:基于用户的协同过滤方法、基于内容的聚类推荐算法以及基于搜索引擎的协同过滤方法。其中针对小规模数据集而言,该方法的收敛速度较慢;而第二种推荐思路存在明显不足,在推荐效果方面也未能达到理想状态;第三种推荐思路相对更为简便,在实现层面主要依赖于离线计算物品间的相似度记录以完成推荐任务。

推测作者思路时发现:由于计算资源受限,在实际应用中即使存在核心价值信息(即顾客购买的商品),我们依然只能基于此(即就是说):在推荐系统中仅能针对购买的东西来推断并提取出相应的关系数据。而这些数据最终的目标就是向顾客推荐相关商品(即就是说):即使将大量计算能力放在线下(为了降低计算负担),但我们的应用场景需求也只能围绕着这个特定的关注点(即就是说):针对应用场景需求提出了一种新的算法模型

此外来说的话

推荐系统会根据用户的购买历史向用户推送相关商品。当然,在此之外,我们还可以参考用户的兴趣爱好、地理位置以及其他相关特征数据。

在亚马逊平台上, 我们的算法会向每位用户提供定制化的商品集合, 这些商品基于每位用户的独特历史消费数据, 以便对未来可能感兴趣的物品进行预测分析. 通过统计数据分析, 该系统的核心指标——点击率和转化率, 均显著优于传统的横幅推广广告或热销产品展示列表.

因此,我们的推荐系统是很有必要的,当然需要满足这么几个条件:

具备处理海量数据的能力;能在短时间内输出高质量的分析结果;新用户即使缺乏历史行为记录也能生成有价值的信息;资深用户提供丰富的数据支持仍需保持推荐效果的稳定性;系统应当能够迅速反映数据变化。

常用的推荐方式有:传统的协同过滤、聚类模型和基于搜索的方法。

我们的算法:item-to-item协同过滤算法很厉害,几个条件都能达到。

推荐算法:

推荐算法的目标通常是选择一个用户群体,使其购买的商品集合能够覆盖预测用户的商品集合。然后向该群体中尚未购买的相关商品进行推荐。而我们采用的方法与基于搜索策略的方法均是从寻找最接近的商品这一角度入手,并重点介绍与当前查询商品最为接近的商品信息。

传统协同过滤:

每个用户都可以通过一个向量来进行表示。这些向量在结构上具有较高的稀疏性,并且为了平衡那些非畅销产品的评价效果,在计算过程中会将每一维数值将被乘以对应商品类别中消费者的数量的倒数(这种方法确实已经在实践中证明是有效的策略之一,在这种情况下能够有效地降低热销商品在评价中的权重,并从一定程度上推广那些销售不旺的产品。假设两种平均分相同的情况下,在经过算法处理后它们的价值系数较为接近,在这种情况下由于算法会对高销量产品施加抑制作用,在乘以相应系数之后原本可能被忽视的优势产品反而更容易获得推荐机会;然而对于那些已经被市场认可的经典畅销品而言,在相似度计算方面则不会产生明显差异(类似于所有中国大学生都必须学习马克思主义原理这一现象,在这种情况下如果两个人都阅读过同一部经典著作《平凡的世界》,那么他们之间的相似度得分可能会更高一些)。

对于两个用户相似性的计算也是使用余弦相似性。

当然,在协同过滤系统中实现高效的相似性计算是一个耗时高且资源密集的任务。具体而言,在计算所有用户的相似性时其时间复杂度为O(M*N)其中M表示用户数量而N表示商品数量。这是因为我们需要对每个用户逐一计算其与所有其他用户的相似性关系共计涉及M*(M-1)/2次比较运算同时还需要为每个用户评估其与所有商品的相关性共需执行M*N次操作。然而由于该矩阵的稀疏性较高整体复杂度约为O(M+N)这是因为大多数条目为空(即M远大于实际存在的商品数量)。此外检索阶段的时间复杂度约为O(M)主要是由于大多数条目为空但其中确实存在N个非零元素因而总的时间复杂度仍维持在O(N)水平。综上所述在处理大规模数据时(即当M和N都非常大时)该算法的时间复杂度仍为线性增长(O(M+N))但可能无法满足实时处理的需求

另外一种优化思路是缩减数据量,并采取以下措施:首先去除那些数据量过小的用户群体;其次还可以剔除热门商品或冷门商品;最后也可以对商品进行分类处理以降低复杂度。此外,在降维方面除了传统的聚类分析之外还有主成分分析等有效手段可以应用

然而, 这两种方法都会削弱推荐效果的质量, 其中主要原因之一是, 减少后的商品集合可能会限制用户的推荐范围. 再者, 如果忽视了冷门或者热门的商品, 那么这类产品也会永远无法被展示出来, 这会导致只有特定类型的消费者能够获得他们喜欢的商品, 进而限制了整个系统的多样性与丰富度

聚类模型

聚类模型的思想是把用户进行聚类然后将推荐问题归为一个分类问题。

无监督学习方法在处理大规模数据聚类任务时会面临诸多挑战;鉴于此,目前广泛采用贪心算法来进行大规模数据的聚类分析。

通过聚类分析后确定用户所属的类别,并对用户的分类偏好进行量化评估。

就其性能而言, 聚类方法确实更为出色, 但在准确度方面则略逊一筹。原因在于, 聚类算法通常会将大量用户划分为同一类别, 这可能导致单个用户的分类结果与其最相似的对象分布在其他类别中, 这样的划分使得该类别与其他类别相比可能较为相近。因此, 继续细分策略可能会使新方法的效果与传统协同过滤不相上下。

基于搜索的算法

基于搜索技术的算法将推荐问题视为与搜索相关的商品问题,并根据用户的购买记录和评分信息来寻找流行且具有关联性的商品。然而这类方法存在一定的局限性:当用户的购物清单较为简单时(即购买记录较少),其表现尚可满足需求;但当用户的购物清单较为庞大时(即拥有较多商品),该方法便需要依赖数据子集来进行运算处理,在此过程中可能会导致质量有所降低:具体表现为要么过于细致地针对某个商品类别进行推荐(如仅涉及某一特定系列),要么则过于宽泛地覆盖所有可能的商品类别。

而关键是要寻找新的,用户可能感兴趣的物品。

Item-to-Item Collaborative Filtering

亚马逊会在首页向用户提供商品推荐,并根据用户的购买行为展示关联产品信息。然而,在经过亚马逊内部的大规模测试后发现这类算法的效果并不显著。于是便开发出了基于物品间的协同过滤算法Item-to-Item Collaborative Filtering。无论是在数据量规模还是实际应用效果方面都表现卓越

如何工作

不依赖于用户间的相似度计算;该算法通过用户的互动行为记录来确定商品间的相似性;进而基于这些商品间的相似性生成推荐列表。

为了确定针对特定物品最相似的物品, 算法生成了一个包含类似商品的列表. 只需根据任意两个商品对进行运算即可得到结果. 当某些产品没有共同用户时, 则此时该算法无效.

接下来这一段详细描述了一个计算相似性的方法:对于任意一个物品i,在其购买记录中检索所有其他已购买的商品j,并统计这些商品的数量进行累加。大多数情况下,在推荐系统中会使用多种方法来评估两个物品之间的相似度。然而,在这些方法中,默认情况下最常用的是余弦相似性

所有这些计算均为离线进行运行,在理论层面上的最坏时间复杂度为O(N^2M);然而,在实际运行中该算法的时间复杂度通常接近于O(MN)。这一差异主要源于大多数用户的记录量相对较少。

基于一个物品间的相似度矩阵,在推荐系统中, 算法能够轻松地识别出与目标商品相似的商品及其对应的评分值.此时唯一作为判断依据的因素即为消费者已购的商品.

算法的对比:

亚马逊拥有大量数据资源, 这既是挑战也是机遇. 许多算法都建立在小规模的数据基础之上, 而针对海量数据, 大量计算必须在线下环境进行处理. 作为一种对比分析, 我们将深入探讨这一问题.

传统协同过滤算法在线下几乎未开展相关工作,在线计算资源的规模同样受到限制。若要实现降维目标,则需权衡其对系统准确性的潜在负面影响。

聚类模型算法在线下进行了大量工作,但其效果糟糕透顶。为了进一步提高效率,这必然会导致线上计算负担加重。

基于搜索的算法很粗放。

Item-to-Item Collaborative Filtering的核心在于对大量数据进行相似度计算以完成任务。该算法的在线阶段是查找相似的物品,并基于用户的购买记录总量来决定推荐结果。由于该算法能够高效处理大数据集,在实际应用中表现出色。此外,由于该算法能够推荐高度相关的物品,因此推荐质量也非常出色。与传统的协同过滤方法不同的是,在没有足够购买历史的情况下也能提供精准推荐。

总结:

推荐算法依据用户的购买力定位出一个具有吸引力的目标市场;一个高效的推荐系统能够在大规模的数据处理中展现出卓越的效果;仅仅需要较少的时间即可完成推荐结果的计算;它还能够有效地与用户的数据进行交互以实现数据更新;相比之下其他的一些基于项间的协同过滤算法成功地解决了关键的技术难题

未来我们期待零售业能够更为广泛的运用推荐系统来拓展市场空间在线与线下。当电子商务实现了个性化推荐服务时我们依然希望线上线下协同发展

全部评论 (0)

还没有任何评论哟~