gpt4 book ai didi

recommendation-engine - 如何处理推荐系统的新数据?

转载 作者:行者123 更新时间:2023-12-04 08:38:17 27 4
gpt4 key购买 nike

这是一个理论问题。假设我已经实现了两种类型的协同过滤:基于用户的 CF 和基于项目的 CF(以 Slope One 的形式)。

我有一个很好的数据集供这些算法运行。但是我想做两件事:

  1. 我想向数据集添加一个新的评级。
  2. 我想编辑现有评级。

我的算法应该如何处理这些变化(不做很多不必要的工作)?谁能帮我解决这个问题?

最佳答案

对于这两种情况,策略非常相似:

基于用户的 CF:

  • 更新受影响用户的所有相似性(即相似性矩阵中的一行和一列)
  • 如果您的邻居是预先计算的,请为受影响的用户计算邻居(对于完整更新,您可能需要重新计算所有邻居,但我会坚持使用近似解决方案)

坡度一:

  • 更新受影响项目的频率(仅在“添加”情况下)和差异矩阵条目(同样,一行和一列)

备注:如果你的'相似度'是不对称的,你需要更新一行一列。如果它是对称的,则更新一行会自动导致更新相应的列。对于斜率一,矩阵是对称的(频率)和偏斜对称的(差异),所以如果你处理你还需要更新一行或一列,并免费获得另一行(如果你的矩阵存储是这样工作的)。

如果您想查看如何实现的示例,请查看 MyMediaLite(免责声明:我是主要作者):https://github.com/zenogantner/MyMediaLite/blob/master/src/MyMediaLite/RatingPrediction/ItemKNN.cs有趣的代码在方法 RetrainItem() 中,它是从 AddRatings() 和 UpdateRatings() 调用的。

关于recommendation-engine - 如何处理推荐系统的新数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12466842/

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