Termos-chave
Antes de decidir uma estratégia de indexação, 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 (correspondência verdadeira), e sua pesquisa por "gato" retornar 6 imagens de gatos, o 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 de ANN aos resultados de correspondência verdadeiros 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 seis imagens de gatos depois que você envia uma consulta.
Estratégia de pesquisa
Você precisa selecionar uma das seguintes estratégias de pesquisa. Considere uma tabela de exemplo com dados do cliente que inclui detalhes como histórico de compras, preferências e informações demográficas para entender a diferença entre os dois algoritmos:
K-Nearest Neighbors (KNN) é um algoritmo que encontra os pontos de dados k mais próximos de um determinado ponto de dados de consulta. No 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 pontos de dados do novo cliente e os pontos de dados de cada cliente na tabela usando uma métrica de distância. O KNN identificaria k clientes que correspondem aos critérios com base na distância e recomendaria produtos que os clientes identificados (k) gostam para o 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 acurácia e você puder tolerar uma latência de consulta maior, recomendamos usar KNN. Para mais informações sobre como fazer uma pesquisa de KNN, consulte Realizar pesquisa de similaridade.
Os índices baseados no algoritmo Approximate Nearest Neighbors (ANN) ajudam as consultas a serem executadas mais rapidamente, mas podem comprometer a acurácia ou o recall da consulta. No exemplo anterior, para executar uma consulta que recomenda produtos a novos clientes com base nas preferências de clientes semelhantes, a ANN divide os dados do cliente atuais em pequenos grupos com base em semelhanças. Quando um novo ponto de dados do cliente é adicionado, a rede neural artificial primeiro identifica um grupo, entre vários, a que o ponto de dados pertence e calcula 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 vetorial que implemente o índice ANN quando você tiver um conjunto de dados grande, já que ele encontra semelhanças mais rapidamente e exige menos recursos, mas compromete a precisão. Para mais informações sobre como o índice ANN é usado em 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 como 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 seu conjunto de dados e requisitos.
