torch_geometric.nn.models.SignedGCN

class SignedGCN(in_channels: int, hidden_channels: int, num_layers: int, lamb: float = 5, bias: bool = True)[source]

Bases: Module

来自“Signed Graph Convolutional Network”论文的签名图卷积网络模型。在内部,该模块使用torch_geometric.nn.conv.SignedConv操作符。

Parameters:
  • in_channels (int) – Size of each input sample.

  • hidden_channels (int) – Size of each hidden sample.

  • num_layers (int) – Number of layers.

  • lamb (float, optional) – 平衡整体目标的贡献。(默认: 5)

  • bias (bool, 可选) – 如果设置为 False,所有层将不会学习附加的偏置。(默认值:True

forward(x: Tensor, pos_edge_index: Tensor, neg_edge_index: Tensor) Tensor[source]

基于正边pos_edge_index和负边neg_edge_index计算节点嵌入z

Parameters:
Return type:

Tensor

reset_parameters()[source]

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

split_edges(edge_index: Tensor, test_ratio: float = 0.2) Tuple[Tensor, Tensor][source]

将边 edge_index 分割为训练边和测试边。

Parameters:
  • edge_index (LongTensor) – 边的索引。

  • test_ratio (float, optional) – 测试边的比例。 (默认值: 0.2)

Return type:

Tuple[Tensor, Tensor]

create_spectral_features(pos_edge_index: Tensor, neg_edge_index: Tensor, num_nodes: Optional[int] = None) Tensor[source]

基于正边和负边创建in_channels频谱节点特征。

Parameters:
  • pos_edge_index (LongTensor) – 正边索引。

  • neg_edge_index (LongTensor) – 负边索引。

  • num_nodes (int, optional) – 节点的数量, max_val + 1pos_edge_indexneg_edge_index。 (默认: None)

Return type:

Tensor

discriminate(z: Tensor, edge_index: Tensor) Tensor[source]

给定节点嵌入 z,将节点对 edge_index 之间的链接关系分类为正向、负向或不存在。

Parameters:
Return type:

Tensor

nll_loss(z: Tensor, pos_edge_index: Tensor, neg_edge_index: Tensor) Tensor[source]

基于节点嵌入 z、正边 pos_edge_index 和负边 neg_edge_index 计算判别器损失。

Parameters:
Return type:

Tensor

pos_embedding_loss(z: Tensor, pos_edge_index: Tensor) Tensor[source]

计算正节点对和采样的非节点对之间的三元组损失。

Parameters:
Return type:

Tensor

neg_embedding_loss(z: Tensor, neg_edge_index: Tensor) Tensor[source]

计算负节点对和采样的非节点对之间的三元组损失。

Parameters:
Return type:

Tensor

loss(z: Tensor, pos_edge_index: Tensor, neg_edge_index: Tensor) Tensor[source]

计算总体目标。

Parameters:
Return type:

Tensor

test(z: Tensor, pos_edge_index: Tensor, neg_edge_index: Tensor) Tuple[float, float][source]

通过计算AUC和F1分数来评估正负测试边上的节点嵌入z

Parameters:
Return type:

Tuple[float, float]