Escolher um índice vetorial

Selecione uma versão da documentação:

Selecione um tipo de índice para a pesquisa de vetores que ofereça um equilíbrio entre a latência da consulta e a precisão dos resultados. A indexação eficaz afeta diretamente a velocidade da consulta e a capacidade de recuperar correspondências realmente relevantes, que são medidas pelo recall.

Termos-chave

Antes de decidir uma estratégia de índice, você precisa conhecer os seguintes termos:

  • Recall: define a eficácia com que uma pesquisa recupera todos os itens relevantes para uma determinada consulta. Por exemplo, se você tiver 100 imagens e 10 forem de gatos, que é a correspondência verdadeira, e sua pesquisa por "gato" retornar 6 imagens de gatos, seu recall será de 6 em 10, ou seja, 60%. Na pesquisa de vizinhos mais próximos aproximados (ANN, na sigla em inglês) para índices de vetores, o recall é medido comparando os resultados obtidos com o índice ANN aos resultados de correspondência verdadeira obtidos por uma pesquisa de força bruta.
  • Latência da consulta: define a velocidade com que os resultados da pesquisa são gerados. Por exemplo, a latência é calculada com base no tempo gasto em uma pesquisa para retornar as 6 imagens de gatos depois que você envia uma consulta.

Estratégia de pesquisa

Selecione uma das seguintes estratégias de pesquisa. Considere uma tabela de exemplo com dados do cliente que inclua detalhes como histórico de compras, preferências e dados demográficos para entender como os dois algoritmos diferem:

  • Vizinhos k-mais próximos (KNN) é um algoritmo que encontra os pontos de dados k-mais próximos de um determinado ponto de dados de consulta. Para o exemplo anterior, para executar uma consulta que recomenda produtos a novos clientes com base nas preferências de clientes semelhantes, o KNN calcula a distância entre os novos pontos de dados do cliente e os pontos de dados de cada cliente na tabela usando uma métrica de distância. O KNN identifica k clientes que correspondem aos critérios com base na distância e, em seguida, recomenda produtos que os clientes identificados (k) gostam ao novo cliente.

    Uma consulta KNN com métrica de distância, como distância euclidiana ou similaridade de cosseno, é recomendada para conjuntos de dados menores. Se o caso de uso exigir 100% de precisão e você puder tolerar uma latência de consulta maior, recomendamos o uso do KNN. Para mais informações sobre como realizar uma pesquisa KNN, consulte Realizar pesquisa de similaridade.

  • Os índices baseados no algoritmo de vizinhos mais próximos aproximados (ANN) ajudam as consultas a serem executadas mais rapidamente, mas podem comprometer a precisão ou o recall da consulta. Para o exemplo anterior, para executar uma consulta que recomenda produtos a novos clientes com base nas preferências de clientes semelhantes, o ANN divide os pontos de dados do cliente em pequenos grupos com base em semelhanças. Quando um novo ponto de dados do cliente é adicionado, o ANN primeiro identifica um grupo, entre vários grupos, a que o ponto de dados pertence e, em seguida, calcula apenas a distância usando uma métrica de distância dentro do grupo. Essa filtragem reduz o número de cálculos necessários para mostrar recomendações.

    O Google recomenda criar um índice de vetor que implemente o índice ANN quando você tiver um conjunto de dados grande, porque ele encontra semelhanças mais rapidamente e é menos intensivo em recursos, mas compromete a acurácia. Para mais informações sobre como o índice ANN é usado para pesquisas de similaridade, consulte Criar índices e consultar vetores usando o ScaNN. Para alcançar a acurácia do KNN com um índice de vetor, defina os parâmetros de pesquisa iguais ao número de partições. Essa estratégia ajuda a alcançar a acurácia do KNN com um equilíbrio de latência de consulta.

Use o fluxograma a seguir como orientação para decidir qual tipo de índice é ideal com base no conjunto de dados e nos requisitos.

Escolher uma estratégia de indexação

A seguir