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 节点嵌入预测作业的计算池的选择器。 |
configuration |
映射 |
|
否 |
图项目、算法计算和结果回写的配置。 |
对于此算法,如果输入图较大或模型较深,我们建议使用 GPU 计算池;否则,可能可以使用 CPU 计算池。
配置映射包含以下三个条目。
有关以下项目配置的更多详细信息,请参阅 项目文档。 |
名称 | 类型 |
---|---|
nodeTables |
节点表列表。 |
relationshipTables |
关系类型到关系表的映射。 |
请注意,为了让 GraphSAGE 正确传播节点嵌入的更新,每种类型的节点必须至少是某种关系类型的目标。orientation
参数对于为仅作为关系源的节点类型添加反向关系(使用“REVERSE”或“UNDIRECTED”方向)非常有用。
名称 | 类型 | 默认值 | 可选 | 描述 |
---|---|---|---|---|
modelname |
字符串 |
|
否 |
要使用的已训练模型的名称 |
batchSize |
整数 |
|
是 |
每个批次中要预测的目标节点数量。如果未提供,将使用训练模型时使用的批量大小。 |
randomSeed |
整数 |
|
是 |
用于为所有计算随机性设定种子的数字 |
有关以下写入配置的更多详细信息,请参阅 写入文档。 |
名称 | 类型 | 默认值 | 可选 | 描述 |
---|---|---|---|---|
nodeLabel |
字符串 |
|
否 |
内存图中的节点标签,用于写入节点属性。 |
outputTable |
字符串 |
|
否 |
Snowflake 数据库中用于写入节点属性的表。 |
示例
在本示例中,我们将使用包含演员、导演、电影和流派的 IMDB 数据集。所有这些都与关键词相关联,我们将这些关键词用作节点的特征。它们通过关系连接,其中演员在电影中表演,导演执导电影。
我们有一个名为 imdb
的数据库,其中包含以下表:
-
actor
,包含列nodeid
和plot_keywords
-
movie
,包含列nodeid
和plot_keywords
-
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。
预测查询
我们假设已使用 GraphSAGE 节点嵌入训练 端点训练了一个名为 unsup-imdb
的模型(参见示例)。
在以下预测查询中,我们像训练时一样指定项目配置。我们只需在 compute
配置中指定模型名称,其余配置则从训练配置继承。
另请注意,我们提供 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_START |
JOB_END |
JOB_RESULT |
job_7c5303c7899547e5b71f42000393ea59 |
2025-04-29 13:02:41.287 |
2025-04-29 13:03:20.554 |
{ "node_output_stats": { "actor": { "row_count": 5841, "table_name": "imdb.gml.actor_embeddings" }, "movie": { "row_count": 4661, "table_name": "imdb.gml.movie_embeddings" } } } |
我们可以通过运行以下命令检查前两个 actor 节点生成的嵌入:
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]