torch_geometric_signed_directed.nn.signed.SDGNN

Classes

SDRLayer

The signed directed relationship layer from

SDGNN

The SDGNN model from "SDGNN: Learning Node Representation for Signed Directed Networks" paper.

Module Contents

class SDRLayer(in_dim: int = 20, out_dim: int = 20, edge_lists: list = [], **kwargs)

Bases: torch.nn.Module

The signed directed relationship layer from “SDGNN: Learning Node Representation for Signed Directed Networks” paper.

Args:

in_dim (int): Dimenson of input features. Defaults to 20. out_dim (int): Dimenson of output features. Defaults to 20. edge_lists (list): Edgelist for current motifs.

edge_lists = []
aggs = []
mlp_layer
reset_parameters()
forward(x: torch.FloatTensor) torch.FloatTensor
class SDGNN(node_num: int, edge_index_s, in_dim: int = 20, out_dim: int = 20, layer_num: int = 2, init_emb: torch.FloatTensor = None, init_emb_grad: bool = True, lamb_d: float = 5.0, lamb_t: float = 1.0, **kwargs)

Bases: torch.nn.Module

The SDGNN model from “SDGNN: Learning Node Representation for Signed Directed Networks” paper.

Parameters:
  • node_num (int, optional) – The number of nodes.

  • edge_index_s (LongTensor) – The edgelist with sign. (e.g., torch.LongTensor([[0, 1, -1], [0, 2, 1]]) )

  • in_dim (int, optional) – Size of each input sample features. Defaults to 20.

  • out_dim (int) – Size of each hidden embeddings. Defaults to 20.

  • layer_num (int, optional) – Number of layers. Defaults to 2.

  • init_emb – (FloatTensor, optional): The initial embeddings. Defaults to None, which will use TSVD as initial embeddings.

  • init_emb_grad (bool optional) – Whether to set the initial embeddings to be trainable. (default: False)

  • lamb_d (float, optional) – Balances the direction loss contributions of the overall objective. (default: 1.0)

  • lamb_t (float, optional) – Balances the triangle loss contributions of the overall objective. (default: 1.0)

node_num
in_dim = 20
out_dim = 20
layer_num = 2
device
lamb_d = 5.0
lamb_t = 1.0
pos_edge_index
neg_edge_index
x
adj_lists
edge_lists
layers = []
loss_sign
loss_direction
loss_tri
reset_parameters()
map_adj_to_edges(adj_list: List) torch.LongTensor
get_features(u: int, v: int, r_edgelists: List) Tuple[int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int]
build_adj_lists(edge_index_s: torch.LongTensor) List
forward() torch.FloatTensor
loss()