A Microsoft abriu o código da biblioteca de pesquisa vetorial usada no Bing

Empresa Microsoft publicou textos de origem da biblioteca de aprendizado de máquina SPTAG (Space Partition Tree And Graph) com implementação do algoritmo de busca aproximada do vizinho mais próximo. A biblioteca foi desenvolvida na divisão de pesquisa da Microsoft Research e no centro de desenvolvimento de tecnologias de busca (Microsoft Search Technology Center). Na prática, o SPTAG é aplicado no mecanismo de pesquisa Bing para determinar os resultados mais relevantes considerando o contexto das consultas. O código é escrito em C++ e é distribuído sob licença MIT. É suportado pela construção para Linux e Windows. Há uma integração para a linguagem Python.

Embora as ideias de aplicação de repositórios vetoriais em mecanismos de busca sejam conhecidas há bastante tempo, na prática sua implementação é dificultada pela grande demanda de recursos nas operações com vetores e por limitações em escalabilidade. A combinação de métodos de aprendizado profundo com algoritmos de busca aproximada do vizinho mais próximo permitiu alcançar um desempenho e escalabilidade em sistemas vetoriais a um nível aceitável para grandes mecanismos de busca. Por exemplo, no Bing, para um índice vetorial com mais de 150 bilhões de vetores, o tempo para selecionar os resultados mais relevantes é inferior a 8 ms.

A biblioteca inclui ferramentas para construção de índices e organização de busca de vetores, além de um conjunto de ferramentas para manter um sistema de busca online distribuído, abrangendo coleções muito grandes de vetores. Os seguintes módulos são propostos: index builder para indexação, searcher para busca utilizando o índice, distribuído em um cluster de vários nós, servidor para executar manipuladores nos nós, Aggregator para combinar vários servidores em um só sistema e cliente para enviar consultas. O suporte é garantido para inclusão de novos vetores no índice e remoção de vetores em tempo real. A biblioteca assume que os dados processados e apresentados na coleção estão formatados como vetores relacionados, que podem ser comparados com base em

distâncias euclidianas (L2) ou distâncias cosinusais. Na consulta de busca, são retornados vetores cuja distância em relação ao vetor original é mínima. No SPTAG, são oferecidos dois métodos para organização do espaço vetorial: SPTAG-KDT (árvore K-dimensional ( kd-treegrafos de vizinhança relativa) e ) e SPTAG-BKT (árvore de k-médias (k-means treeárvore k-means e gráfico de vizinhanças relativas). O primeiro método exige menos recursos ao trabalhar com o índice, enquanto o segundo demonstra maior precisão nos resultados de busca em coleções de vetores muito grandes.

Nesse contexto, a busca vetorial não se limita a textos e pode ser aplicada a informações multimídia e imagens, bem como em sistemas de geração automática de recomendações. Por exemplo, em um dos protótipos baseado no framework PyTorch, foi implementado um sistema vetorial para busca levando em conta a similaridade de objetos em imagens, construído com dados de várias coleções de referência com imagens de animais, gatos e cães, que foram transformados em conjuntos de vetores. Quando uma imagem de entrada é recebida para busca, ela é convertida utilizando um modelo de aprendizado de máquina em um vetor, com base no qual, por meio do algoritmo SPTAG, os vetores mais semelhantes são selecionados do índice e, como resultado, as imagens relacionadas são retornadas.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster