ELMo (embeddings from language model) é um método de incorporação de palavras para representar uma sequência de palavras como uma sequência correspondente de vetores. Foi criado por pesquisadores do Allen Institute for Artificial Intelligence e da University of Washington, e lançado pela primeira vez em fevereiro de 2018. ELMo é um LSTM bidirecional que recebe entradas no nível de caracteres e produz incorporações no nível de palavras, treinado em um corpus de cerca de 30 milhões de frases e 1 bilhão de palavras.
A arquitetura do ELMo alcança uma compreensão contextual dos tokens. A representação contextual profunda de palavras é útil para muitas tarefas de processamento de linguagem natural, como resolução de correferência e resolução de polissemia. O ELMo foi historicamente importante como pioneiro do pré-treinamento generativo autossupervisionado seguido de ajuste fino, no qual um grande modelo é treinado para reproduzir um grande corpus e, em seguida, é aumentado com pesos adicionais específicos da tarefa e ajustado em dados supervisionados da tarefa. Foi um passo instrumental na evolução em direção à modelagem de linguagem baseada em transformadores.
Arquitetura
O ELMo é um LSTM bidirecional em múltiplas camadas sobre uma camada de incorporação de tokens. A saída de todos os LSTMs concatenados consiste na incorporação do token. A sequência de texto de entrada é primeiro mapeada por uma camada de incorporação em uma sequência de vetores. Então, duas partes são executadas em paralelo sobre ela. A parte direta é um LSTM de 2 camadas com 4096 unidades e projeções de 512 dimensões, com uma conexão residual da primeira para a segunda camada. A parte reversa tem a mesma arquitetura, mas processa a sequência de trás para frente. As saídas de todos os 5 componentes (camada de incorporação, duas camadas LSTM diretas e duas camadas LSTM reversas) são concatenadas e multiplicadas por uma matriz linear (uma matriz de projeção) para produzir uma representação de 512 dimensões por token de entrada.
O ELMo foi pré-treinado em um corpus de texto de 1 bilhão de palavras. A parte direta é treinada prevendo repetidamente o próximo token, e a parte reversa é treinada prevendo repetidamente o token anterior. Após o pré-treinamento, os parâmetros do ELMo são congelados, exceto a matriz de projeção, que pode ser ajustada para minimizar a perda em tarefas específicas de linguagem. Este é um exemplo inicial do paradigma de pré-treinamento e ajuste fino. O artigo original demonstrou isso melhorando o estado da arte em seis tarefas de benchmark de NLP.
Representação contextual de palavras
A arquitetura do ELMo alcança uma compreensão contextual dos tokens. Por exemplo, o primeiro LSTM direto processa cada token de entrada no contexto de todos os tokens anteriores, e o primeiro LSTM reverso processa cada token no contexto de todos os tokens subsequentes. O segundo LSTM direto então incorpora esses contextos para contextualizar ainda mais cada token.
A representação contextual profunda de palavras é útil para muitas tarefas de processamento de linguagem natural, como resolução de correferência e resolução de polissemia. Por exemplo, considere a frase "Ela foi ao banco para sacar dinheiro". Para representar o token "banco", o modelo deve resolver sua polissemia no contexto. O primeiro LSTM direto processa "banco" no contexto de "Ela foi ao", o que permite representar a palavra como um local para onde o sujeito está indo. O primeiro LSTM reverso processa "banco" no contexto de "para sacar dinheiro", o que permite desambiguar a palavra como referente a uma instituição financeira. O segundo LSTM direto pode então processar "banco" usando o vetor de representação fornecido pelo primeiro LSTM reverso, permitindo assim representá-lo como uma instituição financeira para onde o sujeito está indo.
Contexto histórico
O ELMo é um elo na evolução histórica da modelagem de linguagem. Considere um problema simples de classificação de documentos, em que se deseja atribuir um rótulo (por exemplo, "spam", "não spam", "política", "esportes") a um determinado texto. A abordagem mais simples é a abordagem de "saco de palavras", em que cada palavra no documento é tratada independentemente, e sua frequência é usada como um recurso para a classificação. Isso era computacionalmente barato, mas ignorava a ordem das palavras e seu contexto na frase. GloVe e Word2Vec melhoraram isso aprendendo representações vetoriais fixas (incorporações) para palavras com base em seus padrões de coocorrência em grandes corpora de texto.
Como o BERT (mas ao contrário de métodos de "saco de palavras" como Word2Vec e GloVe), as incorporações de palavras do ELMo são sensíveis ao contexto, produzindo representações diferentes para palavras com a mesma grafia. Foi treinado em um corpus de cerca de 30 milhões de frases e 1 bilhão de palavras. Anteriormente, o LSTM bidirecional era usado para representação contextual de palavras, mas o ELMo aplicou a ideia em grande escala, melhorando o desempenho do estado da arte.
Após a publicação de 2017 da arquitetura de transformador, a arquitetura do ELMo foi alterada de um LSTM bidirecional em múltiplas camadas para um codificador de transformador, dando origem ao BERT. O BERT tem um fluxo de trabalho semelhante de pré-treinamento e ajuste fino, mas usa um transformador para um treinamento mais paralelizável. A influência do ELMo também se estendeu a outros desenvolvimentos de modelos de linguagem grandes, pois demonstrou o poder do pré-treinamento em grandes corpora seguido de ajuste fino específico da tarefa, um paradigma que se tornou central para desenvolvimentos posteriores, como os da OpenAI e Google DeepMind.
Contexto histórico
O ELMo é um elo em uma evolução histórica da modelagem de linguagem. Considere um problema simples de classificação de documentos, no qual queremos atribuir um rótulo (por exemplo, "spam", "não spam", "política", "esportes") a um determinado texto. A abordagem mais simples é a de "saco de palavras", onde cada palavra no documento é tratada de forma independente, e sua frequência é usada como característica para classificação. Isso era computacionalmente barato, mas ignorava a ordem das palavras e seu contexto na frase. GloVe e Word2Vec aprimoraram isso aprendendo representações vetoriais fixas (incorporações) para palavras com base em seus padrões de coocorrência em grandes corpora de texto.
Como o BERT (mas ao contrário de métodos "saco de palavras", como Word2Vec e GloVe), as incorporações de palavras do ELMo são sensíveis ao contexto, produzindo representações diferentes para palavras que compartilham a mesma grafia. Foi treinado em um corpus de cerca de 30 milhões de frases e 1 bilhão de palavras. Anteriormente, o LSTM bidirecional era usado para representação contextual de palavras, mas o ELMo aplicou a ideia em grande escala, alcançando desempenho de estado da arte.
Após a publicação de 2017 da arquitetura Transformer (architecture), a arquitetura do ELMo foi alterada de um LSTM bidirecional em múltiplas camadas para um codificador de transformador, dando origem ao BERT. O BERT tem um fluxo de trabalho semelhante de pré-treinamento e ajuste fino, mas usa um transformador com implicações para um treinamento mais paralelizável. A influência do ELMo também se estendeu a outros modelos de linguagem de grande porte, demonstrando o poder do pré-treinamento em grandes corpora seguido de ajuste fino, um paradigma que se tornou central para modelos posteriores, como os da OpenAI e do Google DeepMind.
Legado
O lançamento do ELMo em fevereiro de 2018 marcou uma mudança no processamento de linguagem natural. Ao fornecer representações contextuais profundas, o ELMo melhorou o desempenho em tarefas como resposta a perguntas, análise de sentimento e reconhecimento de entidades nomeadas. Seu sucesso estimulou novas pesquisas em abordagens de Deep learning, levando a avanços rápidos em Artificial intelligence. O ELMo é frequentemente citado ao lado do BERT como um modelo fundamental na era moderna do Machine learning para texto.
O método também destacou a importância de arquiteturas de Neural network para linguagem, um conceito que foi posteriormente refinado em modelos de Transformer (architecture). O manuseio de entrada no nível de caracteres do ELMo tornou-o robusto a palavras fora do vocabulário, um recurso que influenciou sistemas subsequentes. Embora o próprio ELMo não seja mais amplamente usado em produção, seus princípios permanecem incorporados em muitos sistemas contemporâneos de NLP.
Referências
- Peters, M. E., et al. (2018). ELMo: Deep contextualized word representations. Proceedings of NAACL-HLT.
- Allen Institute for Artificial Intelligence. (2018). ELMo: Embeddings from Language Models. Notas oficiais de lançamento.