GraphSAGE 节点嵌入预测
为了应用 GraphSAGE 节点嵌入预测,必须首先使用 GraphSAGE 节点嵌入训练 端点训练好 GraphSAGE 节点嵌入模型。
本页面提供了如何使用 GraphSAGE 节点嵌入预测端点为新节点推断嵌入的说明。
语法
本节介绍了执行 GraphSAGE 节点嵌入预测算法所使用的语法。
CALL graph.gs_unsup_predict(
'CPU_X64_XS', (1)
{
['defaultTablePrefix': '...',] (2)
'project': {...}, (3)
'compute': {...}, (4)
'write': {...} (5)
}
);
| 1 | 计算池选择器。 |
| 2 | 表引用的可选前缀。 |
| 3 | 项目配置。 |
| 4 | 计算配置。 |
| 5 | 写入配置。 |
| 名称 | 类型 | 默认 | 可选 | 描述 |
|---|---|---|---|---|
computePoolSelector |
字符串 |
|
否 |
用于运行 GraphSAGE 节点嵌入预测作业的计算池选择器。 |
配置 |
Map |
|
否 |
用于图项目、算法计算和结果回写的配置。 |
对于此算法,如果输入图较大或模型较深,我们建议使用 GPU 计算池;但在其他情况下,使用 CPU 计算池或许也可行。
配置映射由以下三个条目组成。
| 有关下方项目(Project)配置的更多详细信息,请参阅 项目文档。 |
| 名称 | 类型 |
|---|---|
nodeTables |
节点表列表。 |
relationshipTables |
关系类型到关系表的映射。 |
请注意,为了使 GraphSAGE 能够正确传播节点嵌入(node embeddings)的更新,每种类型的节点必须至少是某种关系类型的目标。`orientation` 参数有助于为仅作为关系源的节点类型添加反向关系(使用 "REVERSE" 或 "UNDIRECTED" 方向)。
| 名称 | 类型 | 默认 | 可选 | 描述 |
|---|---|---|---|---|
modelname |
字符串 |
|
否 |
要使用的已训练模型的名称 |
batchSize |
整数 |
|
是 |
每批次进行预测的目标节点数量。如果未提供,将使用训练模型时所用的批次大小 |
randomSeed |
整数 |
|
是 |
用于初始化计算中所有随机性的数字 |
| 有关以下写入配置的更多详细信息,请参阅 写入文档。 |
| 名称 | 类型 | 默认 | 可选 | 描述 |
|---|---|---|---|---|
nodeLabel |
字符串 |
|
否 |
内存中图中用于写入节点属性的节点标签。 |
outputTable |
字符串 |
|
否 |
Snowflake 数据库中写入节点属性的表。 |
示例
在我们的示例中,我们将使用包含演员、导演、电影和流派的 IMDB 数据集。这些实体都关联有关键字,我们将把这些关键字用作节点的特征。它们通过关系连接,其中演员参演电影,导演执导电影。
我们有一个名为 imdb 的数据库,其中包含以下表:
-
actor,具有nodeid和plot_keywords列 -
具有
nodeid和plot_keywords列的movie -
director,具有nodeid和plot_keywords列 -
acted_in,具有sourcenodeid和targetnodeid列,代表actor和movie节点的 ID -
directed_in,具有sourcenodeid和targetnodeid列,代表director和movie节点的 ID
plot_keywords 列包含与节点关联的关键字,这些关键字被编码为浮点数向量。
您可以按照 GitHub 上的说明将此数据集上传到您的 Snowflake 账户:neo4j-product-examples/snowflake-graph-analytics。
预测查询
我们假设名为 unsup-imdb 的模型已使用 GraphSAGE 节点嵌入训练 端点完成训练(参见示例)。
在下面的预测查询中,我们像训练时一样指定项目配置。在 compute 配置中,我们只需要指定模型名称(modelname),其余部分将从训练配置中继承。
还请注意,我们提供了 write 配置来指定存储计算出的嵌入的表。
要运行查询,需要为应用程序、消费者角色和环境进行必要的权限授予设置。请参阅 入门 页面以了解更多信息。
我们还假设应用程序名称为默认的 Neo4j_Graph_Analytics。如果您在安装过程中选择了不同的应用程序名称,请将其替换为该名称。
CALL Neo4j_Graph_Analytics.graph.gs_unsup_predict('GPU_NV_S', {
'defaultTablePrefix': 'imdb.gml',
'project': {
'nodeTables': ['actor', 'director', 'movie'],
'relationshipTables': {
'acted_in': {
'sourceTable': 'actor',
'targetTable': 'movie',
'orientation': 'UNDIRECTED'
},
'directed_in': {
'sourceTable': 'director',
'targetTable': 'movie',
'orientation': 'UNDIRECTED'
}
}
},
'compute': {
'modelname': 'unsup-imdb'
},
'write': [
{
'nodeLabel': 'movie',
'outputTable': 'movie_embeddings'
},
{
'nodeLabel': 'actor',
'outputTable': 'actor_embeddings'
}
]
});
上述查询应产生类似于下方的结果。
| JOB_ID | JOB_STATUS | JOB_START | JOB_END | JOB_RESULT |
|---|---|---|---|---|
job_fc1d0125659e4c8c96eac777c9bfb8ad |
SUCCESS |
2025-11-28T15:16:18.954320 |
2025-11-28T15:17:10.256981 |
{
"gs_unsup_predict": {
"predictMillis": 26003
},
"project": {
"graphName": "snowgraph",
"nodeCount": 12772,
"nodeLabels": {
"ACTOR": {
"count": 5841,
"nodeId": {
"dataType": "int16"
},
"properties": {
"plot_keywords": {
"dataType": "ndarray[float32]",
"dimension": 1256
}
},
"table": "IMDB.GML.ACTOR"
},
"DIRECTOR": {
"count": 2270,
"nodeId": {
"dataType": "int16"
},
"properties": {
"plot_keywords": {
"dataType": "ndarray[float32]",
"dimension": 1256
}
},
"table": "IMDB.GML.DIRECTOR"
},
"MOVIE_PLOT": {
"count": 4661,
"nodeId": {
"dataType": "int16"
},
"properties": {
"plot_keywords": {
"dataType": "ndarray[float32]",
"dimension": 1256
}
},
"table": "IMDB.GML.MOVIE_PLOT"
}
},
"nodeMillis": 1329,
"relationshipCount": 18644,
"relationshipMillis": 161,
"relationshipTypes": {
"ACTED_IN": {
"count": 13983,
"direction": "UNDIRECTED",
"sourceTable": "IMDB.GML.ACTOR",
"table": "IMDB.GML.ACTED_IN",
"targetTable": "IMDB.GML.MOVIE_PLOT"
},
"DIRECTED_IN": {
"count": 4661,
"direction": "UNDIRECTED",
"sourceTable": "IMDB.GML.DIRECTOR",
"table": "IMDB.GML.DIRECTED_IN",
"targetTable": "IMDB.GML.MOVIE_PLOT"
}
},
"totalMillis": 1490
},
"write_node_property_0": {
"nodeLabel": "MOVIE_PLOT",
"outputTable": "IMDB.GML.MOVIE_EMBEDDINGS",
"rowsWritten": 4661,
"writeMillis": 3661
},
"write_node_property_1": {
"nodeLabel": "ACTOR",
"outputTable": "IMDB.GML.ACTOR_EMBEDDINGS",
"rowsWritten": 5841,
"writeMillis": 3319
}
} |
我们可以通过运行以下命令来检查生成的“前”两个演员节点的嵌入
SELECT * FROM IMDB.GML.actor_embeddings LIMIT 2;
得到的结果为
NODEID EMBEDDING
6931 [0.000000,0.275806,0.333710,0.000000,0.000000,0.000000,1.678880,0.000000,0.000000,0.000000,1.548835,0.705060,0.698967,0.000000,0.000000,0.748005,0.000000,0.000000,0.032963,0.000000,0.000000,0.000000,0.000000,1.082358,0.000000,0.000000,0.000000,0.168949,0.000000,2.504213,1.462919,0.125596,0.000000,0.000000,0.000000,0.020546,1.581930,0.000000,0.000000,2.310814,0.071558,2.554588,0.148772,0.000000,1.342975,0.522795,0.000000,0.664341,0.341649,0.280214,0.000000,0.923817,0.386520,0.000000,1.193098,0.915913,0.000000,0.000000,0.000000,0.538325,0.819232,0.000000,0.594658,0.000000,0.933429,0.000000,0.665206,0.000000,0.000000,0.577315,1.039834,0.000000,0.000000,0.000000,0.000000,0.000000,0.263641,1.260790,0.000000,0.285769,0.797815,0.143350,0.000000,0.000000,0.000000,0.760788,0.537654,0.835502,0.000000,0.000000,0.000000,0.000000,0.000000,2.075793,0.000000,0.000000,0.000000,0.000000,0.284028,0.000000,0.000000,0.979259,0.000000,0.000000,0.000000,0.000000,0.855099,0.100875,0.000000,1.053404,0.785612,1.723292,0.750773,0.000000,1.061991,0.000000,0.000000,0.345646,0.000000,0.000000,0.068293,0.208700,0.345753,0.000000,1.941105,1.733489,0.000000,1.319209,0.867830,0.000000,0.363041,0.000000,2.042518,0.490823,1.638796,0.181801,1.475707,0.669406,0.000000,0.000000,0.000000,0.000000,1.641088,0.000000,0.400986,0.173700,0.598307,0.000000,1.213337,2.599229,0.140189,0.758646,0.000000,0.462205,0.000000,0.843118,0.000000,0.480571,0.000000,0.000000,1.049532,1.766646,0.000000,1.403183,0.461133,0.000000,1.863557,0.000000,0.325326,0.000000,0.430773,0.000000,0.000000,0.405159,0.000000,0.056346,0.000000,0.000000,0.368162,0.000000,0.104882,0.000000,1.468014,1.360908,1.744029,0.000000,0.000000,1.179452,0.547919,0.000000,0.000000,1.504631,0.045264,0.644895,0.000000,0.000000,0.000000,0.101866,0.696652,0.000000,0.000000,0.000000,0.000000,0.000000,0.464310,0.218352,1.510026,0.000000,0.000000,0.000000,0.246313,0.000000,0.178400,0.000000,0.000000,0.000000,0.000000,0.701618,0.070749,0.000000,0.000000,0.603074,0.000000,0.000000,0.000000,1.001244,0.465114,0.570518,0.000000,0.000000,0.932442,0.325107,0.622439,1.470797,0.000000,0.316309,0.000000,0.247825,0.270058,0.946190,0.000000,0.000000,0.000000,1.873032,0.000000,0.000000,1.510353,0.562894,0.000000,1.618610,0.322268,0.000000,0.000000,0.512696,1.013735,0.036263]
6932 [0.000000,0.000000,0.530572,0.998598,0.000000,0.000000,1.851767,0.000000,0.000000,0.000000,1.551337,0.213426,1.226383,0.000000,0.000000,0.498449,0.364041,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.162470,1.721648,0.000000,0.000000,0.146792,0.460837,0.000000,0.542702,0.000000,0.000000,0.585533,0.000000,0.859640,0.915765,0.000000,0.837624,0.101824,0.000000,0.000000,0.000000,0.000000,0.000000,0.766046,1.116825,0.000000,1.394197,0.347508,0.319338,0.000000,0.000000,0.000000,0.669600,0.000000,0.554313,0.014044,0.573868,0.000000,0.214537,0.000000,0.000000,1.127173,0.000000,0.000000,0.000000,0.000000,0.000000,0.535387,0.000000,1.786094,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.804344,2.133009,0.948304,0.000000,0.000000,0.000000,0.000000,0.637896,1.149579,0.000000,0.000000,0.412694,0.507935,0.385693,0.979215,0.000000,1.737015,0.194008,0.000000,0.000000,0.000000,0.793839,1.421982,0.000000,0.228598,1.145930,0.539003,0.643983,0.897991,0.956065,0.000000,0.000000,0.000000,0.000000,0.000000,1.778283,1.129515,0.000000,0.280099,2.112762,2.177783,0.000000,0.820926,0.000000,0.000000,0.000000,0.000000,1.528605,0.000000,1.808216,0.539503,1.489559,0.437647,0.000000,0.000000,0.000000,1.395121,1.636038,0.000000,0.741754,0.000000,0.000000,0.118127,1.866470,1.642432,0.452591,1.244799,0.478923,1.421850,0.294502,1.133924,0.000000,0.000000,0.000000,0.000000,1.080479,0.568388,0.440139,1.385756,0.000000,0.000000,0.618767,0.000000,0.085425,0.000000,0.000000,1.528592,0.011202,1.152845,0.578253,0.000000,0.000000,1.087868,0.960426,0.000000,0.000000,0.000000,2.200223,2.432830,1.850158,0.238872,0.000000,0.000000,0.391092,0.000000,0.000000,0.612836,0.583207,0.000000,0.000000,0.281198,1.414375,0.000000,0.709002,0.000000,0.000000,0.000000,0.000000,0.000000,0.141193,0.231656,0.109030,0.277832,0.000000,0.000000,0.000000,0.449620,0.000000,0.000000,0.000000,0.000000,0.000000,0.660041,0.000000,0.378508,0.000000,0.000000,0.501338,0.000000,0.194963,0.765173,0.227336,0.000000,0.000000,0.223111,0.972678,0.485203,0.709181,0.705317,0.000000,0.661023,0.000000,0.000000,0.000000,0.458935,0.000000,0.000000,0.587035,1.170718,0.913786,0.000000,1.510381,0.428103,0.000000,1.663107,0.000000,0.477148,0.175759,0.983973,0.315653,0.736073]