【问题标题】:Social recommendations with Neo4jNeo4j 的社交推荐
【发布时间】:2018-05-31 11:20:12
【问题描述】:

我对 Neo4j 完全陌生, 我会用它来计算我的应用程序中用户之间的隐含亲和力并将其用于社交推荐。

简而言之,用户提供有关应用程序向他们推荐的新闻、对象和旅行的反馈(布尔值)。

所以我的图表中应该有 4 种类型的节点:

  1. 用户
  2. 新闻
  3. 对象
  4. 旅行

每次用户对某个项目(新闻、旅游、对象)给予正面反馈时,此事件应在图中创建两个关系:HAS_VOTED(用户到项目)、HAS_BEEN_VOTED(项目到用户)。这些关系有一个属性:投票,每次用户给出正面反馈时都会增加。

我的想法是使用此图为非常用户计算到所有其他用户的所有路径(使用长度路径的上限),并使用投票关系属性来计算具有相同长度的路径的分数。

我的问题是循环和路径的数量过多,应该在这个图中,因为在我的解决方案中,每个新的投票事件都会创建两个从用户到项目的关系,因此是一个循环。

这个问题可能会导致neo4j在路径计算过程中出现性能问题?

这是解决我的问题的正确 shema 设计吗?

欢迎一些好的建议。

提前致谢。

【问题讨论】:

    标签: neo4j social-networking graph-databases


    【解决方案1】:

    虽然 Neo4j 要求关系是定向的,但它可以轻松地在两个方向上遍历关系。因此,没有必要(而且效率低下且麻烦)使用2个关系来表示双向关系。

    因此,您可以摆脱HAS_BEEN_VOTED,而只使用HAS_VOTED 关系类型。

    网上有很多关于使用 neo4j 进行推荐的文章。您应该进行搜索并找到对您有帮助的内容。

    另外,首先,您可以在 Neo4j 浏览器中输入此命令来启动个性化推荐教程(它可能会回答您的大部分问题):

    :play http://guides.neo4j.com/sandbox/recommendations
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多