Microsoft ha obert el codi per a la biblioteca de cerca vectorial que utilitza Bing

Microsoft publicat codi font de la biblioteca d'aprenentatge automàtic SPTAG (Space Partition Tree And Graph) amb una implementació de l'aproximat cerca del veí més proper. Biblioteca desenvolupat per a la divisió de recerca de Microsoft Research i al centre de desenvolupament de tecnologies de cerca (Microsoft Search Technology Center). A la pràctica, SPTAG s'utilitza al cercador Bing per determinar els resultats més rellevants, tenint en compte el context de les consultes de cerca. El codi està escrit en C++ i Distribuït per sota la llicència MIT. S'admet la compilació per a Linux i Windows. Hi ha una vinculació per al llenguatge Python.

Tot i que les idees d'utilitzar l'emmagatzematge vectorial als motors de cerca han estat flotant durant molt de temps, a la pràctica la seva implementació es veu obstaculitzada per l'alta intensitat de recursos de les operacions amb vectors i les limitacions d'escalabilitat. La combinació de mètodes d'aprenentatge automàtic profund amb algorismes aproximats de cerca de veïns més propers ha permès portar el rendiment i l'escalabilitat dels sistemes vectorials a un nivell acceptable per als grans motors de cerca. Per exemple, a Bing, per a un índex vectorial de més de 150 milions de vectors, el temps per obtenir els resultats més rellevants és de 8 ms.

La biblioteca inclou eines per crear un índex i organitzar una cerca de vectors, així com un conjunt d'eines per mantenir un sistema de cerca distribuït en línia que cobreix col·leccions molt grans de vectors. S'ofereix els mòduls següents: un creador d'índexs per a la indexació, un cercador per cercar mitjançant un índex distribuït en un clúster de diversos nodes, un servidor per executar controladors en nodes, un agregador per combinar diversos servidors en un sol i un client per enviar consultes. Admet la inclusió de nous vectors a l'índex i la supressió de vectors sobre la marxa.

La biblioteca assumeix que les dades processades i presentades a la col·lecció es presenten en forma de vectors relacionats que es poden comparar en funció de Euclidià (L2) o cosinus distàncies. La consulta de cerca retorna vectors amb la distància mínima entre ells i el vector original. SPTAG proporciona dos mètodes per organitzar un espai vectorial: SPTAG-KDT (arbre K-Dimensional (kd-arbre) I gràfic de barri relatiu) i SPTAG-BKT (arbre k-means (k-significa arbre i gràfic de veïnatge relatiu). El primer mètode requereix menys recursos quan es treballa amb l'índex, i el segon demostra una major precisió dels resultats de la cerca per a col·leccions de vectors molt grans.

Al mateix temps, la cerca vectorial no es limita al text i es pot aplicar a informació i imatges multimèdia, així com a sistemes automàtics de generació de recomanacions. Per exemple, en un dels prototips basats en el framework PyTorch, es va implementar un sistema vectorial de cerca basat en la similitud d'objectes en imatges, construït a partir de dades de diverses col·leccions de referència amb imatges d'animals, gats i gossos, que es van convertir en conjunts de vectors. Quan es rep una imatge entrant per a la cerca, es converteix mitjançant un model d'aprenentatge automàtic en un vector, basant-se en el qual, mitjançant l'algorisme SPTAG, es seleccionen de l'índex els vectors més semblants i, com a resultat, es retornen les imatges associades.

Font: opennet.ru

Afegeix comentari