gpt4 book ai didi

math - 建立协作式过滤/推荐系统

转载 作者:行者123 更新时间:2023-12-04 04:52:39 25 4
gpt4 key购买 nike

我正在设计一个网站,该网站基于根据用户的口味向用户推荐各种商品的概念而构建。 (即,他们对商品评分,将商品添加到“我的收藏夹”列表等)。例如,Amazon,Movielens和Netflix。

现在,我的问题是,对于该系统的数学部分,我不确定从哪里开始。我愿意学习所需的数学,只是我不知道所需的数学类型。

我浏览了Grouplens.org上的一些出版物,特别是“Towards a Scalable kNN CF Algorithm: Exploring Effective Applications of Clustering”。 (pdf)在第5页“预测生成”之前,我非常擅长理解所有内容

p.s.尽管这可能会有所帮助,但我并不是正在寻找正在发生的情况的解释,但是我对我需要了解的数学更感兴趣。这样,我可以了解发生了什么。

最佳答案

让我解释一下作者介绍的过程(据我了解):

输入:

  • 培训数据:用户,项目和用户对这些项目的评分(不
    必然每个用户都对所有
    项)
  • 目标用户:对某些项目具有一定等级的新用户
  • 目标项目:我们不希望目标用户对其进行评级的项目
    预测它的等级。

  • 输出:

    目标用户对目标项目的
  • 预测

    可以针对一堆商品重复执行此操作,然后我们返回N项最高的商品(最高预测评分)

    过程:
    该算法与朴素的KNN方法非常相似(搜索所有训练数据以找到具有与目标用户相似的评分的用户,然后组合其评分以进行预测[投票])。
    随着用户/项目数量的增加,这种简单的方法无法很好地扩展。

    提出的算法是首先将训练用户聚类到 K 组(对项目进行类似评分的人群),其中 K << N ( N 是用户总数)。
    然后,我们扫描这些集群以找到目标用户最接近的集群(而不是查看所有训练用户)。
    最后,我们从中选择 l ,然后根据与这些 l 聚类的距离加权得出平均值作为预测值。

    注意,所使用的相似性度量是correlation系数,聚类算法是二等分K-Means算法。我们可以简单地使用标准kmeans,也可以使用其他相似性指标,例如Euclidean distance或余弦距离。

    第5页上的第一个公式是相关性的定义:
    corr(x,y) = (x-mean(x))(y-mean(y)) / std(x)*std(y)

    第二个公式基本上是加权平均值:
    predRating = sum_i(rating_i * corr(target,user_i)) / sum(corr(target,user_i))
    where i loops over the selected top-l clusters

    希望这可以澄清一些事情:)

  • 关于math - 建立协作式过滤/推荐系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1512624/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com