Article Rank

简介

ArticleRank 是 Page Rank 算法的一种变体,用于衡量节点的传递影响力。

Page Rank 遵循的假设是:源自低度数节点的关系比源自高度数节点的关系具有更高的影响力。Article Rank 通过在每次迭代中降低发送给邻居的分数,从而降低了低度数节点的影响力。

节点 v 在第 i 次迭代时的 Article Rank 定义为

articleRank

其中,

  • Nin(v) 表示节点 v 的入度邻居,Nout(v) 表示节点 v 的出度邻居。

  • d[0, 1] 区间内的阻尼系数。

  • Nout 是平均出度。

有关更多信息,请参阅 ArticleRank: a PageRank‐based alternative to numbers of citations for analysing citation networks (ArticleRank:一种用于分析引文网络的、基于 PageRank 的替代引文计数方法)。

注意事项

使用 Article Rank 算法时,需要注意以下事项

  • 如果一组页面内部没有指向该组外部的关系,则该组被视为“蜘蛛陷阱”(spider trap)。

  • 当页面网络形成无限循环时,可能会出现排名汇聚 (rank sink)。

  • 当页面没有任何出口关系时,会出现死胡同 (dead-ends)。

改变阻尼系数可以帮助解决上述所有问题。它可被解释为网络冲浪者有时会跳到一个随机页面的概率,从而避免陷入汇聚点。

语法

本节涵盖执行 Article Rank 算法所使用的语法。

运行 ArticleRank。
CALL graph.article_rank(
  'CPU_X64_XS',                    (1)
  {
    ['defaultTablePrefix': '...',] (2)
    'project': {...},              (3)
    'compute': {...},              (4)
    'write':   {...}               (5)
  }
);
1 计算池选择器。
2 表引用的可选前缀。
3 项目配置。
4 计算配置。
5 写入配置。
表 1. 参数
名称 类型 默认 可选 描述

computePoolSelector

字符串

不适用

用于运行 Article Rank 作业的计算池选择器。

配置

Map

{}

用于图项目、算法计算和结果回写的配置。

配置映射由以下三个条目组成。

有关以下项目配置的更多详细信息,请参阅 项目文档
表 2. 项目配置
名称 类型

nodeTables

节点表列表。

relationshipTables

关系类型到关系表的映射。

表 3. 计算配置
名称 类型 默认 可选 描述

resultProperty

字符串

'articleRank'

将回写到 Snowflake 数据库的节点属性。

dampingFactor(阻尼系数)

浮点数

0.85

Article Rank 计算的阻尼系数。必须在 [0, 1) 范围内。

maxIterations

整数

20

运行 Article Rank 的最大迭代次数。

tolerance

浮点数

0.0000001

迭代间得分的最小变化量。如果所有得分的变化均小于该容差值,则结果被视为稳定,算法随即返回。

relationshipWeightProperty

字符串

null

用作权重的关系属性名称。如果未指定,算法将作为无权重运行。

sourceNodes

节点/数字或列表,或作为列表的对列表

[]

用于计算个性化 Article Rank 的节点、节点 ID 或节点偏好对。要为不同的源节点使用不同的偏好值,请使用以下语法:[[nodeId1, bias1], [nodeId2, bias2], …​]

sourceNodesTable

字符串

null

1

包含源节点的表名。

scaler

字符串或映射

None

应用于最终得分的缩放器名称。支持的值包括 NoneMinMaxMaxMeanLogStdScore。如需应用特定的缩放器配置,请使用映射语法:{scaler: 'name', …​}

1 当指定 sourceNodes 参数时,sourceNodesTable 参数是强制性的。

关于下文写入配置的更多详细信息,请参考 写入文档
表 4. 写入配置
名称 类型 默认 可选 描述

nodeLabel

字符串

不适用

内存中图中用于写入节点属性的节点标签。

nodeProperty

字符串

'articleRank'

将回写到 Snowflake 数据库的节点属性。

outputTable

字符串

不适用

Snowflake 数据库中写入节点属性的表。

示例

在本节中,我们将展示在具体图上运行 Article Rank 算法的示例。目的是说明结果的样子,并为如何在实际环境中使用该算法提供指导。我们将在一个由少数节点以特定模式连接的小型网络图上执行此操作。示例图如下所示

Visualization of the example graph
以下 SQL 语句将在 Snowflake 数据库中创建示例图表:
CREATE OR REPLACE TABLE EXAMPLE_DB.DATA_SCHEMA.PAGES (NODEID VARCHAR);
INSERT INTO EXAMPLE_DB.DATA_SCHEMA.PAGES VALUES
  ('Home'),
  ('About'),
  ('Product'),
  ('Links'),
  ('Site A'),
  ('Site B'),
  ('Site C'),
  ('Site D');

CREATE OR REPLACE TABLE EXAMPLE_DB.DATA_SCHEMA.LINKS (SOURCENODEID VARCHAR, TARGETNODEID VARCHAR, WEIGHT FLOAT);
INSERT INTO EXAMPLE_DB.DATA_SCHEMA.LINKS VALUES
  ('Home',    'About',   0.2),
  ('Home',    'Links',   0.2),
  ('Home',    'Product', 0.6),
  ('About',   'Home',    1.0),
  ('Product', 'Home',    1.0),
  ('Site A',  'Home',    1.0),
  ('Site B',  'Home',    1.0),
  ('Site C',  'Home',    1.0),
  ('Site D',  'Home',    1.0),
  ('Links',   'Home',    0.8),
  ('Links',   'Site A',  0.05),
  ('Links',   'Site B',  0.05),
  ('Links',   'Site C',  0.05),
  ('Links',   'Site D',  0.05);

此图表示八个页面,它们相互链接。每个关系都有一个名为 weight 的属性,用于描述关系的重要性。

运行作业

运行 Article Rank 作业涉及三个步骤:投影 (Project)、计算 (Compute) 和写入 (Write)。

要运行查询,需要为应用程序、您的消费者角色和您的环境设置必要的权限。请参阅 入门 页面以了解更多信息。

我们还假设应用程序名称为默认的 Neo4j_Graph_Analytics。如果您在安装过程中选择了不同的应用程序名称,请将其替换为该名称。

以下代码将运行 Article Rank 作业
CALL Neo4j_Graph_Analytics.graph.article_rank('CPU_X64_XS', {
    'defaultTablePrefix': 'EXAMPLE_DB.DATA_SCHEMA',
    'project': {
        'nodeTables': [ 'PAGES' ],
        'relationshipTables': {
            'LINKS': {
                'sourceTable': 'PAGES',
                'targetTable': 'PAGES'
            }
        }
    },
    'compute': {
        'resultProperty': 'centrality'
    },
    'write': [{
        'nodeLabel': 'PAGES',
        'outputTable': 'PAGES_CENTRALITY',
        'nodeProperty': 'centrality'
    }]
});
表 5. 结果
JOB_ID JOB_STATUS JOB_START JOB_END JOB_RESULT

job_24fed6a63ca84794babf21b606333bd6

SUCCESS

2026-02-16 09:16:17.294

2026-02-16 09:16:24.413

 {
    "article_rank_1": {
      "centralityDistribution": {
        "max": 0.5607109069824218,
        "mean": 0.2547265291213989,
        "min": 0.18152332305908203,
        "p50": 0.18152332305908203,
        "p75": 0.2503366470336914,
        "p90": 0.5607099533081055,
        "p95": 0.5607099533081055,
        "p99": 0.5607099533081055,
        "p999": 0.5607099533081055
      },
      "computeMillis": 220,
      "configuration": {
        "concurrency": 2,
        "dampingFactor": 0.85,
        "maxIterations": 20,
        "nodeLabels": ["*"],
        "relationshipTypes": ["*"],
        "resultProperty": "articleRank",
        "scaler": "NONE",
        "sourceNodes": [],
        "tolerance": 1.000000000000000e-07
      },
      "didConverge": true,
      "ranIterations": 19
    },
    "project_graph_1": {
      "graphName": "snowgraph",
      "nodeCount": 8,
      "nodeLabels": ...,
      "nodeMillis": 394,
      "relationshipCount": 14,
      "relationshipMillis": 629,
      "relationshipTypes": ...,
      "totalMillis": 1023
    },
    "write_node_property_1": {
      "copyIntoTableMillis": 955,
      "nodeLabel": "PAGES",
      "nodeProperty": "articleRank",
      "outputTable": "EXAMPLE_DB.DATA_SCHEMA.PAGES_CENTRALITY",
      "rowsWritten": 8,
      "stageUploadMillis": 1552,
      "writeMillis": 2721
    }
}

返回的结果包含有关作业执行和结果分布的信息。中心度分布直方图可用于检查计算出的分数或执行归一化。此外,所有八个节点的中心度分数已写回 Snowflake 数据库。我们可以这样查询它

SELECT * FROM EXAMPLE_DB.DATA_SCHEMA.PAGES_CENTRALITY ORDER BY centrality DESC;
表 6. 结果
NODEID CENTRALITY

首页

0.5607071761939444

关于

0.250337073634706

链接

0.250337073634706

产品

0.250337073634706

站点 A

0.18152391630760797

站点 B

0.18152391630760797

站点 C

0.18152391630760797

站点 D

0.18152391630760797

上述查询以 unweighted(未加权)模式运行 Article Rank 算法,返回的分数未经过归一化处理。在下方,您可以找到加权图的示例。另一个示例展示了应用缩放器 (scaler) 来归一化最终分数的用法。

加权

默认情况下,算法认为图的关系是无权重的。要改变这种行为,我们可以使用 relationshipWeightProperty 配置参数。如果设置了该参数,关联的属性值将用作关系权重。在 weighted(加权)情况下,节点发送给其邻居的前一个得分会乘以归一化后的关系权重。请注意,负的关系权重在计算过程中会被忽略。

在以下示例中,我们使用输入图的 weight 属性作为关系权重属性。

以下代码将运行带有权重的 ArticleRank 作业
CALL Neo4j_Graph_Analytics.graph.article_rank('CPU_X64_XS', {
    'defaultTablePrefix': 'EXAMPLE_DB.DATA_SCHEMA',
    'project': {
        'nodeTables': [ 'PAGES' ],
        'relationshipTables': {
            'LINKS': {
                'sourceTable': 'PAGES',
                'targetTable': 'PAGES'
            }
        }
    },
    'compute': {
        'resultProperty': 'centrality',
        'maxIterations': 20,
        'dampingFactor': 0.85,
        'relationshipWeightProperty': 'WEIGHT'
    },
    'write': [{
        'nodeLabel': 'PAGES',
        'outputTable': 'PAGES_CENTRALITY',
        'nodeProperty': 'centrality'
    }]
});
表 7. 结果
JOB_ID JOB_STATUS JOB_START JOB_END JOB_RESULT

job_acdcd121d84c49bdb50739ce7c1fe07f

SUCCESS

2025-06-25 09:54:25.390

2025-06-25 09:54:30.822

 {
  "article_rank_1": {
    "centralityDistribution": {
      "max": 0.5160827636718749,
      "mean": 0.21710503101348877,
      "min": 0.15281105041503906,
      "p50": 0.15281105041503906,
      "p75": 0.18190288543701172,
      "p90": 0.5160818099975586,
      "p95": 0.5160818099975586,
      "p99": 0.5160818099975586,
      "p999": 0.5160818099975586
    },
    "computeMillis": 211,
    "configuration": {
      "concurrency": 2,
      "dampingFactor": 0.85,
      "maxIterations": 20,
      "nodeLabels": ["*"],
      "relationshipTypes": ["*"],
      "relationshipWeightProperty": "WEIGHT",
      "resultProperty": "centrality",
      "scaler": "NONE",
      "sourceNodes": [],
      "tolerance": 1.000000000000000e-07
    },
    "didConverge": true,
    "ranIterations": 14
  },
  "project_graph_1": {
    "graphName": "snowgraph",
    "nodeCount": 8,
    "nodeLabels": ...,
    "nodeMillis": 866,
    "relationshipCount": 14,
    "relationshipMillis": 874,
    "relationshipTypes": ...,
    "totalMillis": 1740
  },
  "write_node_property_1": {
    "copyIntoTableMillis": 1656,
    "nodeLabel": "PAGES",
    "nodeProperty": "centrality",
    "outputTable": "EXAMPLE_DB.DATA_SCHEMA.PAGES_CENTRALITY",
    "rowsWritten": 8,
    "stageUploadMillis": 1626,
    "writeMillis": 3606
  }
}
SELECT * FROM EXAMPLE_DB.DATA_SCHEMA.PAGES_CENTRALITY ORDER BY centrality DESC;
表 8. 结果
NODEID CENTRALITY

首页

0.5160810726222141

产品

0.24570958074084706

关于

0.1819031935802824

链接

0.1819031935802824

站点 A

0.15281123078335393

站点 B

0.15281123078335393

站点 C

0.15281123078335393

站点 D

0.15281123078335393

与未加权示例一样,“Home”节点的分数最高。相反,“Product”节点现在排在第二位,而不是第四位。

=== 容差 (Tolerance)

tolerance 配置参数表示迭代之间得分的最小变化量。如果所有得分的变化均小于配置的容差,迭代将中止并被视为已收敛。请注意,设置较高的容差会导致更早收敛,但也会降低中心度得分的准确性。

以下代码将运行带有容差设置的 Article Rank 作业
CALL Neo4j_Graph_Analytics.graph.article_rank('CPU_X64_XS', {
    'defaultTablePrefix': 'EXAMPLE_DB.DATA_SCHEMA',
    'project': {
        'nodeTables': [ 'PAGES' ],
        'relationshipTables': {
            'LINKS': {
                'sourceTable': 'PAGES',
                'targetTable': 'PAGES'
            }
        }
    },
    'compute': {
        'resultProperty': 'centrality',
        'maxIterations': 20,
        'dampingFactor': 0.85,
        'tolerance': 0.1
    },
    'write': [{
        'nodeLabel': 'PAGES',
        'outputTable': 'PAGES_CENTRALITY',
        'nodeProperty': 'centrality'
    }]
});
表 9. 结果
JOB_ID JOB_STATUS JOB_START JOB_END JOB_RESULT

job_c9869bd231a943a3961b830677b9acc6

SUCCESS

2025-06-25 09:59:32.257

2025-06-25 09:59:37.375

 {
  "article_rank_1": {
    "centralityDistribution": {
      "max": 0.44707107543945307,
      "mean": 0.22657835483551025,
      "min": 0.16888809204101562,
      "p50": 0.16888809204101562,
      "p75": 0.23000144958496094,
      "p90": 0.4470701217651367,
      "p95": 0.4470701217651367,
      "p99": 0.4470701217651367,
      "p999": 0.4470701217651367
    },
    "computeMillis": 139,
    "configuration": {
      "concurrency": 2,
      "dampingFactor": 0.85,
      "maxIterations": 20,
      "nodeLabels": ["*"],
      "relationshipTypes": ["*"],
      "resultProperty": "centrality",
      "scaler": "NONE",
      "sourceNodes": [],
      "tolerance": 0.1
    },
    "didConverge": true,
    "ranIterations": 2
  },
  "project_graph_1": {
    "graphName": "snowgraph",
    "nodeCount": 8,
    "nodeLabels": ...,
    "nodeMillis": 430,
    "relationshipCount": 14,
    "relationshipMillis": 715,
    "relationshipTypes": ...,
    "totalMillis": 1145
  },
  "write_node_property_1": {
    "copyIntoTableMillis": 969,
    "nodeLabel": "PAGES",
    "nodeProperty": "centrality",
    "outputTable": "EXAMPLE_DB.DATA_SCHEMA.PAGES_CENTRALITY",
    "rowsWritten": 8,
    "stageUploadMillis": 1532,
    "writeMillis": 2735
  }
}
SELECT * FROM EXAMPLE_DB.DATA_SCHEMA.PAGES_CENTRALITY ORDER BY centrality DESC;
表 10. 结果
NODEID CENTRALITY

首页

0.4470707071

关于

0.2300021265

链接

0.2300021265

产品

0.2300021265

站点 A

0.1688888889

站点 B

0.1688888889

站点 C

0.1688888889

站点 D

0.1688888889

我们使用了 tolerance: 0.1,这导致结果与示例略有不同。然而,计算在两次迭代后收敛,我们已经可以观察到所得分数的趋势。

=== 个性化 Article Rank

个性化 Article Rank 是 Article Rank 的一种变体,它偏向于一组 sourceNodes。默认情况下,随机游走以相等的概率跳转到图中的任何节点。与 PageRank 一样,这可以更改为仅跳转到一组 sourceNodes

以下示例展示了如何运行以“站点 A”和“站点 B”为中心的 Article Rank。

以下命令将运行算法并流式传输结果
CALL Neo4j_Graph_Analytics.graph.article_rank('CPU_X64_XS', {
    'defaultTablePrefix': 'EXAMPLE_DB.DATA_SCHEMA',
    'project': {
        'nodeTables': [ 'PAGES' ],
        'relationshipTables': {
            'LINKS': {
                'sourceTable': 'PAGES',
                'targetTable': 'PAGES'
            }
        }
    },
    'compute': {
        'resultProperty': 'centrality',
        'maxIterations': 20,
        'dampingFactor': 0.85,
        'sourceNodes': ['Site A'],
        'sourceNodesTable': 'PAGES'
    },
    'write': [{
        'nodeLabel': 'PAGES',
        'outputTable': 'PAGES_CENTRALITY',
        'nodeProperty': 'centrality'
    }]
});
表 11. 结果
JOB_ID JOB_STATUS JOB_START JOB_END JOB_RESULT

job_cb7c798e6fa64230acb25baf69ba245c

SUCCESS

2025-06-25 10:08:14.987

2025-06-25 10:08:19.910

 {
  "article_rank_1": {
    "centralityDistribution": {
      "max": 0.15124607086181638,
      "mean": 0.029988674446940422,
      "min": 0.001245245337486267,
      "p50": 0.009888879954814911,
      "p75": 0.009888879954814911,
      "p90": 0.1512460634112358,
      "p95": 0.1512460634112358,
      "p99": 0.1512460634112358,
      "p999": 0.1512460634112358
    },
    "computeMillis": 141,
    "configuration": {
      "concurrency": 2,
      "dampingFactor": 0.85,
      "maxIterations": 20,
      "nodeLabels": ["*"],
      "relationshipTypes": ["*"],
      "resultProperty": "centrality",
      "scaler": "NONE",
      "sourceNodes": [
        "Site A"
      ],
      "sourceNodesTable": "EXAMPLE_DB.DATA_SCHEMA.PAGES",
      "tolerance": 1.000000000000000e-07
    },
    "didConverge": true,
    "ranIterations": 16
  },
  "project_graph_1": {
    "graphName": "snowgraph",
    "nodeCount": 8,
    "nodeLabels": ...,
    "nodeMillis": 397,
    "relationshipCount": 14,
    "relationshipMillis": 742,
    "relationshipTypes": ...,
    "totalMillis": 1139
  },
  "write_node_property_1": {
    "copyIntoTableMillis": 1074,
    "nodeLabel": "PAGES",
    "nodeProperty": "centrality",
    "outputTable": "EXAMPLE_DB.DATA_SCHEMA.PAGES_CENTRALITY",
    "rowsWritten": 8,
    "stageUploadMillis": 1431,
    "writeMillis": 2724
  }
}

我们可以看到,通过将焦点设置在“站点 A”,它在排名中上升了

SELECT * FROM EXAMPLE_DB.DATA_SCHEMA.PAGES_CENTRALITY ORDER BY centrality DESC;
表 12. 结果
NODEID CENTRALITY

站点 A

0.15124525255992738

首页

0.055261428833430645

关于

0.009888887264929692

产品

0.009888887264929692

链接

0.009888887264929692

站点 B

0.001245252559927339

站点 C

0.001245252559927339

站点 D

0.001245252559927339

带偏好的个性化 Article Rank

与个性化 Article Rank 类似,该算法允许对 sourceNodes 进行不同的加权,从而增加跳转到某些节点而不是其他节点的可能性。

以下示例展示了如何运行以“站点 A”和“站点 B”为中心的 Article Rank,其中“站点 B”的偏好权重是“站点 A”的两倍。带偏好的源节点以节点-数值对列表的形式输入。

以下命令将运行算法并流式传输结果
CALL Neo4j_Graph_Analytics.graph.article_rank('CPU_X64_XS', {
    'defaultTablePrefix': 'EXAMPLE_DB.DATA_SCHEMA',
    'project': {
        'nodeTables': [ 'PAGES' ],
        'relationshipTables': {
            'LINKS': {
                'sourceTable': 'PAGES',
                'targetTable': 'PAGES'
            }
        }
    },
    'compute': {
        'resultProperty': 'centrality',
        'maxIterations': 20,
        'dampingFactor': 0.85,
        'sourceNodes': [['Site A', 1], ['Site B', 2]],
        'sourceNodesTable': 'PAGES'
    },
    'write': [{
        'nodeLabel': 'PAGES',
        'outputTable': 'PAGES_CENTRALITY',
        'nodeProperty': 'centrality'
    }]
});
表 13. 结果
JOB_ID JOB_STATUS JOB_START JOB_END JOB_RESULT

job_9f6c8cc7b49f46caa922743d671d0081

SUCCESS

2025-06-25 10:14:10.288

2025-06-25 10:14:15.641

 {
  "article_rank_1": {
    "centralityDistribution": {
      "max": 0.3037376403808593,
      "mean": 0.0899660550057888,
      "min": 0.0037357956171035767,
      "p50": 0.02966676652431488,
      "p75": 0.15373609960079193,
      "p90": 0.3037376254796982,
      "p95": 0.3037376254796982,
      "p99": 0.3037376254796982,
      "p999": 0.3037376254796982
    },
    "computeMillis": 145,
    "configuration": {
      "concurrency": 2,
      "dampingFactor": 0.85,
      "maxIterations": 20,
      "nodeLabels": ["*"],
      "relationshipTypes": ["*"],
      "resultProperty": "centrality",
      "scaler": "NONE",
      "sourceNodes": [["Site A", 1], ["Site B", 2]],
      "sourceNodesTable": "EXAMPLE_DB.PUBLIC.PAGES",
      "tolerance": 1.000000000000000e-07
    },
    "didConverge": true,
    "ranIterations": 17
  },
  "project_graph_1": {
    "graphName": "snowgraph",
    "nodeCount": 8,
    "nodeLabels": ...,
    "nodeMillis": 435,
    "relationshipCount": 14,
    "relationshipMillis": 747,
    "relationshipTypes": ...,
    "totalMillis": 1182
  },
  "write_node_property_1": {
    "copyIntoTableMillis": 1352,
    "nodeLabel": "PAGES",
    "nodeProperty": "centrality",
    "outputTable": "EXAMPLE_DB.PUBLIC.PAGES_CENTRALITY",
    "rowsWritten": 8,
    "stageUploadMillis": 1398,
    "writeMillis": 3021
  }
}

我们观察到,由于 B 获得了偏好权重,B 的排名远高于 A,而 A 的排名又高于 C 和 D。

SELECT * FROM EXAMPLE_DB.DATA_SCHEMA.PAGES_CENTRALITY ORDER BY centrality DESC;
表 14. 结果
NODEID CENTRALITY

站点 B

0.3037358066855114

首页

0.16578479041558442

站点 A

0.15373580668551137

关于

0.029666736048867288

产品

0.029666736048867288

链接

0.029666736048867288

站点 C

0.003735806685511373

站点 D

0.003735806685511373

缩放中心度分数

要作为算法执行的一部分对最终分数进行归一化,可以使用 scaler 配置参数。所有可用缩放器的说明可以在 附录:缩放器 中找到。

让我们来看一下

以下代码将运行带有缩放器的 Article Rank 作业
CALL Neo4j_Graph_Analytics.graph.article_rank('CPU_X64_XS', {
    'defaultTablePrefix': 'EXAMPLE_DB.DATA_SCHEMA',
    'project': {
        'nodeTables': [ 'PAGES' ],
        'relationshipTables': {
            'LINKS': {
                'sourceTable': 'PAGES',
                'targetTable': 'PAGES'
            }
        }
    },
    'compute': {
        'resultProperty': 'centrality',
        'scaler': 'StdScore'
    },
    'write': [{
        'nodeLabel': 'PAGES',
        'outputTable': 'PAGES_CENTRALITY',
        'nodeProperty': 'centrality'
    }]
});
表 15. 结果
JOB_ID JOB_STATUS JOB_START JOB_END JOB_RESULT

job_69fe344cccb44ef7adde9ed5868f2166

SUCCESS

2025-06-24 13:47:43.484

2025-06-24 13:47:48.661

 {
  "article_rank_1": {
    "centralityDistribution": {
      "Error": "Unable to create histogram due to range of scores exceeding implementation limits."
    },
    "computeMillis": 108,
    "configuration": {
      "concurrency": 2,
      "dampingFactor": 0.85,
      "maxIterations": 20,
      "nodeLabels": ["*"],
      "relationshipTypes": ["*"],
      "resultProperty": "centrality",
      "scaler": "STDSCORE",
      "sourceNodes": [],
      "tolerance": 1.000000000000000e-07
    },
    "didConverge": true,
    "ranIterations": 19
  },
  "project_graph_1": {
    "graphName": "snowgraph",
    "nodeCount": 8,
    "nodeLabels": ...,
    "nodeMillis": 272,
    "relationshipCount": 14,
    "relationshipMillis": 793,
    "relationshipTypes": ...,
    "totalMillis": 1065
  },
  "write_node_property_1": {
    "copyIntoTableMillis": 1260,
    "nodeLabel": "PAGES",
    "nodeProperty": "centrality",
    "outputTable": "EXAMPLE_DB.DATA_SCHEMA.PAGES_CENTRALITY",
    "rowsWritten": 8,
    "stageUploadMillis": 1739,
    "writeMillis": 3353
  }
}

正如您在上面的输出中看到的那样,记录概率分布存在已知限制。这不会影响结果。

SELECT * FROM EXAMPLE_DB.DATA_SCHEMA.PAGES_CENTRALITY ORDER BY centrality DESC;
表 16. 结果
NODEID CENTRALITY

首页

2.550761988515413

关于

-0.036593974039467986

产品

-0.036593974039467986

链接

-0.036593974039467986

站点 A

-0.6102450165992518

站点 B

-0.6102450165992518

站点 C

-0.6102450165992518

站点 D

-0.6102450165992518

将结果与第一个示例进行比较,我们可以看到分数的相对顺序是相同的,即使数值已经被缩放。