Distância Sliced-Wasserstein supera L2 na similaridade de impressões digitais de áudio
A métrica errada pode destruir um sistema de busca. Ao usar distância L2 em impressões digitais de áudio baseadas na Transformada de Espalhamento Wavelet (WST), o resultado foi paradoxal: duas faixas consideradas próximas pela régua soavam completamente diferentes. A saída veio de um conceito matemático elegante — a Distância Sliced-Wasserstein — implementada em Rust como crate open-source.
O problema: L2 engana quando os dados são distribuições
Yash, criador do sistema de áudio OmniPulse, descobriu na prática que a distância euclidiana (L2) falha ao capturar similaridade estrutural em impressões digitais WST. Diferentemente de vetores comuns, essas impressões são distribuições de energia ao longo de escalas wavelet e tempo. L2 compara coordenada por coordenada, ignorando completamente a estrutura distribucional.
O resultado? Duas impressões digitais que L2 considerava próximas não tinham nenhuma similaridade real — um erro que compromete sistemas de identificação musical, reconhecimento de fala e análise de cenas sonoras.
A solução: Distância Sliced-Wasserstein (SW1)
Para corrigir isso, Yash implementou a Distância Sliced-Wasserstein em Rust na crate sliced-wasserstein (versão 0.1.0, disponível no crates.io). O princípio é medir o custo ótimo de transporte para transformar uma distribuição em outra — não comparar coordenadas fixas.
O cálculo exato da Distância Wasserstein (Earth Mover's Distance) tem custo O(N³), inviável para produção. O truque do slicing reduz isso para O(L × N log N):
- Projete ambas as nuvens de pontos em uma direção aleatória unidimensional.
- Na reta 1D, a distância tem solução fechada (ordenar, subtrair, calcular média) — O(N log N).
- Repita para L direções aleatórias e tire a média.
Com L=100 projeções e N=1000 pontos, o custo total é ~1 milhão de operações — três ordens de grandeza mais rápido que o cálculo exato.
Implementação em Rust: API e correção matemática
A crate expõe uma API limpa e determinística:
let sw = SlicedWasserstein::new(SwConfig {
dim: 64,
n_projections: 100,
seed: 42,
});
let cloud = PointCloud::new(data, 64)?;
let dist = sw.distance(cloud_a.data(), cloud_b.data());As projeções são cacheadas no construtor, garantindo consistência — essencial para índices HNSW. A crate foi verificada contra seis propriedades geométricas:
- Ground truth 1D: em 1D, SW1 iguala Wasserstein exato (ex:
distance([0, 1], [0.5])retorna 0.5). - Distância própria zero: bit-exata.
- Simetria:
distance(a, b) == distance(b, a). - Invariância a translação: mover ambos conjuntos pelo mesmo vetor não altera a distância.
- Equivariância a escala: escalar ambos por λ multiplica a distância por λ.
- Geração uniforme de projeções: método de Marsaglia, sem viés de amostragem em cubo.
Resultados com áudio sintético
Yash indexou cinco impressões digitais WST e consultou contra silêncio. O ranking de distâncias obtido é fisicamente coerente:
| Consulta vs referência | Distância SW1 | Interpretação |
|---|---|---|
| silêncio vs silêncio | 0.000000 | Identidade |
| silêncio vs seno ω=0.01 | 0.001942 | Muito próximo (quase plano) |
| silêncio vs seno ω=1.0 | 0.002710 | Próximo |
| silêncio vs seno ω=0.1 | 0.008654 | Intermediário |
| silêncio vs ruído Gaussiano | 0.026856 | Mais distante (ativa todos os caminhos) |
O ordenamento reflete a física do sinal: ruído é o mais distante, seno de baixa frequência é o mais próximo. L2 em versões achatadas não produziria essa hierarquia.
Implicações de mercado
A troca de L2 por SW1 tem impacto direto em vários domínios:
- Sistemas de identificação de áudio (Shazam-like): melhora precisão sem trocar o backend.
- Ferramentas Rust: a crate reduz a barreira para adoção de SW1.
- Domínios além do áudio: LiDAR, conformações moleculares, embeddings de documentos, genômica unicelular.
- Índices HNSW: SW1 oferece alternativa real a cosseno e L2 para dados distribucionais.
Limitações conhecidas: O artigo é um post pessoal, não revisado por pares. Apenas cinco sinais sintéticos foram testados. A implementação atual suporta apenas W1 (custo linear) e assume massa uniforme entre pontos. Não há benchmarks comparativos com Wasserstein exato, divergência de Sinkhorn ou MMD. A escala em grandes corpora (ex: Million Song Dataset) não foi avaliada.
O que isso significa para o futuro
A mensagem central é clara: a métrica de similaridade importa tanto quanto o modelo de características. Durante anos, embeddings foram tratados como vetores simples, usando L2 ou cosseno por conveniência. Mas quando os dados são distribuições — e muitos dados modernos o são — essa escolha é subótima.
Yash demonstrou que é viável implementar uma métrica matematicamente correta e eficiente em Rust, com verificações e integração direta em índices de busca. Isso abre caminho para sistemas de recuperação mais precisos e adoção mais ampla de métricas baseadas em transporte ótimo em produção.
Resumo prático:
A Distância Sliced-Wasserstein (SW1) corrige a falha da distância L2 ao comparar impressões digitais de áudio que são distribuições de energia. A implementação em Rust (sliced-wasserstein) é eficiente, verificada matematicamente e pronta para uso em índices HNSW. Para sistemas de busca que lidam com dados distribucionais, trocar L2 por SW1 pode representar um salto significativo em precisão sem comprometer desempenho.
A crate sliced-wasserstein é um passo firme no sentido de tratar dados distribucionais com o respeito matemático que merecem. Para desenvolvedores que lidam com áudio, nuvens de pontos ou representações distribucionais, experimentar SW1 pode revelar ganhos inesperados — e reposicionar a régua de similaridade como um diferencial competitivo. A Metatron Omni acompanha de perto essas inovações que transformam métricas em vantagens estratégicas.