- Em espaços de embedding de alta dimensionalidade, é possível representar inúmeros conceitos usando quase-ortogonalidade (quasi-orthogonality) em vez de ortogonalidade perfeita
- O lema de Johnson-Lindenstrauss garante que dados arbitrários de alta dimensão podem ser projetados em dimensões menores com quase nenhuma perda de informação
- No processo de otimização, o desenho da função de perda é importante, pois uma função de perda básica pode gerar distribuições de vetores ineficientes ou enviesadas
- Os resultados experimentais mostram que a capacidade real do espaço de embeddings é muito maior do que se supunha teoricamente, e que de milhões a bilhões de conceitos podem coexistir naturalmente
- Essas descobertas têm grande significado prático em aplicações de machine learning, como representação de dados e redução de dimensionalidade no projeto de embeddings
Introdução: a pergunta sobre a capacidade do espaço de embeddings de modelos de linguagem
Na recente série de vídeos sobre modelos Transformer do 3Blue1Brown, Grant Sanderson levantou uma pergunta interessante: como o espaço de embeddings de 12.288 dimensões do GPT-3 consegue conter centenas de milhões de conceitos do mundo real
Essa dúvida se conecta à geometria de alta dimensão e a um resultado matemático chamado lema de Johnson-Lindenstrauss (JL)
Ao explorar isso, surgiram novos insights sobre propriedades fundamentais de espaços vetoriais e otimização, o que acabou levando até a uma colaboração com Grant
Quase-ortogonalidade de vetores e capacidade do espaço de embeddings
- Em um espaço N-dimensional, existem apenas N vetores totalmente ortogonais
- Na prática, se permitirmos relações quase-ortogonais (quasi-orthogonal) com pequenos desvios de 90 graus (por exemplo, ângulos entre 85 e 95 graus), o número de vetores representáveis no mesmo espaço cresce exponencialmente
- No vídeo de Grant, é mostrada uma visualização em que 10 mil vetores unitários são dispostos em um espaço de 100 dimensões de forma quase ortogonal
- Porém, ao reproduzir o mesmo experimento, foi descoberta uma armadilha sutil no desenho da função de perda de otimização
Problemas e padrões da função de perda
- Função de perda básica:
loss = (dot_products.abs()).relu().sum() - Sobre a esfera unitária real, essa função de perda apresenta dois problemas
- Gradient Trap: quando o ângulo entre vetores se aproxima de 90 graus, o gradiente atua com força, mas perto de 0 ou 180 graus o gradiente fica quase em 0, bloqueando melhorias
- Solução de 99%: a técnica de otimização minimiza a perda total encontrando uma disposição em que, entre 10 mil vetores, cada vetor é corretamente ortogonal a 9.900 deles, mas fica quase paralelo a 99 outros (ou seja, cópias de um vetor de referência)
- Essa solução, vista no conjunto, é fundamentalmente diferente do esperado, o que exige uma função de perda mais sofisticada
- Por isso, a função de perda foi alterada para aplicar uma penalidade exponencial: loss = exp(20*dot_products.abs()**2).sum()
- Esse método produz resultados mais próximos da distribuição desejada (o maior ângulo par a par fica em cerca de 76,5 graus)
Lema de Johnson-Lindenstrauss (JL): garantia geométrica
- O lema JL garante que, mesmo ao projetar aleatoriamente um conjunto arbitrário de pontos de dados de alta dimensão em uma dimensão menor, as distâncias euclidianas são quase preservadas
- Para de 1 a N pontos, fator de erro ε e dimensão de projeção k:
(1-ε)||u-v||² ≤ ||f(u)-f(v)||² ≤ (1+ε)||u-v||² - A dimensão mínima necessária k é:
k ≥ (C/ε²) * log(N)
em que C é uma constante que ajusta a probabilidade de sucesso - Em geral, o valor de C costuma ser tomado de forma conservadora entre 4 e 8, mas em métodos especiais de projeção (por exemplo, matriz de Hadamard, métodos de otimização) é possível atingir valores menores de C
Áreas de aplicação prática
- Redução de dimensionalidade:
- Ex.) transformar de forma eficiente preferências de clientes de e-commerce de dezenas de milhares de dimensões de produtos para alguns milhares de dimensões
- Pode ser aplicado em análise em tempo real de dados de alta dimensão, recomendações etc.
- Análise do limite de capacidade do espaço de embeddings:
- Em vez de ortogonalidade perfeita, o espaço representa naturalmente um espectro de similaridades e diferenças entre conceitos
- Exemplos reais de palavras: "archery", "fire", "gelatinous", "green" etc., cujos significados físicos e abstratos podem se sobrepor em um espaço de alta dimensão
Análise experimental da capacidade de embeddings
- Em resultados otimizados com transformações como a matriz de Hadamard, o valor de C fica entre 2,5 e 4, e em otimização baseada em GPU pode cair ainda mais
- Método experimental: projetar sucessivamente N vetores da base padrão em um espaço k-dimensional e repetir a otimização 50 mil vezes
- Observações:
- O valor de C sobe até um pico (~0,9) à medida que N aumenta e depois cai gradualmente
- Quanto maior a razão N/k, mais C cai para abaixo de 0,2
- Isso se deve à eficiência do sphere packing em espaços de alta dimensão
- Na prática, isso sugere que há margem para representar mais conceitos do que o limite superior teórico indicava
Significado prático para embeddings de modelos de linguagem
- Dependendo do número de dimensões do embedding k, do ângulo de ortogonalidade aproximada F (90° - ângulo real) e do valor de C, o número de conceitos que podem ser acomodados é:
Vectors ≈ 10^(k * F² / 1500)
- k=12,288, F=1(89°) → 10^8
- F=2(88°) → 10^32
- F=3(87°) → 10^73
- F=5(85°) → mais de 10^200 vetores podem ser armazenados
- Apenas 86° já supera o número de átomos observáveis no universo (10^80)
- Em outras palavras, modelos de linguagem reais preservam de forma rica milhões de significados mesmo com dimensões relativamente pequenas
Aplicações práticas e direções futuras
- Redução de dimensionalidade eficiente:
- Ao combinar transformadas de Hadamard, codificação BCH e abordagens baseadas em projeção aleatória, é possível reduzir a dimensionalidade de grandes volumes de dados e acelerar cálculos sem otimização complexa
- Projeto de espaços de embedding:
- O insight sobre a capacidade do espaço ajuda a explicar como grandes modelos de linguagem, como Transformers, conseguem preservar simultaneamente relações semânticas até para conceitos sutis como "Canadian" e "Muppet-like"
- Em conclusão, os padrões atuais de embedding (1.000 a 20.000 dimensões) são suficientes para representar o conhecimento humano; o ponto crucial é aprender uma disposição ideal dentro desse espaço
Conclusão
- O ponto de partida foi a investigação de um problema sutil de otimização na função de perda, que levou a insights profundos sobre a geometria de alta dimensão e a estrutura fundamental do machine learning
- O lema JL, publicado em 1984, hoje fornece uma base central para embeddings em machine learning, representação de informação e princípios de redução de dimensionalidade
- O texto encerra agradecendo a colaboração de Grant Sanderson, do canal 3Blue1Brown, e de Suman Dev, além de compartilhar o prazer da experiência de pesquisa e escrita
Leitura adicional
- Sphere Packings, Lattices and Groups – Conway & Sloane
- Database-friendly random projections: Johnson-Lindenstrauss with binary coins – Achlioptas
- Hadamard Matrices, Sequences, and Block Designs – Seberry & Yamada
Ainda não há comentários.