torch_geometric.nn.models.Node2Vec

class Node2Vec(edge_index: Tensor, embedding_dim: int, walk_length: int, context_size: int, walks_per_node: int = 1, p: float = 1.0, q: float = 1.0, num_negative_samples: int = 1, num_nodes: Optional[int] = None, sparse: bool = False)[source]

Bases: Module

来自“node2vec: Scalable Feature Learning for Networks”论文的Node2Vec模型,其中在给定图中采样长度为walk_length的随机游走,并通过负采样优化学习节点嵌入。

注意

有关使用Node2Vec的示例,请参见examples/node2vec.py

Parameters:
  • edge_index (torch.Tensor) – The edge indices.

  • embedding_dim (int) – 每个嵌入向量的大小。

  • walk_length (int) – 步长。

  • context_size (int) – 实际考虑的上下文大小,用于正样本。此参数通过在不同源节点之间重用样本来提高有效采样率。

  • walks_per_node (int, optional) – 每个节点采样的游走次数。(默认值:1

  • p (float, optional) – 在游走中立即重新访问一个节点的概率。(默认值: 1)

  • q (float, optional) – 控制参数,用于在广度优先策略和深度优先策略之间进行插值(默认值:1

  • num_negative_samples (int, optional) – 每个正样本使用的负样本数量。(默认: 1)

  • num_nodes (int, optional) – 节点的数量。(默认值:None

  • sparse (bool, 可选) – 如果设置为 True,权重矩阵的梯度将是稀疏的。(默认值:False

forward(batch: Optional[Tensor] = None) Tensor[source]

返回batch中节点的嵌入。

Return type:

Tensor

reset_parameters()[source]

重置模块的所有可学习参数。

loss(pos_rw: Tensor, neg_rw: Tensor) Tensor[source]

计算给定正负随机游走的损失。

Return type:

Tensor

test(train_z: Tensor, train_y: Tensor, test_z: Tensor, test_y: Tensor, solver: str = 'lbfgs', *args, **kwargs) float[source]

通过逻辑回归下游任务评估潜在空间的质量。

Return type:

float