Skip to content

[ENH] Implement the Informer Network in aeon/networks #2921

Open
@lucifer4073

Description

@lucifer4073

Describe the feature or idea you want to propose

The Informer network is a Transformer-based architecture for long sequence time-series forecasting. It introduces three main components: ProbSparse self-attention to reduce time and memory complexity to O(L log L), self-attention distilling to reduce sequence length across layers, and a generative-style decoder that predicts the output in a single forward step. These innovations make it highly scalable and effective for long-range forecasting tasks.

The method is proposed in the paper:
Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting
Zhou et al., AAAI 2021
arXiv:2012.07436

Describe your proposed solution

We propose to add a new class InformerNetwork under aeon.networks, inheriting from BaseDeepLearningNetwork. This class will implement the Informer architecture in TensorFlow. It will include methods to construct encoder and decoder stacks, embedding layers, and both full and ProbSparse attention mechanisms.

The main entry point will be the build_network() method which wires together the encoder-decoder components with the appropriate embeddings and projections. The class will be fully configurable with parameters like seq_len, label_len, out_len, d_model, attn, n_heads, dropout, and others. It should also support an optional output_attention flag.

class InformerNetwork(BaseDeepLearningNetwork):
    def build_network(self, input_shape, **kwargs):
        ...
        return inputs, outputs

The implementation will follow Aeon’s model conventions, including support for version control, dependency tracking, and input/output handling

Describe alternatives you've considered, if relevant

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature, improvement request or other non-bug code enhancement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions