o problema
Um banco relacional responde bem a “onde id = 42” e mal a “o que se parece com isto”. Embedding de texto, imagem, áudio e vídeo são vetores de dezenas a milhares de dimensões, e não existe coluna nesse vetor que faça sentido comparar por igualdade. Os dois índices que sustentam um DBMS tradicional, B-tree e hash table, degradam quando a dimensão sobe: o survey chama isso de catástrofe de dimensionalidade. Quando quase tudo está quase equidistante de quase tudo, podar ramos deixa de podar.
Resta a força bruta: varrer os n vetores, calcular a distância até a consulta, guardar o melhor. Custa O(n) por consulta e O(1) de espaço extra, e devolve o vizinho verdadeiro. Com bilhões de vetores e um orçamento de latência, não fecha. É daí que sai a troca que organiza a área inteira: aceitar erro na resposta em troca de tempo e memória. Busca aproximada (ANNS) no lugar da busca exata (NNS).
a ideia
O movimento do survey é de arrumação, não de invenção. Ele separa o que num banco vetorial é herdado do banco de dados comum e o que é próprio. Herdado: sharding por hash ou por faixa de chave, particionamento por faixa ou por lista, cache LRU ou particionado, replicação leaderless ou líder-seguidor, com os trade-offs de sempre — leaderless evita ponto único de falha e paga em consistência, líder-seguidor dá consistência forte e paga em disponibilidade. Próprio: o índice.
E o índice é um problema antigo com literatura própria. O survey classifica os algoritmos pelo princípio de projeto — como organizam os dados, como percorrem a estrutura, como estimam distância — e chega em quatro famílias: hash, árvore, grafo e quantização. A fronteira entre exato e aproximado, nessa leitura, não é de qualidade e sim de método: exato usa critérios determinísticos de poda; aproximado usa heurística e probabilidade.
como funciona
Árvore. KD-tree divide o espaço por hiperplanos perpendiculares a um eixo, com corte na mediana ou média daquela dimensão; a busca usa fila de prioridade ordenada pela distância mínima até cada nó. Ball-tree troca o hiperplano por hiperesfera e, segundo o survey, aguenta melhor dimensão alta. R-tree usa retângulos mínimos e serve a consulta espacial; M-tree usa raio de cobertura e aceita inserção e remoção. Do lado aproximado, best bin first é uma KD-tree que para depois de visitar um número fixo de bins, e Annoy monta uma floresta de árvores de projeção aleatória, coleta os pontos das folhas onde a consulta cai e só aí calcula distância exata sobre esses candidatos. Annoy usa arquivo mapeado em memória, o que deixa vários processos compartilharem o mesmo índice.
Hash. LSH projeta o vetor em código binário com uma família de funções onde a probabilidade de colisão cai com a distância; compara-se código, não vetor. Spectral hashing gera as funções por teoria espectral de grafos, minimizando variância de cada bit. Deep hashing aprende as funções com rede neural, balanceando perda de reconstrução e perda de quantização.
Grafo. NSW liga cada ponto aos vizinhos próximos e a alguns links longos, criando atalhos de mundo pequeno, e busca por roteamento guloso até mínimo local ou número máximo de saltos. HNSW empilha isso em camadas de densidade decrescente, com o parâmetro M limitando os vizinhos por nó.
Quantização. PQ divide o vetor em m subvetores de dimensão d/m, roda k-means em cada um e concatena os índices dos centróides. OPQ aplica rotação antes de quantizar para reduzir distorção. O-PQ atualiza centróide e código online, com taxa de aprendizado, para dado que chega em fluxo.
o que isso custou
O survey é honesto sobre a lacuna que o motivou: quase não existe artigo descrevendo arquitetura de banco vetorial de verdade, então ele revisa os algoritmos por baixo em vez de sistemas. O preço é que não há medição nenhuma. Nenhuma tabela de recall contra QPS, nenhuma comparação entre as famílias. Cada método vem com a mesma fórmula de encerramento — desempenho depende da dimensão, do número de parâmetros, da métrica — e com os mesmos desafios genéricos: ruído, outlier, escolher bem os parâmetros.
Os desafios declarados para a categoria são quatro: indexar bilhões de vetores em centenas ou milhares de dimensões, suportar tipos heterogêneos (denso, esparso, binário) com um índice adaptativo só, distribuir processamento com particionamento, balanceamento, tolerância a falha e consistência, e integrar com TensorFlow, PyTorch e Scikit-learn. Nenhum deles é resolvido aqui, só nomeado.
A parte sobre LLM é a mais frágil: as afirmações de que banco vetorial ajuda em treino distribuído e compressão de modelo aparecem sem experimento, e as aplicações — memória de longo prazo, busca semântica, recomendação — são listadas como potenciais.
onde isso aparece hoje
As duas peças que o survey trata como estado da arte são as que sustentam a infraestrutura de retrieval atual: Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs e Product Quantization for Nearest Neighbor Search. As duas convivem dentro da mesma biblioteca em The Faiss library, onde grafo e código comprimido se combinam em vez de competir.
O pipeline que o survey desenha — embutir a pergunta, achar os vizinhos, devolver o trecho para o modelo gerar — é o de Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. E o sistema que preenche a lacuna arquitetural apontada aqui, com separação de leitura e escrita e consistência ajustável, é Manu: A Cloud Native Vector Database Management System.