Implements the AllSet framework of Chien et al. (2022) as one complete
node-to-edge-to-node propagation layer. model = "deepsets" uses Eq. 7,
an MLP before and after each multiset sum. model = "transformer" uses
Eq. 8: pooling by multihead attention from a learned query, followed by
residual MLPs and layer normalization. Both directions have independent
learned multiset functions and are permutation invariant.
Usage
hg_allset(
hg,
labels,
features = "incidence",
model = c("deepsets", "transformer"),
hidden = 128L,
heads = 4L,
epochs = 200L,
lr = 0.001,
weight_decay = 5e-04,
dropout = 0.5,
validation = 0.1,
seed = 1L,
verbose = FALSE
)Arguments
- hg
A
text_hypergraph()(or any hypernetsnet_hg), dense or sparse.- labels
The known labels: a named character vector (names are node identifiers, values class labels) or a tidy data.frame with a
nodecolumn and alabel,clusterorpredictedcolumn. At least two classes.- features
Vertex feature matrix, one row per node in
hgnode order (rownames must match the node names), e.g. sbert embeddings. The default"incidence"uses the hypergraph's own weighted incidence rows (tf-idf bag-of-words features for anodes = "doc"text hypergraph).- model
"deepsets"for AllDeepSets or"transformer"for AllSetTransformer.Hidden width (default 128).
- heads
Number of attention heads for AllSetTransformer.
hiddenmust be divisible byheads.- epochs
Training epochs (default 200).
- lr, weight_decay
Adam learning rate and L2 penalty.
- dropout
Hidden-layer dropout.
- validation
Fraction of labeled nodes held out to select an epoch.
- seed
Reproducible R and torch seed.
- verbose
Message loss every 20 epochs.
Value
A prediction data.frame in the same format as hg_neural(), with
training history and the AllSet model name attached.