gammagl.layers.conv.ieHGCNConv¶
- class ieHGCNConv(in_channels, out_channels, attn_channels, metadata, batchnorm=False, add_bias=False, activation=<function elu>, dropout_rate=0.0)[source]¶
ie-HGCN from paper Interpretable and Efficient Heterogeneous Graph Convolutional Network.
The core part of ie-HGCN, the calculating flow of projection, object-level aggregation and type-level aggregation in a specific type block.
Projection
\[ \begin{align}\begin{aligned}Y^{Self-\Omega }=H^{\Omega} \cdot W^{Self-\Omega} \quad (1)-1\\Y^{\Gamma - \Omega}=H^{\Gamma} \cdot W^{\Gamma - \Omega} , \Gamma \in N_{\Omega} \quad (1)-2\end{aligned}\end{align} \]Object-level Aggregation
\[ \begin{align}\begin{aligned}Z^{ Self - \Omega } = Y^{ Self - \Omega}=H^{\Omega} \cdot W^{Self - \Omega} \quad (2)-1\\Z^{\Gamma - \Omega}=\hat{A}^{\Omega-\Gamma} \cdot Y^{\Gamma - \Omega} = \hat{A}^{\Omega-\Gamma} \cdot H^{\Gamma} \cdot W^{\Gamma - \Omega} \quad (2)-2\end{aligned}\end{align} \]Type-level Aggregation
\[ \begin{align}\begin{aligned}Q^{\Omega}=Z^{Self-\Omega} \cdot W_q^{\Omega} \quad (3)-1\\K^{Self-\Omega}=Z^{Self -\Omega} \cdot W_{k}^{\Omega} \quad (3)-2\\K^{\Gamma - \Omega}=Z^{\Gamma - \Omega} \cdot W_{k}^{\Omega}, \quad \Gamma \in N_{\Omega} \quad (3)-3\end{aligned}\end{align} \]\[ \begin{align}\begin{aligned}e^{Self-\Omega}={ELU} ([K^{ Self-\Omega} \| Q^{\Omega}] \cdot w_{a}^{\Omega}) \quad (4)-1\\e^{\Gamma - \Omega}={ELU} ([K^{\Gamma - \Omega} \| Q^{\Omega}] \cdot w_{a}^{\Omega}), \Gamma \in N_{\Omega} \quad (4)-2\end{aligned}\end{align} \]\[\begin{split}[a^{Self-\Omega}\|a^{1 - \Omega}\| \ldots . a^{\Gamma - \Omega}\|\ldots\| a^{|N_{\Omega}| - \Omega}] \\ = {softmax}([e^{Self - \Omega}\|e^{1 - \Omega}\| \ldots\|e^{\Gamma - \Omega}\| \ldots \| e^{|N_{\Omega}| - \Omega}]) \quad (5)\end{split}\]\[H_{i,:}^{\Omega \prime}=\sigma(a_{i}^{Self-\Omega} \cdot Z_{i,:}^{Self-\Omega}+\sum_{\Gamma \in N_{\Omega}} a_{i}^{\Gamma - \Omega} \cdot Z_{i,:}^{\Gamma - \Omega}) \quad (6)\]- Parameters:
in_channels (int, dict) – input feature dimensions of different input nodes
out_channels (int) – number of the target type node
attn_channels (int) – the dimension of attention vector
metadata (tuple[list[str], list[tuple[str, str, str]]]) – The metadata of the heterogeneous graph, i.e. its node and edge types given by a list of strings and a list of string triplets, respectively. See
gammagl.data.HeteroGraph.metadatafor more information.batchnorm (bool) – whether we need batchnorm
add_bias (bool) – whether we need bias vector
activation (nn.module) – the activation function
dropout_rate (float) – the drop out rate