使用 Neo4j 进行社交推荐
Social recommendations with Neo4j
我是 Neo4j 的新手,
我会用它来计算我的应用程序中用户之间的隐含亲和力,并将其用于社交推荐。
简而言之,用户就应用程序向他们推荐的新闻、对象和旅行提供反馈(布尔值)。
所以我的图表中应该有 4 种类型的节点:
- 用户
- 新闻
- 对象
- 旅行
每次用户对项目(新闻、旅游、对象)给出正面反馈时,此事件应在图中创建两个关系:HAS_VOTED(用户到项目),HAS_BEEN_VOTED(项目给用户)。这些关系有一个 属性: 投票,每当用户给出积极反馈时,投票就会增加。
我的想法是使用此图计算非常用户的所有路径(使用长度路径的上限)到所有其他用户并使用投票关系 属性 计算具有相同路径的分数长度。
我的问题是大量的循环和路径,应该在此图中,因为在我的解决方案中,每个新的投票事件都会创建从用户到项目的两个关系,因此是一个循环。
这个问题可能会导致 neo4j 在路径计算过程中出现性能问题?
这是解决我问题的正确 shema 设计吗?
欢迎提出宝贵意见。
提前致谢。
虽然 Neo4j 要求关系是有方向的,但它可以轻松地在两个方向上遍历关系。因此,没有必要(并且效率低下且繁琐)使用2个关系来表示双向关系。
所以,您可以去掉 HAS_BEEN_VOTED
,只使用 HAS_VOTED
关系类型。
网上有很多关于用neo4j做推荐的文章。你应该搜索一下,找到对你有帮助的。
此外,首先,您可以在 Neo4j 浏览器中输入此命令以启动有关个性化推荐的教程(它可能会回答您的大部分问题):
:play http://guides.neo4j.com/sandbox/recommendations
我是 Neo4j 的新手, 我会用它来计算我的应用程序中用户之间的隐含亲和力,并将其用于社交推荐。
简而言之,用户就应用程序向他们推荐的新闻、对象和旅行提供反馈(布尔值)。
所以我的图表中应该有 4 种类型的节点:
- 用户
- 新闻
- 对象
- 旅行
每次用户对项目(新闻、旅游、对象)给出正面反馈时,此事件应在图中创建两个关系:HAS_VOTED(用户到项目),HAS_BEEN_VOTED(项目给用户)。这些关系有一个 属性: 投票,每当用户给出积极反馈时,投票就会增加。
我的想法是使用此图计算非常用户的所有路径(使用长度路径的上限)到所有其他用户并使用投票关系 属性 计算具有相同路径的分数长度。
我的问题是大量的循环和路径,应该在此图中,因为在我的解决方案中,每个新的投票事件都会创建从用户到项目的两个关系,因此是一个循环。
这个问题可能会导致 neo4j 在路径计算过程中出现性能问题?
这是解决我问题的正确 shema 设计吗?
欢迎提出宝贵意见。
提前致谢。
虽然 Neo4j 要求关系是有方向的,但它可以轻松地在两个方向上遍历关系。因此,没有必要(并且效率低下且繁琐)使用2个关系来表示双向关系。
所以,您可以去掉 HAS_BEEN_VOTED
,只使用 HAS_VOTED
关系类型。
网上有很多关于用neo4j做推荐的文章。你应该搜索一下,找到对你有帮助的。
此外,首先,您可以在 Neo4j 浏览器中输入此命令以启动有关个性化推荐的教程(它可能会回答您的大部分问题):
:play http://guides.neo4j.com/sandbox/recommendations