Desmistificando Embeddings

Clarissa Xavier
SiDi NLP
Published in
4 min readFeb 25, 2022
Créditos da imagem: Clarissa Watson

O objetivo deste artigo é apresentar de forma simples o conceito de embeddings dentro do contexto das aplicações de Processamento da Linguagem Natural. Vamos conversar sobre o que são estas estruturas, qual seu propósito e as principais técnicas de geração.

O termo embedding vem sendo muito utilizado na área do aprendizado de máquina (machine learning). Mas o que ele significa? Bem resumidamente, embedding é um vetor que representa uma informação complexa como uma palavra, uma sentença ou um texto. Este vetor contém o resultado do processo de conversão de dados de alta dimensão (informação original) em dados de baixa dimensão (vetor) de tal forma que os dois sejam semanticamente semelhantes. Desta forma, pega-se uma informação descrita computacionalmente em uma estrutura complexa e cria-se um vetor que descreve semanticamente este mesmo dado.

Os primeiros embeddings de palavras (word embeddings) foram criados enumerando palavras em um dicionário, montado a partir de um corpus (texto ou conjunto de textos) e definindo um valor de 1 para cada palavra em um vetor dimensional do tamanho da quantidade de palavras no dicionário. Por exemplo, se o número total de palavras no dicionário é 8000. A incorporação da palavra “casa” citada uma vez no corpus terá 7999 zeros em todas as posições, exceto na posição em que se encontra, onde será 1. Esse método de construção de embeddings é chamado de one-hot.

Esquema de one-hot encoding

Entretanto, um texto não é apenas uma coleção de palavras. Ele carrega semântica e significado. Desta forma, novos modelos foram propostos levando em conta a frequência com que cada termo é encontrado e a importância de sua aparição em um texto específico. O embedding de frequências (TF-IDF) funciona de forma que o indicador TF-IDF será maior se uma determinada palavra for usada com grande frequência em um texto específico, mas raramente em outros documentos.

O método Word2Vec baseia-se na hipótese de que palavras similares (matching words) devem ficar próximas umas das outras em um espaço definido. Esta técnica elabora embeddings de palavras em um espaço vetorial de alta dimensão independente do número de palavras. Desta forma, é feita a transferência de relações semânticas de palavras para as relações dos vetores correspondentes.

Relação vetorial entre palavras

Por exemplo, a relação semântica HOMEM ~ MULHER no embedding dessas palavras pode ser reduzida à um vetor de diferença entre elas, que é similar à relação semântica dos pares TIO ~ TIA e REI ~ RAINHA. Isto permite inferir que a relação MULHER — HOMEM = RAINHA — REI. Desta forma os embeddings mantêm a relação “feminino” ~ “masculino”. O método baseia-se no uso de uma avaliação probabilística do uso conjunto de grupos de palavras e de uma rede neural que é autodidata no corpus de textos.

A partir deste método, foram propostos outros modelos de embeddings de palavras, frases individuais e documentos inteiros, como GloVe, fastText e doc2vec.

Atualmente, modelos como ELMo e BERT constituem o estado da arte na área. Eles geram embeddings através de modelos complexos de aprendizado profundo (deep learning), buscando descrever relações de linguagem natural cada vez mais sutis.

O modelo BERT (Bidirectional Encoder Representations from Transformers) é um modelo pré-treinado de aprendizado profundo baseado em uma arquitetura Transformer. Por ser bidirecional, ele analisa o contexto à esquerda e à direita da palavra-chave. Dessa forma, consegue entender a relação entre as palavras da pesquisa em vez de considerar uma por uma. Este modelo contextual mapeia uma representação distinta de toda a frase para entender melhor seus contextos. Por exemplo, seria difícil para uma máquina diferenciar entre a palavra “banco”, como sendo uma agência bancária, da palavra “banco”, como sendo o local para sentar em uma praça, por exemplo.

É possível ver combinações de palavras de 8 dimensões (para conjuntos de dados pequenos), com até 1024 dimensões ao trabalhar com conjuntos de dados grandes. Um embedding dimensional mais alto pode capturar relacionamentos refinados entre as palavras, mas exige mais dados para aprender e maior capacidade computacional.

Hoje estão disponíveis diversos modelos BERT pré-treinados na etapa de modelagem da linguagem. Para o inglês, existem vários tamanhos de modelo disponíveis que variam entre si na quantidade de camadas presentes nos encoders, e na complexidade das representações em espaço multidimensional. Além de inglês, existe um modelo específico para chinês, e outro, chamado de multilingual, que foi treinado em conjunto para representar 100 línguas diferentes (dentre elas o português). Em partícular, BERT-Portuguese, disponível nos tamanhos Base e Large, em formato adequado para TensorFlow e PyTorch.

--

--

Clarissa Xavier
SiDi NLP

Consultora Técnica de NLP do SiDi. Doutora em Ciência da Computação. Coordenadora do #LeiaMulheresPOA