Transfer Learning: retrospectiva, abordagens e aplicações em NLP

O que é, onde achar e o básico que você precisa saber sobre Transfer Learning em NLP

Thomas Roquetti
SiDi NLP
8 min readApr 25, 2023

--

Photo by Andrea De Santis on Unsplash

Se você já ouviu ou estudou sobre modelos pré treinados, já teve contato com Transfer Learning (TL).

Hoje, TL é uma parte fundamental de modelos de linguagem como Embeddings from Language Models (ELMo), Bidirectional Encoder representations from Transformers (BERT) e Text-to-Text Transfer Transformer (T5) — Os quais podem ser usados para qualquer tarefa decorrente de Processamento de Linguagem Natural (NLP).

Neste artigo, iremos entender o que é Transfer Learning, ver quais áreas existem para NLP e visitar rapidamente cada uma delas. O objetivo é introduzir os campos que o Transfer Learning aborda dentro de NLP e informar o leitor sobre a existência desses campos.

O que é Transfer Learning?

Transfer Learning é um método de machine learning onde um modelo desenvolvido para uma tarefa específica é reutilizado como ponto de início para a geração de um novo modelo em outra tarefa.

Transfer learning and domain adaptation refer to the situation where what has been learned in one setting … is exploited to improve generalization in another setting — Page 526, Deep Learning, 2016

É uma abordagem comum em Deep Learning, embora não exclusiva, e muito utilizada em tarefas de NLP já que desenvolver do zero grandes redes neurais têm um grande custo computacional e de tempo. Além do que, comparado com modelos treinados do zero, modelos pré treinados têm mostrado resultados muito melhores em diversas tarefas de NLP.

Transfer learning is the improvement of learning in a new task through the transfer of knowledge from a related task that has already been learned.

— Chapter 11: Transfer Learning, Handbook of Research on Machine Learning Applications, 2009

NLP é uma poderosa ferramenta, mas não é nada incomum na hora de criar um novo modelo, esbarrar em problemas de falta de dados ou se deparar com um modelo que não generaliza bem o suficiente. Nesse sentido, Transfer Learning nos permite resolver esses problemas.

Por que é útil e como se compara ao método tradicional?

Fig: 1.1 Aprendizado supervisionado tradicional

Suponha que estamos fazendo um modelo para a tarefa de análise de sentimentos em um domínio de “avaliações de filmes”. Temos dados suficientes para a tarefa e treinamos um modelo que obtém ótimos resultados. Se aplicarmos esse modelo em outro conjunto de dados do mesmo domínio, esperamos ótimos resultados também.

Agora, se quisermos usar esse modelo de análise de sentimento para aplicar em um outro domínio, no domínio de “avaliações de produtos cosméticos”, é bem provável que o modelo já não tenha um desempenho tão bom quanto antes.

Se usarmos o paradigma tradicional apresentado na figura 1.1, vamos precisar coletar um córpus anotado e treinar um novo modelo.

Mas e se não tivermos córpus suficiente nesse novo domínio e não pudermos fazer um? E se quisermos adicionar uma outra classe no modelo , como o caso de neutros? E se não temos recursos computacionais suficientes ou tempo suficiente pra treinar um novo modelo?

Transfer Learning nos permite lidar com esses cenários trazendo o conhecimento que adquirimos no domínio/tarefa anterior para aplicarmos em uma nova.

Vamos dar uma definição formal para TL. Dado um domínio fonte Df, uma tarefa correspondente Tf, um domínio alvo Da e uma tarefa alvo Ta, o objetivo da transferência de aprendizado é nos possibilitar aprender a distribuição da probabilidade condicional do alvo P(Ya|Xa) em Da, com a informação adquirida em Df e onde Df≠Da ou Tf≠Ta

Fig:1.2 Transferência de aprendizado

Áreas de Transfer Learning em NLP

Iremos explorar agora as diferentes áreas de TL para NLP propostas por Sebastian Rude (2019) que foram adaptadas da taxonomia geral de TL por Pan e Yang (2010)

Fig: 1.3 Diferentes abordagens de aprendizado por transferência https://ruder.io/thesis

Como visto na imagem acima, temos quatro áreas de TL separados em dois grupos, Inductive e Transductive TL.

Inductive TL vs Transductive TL

In the inductive transfer learning setting, the target task is different from the source task, no matter when the source and target domains are the same or not — page 3, Pan e Yang (2010)

No caso de inductive transfer learning, o objetivo é aprender uma tarefa nova, não importando se os domínios são os mesmos ou não. Os dados do domínio alvo Da precisam estar rotulados para induzir o modelo preditivo a funcionar no novo domínio.

Aqui vai a definição formal do inductive. Dado um domínio fonte Df e uma tarefa fonte Tf, um Da e uma tarefa alvo Ta, o inductive TL tem como objetivo melhorar o aprendizado da função preditora alvo Ff(.) em Da usando o conhecimento adquirido em Df e Tf, onde Tf≠Ta.

In the transductive transfer learning setting, the source and target tasks are the same, while the source and target domains are different — page 4, Pan e Yang (2010)

Já no transductive transfer learning queremos aprender domínios novos para a mesma tarefa. Uma característica importante é que não temos dados rotulados no Da, enquanto muitos dados do domínio fonte Df estão anotados.

Em outras palavras, dado um domínio fonte Df e uma tarefa de aprendizado correspondente Tf, um domínio alvo Da e uma tarefa Ta, o transductive TL tem como objetivo melhorar o aprendizado da função preditora Ff(.) em Da usando o conhecimento adquirido em Df e Tf, onde Df≠Da e Ta = Tf. Além disso, no momento do treinamento, pelo menos parte dos dados Da não podem estar rotulados.

Agora que demos uma passada rápida na definição dessas duas categorias, vamos abordar alguns dos tipos e suas aplicações em NLP.

E é claro: se quiser saber mais profundamente sobre as categorias Transductive e Inductive leia os trabalhos de Sebastian Rude (2019) e Pan e Yang (2010)

Domain Adaptation

Fig:1.4 exemplo de Domain Adaptation

Vamos então começar com o Domain Adaptation. Como o nome diz, o nosso objetivo é adaptar um modelo feito para uma tarefa específica treinado em um domínio Df, que agora queremos adaptar o conhecimento que temos para um novo domínio Da. Lembrando que a tarefa permanece a mesma por se tratar de transductive learning.

Normalmente, os estudos de como adaptar um domínio são feitos com um único domínio fonte, mas há também estudos lidando com vários domínios fontes.

Os métodos e abordagens para adaptar o modelo a um domínio, a partir de um único domínio fonte podem ser divididos em:
- Abordagens de representação;
- Ponderação e seleção de dados;
- Abordagens de auto-rotulação.

Porém, vou limitar este artigo a apenas nomear a existência dessas divisões. É uma tarefa muito difícil explicar essas abordagens em poucas linhas, por isso incentivo mais uma vez: se quiser ver a fundo os métodos, onde já foram aplicados e como são aplicados, sugiro que visite o trabalho de Sebastian Rude (2019).

No trabalho de Sebastian Rude, além dos três métodos acima, você pode encontrar também trabalhos sobre adaptação de domínio de múltiplos domínios fonte.

Cross-Lingual Transfer Learning

Photo by Brett Jordan on Unsplash

No Cross-lingual Transfer Learning, o objetivo é usar modelos e recursos em uma língua e transferí-los para outra lingua, mantendo a mesma tarefa.

Por exemplo: nos modelos zero-shot cross-lingual document classification, zero-shot aqui se refere a zero-shot learning — um paradigma onde o modelo aprende a reconhecer classes às quais não tinha sido apresentado antes e document classification é a tarefa de classificar um documento de acordo com certas classes, essas classes podendo ser, por exemplo, o tipo de texto. Nesta tarefa, o objetivo é treinar um modelo em uma língua e usá-lo para classificar o documento escrito em outra língua.

As técnicas de Cross-Lingual Transfer Learning são muito relevantes em cenários que exploram idiomas com poucos recursos/dados para serem trabalhados, agora, podem trazer conhecimento transferido de outras línguas que já tem bastante recursos, como o inglês.

Multi-Task Learning

Photo by Mindspace Studio on Unsplash

Em aprendizado de máquina, se gerarmos um modelo para uma tarefa alvo, vamos dizer análise de sentimento, fazemos esse modelo apenas para essa tarefa. Mas será se não é possível que, ao gerar um modelo que performe múltiplas tarefas, possam surgir informações que nos ajudem a generalizar melhor a nosssa tarefa de análise de sentimento, fazendo com que obtenhamos resultados melhores?

Essa abordagem é chamada de Multi-Task Learning (MTL)

Multitask Learning is an inductive transfer method that improves generalization by learning extra tasks in parallel with the main task while using a shared representation; what is learned for the extra tasks can help the main task be learned better. — page 172, Multitask Learning, 1997

O interessante de MTL vem de usar os mesmos paramêtros para tarefas diferentes, o que nos dá duas principais formas de fazer isso.

Hard parameter sharing:
Esse é o método mais comum usado em MTL. Nesse método, as hidden layers são compartilhadas entre todas as tarefas enquanto as layers específicas para a tarefa são separadas.

Fig:1.6 Hard parameter sharing

Soft parameter sharing:
Nessa abordagem, cada tarefa tem seu próprio modelo e paramêtros. A distância entre os paramêtros é então regularizada para encorajá-los a serem similares.

Fig:1.7 Soft parameter sharing

O MTL não serve apenas para melhorar a performance de uma tarefa específica em base de várias tarefas auxiliares. Na verdade, ela funciona bem também quando o objetivo é realizar várias tarefas em paralelo.

Mas, no cenário de ter uma tarefa alvo com o objetivo de aumentar o seu desempenho, vale ressaltar que existem fatores para escolher tarefas auxiliares, sendo um deles o quão relacionadas elas são, como por exemplo: saber se a tarefa principal e a tarefa secundária compartilham as mesmas features (informação de baixo nível) para fazer predições.

Sequential Transfer Learning

Photo by Eric Krull on Unsplash

Agora chegamos no famigerado Sequential Transfer Learning (STL), essa área envolve transferir conhecimento com uma sequência de passos, onde a tarefa alvo e a fonte não necessariamente são similares.

Diferente do MTL onde as tarefas são treinadas juntas, o STL consiste em dois estágios. Na primeira fase (pré treinamento), o modelo é treinado nos dados fontes, e na segunda fase (adaptação) o modelo é treinado na tarefa alvo.

O STL é um tema muito interessante, e é nele que iremos focar na segunda parte desta série. Assim, teremos a oportunidade de um mergulho num tópico que se encontra em alta e é infinitamente interessante.

Não deixe de acompanhar!

Agradecimentos

Francisca Ysabelle Manríquez pela revisão do texto

--

--