Java 关于推荐引擎

Java 关于推荐引擎,java,algorithm,recommendation-engine,collaborative-filtering,Java,Algorithm,Recommendation Engine,Collaborative Filtering,什么是快速的“如果用户a和用户B喜欢产品C,他们可能会有兴趣跟随对方”算法。我认为在运行时计算它们的相似性不够聪明,因为这会减慢响应速度。另一方面,计算隔夜指数需要进行(N*N-1)次不同的运行,其中N是用户数。。。也不是很聪明。此外,每当用户喜欢新产品,或新用户注册时,都必须重新计算索引 在这里可以应用的最聪明的东西是什么?某种超快散列,然后只添加新项 在我在大学的一门课程中学习的算法中,有一种算法处理类似的事情。他们推荐的方法是为每对用户计算一个“相似性”指数(我猜这是你提到的N*N方法),

什么是快速的“如果用户a和用户B喜欢产品C,他们可能会有兴趣跟随对方”算法。我认为在运行时计算它们的相似性不够聪明,因为这会减慢响应速度。另一方面,计算隔夜指数需要进行(N*N-1)次不同的运行,其中N是用户数。。。也不是很聪明。此外,每当用户喜欢新产品,或新用户注册时,都必须重新计算索引


在这里可以应用的最聪明的东西是什么?某种超快散列,然后只添加新项

在我在大学的一门课程中学习的算法中,有一种算法处理类似的事情。他们推荐的方法是为每对用户计算一个“相似性”指数(我猜这是你提到的N*N方法),然后根据这个指数确定某个特定用户最接近的用户


当然,您不需要为每次更改立即重新计算相似性索引,只是偶尔一次,有点像搜索引擎爬虫的工作原理。事实上,一旦您计算了初始索引,您就可以使用各种启发式方法为快速更改偏好的用户更频繁地重新计算,而对于很少更改偏好的用户,重新计算的速度要慢得多。

您考虑过RDF数据库吗? 像欧利姆