FeatureStore is a PyTorch Geometric interface or object for storing and retrieving node features from a remote backend. It separates feature storage from graph structure, which is handled by GraphStore, so graph-learning datasets can scale beyond local memory. section 7.9
A remote FeatureStore implementation typically handles:
- Connecting to a database that stores node features, such as a key-value database. section 7.9
- Implementing CRUD operations for feature data. section 7.9
- Serving features to a sampler and NodeLoader during mini-batch training. section 7.9
- Managing large, varying-sized, and differently typed node features while preserving efficiency and correctness. section 7.9.1
GeoGrid remote feature storage
GeoGrid stores graph structure in Neo4J and node features such as location type and historical traffic data in RocksDB. Its FeatureStore implementation requires secure database integration, CRUD behavior, and testing across varying feature sizes and types. section 7.9.1
Listing 7.3 Loader object using remote backend
loader = NodeLoader(
data=(feature_store, graph_store),
node_sampler=node_sampler,
batch_size=20,
input_nodes='paper',
)
for batch in loader:
<training loop>
Use a FeatureStore together with a GraphStore as the NodeLoader data source, then let a node sampler produce batches for the training loop. section 7.9
