Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
Neo4j 推荐的最佳解决方案_Neo4j_Cypher_Recommendation Engine_Facebook Recommendations - Fatal编程技术网

Neo4j 推荐的最佳解决方案

Neo4j 推荐的最佳解决方案,neo4j,cypher,recommendation-engine,facebook-recommendations,Neo4j,Cypher,Recommendation Engine,Facebook Recommendations,我将找到一个合适的函数,以便根据两个人的喜好获得精确的相似性 例如,人员连接到标签,他们对每个标签的期望将作为数值保留在标签节点的边缘。我想向每个人推荐相似的人 我找到了两种解决办法: 余弦相似性 Neo4j中有一个余弦函数,它只接受一个输入,而在上面的函数中,我需要将向量传递给这个公式。例如: 对于“a”:a=[10,20,45],每个数字表示人们对每个标签的渴望。 对于“b”:b=[20,50,70] 皮尔逊相关 当我在网上冲浪时,我发现了你的文档: 我的问题是,这个公式背后的逻辑是

我将找到一个合适的函数,以便根据两个人的喜好获得精确的相似性

例如,人员连接到标签,他们对每个标签的期望将作为数值保留在标签节点的边缘。我想向每个人推荐相似的人

我找到了两种解决办法:

  • 余弦相似性
  • Neo4j中有一个余弦函数,它只接受一个输入,而在上面的函数中,我需要将向量传递给这个公式。例如:

    对于“a”:a=[10,20,45],每个数字表示人们对每个标签的渴望。 对于“b”:b=[20,50,70]

  • 皮尔逊相关
  • 当我在网上冲浪时,我发现了你的文档:

    我的问题是,这个公式背后的逻辑是什么? r和H的区别是什么

    因为乍一看,我认为H1或H2总是等于1。除非我考虑图的其余部分。< /P>
    提前感谢您的帮助

    这个例子让人有点难以理解发生了什么。在本例中,H1和H2均为1。更好的例子是每个人吃不同种类的食物,这样你就能看到H值的变化。如果“我”也吃“蔬菜”、“比萨饼”和“热狗”,他们的H值将是4

    这个例子让人有点难以理解发生了什么。在本例中,H1和H2均为1。更好的例子是每个人吃不同种类的食物,这样你就能看到H值的变化。如果“我”也吃“蔬菜”、“比萨饼”和“热狗”,他们的H值将是4

    我认为
    H1
    H2
    的目的是使
    times
    属性(用户食用食物的次数)在不同食物类型中的结果正常化。您可以在下面的示例中进行实验


    既然您提到了其他相似性度量,您可能会对这个图表感兴趣。它有一些使用Cypher计算Pearson相关性和Jaccard相似性的简单示例。

    我认为
    H1
    H2
    的目的是规范化
    times
    属性(用户食用食物的次数)在不同食物类型中的结果。您可以在下面的示例中进行实验


    既然您提到了其他相似性度量,您可能会对这个图表感兴趣。它有一些使用Cypher计算Pearson相关性和Jaccard相似性的简单示例。

    对Neo4J没有帮助,只想指出余弦相似性和Pearson相关系数本质上是一样的。如果你解码不同的符号,你会发现唯一的区别是皮尔逊零首先将向量居中。因此,您可以如下定义Pearson:

    Pearsons(a, b) = Cosine(a - mean(a), b - mean(b))
    

    Neo4J帮不了你,只想指出余弦相似性和皮尔逊相关系数本质上是一样的。如果你解码不同的符号,你会发现唯一的区别是皮尔逊零首先将向量居中。因此,您可以如下定义Pearson:

    Pearsons(a, b) = Cosine(a - mean(a), b - mean(b))
    

    谢谢@william这些链接似乎正是我想要的谢谢@william这些链接似乎正是我想要的。这两个函数是相同的,但差别很小,这就是它们结果的准确性。余弦的RMSE小于Pearson,因此余弦具有精确的结果。这两个函数相同,但差别很小,这就是它们结果的精确性。余弦的RMSE小于皮尔逊,因此余弦具有准确的结果。