- Documentos da API
- CLI
- Guias de integração
- Integração do Exchange com usuário do serviço do Azure
- Integração do Exchange com Autenticação de Aplicativo do Azure
- Automação em tempo real
- Como buscar dados para o Tableau com o Python
- Integração do Elasticsearch
- Integração do EWS auto-hospedado
- Estrutura de automação da UiPath
- Atividades do UiPath Marketplace
- Atividades oficiais da UiPath
- Blog
- Como as máquinas aprendem a entender as palavras: um guia para incorporações ao NLP
- Aprendizado baseado em solicitação com Transformers
- Efficient Transformers II: extração de conhecimento e ajustes finos
- Transformers eficientes I: mecanismos de atenção
- Modelagem de intenção hierárquica profunda não supervisionada: obtenção de valor sem dados de treinamento
- Corrigindo viés de anotação com Communications Mining
- Aprendizado ativo: melhores modelos de ML em menos tempo
- Está tudo nos números - avaliando o desempenho do modelo com métricas
- Por que a validação de modelos é importante
- Comparação do Communications Mining e do Google AutoML para inteligência de dados conversacional
Guia do desenvolvedor do Communications Mining
Como as máquinas aprendem a entender as palavras: um guia para incorporações ao NLP
Os algoritmos de aprendizado de máquina do Communications Mining são baseados em modelos de Transformer pré-treinados, que aprende representações semanticamente informativas de sequências de texto, conhecidas como incorporações. Ao longo dos últimos anos, os modelos do Transformer alcançaram resultados de ponta na maioria das tarefas de processamento de linguagem natural comum (NLP).
Mas como fizemos isso? O que levou o Transformer a ser o modelo preferido para incorporações de treinamento? Ao longo da última geração, as maiores melhorias no NLP foram devidos aos progressos no aprendizado de incorporações de texto pré-treinadas não supervisionadas. Neste post, examinamos o histórico dos métodos de incorporação e como eles melhoraram ao longo do tempo.
Este post vai
- Explique o que incorporações são e como são usadas em aplicativos NLP comuns.
- Apresente um histórico de métodos populares para incorporações de treinamento, incluindo métodos tradicionais como Word2vec e métodos modernos baseados em Transformer como BERT.
- Discutir os pontos fracos dos métodos de incorporação, e como eles podem ser abordados.
Imagine que temos um grande corpus de documentos nos quais queremos executar uma tarefa, como reconhecer a intenção do alto-falante. Os métodos de NLP mais modernos e de última geração usam abordagens baseadas em rede neural. Elas primeiro codificam cada palavra como um vetor de números, conhecido como incorporação. A rede neural pode então usar essas incorporações como entrada para executar a tarefa fornecida.
Suponha que o corpus contenha 10.000 palavras exclusivas. É possível codificar cada palavra usando uma incorporação única (ou seja, um vetor esparso de 10.000 dimensões com 0s em todos os lugares, exceto na única posição correspondente à palavra, na qual o valor é 1), por exemplo,
'a' = [1, 0, 0, ..., 0, 0]
...
'my' = [0, ..., 0, 1, 0, ..., 0]
...
'you' = [0, 0, ..., 0, 0, 1]
'a' = [1, 0, 0, ..., 0, 0]
...
'my' = [0, ..., 0, 1, 0, ..., 0]
...
'you' = [0, 0, ..., 0, 0, 1]
No entanto, essa abordagem tem alguns problemas:
- Incorporações semanticamente não informativas
- Com a abordagem de codificação One-Hot, todas as incorporações são ortogonais entre si. Idealmente, gostaríamos que palavras semanticamente relacionadas entre si tivessem incorporações "semelhantes", mas incorporações únicas não codificam diretamente informações de similaridade.
- Alta dimensionamento
- Ter um vetor de 10.000 dimensões para cada palavra significa que podemos ficar sem memória rapidamente ao usar uma abordagem baseada em rede neural. Em muitos domínios, 10.000 é considerado um tamanho de dicionário pequeno — os dicionários geralmente são de 5 a 10 vezes maiores.
Como resultado, as incorporações densas de dimensão inferior são mais populares. Além de resolver os problemas de memória de incorporações One-Hot, elas também podem codificar a ideia de que duas palavras são semanticamente semelhantes. Por exemplo, suponha que tenhamos incorporações densas de 4 dimensões. Podemos querer que as incorporações de "apple" e "banana" sejam semelhantes, por exemplo
apple = [3.14, -0.03, -0.26, -2.27]
banana = [2.95, -0.18, -0.11, 0.09]
apple = [3.14, -0.03, -0.26, -2.27]
banana = [2.95, -0.18, -0.11, 0.09]
Ambos têm um grande valor positivo na primeira posição. Também é interessante que as incorporações de "apple" e "microsoft" sejam semelhantes, por exemplo
apple = [3.14, -0.03, -0.26, -2.27]
microsoft = [-0.12, 0.48, -0.05, -2.63]
apple = [3.14, -0.03, -0.26, -2.27]
microsoft = [-0.12, 0.48, -0.05, -2.63]
Ambos têm um grande valor negativo na quarta posição.
Como as incorporações são usadas?
Incorporações que codificam informações semânticas são cruciais em todos os aplicativos NLP. Independentemente de quão bem projetado seja o modelo que os consome, se as incorporações não forem informativas, o modelo não será capaz de extrair os sinais necessários para fazer previsões precisas.
Classificação
Para tarefas de classificação (por exemplo, análise de sentimento), a abordagem mais comum é agregar as incorporações de um documento em um único vetor e passar esse vetor de documento como entrada para uma rede feedforward que é responsável por fazer previsões (consulte a Figura 1 para obter uma ilustração).
A incorporação agregada pode ser calculada usando uma heurística simples (por exemplo, levando a média das incorporações), ou ela própria pode ser a saída de uma rede neural (por exemplo, um LSTM ou Transformer).
Pesquisa semântica
Além de tarefas de classificação, as incorporações também são particularmente úteis para a pesquisa semântica. Esta é a tarefa de recuperar resultados não apenas com base em palavras-chave, mas também com base no significado semântico da consulta de pesquisa.
A pesquisa semântica funciona calculando primeiro uma incorporação agregada para cada documento em um corpus (novamente, a função de agregação pode ser heurística ou aprendida). Então, a consulta de pesquisa fornecida também é incorporada, e os documentos com as incorporações mais próximas da incorporação da consulta de pesquisa são retornados (consulte a Figura 2 para obter uma ilustração). Aproximação geralmente é medida de acordo com uma métrica que compara a distância entre duas incorporações, por exemplo, similaridade de cosseno.
A maioria dos métodos de incorporação de palavras é treinada, usando um grande corpus de texto, e observando quais palavras comumente ocorrem próximas umas das outras dentro das frases no corpus. Por exemplo, a palavra "computador" pode frequentemente ocorrer ao lado de palavras como "teclado", "software" e "internet"; essas palavras próximas comuns são indicativas das informações que a incorporação de "computador" deve codificar.
Esta seção abrange quatro técnicas populares para aprender sobre incorporações, do Word2vec ao BERT baseado em Transformer.
Word2vec
Word2vec, lançado em 2013, é sem dúvida o primeiro método a ter popularizado incorporações de palavras pré-treinadas e as trouxe para o público no NLP moderno. O Word2vec abrange duas abordagens para incorporações de aprendizado:
- Pacote contínuo de palavras (consulte a Figura 3 para obter um exemplo).
- Prever uma determinada palavra com base nas k palavras adjacentes de cada lado.
- Isso é feito projetando (ou seja, matriz-multiplicação) as codificações únicas das palavras próximas abaixo para incorporações densas de dimensão inferior, tendo a média, e usando isso para prever a palavra que falta.
- Prever uma determinada palavra com base nas k palavras adjacentes de cada lado.
- Skipgrama (consulte a Figura 4 para obter um exemplo).
- Preveja as k palavras adjacentes de cada lado considerando uma palavra.
- Isso é feito projetando (ou seja, matriz-multiplicação) a codificação única da palavra fornecida até uma incorporação densa de dimensão inferior, e usando isso para prever as palavras que faltam.
- Preveja as k palavras adjacentes de cada lado considerando uma palavra.
Os autores apresentam várias similaridades lineares notavelmente intuitivas entre as incorporações. Dados duas palavras x e y com um relacionamento específico e outra palavra z na mesma "categoria" que y, os autores encontram a palavra w cuja incorporação é a mais próxima (usando a distância do cosseno) de emb(x)–emb(y)+ emb(z). A palavra resultante w geralmente tem a mesma relação com z que x com y (consulte a Tabela 1 para alguns exemplos).
Tabela 1: Analogias aprendidas pelo modelo word2vec.
X | y | z | w=nearest(emb(x)−emb(y)+emb(z)) |
---|---|---|---|
maior | Grande | Pequeno | menor |
Paris | França | Itália | ROMA |
Cu | cobre | Zinco | Zn |
luva
Conforme descrito acima, word2vec é baseado em uma janela deslizante local. Isso significa que o word2vec não usa diretamente estatísticas globais de coocorrência de palavras, exceto pelo número de exemplos de treinamento criados. Por exemplo, as incorporações não incorporam diretamente o fato de que a palavra "banco" ocorre com mais frequência no contexto da palavra "moeda" do que "river", além do fato de que "banco" e "moeda" aparecerão juntos em mais exemplos de treinamento do que "banco" e "river".
Portanto, um ano após o Word2vec, o GloVe foi lançado, que combina as vantagens de abordagens baseadas em janelas deslizantes locais com abordagens globais (ou seja, corpus-level) contagens de co-ocorrência de palavras. Ele faz isso treinando incorporações de modo que a contagem de coocorrência global entre duas palavras determine o quão semelhantes são suas incorporações.
onde V é o dicionário, u são vetores de palavras, v são vetores de contexto e b e c são vieses. f(Xi,j) é uma função de ponderação para evitar dar muito peso a coocorrências, tanto com valores extremamente baixos, quanto extremamente altos. Após o treinamento, a incorporação final da palavra para a palavra i é Wi,j=Ui+Vi.
As incorporações do GloVe superam significativamente o Word2vec na tarefa de análise de palavras (descrita acima) e são um pouco melhores para o reconhecimento de campos gerais nomeados. Como resultado, os vetores GloVe foram os escolhidos para incorporar palavras pré-treinadas por vários anos e ainda permanecem populares até hoje.
Um ponto fraco dos métodos apresentados até agora é que eles são estáticos, ou seja, a incorporação de uma determinada palavra é sempre a mesma. Por exemplo, considere a palavra "banco" — que pode se referir à orla de um fluxo ou a uma instituição financeira; sua incorporação teria que codificar ambos os significados.
ELMo
Em menos de 2010, as redes neural recorrentes (RNNs) eram as arquiteturas mais populares para a maioria das tarefas de NLP. Os RSNs realizam computações sobre sequências de texto de uma maneira passo a passo, lendo e processando cada palavra de cada vez. Elas atualizam um 'estado oculto', que monitora toda a sequência até o momento.
Uma das primeiras técnicas de incorporação contextual populares foi o ELMo, lançado em 2018. O ELMo aprende incorporações pré-treinando um modelo de RSN bidirecional em um grande corpus de linguagem natural usando um objetivo de previsão da próxima palavra. Especificamente, o ELMo treina um LSTM empilhado para frente e para trás, em cada etapa, prever a palavra seguinte ou anterior respectivamente, conforme mostrado na Figura 5.
Após o treinamento, os pesos dos LSTMs para frente e para trás são congelados e as saídas são concatenadas em cada etapa de cada camada. Os autores concluem que as diferentes camadas aprendem diferentes aspectos da linguagem: as camadas iniciais modelam aspectos da sintaxe, enquanto as camadas posteriores capturam aspectos dependentes do contexto do significado das palavras. Portanto, uma média ponderada específica da tarefa sobre as camadas é considerada como a incorporação de cada palavra.
Na época, o ELMo superou significativamente os métodos anteriores em várias tarefas, incluindo resposta a perguntas, reconhecimento de vinculação textual e análise de sentimento.
BERT
Em um momento semelhante ao desenvolvimento do ELMo, o (agora famoso) Transformer foi lançado como uma arquitetura para realizar tradução de máquina. Ele substitui os computações sequenciais de RNL por um mecanismo de atenção - processa uma representação contextual de cada palavra em paralelo e é, portanto, muito mais rápido de executar do que um RSN.
Logo se compreendeu que a arquitetura do Transformer podia ser generalizada além da tradução de máquina para outras tarefas, incluindo incorporações de aprendizado. O BERT, lançado em 2019, é um dos primeiros métodos de incorporação contextual, e sem dúvida o mais popular, a ser baseado na arquitetura do Transformer.
No entanto, diferente dos métodos apresentados até agora, o BERT não aprende diretamente incorporações de palavras. Em vez disso, ele aprende incorporações de tokens de 'subpalavra'. O principal problema ao aprender incorporações de palavras é que é necessário um dicionário de tamanho fixo — caso contrário, ficaremos sem memória. Em vez disso, o BERT usa um algoritmo conhecido como WordPiece para tokenizar frases em unidades de subpalavras. Isso significa que as palavras podem ser divididas em tokens separados como, por exemplo, as palavras {'wait', 'waiting', 'waiter'} podem ser tokenizadas como {['wait'], ['wait', '## ing'], ['wait', '##er']}, todas compartilhando o mesmo raiz, mas com diferentes sufixos.
O BERT é pré-treinado usando duas funções objetivo (mostrada na Figura 6):
- Modelagem de linguagem mascarada
- Alguns tokens escolhidos aleatoriamente são removidos da sequência, e o modelo recebe a tarefa de prevê-los.
- Previsão da próxima frase
- Duas sequências (mascaradas) são concatenadas, com um token especial [CLS] no início e um token [SEP] no final de cada sequência. O modelo então deve prever se o segundo segue diretamente o primeiro no corpus original, usando a incorporação de camada final do token [CLS].
Ao executar tarefas downstream, a incorporação do CLS pode ser usada para tarefas de nível de sentença/documento, por exemplo, reconhecimento da intenção ou análise de sentimento, enquanto as incorporações de token individuais podem ser usadas para tarefas de nível de palavra, por exemplo reconhecimento de campo geral nomeado.
Como o Transformer não é uma arquitetura sequencial, a camada de entrada não é simplesmente uma projeção da codificação de token único. Em vez disso, é a soma de três incorporações diferentes:
- Uma projeção da codificação do token único.
- Uma incorporação posicional (ou seja, uma incorporação de qual posição o token está na sequência).
- Uma incorporação de segmentos (ou seja, se o token é da primeira sequência ou da segunda, no objetivo de previsão da próxima frase descrito acima).
Após o pré-treinamento, o BERT é geralmente "ajustado" para tarefas downstream (ou seja, seus pesos são atualizados para cada tarefa; eles não são congelados como o ELMo). Em várias tarefas, incluindo SQuAD (respostas a perguntas) e o parâmetro de referência GLUE, o BERT teve um desempenho significativamente melhor que os métodos de última geração na época.
O BERT (e suas variantes seguintes) revolucionou o campo do NLP; agora é extremamente raro encontrar métodos de última geração que não dependam de incorporações contextuais com base na arquitetura Transformer.
Como discutido ao longo deste post, os progressos nas incorporações de treinamento revolucionaram o NLP. No entanto, há certas armadilhas sobre as quais você deve estar ciente ao trabalhar com incorporações pré-treinadas.
Em primeiro lugar, a incorporação de modelos pode codificar, e até mesmo amplificar, os vieses contidos nos conjuntos de dados nos quais são treinados. Por exemplo, foi mostrado que as incorporações podem codificar estereotipos ocupacionais baseados em gênero, por exemplo, que as pessoas estão associadas a trabalhos como o serviço da casa, enquanto os filhos estão associados a trabalhos como o de programação de computadores. Pesquisas adicionais mostram que a incorporação de modelos pode abranger linguagem depreciativa, rascunho e outras ideias nocivas dos dados de treinamento. A remoção de viés de modelos de linguagem é uma área ativa de pesquisa; as maneiras ideais para identificar e mitigar esses vieses ainda é uma questão em aberto.
Em segundo lugar, os métodos modernos de incorporação contextual envolvem modelos de treinamento com centenas de bilhões de parâmetros em clusters de milhares de GPUs por várias semanas. Isso pode sair extremamente custoso, tanto financeiramente quanto para o ambiente. Há uma ampla gama de métodos para treinar modelos mais eficientes, como já revisamos anteriormente.
Este post apresentou uma introdução ao conceito de 'incorporações' — vetores densos de números treinados para representar o significado semântico de sequências de texto. Este post tem
- Explicou o que incorporações são e como são usadas em aplicativos NLP comuns.
- Apresentou um histórico de métodos populares para o treinamento de incorporações, incluindo métodos tradicionais, como Word2vec, e métodos modernos baseados em Transformer, como BERT.
- Discorreu sobre os pontos fracos dos métodos de incorporação e como eles podem ser abordados.