Encoders

Those are neural network encoders. They can be GNNs (tgn, graph_attention, etc.) in the case where the graph structure is leveraged, but can also be a simple linear layer like the one used in Velox (none) or a more complex custom MLP (custom_mlp). The job of encoders is to compute the node and edge embeddings given the next step to the decoder and objective to compute the loss.

hetero_graph_transformer is a Heterogeneous Graph Transformer (HGT): each node type and edge type gets its own attention parameters. It is not available on OpTC.

  • tgn
    • tgn_memory_dim: int
    • tgn_time_dim: int
    • use_node_feats_in_gnn: bool
    • use_memory: bool
    • use_time_order_encoding: bool
    • project_src_dst: bool
    • mode: str
    • use_residual_norm: bool (1)
  • graph_attention
    • activation: str
    • num_heads: int
    • concat: bool
    • flow: str
    • num_layers: int
  • sage
    • activation: str
    • num_layers: int
  • gat
    • activation: str
    • num_heads: int
    • concat: bool
    • flow: str
    • num_layers: int
  • gin
    • activation: str
    • num_layers: int
  • rgcn
    • activation: str
    • num_layers: int
  • rgcn_per_type
    • activation: str
    • num_layers: int
  • sum_aggregation
  • rcaid_gat
  • magic_gat
    • num_layers: int
    • num_heads: int
    • negative_slope: float
    • alpha_l: float
    • activation: str
  • glstm
  • custom_mlp
    • architecture_str: str
  • none
  • hetero_graph_transformer
    • activation: str (2)
    • num_heads: int (3)
    • num_layers: int (4)
  1. Adds the projected input node features to the output of the GNN wrapped by TGN, followed by dropout and LayerNorm.
  2. Unused: the input projections always use ReLU.
  3. Number of attention heads of each Heterogeneous Graph Transformer (HGT) layer.
  4. Number of HGT layers. Each node and edge type gets its own parameters; not available on OpTC.