Microsoft obtivo de código aberto a biblioteca de busca vectorial utilizada en Bing

Microsoft publicado códigos fonte da biblioteca de aprendizaxe automática SPTAG (Space Partition Tree And Graph) con implementación do algoritmo aproximado busca de veciños máis próximos. Biblioteca desenvolvido na división de investigación de Microsoft Research e no centro de desenvolvemento de tecnoloxía de busca (Microsoft Search Technology Center). Na práctica, o buscador Bing usa SPTAG para determinar os resultados máis relevantes en función do contexto das consultas de busca. O código está escrito en C++ e distribuído por baixo licenza MIT. Admítese a compilación para Linux e Windows. Hai unha ligazón para a linguaxe Python.

A pesar de que a idea de usar o almacenamento vectorial nos buscadores leva bastante tempo flotando, na práctica, a súa implementación vese obstaculizada pola alta intensidade de recursos das operacións con vectores e limitacións de escalabilidade. A combinación de métodos profundos de aprendizaxe automática con algoritmos de busca de veciños máis próximos aproximados permitiu levar o rendemento e a escalabilidade dos sistemas vectoriais a un nivel aceptable para os grandes buscadores. Por exemplo, en Bing, para un índice vectorial de máis de 150 millóns de vectores, o tempo para obter os resultados máis relevantes é de 8 ms.

A biblioteca inclúe ferramentas para construír un índice e organizar buscas vectoriais, así como un conxunto de ferramentas para manter un sistema de busca distribuído en liña que abrangue coleccións moi grandes de vectores. Ofrecido os seguintes módulos: creador de índices para indexar, buscador para buscar mediante un índice distribuído nun clúster de varios nodos, servidor para executar controladores en nodos, agregador para combinar varios servidores nun só e cliente para enviar consultas. Admítese a inclusión de novos vectores no índice e a eliminación de vectores sobre a marcha.

A biblioteca implica que os datos procesados ​​e presentados na colección están formateados en forma de vectores relacionados que se poden comparar en función de Euclidiana (L2) ou coseno distancias A consulta de busca devolve vectores cuxa distancia entre eles e o vector orixinal é mínima. SPTAG ofrece dous métodos para organizar o espazo vectorial: SPTAG-KDT (árbore K-dimensional (kd-árbore) E gráfica de barrio relativo) e SPTAG-BKT (árbore de k-means (k-significa árbore e gráfica de barrios relativos). O primeiro método require menos recursos cando se traballa co índice, e o segundo demostra unha maior precisión dos resultados de busca para coleccións moi grandes de vectores.

Ao mesmo tempo, a busca vectorial non se limita ao texto e pódese aplicar a información e imaxes multimedia, así como en sistemas de xeración automática de recomendacións. Por exemplo, un dos prototipos baseados no framework PyTorch implementou un sistema vectorial de busca baseado na semellanza de obxectos en imaxes, construído a partir de datos de varias coleccións de referencia con imaxes de animais, gatos e cans, que foron convertidos en conxuntos de vectores. . Cando se recibe unha imaxe entrante para a busca, convértese mediante un modelo de aprendizaxe automática nun vector, en función do cal se seleccionan do índice os vectores máis similares mediante o algoritmo SPTAG e, como resultado, devólvense as imaxes asociadas.

Fonte: opennet.ru

Engadir un comentario