构建产品推荐系统、协同过滤和图数据库
Building a product recommendation system, collaborative filtering and graph database
当我阅读有关使用协同过滤构建推荐系统的文章时,他们通常不会谈论像 neo4j 这样的图形数据库。图数据库是否足以实现最好的推荐系统?
他们似乎比这里提到的方法更容易实施实时推荐:https://eugeneyan.com/writing/real-time-recommendations/
我应该注意的任何弱点,或者像 neo4j 之类的东西是否非常适合这项任务并且不需要其他任何东西?
Neo4j 非常适合这个问题。您必须意识到,当您扩展到数百万用户并将其存储到 Neo4j 时,使用批处理来计算用户或项目之间的相似性是有意义的。然后您可以提供非常快的响应时间。如果你想在每一步都计算数百万用户之间的相似度,那可能不是最有效的过程。因此,这是在预先计算的相似度和进行即时相似度计算之间的权衡。例如,您可以每天预先计算商品之间的相似度,并将购买 x 天的 window 作为您的“训练”数据。然后你可以很容易地提供“用户也买了这个”的建议。还有一些选项可以使用更高级的技术(例如 GNN)来提供建议。例如看这个项目:https://github.com/AliciaFrame/GDS_Retail_Demo
所以总而言之,Neo4j 完全适合推荐,已经有关于推荐和图表的书籍(Neo4j)。
当我阅读有关使用协同过滤构建推荐系统的文章时,他们通常不会谈论像 neo4j 这样的图形数据库。图数据库是否足以实现最好的推荐系统?
他们似乎比这里提到的方法更容易实施实时推荐:https://eugeneyan.com/writing/real-time-recommendations/
我应该注意的任何弱点,或者像 neo4j 之类的东西是否非常适合这项任务并且不需要其他任何东西?
Neo4j 非常适合这个问题。您必须意识到,当您扩展到数百万用户并将其存储到 Neo4j 时,使用批处理来计算用户或项目之间的相似性是有意义的。然后您可以提供非常快的响应时间。如果你想在每一步都计算数百万用户之间的相似度,那可能不是最有效的过程。因此,这是在预先计算的相似度和进行即时相似度计算之间的权衡。例如,您可以每天预先计算商品之间的相似度,并将购买 x 天的 window 作为您的“训练”数据。然后你可以很容易地提供“用户也买了这个”的建议。还有一些选项可以使用更高级的技术(例如 GNN)来提供建议。例如看这个项目:https://github.com/AliciaFrame/GDS_Retail_Demo
所以总而言之,Neo4j 完全适合推荐,已经有关于推荐和图表的书籍(Neo4j)。