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

Microsoft publicado códigos-fonte da biblioteca de aprendizado de máquina SPTAG (Árvore e gráfico de partição espacial) com implementação do algoritmo aproximado pesquisa de vizinho mais próximo. Biblioteca desenvolvido na divisão de pesquisa da Microsoft Research e no centro de desenvolvimento de tecnologia de pesquisa (Microsoft Search Technology Center). Na prática, o SPTAG é usado pelo mecanismo de busca Bing para determinar os resultados mais relevantes com base no contexto das consultas de pesquisa. O código é escrito em C++ e distribuído por sob licença do MIT. Compilação para Linux e Windows é suportada. Existe uma ligação para a linguagem Python.

Apesar de a ideia de usar armazenamento vetorial em motores de busca já existir há bastante tempo, na prática, sua implementação é dificultada pela alta intensidade de recursos das operações com vetores e pelas limitações de escalabilidade. A combinação de métodos profundos de aprendizado de máquina com algoritmos de busca do vizinho mais próximo tornou possível levar o desempenho e a escalabilidade dos sistemas vetoriais a um nível aceitável para grandes mecanismos de busca. Por exemplo, no Bing, para um índice vetorial de mais de 150 bilhões de vetores, o tempo para buscar os resultados mais relevantes é de 8 ms.

A biblioteca inclui ferramentas para construir um índice e organizar pesquisas de vetores, bem como um conjunto de ferramentas para manter um sistema de pesquisa on-line distribuído cobrindo coleções muito grandes de vetores. Oferecido os seguintes módulos: construtor de índice para indexação, buscador para busca usando um índice distribuído em um cluster de vários nós, servidor para execução de manipuladores em nós, agregador para combinar vários servidores em um e cliente para envio de consultas. A inclusão de novos vetores no índice e a exclusão de vetores em tempo real são suportadas.

A biblioteca implica que os dados processados ​​​​e apresentados na coleção sejam formatados na forma de vetores relacionados que podem ser comparados com base em Euclidiano (L2) ou cosseno distâncias A consulta de pesquisa retorna vetores cuja distância entre eles e o vetor original é mínima. SPTAG fornece dois métodos para organizar o espaço vetorial: SPTAG-KDT (árvore K-dimensional (kd-árvore) E gráfico de vizinhança relativa) e SPTAG-BKT (árvore k-médias (k-significa árvore e gráfico de vizinhança relativa). O primeiro método requer menos recursos ao trabalhar com o índice, e o segundo demonstra maior precisão nos resultados da pesquisa para coleções muito grandes de vetores.

Ao mesmo tempo, a pesquisa vetorial não se limita ao texto 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, um dos protótipos baseado no framework PyTorch implementou um sistema vetorial de busca baseado na similaridade de objetos em imagens, construído a partir de dados de diversas coleções de referência com imagens de animais, gatos e cachorros, que foram convertidos em conjuntos de vetores . Quando uma imagem recebida é recebida para pesquisa, ela é convertida em um vetor usando um modelo de aprendizado de máquina, com base no qual os vetores mais semelhantes são selecionados do índice usando o algoritmo SPTAG e as imagens associadas são retornadas como resultado.

Fonte: opennet.ru

Adicionar um comentário