This PR adds a new field called mem_dict (short for memberships dictionary) to instances of SimplicialComplexData that enables tracking which set of lifters each cell is generated from. It also adds the option to use the memberships as cell features that the EMPSN can train on.
Example
Assume we specify the graph lift as a combination of identity, functional_group and ring lifts. The resulting CC will include cells that were generated by each kind of graph lifter. Let's say we have a cell [0,1,2] that is a functional group, but it is not a ring nor is it present in the original graph (so it is not generated by the identity lift either). Then, its mem_dict entry will be [False, True, False]. Multiple values can be True, for example if a cell is a functional group as well as a ring.
Details
With this PR, the interface of all lifters changed from outputting list[list[int]] to set[frozenset[int]].
A new script argument called initial_features was added, which can either be node (use node features), mem (use membership features) or both (use both).
Changes
This PR adds a new field called
mem_dict
(short for memberships dictionary) to instances ofSimplicialComplexData
that enables tracking which set of lifters each cell is generated from. It also adds the option to use the memberships as cell features that theEMPSN
can train on.Example
Assume we specify the graph lift as a combination of
identity
,functional_group
andring
lifts. The resulting CC will include cells that were generated by each kind of graph lifter. Let's say we have a cell[0,1,2]
that is a functional group, but it is not a ring nor is it present in the original graph (so it is not generated by the identity lift either). Then, itsmem_dict
entry will be[False, True, False]
. Multiple values can beTrue
, for example if a cell is a functional group as well as a ring.Details
list[list[int]]
toset[frozenset[int]]
.initial_features
was added, which can either benode
(use node features),mem
(use membership features) orboth
(use both).