GraphSAGE 节点嵌入预测

为了应用 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 写入配置。
表 1. 参数
名称 类型 默认值 可选 描述

computePoolSelector

字符串

不适用

用于选择运行 GraphSAGE 节点嵌入预测作业的计算池的选择器。

configuration

映射

{}

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

对于此算法,如果输入图较大或模型较深,我们建议使用 GPU 计算池;否则,可能可以使用 CPU 计算池。

配置映射包含以下三个条目。

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

nodeTables

节点表列表。

relationshipTables

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

请注意,为了让 GraphSAGE 正确传播节点嵌入的更新,每种类型的节点必须至少是某种关系类型的目标。orientation 参数对于为仅作为关系源的节点类型添加反向关系(使用“REVERSE”或“UNDIRECTED”方向)非常有用。

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

modelname

字符串

不适用

要使用的已训练模型的名称

batchSize

整数

继承

每个批次中要预测的目标节点数量。如果未提供,将使用训练模型时使用的批量大小。

randomSeed

整数

随机整数

用于为所有计算随机性设定种子的数字

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

nodeLabel

字符串

不适用

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

outputTable

字符串

不适用

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

示例

在本示例中,我们将使用包含演员、导演、电影和流派的 IMDB 数据集。所有这些都与关键词相关联,我们将这些关键词用作节点的特征。它们通过关系连接,其中演员在电影中表演,导演执导电影。

我们有一个名为 imdb 的数据库,其中包含以下表:

  • actor,包含列 nodeidplot_keywords

  • movie,包含列 nodeidplot_keywords

  • director,包含列 nodeidplot_keywords

  • acted_in,包含列 sourcenodeidtargetnodeid,分别表示 actormovie 节点 ID

  • directed_in,包含列 sourcenodeidtargetnodeid,分别表示 directormovie 节点 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]
© . All rights reserved.