Embeddings de Texto
Embeddings e Representação de Texto
Teoria: Palavras como vetores, one-hot encoding, embeddings como lookup tables
Prática: Implementar embedding layer, alimentar MLP com texto
A ponte entre "rede neural genérica" e "modelo de linguagem". Aqui você começa a ver como texto vira números.
A Grande Transição: de XOR para Linguagem#
Até agora, você construiu uma MLP que aprende patterns como XOR. Um modelo de linguagem faz algo conceitualmente similar, mas com texto: dada uma sequência de palavras, ele prevê a próxima. Formalmente: P(proxima_palavra | palavras_anteriores).
Para fazer isso, precisamos resolver um problema fundamental: redes neurais operam com números, mas texto é simbólico. Embeddings são a solução - vetores densos que capturam significado, onde palavras similares ficam próximas no espaço vetorial. Diferente de one-hot (esparso, sem relação entre palavras), embeddings são aprendidos junto com o modelo.
Vídeos Fundamentais#
Karpathy - makemore (bigram language model) - Segundo vídeo da série Zero to Hero
Karpathy - makemore part 3 (MLP language model) - Ponte direta entre a MLP que você construiu e language modeling. Implementa Bengio et al. (2003)
Papers Fundamentais#
Mikolov et al. (2013) - Word2Vec - Paper original: Skip-gram e CBOW
Goldberg & Levy - word2vec Explained - Clareza matemática que o paper original não tem
Rong - word2vec Parameter Learning Explained - Detalhamento completo do aprendizado
Pennington, Socher & Manning (2014) - GloVe - Combina co-ocorrência global com contexto local
Bengio (2003) - A Neural Probabilistic Language Model - O paper que inaugurou embeddings aprendidos e LMs neurais
Leituras e Tutoriais#
Jay Alammar - The Illustrated Word2Vec - Visualizações excepcionais de CBOW e Skip-gram
Analytics Vidhya - From Count Vectors to Word2Vec - Progressão de one-hot -> TF-IDF -> embeddings neurais
Ferramentas de Visualização#
TensorFlow Embedding Projector - Exploração 3D interativa com PCA, t-SNE, UMAP
gpt-intuition - Alternativa Streamlit mais fácil de configurar
Insight Chave#
Uma embedding layer é "só" uma lookup table treinável. Internamente, é uma multiplicação de matriz com um vetor one-hot - mas como one-hot tem um único 1, isso equivale a selecionar uma linha da matriz. Essa matriz de embeddings é aprendida junto com o resto da rede via backprop. O resultado: palavras que aparecem em contextos similares acabam com vetores similares, sem ninguem programar isso explicitamente.
Entregável#
Etapa 1: Implemente um bigram character-level sem embeddings (tabela de contagem + probabilidades). Treine num texto curto (~100KB). Gere 200 caracteres — deve parecer aleatório mas respeitar frequências de pares.
Etapa 2: Substitua a tabela de contagem pelo seu MLP: cada caractere vira um embedding vector de dimensão 8, janela de contexto de 2 caracteres, saída via softmax sobre o vocabulário. Treine e compare com o bigram de contagem.
Verificação: Gere 200 caracteres com o modelo neural. Deve produzir sequências que lembram palavras (não precisa fazer sentido, mas deve parecer quase-linguagem).
Você deve conseguir explicar: Por que uma embedding layer é "só" uma lookup table treinável.
Checklist#
Conexões#
Fundamento: Este tópico usa conceitos de tokenizacao
Na prática: Embeddings são essenciais para RAG e busca semântica
Próximo passo: Entenda como tokens prestam atenção uns nos outros em self-attention
11 recursos
Este topico tambem pode ser acessado em /topicos/embeddings-texto