Article Rank
简介
ArticleRank 是 Page Rank 算法的一种变体,用于衡量节点的传递影响力。
Page Rank 遵循的假设是:源自低度数节点的关系比源自高度数节点的关系具有更高的影响力。Article Rank 通过在每次迭代中降低发送给邻居的分数,从而降低了低度数节点的影响力。
节点 v 在第 i 次迭代时的 Article Rank 定义为
其中,
-
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 算法所使用的语法。
CALL graph.article_rank(
'CPU_X64_XS', (1)
{
['defaultTablePrefix': '...',] (2)
'project': {...}, (3)
'compute': {...}, (4)
'write': {...} (5)
}
);
| 1 | 计算池选择器。 |
| 2 | 表引用的可选前缀。 |
| 3 | 项目配置。 |
| 4 | 计算配置。 |
| 5 | 写入配置。 |
| 名称 | 类型 | 默认 | 可选 | 描述 |
|---|---|---|---|---|
computePoolSelector |
字符串 |
|
否 |
用于运行 Article Rank 作业的计算池选择器。 |
配置 |
Map |
|
否 |
用于图项目、算法计算和结果回写的配置。 |
配置映射由以下三个条目组成。
| 有关以下项目配置的更多详细信息,请参阅 项目文档。 |
| 名称 | 类型 |
|---|---|
nodeTables |
节点表列表。 |
relationshipTables |
关系类型到关系表的映射。 |
| 名称 | 类型 | 默认 | 可选 | 描述 |
|---|---|---|---|---|
resultProperty |
字符串 |
|
是 |
将回写到 Snowflake 数据库的节点属性。 |
dampingFactor(阻尼系数) |
浮点数 |
|
是 |
Article Rank 计算的阻尼系数。必须在 [0, 1) 范围内。 |
maxIterations |
整数 |
|
是 |
运行 Article Rank 的最大迭代次数。 |
tolerance |
浮点数 |
|
是 |
迭代间得分的最小变化量。如果所有得分的变化均小于该容差值,则结果被视为稳定,算法随即返回。 |
relationshipWeightProperty |
字符串 |
|
是 |
用作权重的关系属性名称。如果未指定,算法将作为无权重运行。 |
sourceNodes |
节点/数字或列表,或作为列表的对列表 |
|
是 |
用于计算个性化 Article Rank 的节点、节点 ID 或节点偏好对。要为不同的源节点使用不同的偏好值,请使用以下语法: |
sourceNodesTable |
字符串 |
|
是1 |
包含源节点的表名。 |
scaler |
字符串或映射 |
|
是 |
应用于最终得分的缩放器名称。支持的值包括 |
1 当指定 sourceNodes 参数时,sourceNodesTable 参数是强制性的。
| 关于下文写入配置的更多详细信息,请参考 写入文档。 |
| 名称 | 类型 | 默认 | 可选 | 描述 |
|---|---|---|---|---|
nodeLabel |
字符串 |
|
否 |
内存中图中用于写入节点属性的节点标签。 |
nodeProperty |
字符串 |
|
是 |
将回写到 Snowflake 数据库的节点属性。 |
outputTable |
字符串 |
|
否 |
Snowflake 数据库中写入节点属性的表。 |
示例
在本节中,我们将展示在具体图上运行 Article Rank 算法的示例。目的是说明结果的样子,并为如何在实际环境中使用该算法提供指导。我们将在一个由少数节点以特定模式连接的小型网络图上执行此操作。示例图如下所示
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。如果您在安装过程中选择了不同的应用程序名称,请将其替换为该名称。
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'
}]
});
| 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;
| NODEID | CENTRALITY |
|---|---|
首页 |
0.5607071761939444 |
关于 |
0.250337073634706 |
链接 |
0.250337073634706 |
产品 |
0.250337073634706 |
站点 A |
0.18152391630760797 |
站点 B |
0.18152391630760797 |
站点 C |
0.18152391630760797 |
站点 D |
0.18152391630760797 |
加权
默认情况下,算法认为图的关系是无权重的。要改变这种行为,我们可以使用 relationshipWeightProperty 配置参数。如果设置了该参数,关联的属性值将用作关系权重。在 weighted(加权)情况下,节点发送给其邻居的前一个得分会乘以归一化后的关系权重。请注意,负的关系权重在计算过程中会被忽略。
在以下示例中,我们使用输入图的 weight 属性作为关系权重属性。
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'
}]
});
| 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;
| 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 配置参数表示迭代之间得分的最小变化量。如果所有得分的变化均小于配置的容差,迭代将中止并被视为已收敛。请注意,设置较高的容差会导致更早收敛,但也会降低中心度得分的准确性。
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'
}]
});
| 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;
| 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'
}]
});
| 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;
| 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'
}]
});
| 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;
| NODEID | CENTRALITY |
|---|---|
站点 B |
0.3037358066855114 |
首页 |
|
0.16578479041558442 |
|
站点 A |
0.15373580668551137 |
关于 |
|
0.029666736048867288 |
|
产品 |
0.029666736048867288 |
链接 |
|
0.029666736048867288 |
|
站点 C |
0.003735806685511373 |
站点 D |
|
0.003735806685511373 |
缩放中心度分数
要作为算法执行的一部分对最终分数进行归一化,可以使用 scaler 配置参数。所有可用缩放器的说明可以在 附录:缩放器 中找到。
让我们来看一下
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'
}]
});
| 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;
| NODEID | CENTRALITY |
|---|---|
首页 |
2.550761988515413 |
关于 |
-0.036593974039467986 |
产品 |
-0.036593974039467986 |
链接 |
-0.036593974039467986 |
站点 A |
-0.6102450165992518 |
站点 B |
-0.6102450165992518 |
站点 C |
-0.6102450165992518 |
站点 D |
-0.6102450165992518 |
将结果与第一个示例进行比较,我们可以看到分数的相对顺序是相同的,即使数值已经被缩放。