ELMo & ULMFiT (2018) › The Problem

Michael BrenndoerferJune 17, 20253 min read
History of Language AIAll chapters
Part 5 of 9Transformers & Pretraining
Chapter 57ELMo & ULMFiT (2018) › The Problem
Reading section 2 of 7 · The Problem · 3 minSection 2 of 7 · 3 min

Book contents

Section 2 of 7 · 3 min read

ELMo & ULMFiT (2018) › The ProblemOne section · Sections in this chapter2 / 7 ↓
Reading tools Definitions & inline links

Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.

Article links

Make inline references clickable

Prior to ELMo and ULMFiT, natural language processing systems faced fundamental challenges in transferring knowledge from pre-trained models to specific downstream tasks. Traditional approaches required training separate neural networks for each task, starting from random initialization and learning all linguistic patterns from task-specific labeled data. This approach was computationally expensive, data-hungry, and inefficient, as each model had to rediscover basic linguistic knowledge like syntax, morphology, and semantic relationships that existed across all tasks.

Word embeddings provided a partial solution by capturing some linguistic regularities in static vector representations. Methods like Word2Vec and GloVe learned embeddings from large text corpora that captured semantic and syntactic relationships, and these embeddings could be used as initialization for task-specific models. However, static embeddings had a critical limitation: they assigned the same vector representation to a word regardless of its context. The word "bank" would have identical embeddings whether it appeared in "river bank" or "investment bank," forcing downstream models to disambiguate meaning based solely on task-specific training data.

For many NLP tasks, this context-independence created fundamental limitations. In question answering, systems needed to understand that "bank" referred to financial institutions in some contexts and geographic features in others. In named entity recognition, words like "Washington" could refer to a person, a city, or a state depending on context. In semantic role labeling, the same verb might take different argument structures depending on its syntactic context. Static embeddings could not encode these contextual variations, limiting the effectiveness of transfer learning approaches that relied on them.

Training task-specific models from scratch required large amounts of labeled data for each application domain. Creating labeled datasets was expensive and time-consuming, requiring expert annotators to label thousands or tens of thousands of examples for each task. This requirement created barriers for applications in specialized domains, low-resource languages, or emerging use cases where labeled data was scarce. Even when labeled data was available, models trained from scratch needed to learn linguistic fundamentals that were universal across tasks, wasting capacity on knowledge that could potentially be transferred from unlabeled text.

Language models offered a potential solution, as they could be trained on massive unlabeled text corpora to learn general linguistic knowledge. However, the question of how to effectively use this knowledge for downstream tasks remained unresolved. Early attempts to use language model representations for downstream tasks showed limited success, as the architectures and training procedures were not designed with transfer learning in mind. The challenge was creating representations or fine-tuning procedures that could extract and transfer the rich linguistic knowledge learned during language model pre-training to diverse downstream applications.

The computational cost of training separate models for each task also created inefficiencies. Organizations building multiple NLP applications had to train and maintain separate neural networks for each use case, each requiring significant computational resources and engineering effort. This redundancy was particularly wasteful when many tasks shared underlying linguistic dependencies. A model performing sentiment analysis and another performing named entity recognition both needed to understand word meanings, sentence structure, and discourse relationships, yet they were typically trained independently without sharing this common knowledge.