gpt4 book ai didi

sql - neo4j 中用于大型数据集的基于内容的 reco 系统

转载 作者:搜寻专家 更新时间:2023-10-30 23:04:30 25 4
gpt4 key购买 nike

我想做一个图书推荐网站。我已经抓取了一些图书网站,并且在 neo4j 的数据库中有大约 1500 万本独立书籍。

现在对于某些类型,例如推理小说和惊悚小说,至少有大约 100 万本书。我必须列一个前 20 名的推荐 list 。我目前的做法-

  1. 拿书
  2. 运行相似性比较(vec-cosine 或 pearsons)
  3. 排序和展示

既昂贵又费时,对实时系统来说一点都不好。我想通过将 neo4j 链接到传统的数据库并通过 neo4j 从该数据库中获取顶级的来保持每个流派的排序列表。但这也很慢(需要几十秒)。有没有更简单、更直观的方法来做到这一点?任何想法都会有所帮助。

最佳答案

最好知道您希望根据哪些其他标准来提出建议,例如你如何准确地衡量书籍之间的相似性。我假设它不完全基于流派。

我们对这些密集节点(例如您的流派或人们居住的城市等)采取的一种方法是,首先根据其他一些标准找到推荐,然后提高推荐的相关性得分(如果它符合要求)连接到正确的密集节点。这样的查询性能更高。

例如,当推荐 20 个你应该成为 friend 的人时,我会根据所有其他标准找到 100 个候选人,然后提高与我们推荐的用户住在同一地点的候选人的分数。这是 100 次单跳遍历,这将非常快。

看看this recent webinar recording ,您可能会从中找到一些灵感。

关于相似性度量,这些可能需要预先计算,通过 SIMILAR_TO 关系将相似的书籍链接在一起。这种预计算可以使用 Runtime 完成。的 GraphAware Framework ,它只在安静时期执行此后台计算,因此不会干扰您的常规事务处理。看NodeRank模块,它在安静时期计算 Neo4j 中的 PageRank。

关于sql - neo4j 中用于大型数据集的基于内容的 reco 系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28394688/

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