Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Modelos CBOW e Skip-Gram | Embeddings de Palavras
Introdução ao PLN com Python

bookModelos CBOW e Skip-Gram

Deslize para mostrar o menu

Uma compreensão básica de redes neurais é recomendada para este capítulo. Caso não esteja familiarizado com o tema, sinta-se à vontade para explorar este curso:

Tanto as arquiteturas CBoW quanto Skip-gram aprendem embeddings de palavras por meio de uma estrutura de rede neural composta pelas seguintes camadas:

  • uma camada de entrada;
  • uma única camada oculta;
  • uma camada de saída.

A matriz de pesos entre as camadas de entrada e oculta, denotada como W1W^1 ou EE, serve como a matriz de embeddings. Cada linha dessa matriz representa um vetor de embedding para uma palavra correspondente, sendo a ii-ésima linha referente à ii-ésima palavra do vocabulário.

Essa matriz contém VV (tamanho do vocabulário) embeddings, cada um de tamanho NN, uma dimensão que especificamos. Multiplicar a transposta dessa matriz (matriz N×VN \times V) por um vetor one-hot codificado (vetor V×1V \times 1) recupera o embedding para uma palavra específica, produzindo um vetor N×1N \times 1.

A segunda matriz de pesos, entre as camadas oculta e de saída, possui tamanho N×VN \times V. Multiplicar a transposta dessa matriz (matriz V×NV \times N) pelo vetor N×1N \times 1 da camada oculta resulta em um vetor V×1V \times 1.

CBoW

Agora, observe um exemplo de uso de um modelo CBoW:

Primeiro, a transposta da matriz de embeddings é multiplicada pelos vetores one-hot das palavras de contexto para produzir seus embeddings. Esses embeddings são então somados ou médios, dependendo da implementação, para formar um único vetor. Esse vetor é multiplicado pela matriz W2W^2, resultando em um vetor V×1V \times 1.

Por fim, esse vetor passa pela função de ativação softmax, convertendo-o em uma distribuição de probabilidade, onde cada elemento representa a probabilidade de uma palavra do vocabulário ser a palavra alvo.

Em seguida, a perda é calculada e ambas as matrizes de pesos são atualizadas para minimizar essa perda. Idealmente, deseja-se que a probabilidade da palavra alvo seja próxima de 1, enquanto as probabilidades de todas as outras palavras se aproximem de zero. Esse processo é repetido para cada combinação de uma palavra alvo e suas palavras de contexto.

Após processar todas as combinações, um época é concluída. Normalmente, a rede neural é treinada por várias épocas para garantir um aprendizado preciso. Por fim, as linhas da matriz de embeddings resultante podem ser utilizadas como nossos embeddings de palavras. Cada linha corresponde à representação vetorial de uma palavra específica no vocabulário, capturando efetivamente suas propriedades semânticas dentro do modelo treinado.

Skip-gram

Agora, vamos analisar um modelo skip-gram:

Como pode ser observado, o processo é bastante semelhante ao CBoW. Ele começa recuperando o embedding da palavra alvo, que é então utilizado na camada oculta. Em seguida, é produzido um vetor V×1V \times 1 na camada de saída. Esse vetor, obtido multiplicando o embedding da palavra alvo pela matriz de pesos da camada de saída, é então transformado pela função de ativação softmax em um vetor de probabilidades.

Note
Nota

Embora esse vetor resultante de probabilidades seja o mesmo para todas as palavras de contexto associadas a uma única palavra-alvo durante um único passo de treinamento, a perda para cada palavra de contexto é calculada individualmente.

A perda para cada palavra de contexto é somada, e as matrizes de pesos são atualizadas de acordo a cada iteração para minimizar a perda total. Após a conclusão do número especificado de épocas, a matriz de embeddings pode ser utilizada para obter os embeddings das palavras.

Note
Aprofunde-se

Na prática, especialmente com vocabulários grandes, a função softmax pode ser computacionalmente muito intensiva. Portanto, aproximações como amostragem negativa são frequentemente empregadas para tornar o cálculo mais eficiente.

1. Preencha as lacunas

2. O que a primeira matriz de pesos W1W^1 na rede neural representa?

question-icon

Preencha as lacunas

The architecture tries to predict the target word from its context.
The
architecture tries to predict the context of the target word.

Click or drag`n`drop items and fill in the blanks

question mark

O que a primeira matriz de pesos W1W^1 na rede neural representa?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 4. Capítulo 2
some-alt