Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 如何编写推荐项目系统?_Algorithm_Recommendation Engine - Fatal编程技术网

Algorithm 如何编写推荐项目系统?

Algorithm 如何编写推荐项目系统?,algorithm,recommendation-engine,Algorithm,Recommendation Engine,可能重复: 我总是对网站如何向我推荐文章和用户感兴趣,基于我“喜欢什么”、我遵循什么、我投赞成票/反对票 当我浏览一个项目时,它也可以推荐项目,“相关文章”,“喜欢这篇文章的人也喜欢…” 我需要一些文章和图片来教我如何实现这样一个系统。非常感谢 更新: 我得到了一个关键词“slopeone”维基百科的文章,是一个很好的开始。此外,这篇博文还提供了一些很好的信息和插图 最简单的方法是使用“喜欢本文的人也喜欢…”方法。如果您跟踪每个用户的文章评级,并跟踪谁喜欢哪些文章,那么您就有了推荐系统的基础

可能重复:

我总是对网站如何向我推荐文章和用户感兴趣,基于我“喜欢什么”、我遵循什么、我投赞成票/反对票

当我浏览一个项目时,它也可以推荐项目,“相关文章”,“喜欢这篇文章的人也喜欢…”

我需要一些文章和图片来教我如何实现这样一个系统。非常感谢

更新:

我得到了一个关键词“slopeone”

维基百科的文章,是一个很好的开始。此外,这篇博文还提供了一些很好的信息和插图

最简单的方法是使用“喜欢本文的人也喜欢…”方法。如果您跟踪每个用户的文章评级,并跟踪谁喜欢哪些文章,那么您就有了推荐系统的基础

例如,假设您正在查看文章A。系统可以在其索引中查找每个喜欢文章A的用户。从该列表中,它可以创建一个列表,列出每个喜欢文章A的用户喜欢的所有文章。很可能会有明显的重叠(即,一些文章被多人喜欢)。您的算法跟踪每篇文章得到多少喜欢,然后显示得票最多的前N名

这种简单的系统在许多情况下都出人意料地有效,但并不完美。你会发现特别受欢迎的文章占主导地位,即使它们与你正在观看的文章无关。有一些方法可以防止非常流行的文章占据主导地位。一种方法是使用浮点数作为文章的分数。不是给每个“喜欢”的分数加1,而是增加
1/sqrt(喜欢的用户数)
。因此,一个喜欢(比如)100篇文章的用户只会对任何一篇文章给予
1/10
分,而一个只喜欢四篇文章的用户会对每一篇文章给予
1/2
分。虽然这听起来并不“公平”,但它确实会削弱那些非常受欢迎但又不相关的物品的效果

正如我所说,这是最简单的方法。如果您正在寻找“相关”文章,而不是基于用户输入,那么您必须为每篇文章分配关键字,或者您需要某种方法来检查文章并提取相关关键字

有很多方法可以做你想做的事情。你选择哪一个取决于你的数据的性质,你是否在做协同过滤,你想花多少时间来开发它,以及你希望结果有多好。

维基百科的文章,是一个很好的开始。此外,这篇博文还提供了一些很好的信息和插图

最简单的方法是使用“喜欢本文的人也喜欢…”方法。如果您跟踪每个用户的文章评级,并跟踪谁喜欢哪些文章,那么您就有了推荐系统的基础

例如,假设您正在查看文章A。系统可以在其索引中查找每个喜欢文章A的用户。从该列表中,它可以创建一个列表,列出每个喜欢文章A的用户喜欢的所有文章。很可能会有明显的重叠(即,一些文章被多人喜欢)。您的算法跟踪每篇文章得到多少喜欢,然后显示得票最多的前N名

这种简单的系统在许多情况下都出人意料地有效,但并不完美。你会发现特别受欢迎的文章占主导地位,即使它们与你正在观看的文章无关。有一些方法可以防止非常流行的文章占据主导地位。一种方法是使用浮点数作为文章的分数。不是给每个“喜欢”的分数加1,而是增加
1/sqrt(喜欢的用户数)
。因此,一个喜欢(比如)100篇文章的用户只会对任何一篇文章给予
1/10
分,而一个只喜欢四篇文章的用户会对每一篇文章给予
1/2
分。虽然这听起来并不“公平”,但它确实会削弱那些非常受欢迎但又不相关的物品的效果

正如我所说,这是最简单的方法。如果您正在寻找“相关”文章,而不是基于用户输入,那么您必须为每篇文章分配关键字,或者您需要某种方法来检查文章并提取相关关键字


有很多方法可以做你想做的事情。你选择哪一个取决于你的数据的性质,你是否在做协同过滤,你想花多少时间来开发它,以及你希望结果有多好。

Netflix为电影推荐系统(algorhitm)花了100万美元


您可以阅读有关算法的内容

Netflix花了100万美元购买电影推荐系统(algorhitm)

您可以阅读有关算法的内容

我认为“奇异值分解”可能是一个相关的关键字。我认为“奇异值分解”可能是一个相关的关键字。