Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用graphaware neo4j reco获得基于用户的推荐_Neo4j_Recommendation Engine_Graphaware - Fatal编程技术网

如何使用graphaware neo4j reco获得基于用户的推荐

如何使用graphaware neo4j reco获得基于用户的推荐,neo4j,recommendation-engine,graphaware,Neo4j,Recommendation Engine,Graphaware,我需要通过graphaware获得基于用户的推荐,但我不知道如何做到这一点。就我所见,我似乎从graphaware的neo4j reco中得到的只是类似于“买a的人也买b”的物品。但我感兴趣的是基于用户的推荐,比如“根据您以前的购买情况推荐给您”。你知道怎么做吗?主要是一个框架,帮助你在neo4j数据库上构建企业级推荐引擎 这意味着它提供了基类和体系结构,您需要用自己的逻辑来扩展自己 如果您考虑您的需求,这里是购买历史,一个非常简单的开始方法是查找所购买产品的特征 假设用户1购买了一部iphon

我需要通过graphaware获得基于用户的推荐,但我不知道如何做到这一点。就我所见,我似乎从graphaware的neo4j reco中得到的只是类似于“买a的人也买b”的物品。但我感兴趣的是基于用户的推荐,比如“根据您以前的购买情况推荐给您”。你知道怎么做吗?

主要是一个框架,帮助你在neo4j数据库上构建企业级推荐引擎

这意味着它提供了基类和体系结构,您需要用自己的逻辑来扩展自己

如果您考虑您的需求,这里是购买历史,一个非常简单的开始方法是查找所购买产品的特征

假设用户1购买了一部iphone和一部ipad,这两部手机可以具备以下特征:

iphone brand : apple, category: electronics
ipad brand: apple, category: electronics
您可以创建第一个引擎,该引擎将根据这些特征匹配潜在候选项,此引擎将使用以下查询扩展:

MATCH (n:User {id: 111})-[:PURCHASED]->(product)
WITH distinct product
MATCH (product)-[:HAS_CHARACTERISTIC]->(c)<-[:HAS_CHARACTERISTIC]-(reco)
RETURN reco, count(*) AS score
MATCH (n:User {id: 111})-[:PURCHASED]->(product)
WITH distinct product, user
MATCH (product)<-[:PURCHASED]-(collab)
WHERE collab <> user
MATCH (collab)-[:PURCHASED]->(reco)
RETURN reco, count(*) AS score
匹配(n:User{id:111})-[:购买]->(产品)
产品独特
匹配(产品)-[:具有特征]->(c)(产品)
具有独特的产品、用户
比赛(产品)(记录)
返回记录,计数(*)作为分数
当使用这两个引擎时,GraphAware Reco将自动将每个引擎的分数合并为一个

您可以在测试中找到cyphengine的示例:

您还可以添加一个不推荐用户已经购买的物品的黑名单

正如我所说,这是第一步,如果你有一个很大的目录,有大量的购买,你可以考虑做背景计算(例如,产品之间的相似性,只涉及它们之间的顶级K-NN产品,以及它们之间的购买和相关的类似用户)

为您提供了进行后台计算作业的便利,并提供了用于项目间相似度计算的预定义算法,以及用于将相似度计算过程移到neo4j jvm之外并将结果/关系写回neo4j(非开源)的Apache Spark集成

主要是帮助您在neo4j数据库上构建企业级推荐引擎的框架

这意味着它提供了基类和体系结构,您需要用自己的逻辑来扩展自己

如果您考虑您的需求,这里是购买历史,一个非常简单的开始方法是查找所购买产品的特征

假设用户1购买了一部iphone和一部ipad,这两部手机可以具备以下特征:

iphone brand : apple, category: electronics
ipad brand: apple, category: electronics
您可以创建第一个引擎,该引擎将根据这些特征匹配潜在候选项,此引擎将使用以下查询扩展:

MATCH (n:User {id: 111})-[:PURCHASED]->(product)
WITH distinct product
MATCH (product)-[:HAS_CHARACTERISTIC]->(c)<-[:HAS_CHARACTERISTIC]-(reco)
RETURN reco, count(*) AS score
MATCH (n:User {id: 111})-[:PURCHASED]->(product)
WITH distinct product, user
MATCH (product)<-[:PURCHASED]-(collab)
WHERE collab <> user
MATCH (collab)-[:PURCHASED]->(reco)
RETURN reco, count(*) AS score
匹配(n:User{id:111})-[:购买]->(产品)
产品独特
匹配(产品)-[:具有特征]->(c)(产品)
具有独特的产品、用户
比赛(产品)(记录)
返回记录,计数(*)作为分数
当使用这两个引擎时,GraphAware Reco将自动将每个引擎的分数合并为一个

您可以在测试中找到cyphengine的示例:

您还可以添加一个不推荐用户已经购买的物品的黑名单

正如我所说,这是第一步,如果你有一个很大的目录,有大量的购买,你可以考虑做背景计算(例如,产品之间的相似性,只涉及它们之间的顶级K-NN产品,以及它们之间的购买和相关的类似用户)


为您提供了进行后台计算作业的便利,并提供了用于项目间相似度计算的预定义算法,以及用于将相似度计算过程移到neo4j jvm之外并将结果/关系写回neo4j(非开源)的Apache Spark集成

我有点好奇,如果不是参考其他人买的东西,而这些人也买了与你相同的东西,你认为这样一个系统是如何工作的?如果它引用的唯一信息是您自己的,那么除了您以前购买的产品之外,它还能向您推荐什么?我想您可以推荐同一制造商的其他产品,或者其他制造商的类似产品。单独使用Neo4j应该很容易做到这一点,不过您需要使用图表来跟踪产品类型以及制造商。尽管如此,这是一个巨大的建议库,这就是为什么有信息来补充这一点是有用的,例如其他人购买的物品,他们购买了与你类似的物品。嗯,让我试着澄清一下。neo4j reco的README.md给出了一个“FriendsComputingEngine”的例子,在这里我可以计算我可能认识的人,因为我们有一些共同的朋友。我想知道的是:如果我们有两个实体,用户和项目,并且每个用户都可以“喜欢”几个项目,那么我如何根据特定用户已经“喜欢”的项目为其提供建议。FriendsComputingEngine的基础是找到共同的朋友,共同的朋友越多意味着更强的匹配。“买a的人也买b的人”的方法是类似的,找到购物习惯相似的人,他们买过或喜欢相同种类的物品(更多的共同点可能是更强烈的推荐),然后找到他们喜欢或买过的可以推荐给你的其他东西。我之前提到过查询来自同一制造商的其他项目,或者相同类型的项目。如果你有一个强大的标签系统,那么这也会有所帮助。我不清楚你是在寻找使用什么逻辑的想法,还是你知道逻辑,只是想知道如何使用GraphAware Reco实现它。所以我想问你:你能用密码查询来表达你的“基于用户的”推荐逻辑吗?我有点好奇,如果它没有引用什么,你认为这样的系统是如何工作的