Modelos CBOW e Skip-Gram
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 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 do 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
A seguir, um exemplo de uso do 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 W2, resultando em um vetor V×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 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 no vocabulário, capturando de forma eficaz suas propriedades semânticas dentro do modelo treinado.
Skip-gram
Agora, vamos analisar o modelo skip-gram:
Como pode ser observado, o processo é em grande parte 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×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.
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 embeddings pode ser utilizada para obter os embeddings 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
Can you explain the main difference between CBoW and Skip-gram?
How does the softmax function work in these models?
What is the purpose of the embeddings matrix in these architectures?
Awesome!
Completion rate improved to 3.45
Modelos 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 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 do 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
A seguir, um exemplo de uso do 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 W2, resultando em um vetor V×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 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 no vocabulário, capturando de forma eficaz suas propriedades semânticas dentro do modelo treinado.
Skip-gram
Agora, vamos analisar o modelo skip-gram:
Como pode ser observado, o processo é em grande parte 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×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.
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 embeddings pode ser utilizada para obter os embeddings 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!