Before it
Static embeddings like word2vec and GloVe were the standard input layer.
The problem
One vector per word cannot represent sense, syntax or reference, all of which depend on context.
What it introduced
Run a deep bidirectional LSTM language model and use its internal layers as the word representation.
Why it matters
It broke the static-embedding era and showed that a pretrained language model is a general-purpose feature extractor.
What modern models inherit
Contextual representations, now simply what a model's hidden states are.
What came next
BERT replaced the LSTM with a Transformer encoder months later.