Modelos CBOW e Skip-gram
Deslize para mostrar o menu
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 W1 ou E, serve como a matriz de embeddings. Cada linha dessa matriz representa um vetor de embedding para uma palavra correspondente, sendo a i-ésima linha referente à i-ésima palavra no vocabulário.
Essa matriz contém V (tamanho do vocabulário) embeddings, cada um de tamanho N, uma dimensão que especificamos. Multiplicar a transposta dessa matriz (matriz N×V) por um vetor one-hot codificado (vetor V×1) recupera o embedding para uma palavra específica, produzindo um vetor N×1.
A segunda matriz de pesos, entre as camadas oculta e de saída, possui tamanho N×V. Multiplicar a transposta dessa matriz (matriz V×N) pelo vetor N×1 da camada oculta resulta em um vetor V×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. Este vetor é multiplicado pela matriz W2, resultando em um vetor V×1.
Por fim, este 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 o processamento de 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 do 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 é em grande parte semelhante ao CBoW. Ele começa recuperando a incorporação da palavra-alvo, que é então utilizada na camada oculta. Em seguida, é produzido um vetor V×1 na camada de saída. Esse vetor, obtido ao multiplicar a incorporação 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.
Embora esse vetor resultante de probabilidades seja o mesmo para todas as palavras de contexto associadas a uma única palavra-alvo durante uma etapa de treinamento, a perda para cada palavra de contexto é calculada individualmente.
A perda de cada palavra de contexto é somada, e as matrizes de pesos são atualizadas de acordo em cada iteração para minimizar a perda total. Após a conclusão do número especificado de épocas, a matriz de incorporações pode ser utilizada para obter as incorporações das palavras.
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 W1 na rede neural representa?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo