Suite

Optimiser un calcul du plus proche voisin à l'aide de PostGIS


J'utilise PostGIS pour calculer les voisins les plus proches des polygones. Ce que je veux calculer, c'est la distance minimale de chaque polygone au polygone le plus proche.

Jusqu'à présent, j'ai reçu une grande aide de la réponse de Mike Toews (que je cite avec un changement mineur) ici :

SELECTIONNER a.hgt AS a_hgt, b.hgt AS b_hgt, ST_Distance(a.the_geom, b.the_geom) AS distance_between_a_and_b FROM public."TestArea" AS a, public."TestArea" AS b WHERE a.hgt != b.hgt ET ST_Distance(a.the_geom, b.the_geom) < 400

Ensuite j'ai calculé le minimum :

SELECTIONNER a_hgt, MIN(distance_entre_a_et_b) FROM public."lon_TestArea" GROUP BY a_hgt

Cependant, mon défi est de calculer cela pour un grand nombre de polygones (1 000 000). Comme le calcul ci-dessus compare chaque polygone à tous les autres polygones, je me suis demandé comment je pourrais améliorer le calcul afin de ne pas avoir à effectuer 10^12 calculs.

Une pensée que j'avais était de tamponner chaque polygone, puis de calculer les voisins les plus proches de toutes les valeurs dans le tampon pour ce polygone, et d'enregistrer le minimum. Je ne sais pas si c'est la meilleure approche ou s'il existe une fonction dans PostGIS que je devrais utiliser.


EDIT : En utilisant l'une des suggestions de Nicklas, j'expérimente avecST_Dwithin():

CREATE TABLE mytable_withinRange AS SELECT a.hgt AS a_hgt, b.hgt AS b_hgt, ST_DWithin(a.the_geom, b.the_geom, 400) FROM public."lon_TestArea" AS a, public."lon_TestArea" AS b

Cela renvoie un tableau de l'ID de chaque polygone, et s'il se trouve ou non à une certaine distance. Est-il possible de construire unSINONtype d'instruction en utilisant SQL ? (J'ai lu sur l'utilisation duCAScondition) Ou devrais-je essayer de joindre la table que je produis à la table d'origine, puis de réexécuter la requête à l'aide de ST_Distance ?


Il y a une grande section "Le plus proche voisin" sur la page BostonGIS.


ÉDITER:

Que diriez-vous

CREATE TABLE mytable_withinRange AS SELECT a.hgt AS a_hgt, b.hgt AS b_hgt FROM public."lon_TestArea" AS a, public."lon_TestArea" AS b WHERE ST_DWithin(a.the_geom, b.the_geom, 400)

Concernant la déclaration CASE :

SELECT a, CASE WHEN a=1 THEN 'un' WHEN a=2 THEN 'two' ELSE 'other' END FROM test;

Bonjour

Certaines choses sont envisagées pour accélérer les choses et d'autres pourraient être possibles à l'avenir.

Première, vous avez mentionné que vous envisagez d'utiliser un tampon pour trouver des polygones dans une plage minimale afin d'éviter de calculer toutes les combinaisons.

Comme indiqué dans un autre lien de Boston, la bonne façon de le faire dans PostGIS utilise ST_Ddans. ST_Dwithin utilise l'index pour trouver les voisins dans une certaine plage.

Cela dépend bien sûr de l'ensemble de données s'il suffit d'utiliser une valeur fixe pour st_DWithin pour tous les polygones ou si vous devez faire quelque chose comme underdark et wildintellect discutent.

Une deuxième chose est d'utiliser PostGIS 1.5+ ici. C'est parce que les calculs de polygone à polygone sont beaucoup plus rapides depuis 1.5 si leurs cadres de délimitation ne se coupent pas. Vous pouvez en savoir plus à ce sujet ici..

La troisième chose à mentionner est l'avenir.

Dans PostgreSQL 9.1, il y aura quelque chose appelé knn-gist. C'est un index qui peut non seulement répondre par oui ou non mais aussi renvoyer le résultat commandé directement à partir de l'index. Vous pouvez lire à ce sujet ici.

Mais il y aura encore beaucoup de travail à faire du côté de PostGIS avant que knn gist n'aide pour des choses comme celle-ci. Il y a un ticket pour ça ici.

Salutations

Nicklas


Les pages suivantes relatives au travail de maître de Nathan Kerr donnent un bon aperçu de cette question directe. Mon collègue a essayé la méthode Bostongis ici et ici, mais a eu quelques problèmes pour qu'elle fonctionne correctement.

Une autre approche similaire à celle du tampon consiste à créer un rectangle en expansion/contraction. Fondamentalement, passez 1 faire une boîte englobante (c'est une intersection droite + x unités à la bbox de votre polygone d'origine) qui, selon vous, attrapera au moins une intersection. Pour les données qui ont une intersection, effectuez une sous-requête qui teste ces correspondances pour les plus proches. Pour les données qui ne correspondent pas, développez la zone de délimitation et répétez.

C'est clairement un problème de programmation récursive, et il serait peut-être préférable de le faire en Python avec Shapely que 100% directement dans postgis.


Optimiser le calcul du plus proche voisin à l'aide de PostGIS - Systèmes d'Information Géographique



1.
Christian Boumlhm :
Gestion des données de séquence biologique dans un système de base de données orienté objet,
Thèse de diplôme (en allemand), TU Munich, 1993.

2. Christian Böhm, Frank Schönefeld :
Utilisation de la technologie de base de données EXPRESS pour accéder aux données génomiques du NCBI,
3e Conférence du Groupe d'utilisateurs EXPRESS (EUG), 1993.

3. Christian Böhm, Armin Oppitz, Pavel Vogel, Stefan Wiesener :
Estampes du XVIIe siècle dans un système de bibliothèque numérique distribué,
Applications de bases de données et de systèmes experts (DEXA), 1995.

4. Stefan Berchtold, Christian Böhm, Bernhard Braunmüller, Daniel Keim, Hans-Peter Kriegel :
Recherche rapide de similarités parallèles dans les bases de données multimédias,
ACM SIGMOD Int. Conf. sur la gestion des données, 1997,
Prix ​​SIGMOD du meilleur article 1997.
ps
5. Stefan Berchtold, Christian Böhm, Daniel Keim, Hans-Peter Kriegel :
Un modèle de coût pour la recherche de voisin le plus proche de grande dimension,
Symposium ACM sur les principes des systèmes de bases de données (PODS), 1997.
ps

Stefan Berchtold, Christian Böhm, Hans-Peter Kriegel :
La technique de la pyramide : vers la rupture de la malédiction de la dimensionnalité,
ACM SIGMOD Int. Conf. sur la gestion des données, 1998.

9. Christian Böhm, Gerald Klump, Hans-Peter Kriegel :
XZ-Ordering : une courbe de remplissage d'espace pour les objets avec une extension spatiale,
6e Symposium international sur les bases de données spatiales, 1999.
ps
pdf
10. Christian Böhm, Hans-Peter Kriegel :
Construction efficace de grands index de grande dimension,
Int. Conf. sur l'entreposage de données et la découverte des connaissances (DaWaK) 1999.
ps
11. Stefan Berchtold, Christian Böhm, Hans-Peter Kriegel, Urs Michel :
Implémentation de structures d'index multidimensionnels pour la découverte des connaissances dans les bases de données relationnelles,
Int. Conf. sur l'entreposage de données et la découverte des connaissances (DaWaK) 1999.
ps
12. Christian Boumlhm :
Effiziente Indexstrukturen für hochdimensionale Datenräume (en allemand),
dans 'Ausgezeichnete Informatikdissertationen 1998', Teubner 1999.
pdf

13. Stefan Berchtold, Christian Böhm, H.V. Jagadish, Hans-Peter Kriegel, Jörg Sander :
'Quantification indépendante : une technique de compression d'index pour les espaces de grande dimension,
Int. Conf. sur l'ingénierie des données (ICDE), 2000.
pdf
14. Christian Böhm, Hans-Peter Kriegel :
Optimiser dynamiquement les structures d'index de grande dimension,
Int. Conf. sur l'extension de la technologie des bases de données (EDBT), 2000.
ps
pdf
15. Christian Böhm, Stefan Berchtold, Hans-Peter Kriegel, Urs Michel :
Structures d'index multidimensionnels dans les bases de données relationnelles,
Journal des systèmes d'information intelligents (JIIS) Vol. 15, n° 1, 2000.
--------
16. Christian Böhm, Bernhard Braunmüller, Hans-Peter Kriegel, Matthias Schubert :
Recherche de similarité efficace dans les bibliothèques numériques,
IEEE Int. Conf. sur les progrès des bibliothèques numériques (ADL), 2000.
ps
17. Christian Boumlhm :
Un modèle de coût pour le traitement des requêtes dans les espaces de données de grande dimension,
Transactions ACM sur les systèmes de bases de données (TODS) Vol. 25, n° 2, 2000.
ps
pdf
18. Stefan Berchtold, Christian Böhm, Daniel Keim, Hans-Peter Kriegel, Xiaowei Xu :
Traitement optimal des requêtes multidimensionnelles à l'aide de l'arborescence,
Int. Conf. sur l'entreposage de données et la découverte des connaissances (DaWaK) 2000.
pdf
19. Christian Böhm, Bernhard Braunmüller, Hans-Peter Kriegel :
Le pouvoir d'élagage : une théorie des stratégies d'ordonnancement pour plusieurs requêtes k-plus proche voisin,
Int. Conf. sur l'entreposage de données et la découverte des connaissances (DaWaK) 2000.
pdf
20. Christian Böhm, Bernhard Braunmüller, Markus Breunig, Hans-Peter Kriegel :
Clustering haute performance basé sur la jointure de similarité,
Int. Conf. sur la gestion de l'information et des connaissances (CIKM) 2000.
pdf

21. Stefan Berchtold, Christian Böhm, Daniel Keim, Florian Krebs, Hans-Peter Kriegel :
Sur l'optimisation des requêtes des voisins les plus proches dans les espaces de grande dimension,
Int. Conf. sur la théorie des bases de données (ICDT) 2001.
pdf
22. Christian Boumlhm :
La jointure par similarité : une puissante base de données primitive pour l'exploration de données haute performance,
tutoriel, IEEE Int. Conf. sur l'ingénierie des données (ICDE), 2001.
.
23. Christian Böhm, Hans-Peter Kriegel :
Un modèle de coût et une architecture d'index pour la jointure de similarité,
IEEE Int. Conf. sur l'ingénierie des données (ICDE), 2001.
pdf
ppt
24. Christian Böhm, Bernhard Braunmüller, Florian Krebs, Hans-Peter Kriegel :
Ordre de la grille Epsilon : un algorithme pour la jointure par similarité sur des données massives de grande dimension,
ACM SIGMOD Int. Conf. sur la gestion des données, 2001.
pdf
ppt
25. Christian Böhm, Thomas Seidl, Hans-Peter Kriegel :
Requêtes de similarité adaptables utilisant la quantification vectorielle,
Int. Conf. sur l'entreposage de données et la découverte des connaissances (DaWaK) 2001.
pdf
26. Christian Böhm, Hans-Peter Kriegel :
Détermination de la coque convexe dans les grandes bases de données multidimensionnelles,
Int. Conf. sur l'entreposage de données et la découverte des connaissances (DaWaK) 2001.
pdf
27. Christian Boumlhm :
Prise en charge puissante des bases de données pour l'exploration de données haute performance ,
Thèse d'habilitation, Université de Munich, 2001.
pdf
28. Christian Böhm, Stefan Berchtold, Daniel Keim :
Recherche dans les espaces de grande dimension :
Structures d'index pour améliorer les performances des bases de données multimédias,
Enquêtes informatiques ACM 33 (3), 2001.
pdf

Christian Böhm, Hans-Peter Kriegel, Thomas Seidl :
Combinaison de techniques d'approximation et de quantification vectorielle pour une recherche de similarité adaptable,
Journal sur les systèmes d'information intelligents (JIIS), 19 (2), 2002

Christian Böhm, Florian Krebs, Hans-Peter Kriegel :
Ordre de dimension optimal : une technique générique pour la jointure de similarité
Int. Conf. sur l'entreposage de données et la découverte des connaissances (DaWaK) 2002.

Christian Boumlhm :
Recherche de similarité et exploration de données : techniques de base de données prenant en charge les applications de la prochaine décennie
Discours liminaire, Int. Conf. sur l'intégration de l'information et les applications Web et les services amp (IIWAS), 2002.

Christian Böhm, Florian Krebs :
Exploration de données haute performance à l'aide de la jointure du voisin le plus proche
IEEE Int. Conf. sur l'exploration de données (ICDM) 2002.

Christian Boumlhm :
De puissantes primitives de base de données pour prendre en charge l'exploration de données haute performance
Tutoriel, IEEE Int. Conf. sur l'exploration de données (ICDM) 2002.

Christian Böhm, Florian Krebs :
Prise en charge des applications KDD par la jointure k-Nearest Neighbor,
Int. Conf on Database and Expert Systems Applications (DEXA), 2003.

Christian Böhm, Florian Krebs :
La jointure k-Nearest Neighbor : Turbo Charger le processus KDD,
Systèmes de connaissance et d'information (KAIS), Vol. 6 n° 6, 2004.

Christian Böhm, Karin Kailing, Peer Kröger, Arthur Zimek :
Calcul de Grappes d'Objets Connectés de Corrélation,
ACM SIGMOD Int. Conf. sur la gestion des données, 2004.

Christian Böhm, Karin Kailing, Peer Kröger, Hans-Peter Kriegel :
Immer größere und komplexere Datenmengen: Herausforderungen für Clustering-Algorithmen,
Datenbank-Spektrum, Heft 9, 2004.


Samir Khuller et Dave Mount conseillent les demi-finalistes d'Intel STS

Le professeur et chaire Elizabeth Stevinson Iribe en informatique Samir Khuller et le professeur Dave Mount ont conseillé deux étudiants du programme Magnet du lycée Montgomery Blair qui ont été nommés demi-finalistes Intel Student Talent Search 2015. Khuller a conseillé Matthew Das Sarma sur son projet « Correspondances absorbantes et la couverture minimale des sommets avec un problème de capacités dures », et Mount a conseillé Sachin Pandey sur son projet « Optimisation des méthodes de recherche du voisin le plus proche à l'aide du chevauchement de volume ». Chaque année, plusieurs membres du corps professoral en informatique donnent de leur temps pour conseiller des lycéens talentueux du Maryland sur leurs projets de fin d'études dans tous les domaines de la recherche en informatique.

Intel a attribué 1000 $ chacun à Das Sarma et Pandey et a fait don de fonds de contrepartie à l'école. Le programme Blair Magnet compte douze demi-finalistes Intel sur 300 pour 2015, le plus grand nombre de lycées du pays. Les finalistes, qui concourront pour trois prix de 150 000 $, seront annoncés le 21 janvier 2015.

Le Département accepte les commentaires, suggestions et corrections. Envoyer un e-mail à l'éditeur [-at-] cs [dot] umd [dot] edu .


Estimation de l'évapotranspiration potentielle basée sur des algorithmes d'auto-optimisation du plus proche voisin : une étude de cas dans des environnements arides–semi-arides, au nord-ouest de la Chine

Les changements dans l'évapotranspiration potentielle affecteront l'écologie de surface et l'environnement de la terre. Une estimation précise et rapide de l'évapotranspiration potentielle aidera à analyser les changements environnementaux. Dans cette étude, en combinaison avec l'analyse de corrélation canonique (ACC) et k-algorithme du plus proche voisin (k-NN), une nouvelle méthode de calcul de l'évapotranspiration potentielle (CCA-k-NN) basé sur un algorithme de plus proche voisin auto-optimisé a été proposé, dans lequel moins de données météorologiques ont été utilisées pour l'estimation. En analysant les principes de base de l'ACC et k-NN et selon l'exigence d'estimer ET0, le CCA-kLa méthode -NN a été élaborée et ses principes de base et étapes clés ont été décrits. Dans cette méthode, l'algorithme CCA a été utilisé pour trouver les données météorologiques les plus pertinentes pour l'évapotranspiration potentielle, et la dimensionnalité des données météorologiques pour l'estimation ultérieure de l'ET.0 A été réduit. Puis, kL'algorithme -NN a été utilisé pour estimer ET0. Le nord-ouest de la Chine a été choisi comme zone de recherche pour évaluer l'applicabilité de cette méthode. Les 148 stations de données de la région ont été divisées en ensembles de données d'entraînement, ensembles de données de test et ensembles de données de validation. HE0 a été estimée sur trois ensembles de données à l'aide de la méthode proposée, et la précision de l'estimation du CCA-kLa méthode -NN a été évaluée avec FAO-56 Penman-Monteith comme référence. Les résultats montrent que le CCA-kLa méthode -NN maintient une forte corrélation avec FAO-56 Penman-Monteith (le coefficient de corrélation est supérieur à 0,9) et a une bonne précision d'estimation. Le RMSE et le MAE sont tous deux inférieurs à 1 mm jour -1 , et la performance globale du NSCE est supérieure à 0,5, tous atteignant le niveau « applicable » et supérieur. Dans le même temps, le CCA-kLa méthode -NN a une faible complexité temporelle O(m). Comparaison des résultats du CCA-k-NN avec celles d'autres modèles empiriques ont montré que le CCA-kLa méthode -NN est plus précise et peut être utilisée avec succès pour estimer l'ET0.

Ceci est un aperçu du contenu de l'abonnement, accessible via votre institution.


2 Revue de la littérature

Avec la tendance actuelle des médias sociaux et des applications de discussion en ligne, il devient impératif que diverses méthodes de normalisation de texte aient été recherchées et appliquées afin de déterminer un système efficace de normalisation. Les travaux antérieurs dans le domaine comprennent principalement des méthodes telles que la traduction automatique, l'approche basée sur des règles, des modèles basés sur la phonétique et les métriques de similarité de chaînes ou une combinaison de ceux-ci.

Un article : (Aw et al. , 2006) considérait le problème de la normalisation des SMS comme un problème de traduction et a utilisé une traduction automatique statistique basée sur des phrases basée sur les travaux d'un autre article : (Koehn et al. , 2003) . Cependant, leur modèle n'a pas réussi à gérer les ponctuations manquantes et n'a pas utilisé les informations des prononciations des mots OOV (Out-Of-Vocabulary).

Une autre approche : (Raghunathan et Krawczyk, 2009) a utilisé une méthode de substitution de dictionnaire et une traduction automatique standard pour résoudre le problème donné. Leur score BLEU était meilleur que l'article : (Aw et al. , 2006) , en raison des différentes suppressions effectuées par l'article : (Aw et al. , 2006)

Les travaux suivants : (Li et Liu, 2014) ont utilisé des schémas d'optimisation au niveau du mot et au niveau de la phrase en utilisant deux méthodes différentes : la création et l'utilisation d'une table de recherche inversée et le reclassement au niveau du mot. En raison de l'évaluation d'un petit ensemble de mots candidats, leur reclassement a fourni une meilleure faisabilité dans l'étape de normalisation.

La méthode d'expansion en deux phases des abréviations a été utilisée par : (Pennell et Liu, 2011) , en utilisant la traduction automatique au niveau des caractères et un modèle de langage dans le domaine. Alors que leur travail produisait des résultats distingués lorsque la TA au niveau des caractères était intégrée à des informations contextuelles au niveau des mots, ils avaient supposé que leurs mots cibles n'étaient que des abréviations. Pour gérer les lacunes des modèles basés sur la TA, les auteurs de l'article : (Gadde et al. , 2011) ont proposé une méthode contrôlée pour ajouter du bruit artificiel aux corpus anglais réguliers afin de tester efficacement l'approche basée sur la TA.

Une stratégie hybride vers la normalisation des textes SMS a été proposée par : (Sharma, 2015) , en utilisant une approche basée sur des règles, une cartographie directe et une traduction automatique. Son système visait à normaliser le texte SMS avant le processus de traduction automatique, éliminant ainsi l'énorme effort requis pour adapter le modèle linguistique du système existant pour gérer ce style de texte SMS particulier.

Un autre article : (Khanuja et Yadav, 2013) a proposé une implémentation qui a utilisé la similarité morphophonémique et lexicale pour générer l'ensemble de candidats correcteurs qui pourraient contenir un remplacement pour le mot OOV. De même, l'article : (Pinto et al. , 2012) a effectué la tâche sur les deux langues, l'anglais et l'espagnol en utilisant l'algorithme Soundex et une modification de celui-ci. Ils ont également utilisé la distance Jaccard comme mesure de similarité pour évaluer les différentes adaptations des algorithmes Soundex proposés.

De plus, l'article : (Han et al. , 2013) utilisait à la fois des informations contextuelles et des informations sur la similarité des chaînes. En mettant l'accent sur les variantes lexicales insensibles au contexte, leur normalisation basée sur le type a pu atteindre une bonne précision avec une précision raisonnable.


Annonce de ScaNN : recherche efficace de similarités vectorielles

Supposons que l'on souhaite effectuer une recherche dans un grand ensemble de données d'œuvres littéraires à l'aide de requêtes qui nécessitent une correspondance exacte du titre, de l'auteur ou d'autres critères facilement indexables par machine. Une telle tâche serait bien adaptée pour une base de données relationnelle utilisant un langage tel que SQL. Cependant, si l'on souhaite prendre en charge des requêtes plus abstraites, telles que "Poème de guerre civile", il n'est plus possible de s'appuyer sur des métriques de similarité naïves telles que le nombre de mots communs entre deux phrases. Par exemple, la requête « science-fiction » est plus liée à « futur » qu'à « science de la terre » bien que la première ait zéro et la seconde un mot en commun avec la requête.

L'apprentissage automatique (ML) a considérablement amélioré les capacités des ordinateurs à comprendre la sémantique du langage et donc à répondre à ces requêtes abstraites. Les modèles de ML modernes peuvent transformer des entrées telles que du texte et des images en intégrations, des vecteurs de grande dimension formés de manière à ce que des entrées plus similaires se regroupent plus étroitement. Pour une requête donnée, on peut donc calculer son plongement, et trouver les œuvres littéraires dont les plongements sont les plus proches de celui de la requête. De cette manière, ML a transformé une tâche abstraite et auparavant difficile à spécifier en une tâche mathématique rigoureuse. Cependant, un défi de calcul demeure : pour un plongement de requête donné, comment trouver rapidement les plongements de jeu de données les plus proches ? L'ensemble des plongements est souvent trop grand pour une recherche exhaustive et sa grande dimensionnalité rend l'élagage difficile.

Dans notre article ICML 2020, "Accélérer l'inférence à grande échelle avec la quantification vectorielle anisotrope", nous abordons ce problème en nous concentrant sur la façon de compresser les vecteurs de l'ensemble de données pour permettre des calculs de distance approximatifs rapides, et proposons une nouvelle technique de compression qui améliore considérablement la précision par rapport à travaux antérieurs. Cette technique est utilisée dans notre bibliothèque de recherche de similarité vectorielle (ScaNN) récemment ouverte et nous permet de surpasser les autres bibliothèques de recherche de similarité vectorielle par un facteur de deux, tel que mesuré sur ann-benchmarks.com.

L'importance de la recherche de similarité vectorielle
La recherche basée sur l'intégration est une technique efficace pour répondre aux requêtes qui reposent sur une compréhension sémantique plutôt que sur de simples propriétés indexables. Dans cette technique, les modèles d'apprentissage automatique sont entraînés pour mapper les requêtes et les éléments de la base de données à un espace d'intégration de vecteurs commun, de sorte que la distance entre les intégrations a une signification sémantique, c'est-à-dire que les éléments similaires sont plus proches les uns des autres.

Le modèle de réseau de neurones à deux tours, illustré ci-dessus, est un type spécifique de recherche basée sur l'intégration où les requêtes et les éléments de base de données sont mappés à l'espace d'intégration par deux réseaux de neurones respectifs. Dans cet exemple, le modèle répond à des requêtes en langage naturel pour une base de données littéraire hypothétique.

Pour répondre à une requête avec cette approche, le système doit d'abord mapper la requête à l'espace d'insertion. Il doit ensuite trouver, parmi tous les plongements de base de données, ceux les plus proches de la requête, c'est le problème de recherche du voisin le plus proche. L'un des moyens les plus courants de définir la similarité d'intégration de la base de données de requête est par leur produit interne, ce type de recherche du voisin le plus proche est connu sous le nom de recherche de produit interne maximale (MIPS).

Étant donné que la taille de la base de données peut facilement atteindre des millions, voire des milliards, MIPS est souvent le goulot d'étranglement de calcul pour la vitesse d'inférence, et une recherche exhaustive est peu pratique. Cela nécessite l'utilisation d'algorithmes MIPS approximatifs qui échangent une certaine précision contre une accélération significative par rapport à la recherche par force brute.

Une nouvelle approche de quantification pour MIPS
Plusieurs solutions de pointe pour MIPS sont basées sur la compression des éléments de la base de données afin qu'une approximation de leur produit interne puisse être calculée en une fraction du temps pris par la force brute. Cette compression est généralement effectuée avec une quantification apprise, où un livre de codes des vecteurs est formé à partir de la base de données et est utilisé pour représenter approximativement les éléments de la base de données.

Les schémas de quantification vectorielle précédents quantifiaient les éléments de la base de données dans le but de minimiser la distance moyenne entre chaque vecteur X et sa forme quantifiée X. Bien qu'il s'agisse d'une métrique utile, l'optimiser n'équivaut pas à optimiser la précision de la recherche du plus proche voisin. L'idée clé derrière notre article est que les encodages avec plus haute la distance moyenne peut en fait entraîner une précision MIPS supérieure.

L'intuition de notre résultat est illustrée ci-dessous. Supposons que nous ayons deux intégrations de base de données X1 et X2, et doit quantifier chacun à l'un des deux centres : c1 ou alors c2. Notre objectif est de quantifier chaque Xje à Xje tel que le produit intérieur <q, Xje> est aussi similaire au produit intérieur d'origine <q, Xje> que possible. Cela peut être visualisé comme faisant l'ampleur de la projection de Xje sur q aussi proche que possible de la projection de Xje sur q. Dans l'approche traditionnelle de la quantification (à gauche), nous choisirions le centre le plus proche pour chaque Xje, ce qui conduit à un classement relatif incorrect des deux points : <q, X1> est plus grand que <q, X2>, même si <q, X1> est moins que <q, X2>! Si nous attribuons plutôt X1 à c1 et X2 à c2, nous obtenons le bon classement. Ceci est illustré dans la figure ci-dessous.

Le but est de quantifier chaque Xje à Xje = c1 ou alors Xje = c2. La quantification traditionnelle (à gauche) entraîne un ordre incorrect des X1 et X2 pour cette requête. Même si notre approche (à droite) choisit des centres plus éloignés des points de données, cela conduit en fait à une erreur de produit interne plus faible et à une précision plus élevée.

Il s'avère que la direction compte aussi bien que l'ampleur–même si c1 est plus loin de X1 que c2, c1 est décalé de X1 dans une direction presque entièrement orthogonale à X1, tandis que c2le décalage de est parallèle (pour X2, la même situation s'applique mais inversée). L'erreur dans la direction parallèle est beaucoup plus préjudiciable dans le problème MIPS car elle affecte de manière disproportionnée les produits internes élevés, qui sont par définition ceux que MIPS essaie d'estimer avec précision.

Sur la base de cette intuition, nous pénalisons plus fortement l'erreur de quantification parallèle au vecteur d'origine. Nous appelons notre nouvelle technique de quantification quantification vectorielle anisotrope en raison de la dépendance directionnelle de sa fonction de perte. La capacité de cette technique à échanger une erreur de quantification accrue des produits intérieurs inférieurs en échange d'une précision supérieure pour les produits intérieurs élevés est l'innovation clé et la source de ses gains de performances.

Dans les diagrammes ci-dessus, les ellipses désignent des contours de perte égale. Dans la quantification vectorielle anisotrope, l'erreur parallèle au point de données d'origine x est davantage pénalisée.

Quantification vectorielle anisotrope dans ScaNN
La quantification vectorielle anisotrope permet à ScaNN de mieux estimer les produits internes susceptibles d'être dans le top-k Résultats MIPS et donc atteindre une plus grande précision. Sur la référence angulaire du gant 100 d'ann-benchmarks.com, ScaNN a surpassé onze autres bibliothèques de recherche de similarité vectorielle soigneusement réglées, traitant environ deux fois plus de requêtes par seconde pour une précision donnée que la bibliothèque la plus rapide suivante. *

[email protected] est une métrique couramment utilisée pour la précision de la recherche du voisin le plus proche, qui mesure la proportion des vrais voisins k les plus proches qui sont présents dans les k voisins renvoyés par un algorithme. ScaNN (ligne violette supérieure) atteint systématiquement des performances supérieures à divers points du compromis vitesse-précision.

ScaNN est un logiciel open source et vous pouvez l'essayer vous-même sur GitHub. La bibliothèque peut être directement installée via Pip et possède des interfaces pour les entrées TensorFlow et Numpy. Veuillez consulter le référentiel GitHub pour plus d'instructions sur l'installation et la configuration de ScaNN.

Conclusion
En modifiant l'objectif de quantification vectorielle pour l'aligner sur les objectifs de MIPS, nous obtenons des performances de pointe sur les références de recherche du voisin le plus proche, un indicateur clé des performances de recherche basées sur l'intégration. Bien que la quantification vectorielle anisotrope soit une technique importante, nous pensons que ce n'est qu'un exemple des gains de performances réalisables en optimisant les algorithmes dans le but final d'améliorer la précision de la recherche plutôt qu'un objectif intermédiaire tel que la distorsion de compression.

Remerciements
Ce message reflète le travail de toute l'équipe ScaNN : David Simcha, Erik Lindgren, Felix Chern, Nathan Cordeiro, Ruiqi Guo, Sanjiv Kumar et Zonglin Li. Nous tenons également à remercier Dan Holtmann-Rice, Dave Dopson et Felix Yu.


Annonce de ScaNN : recherche efficace de similarités vectorielles

Supposons que l'on souhaite effectuer une recherche dans un grand ensemble de données d'œuvres littéraires à l'aide de requêtes qui nécessitent une correspondance exacte du titre, de l'auteur ou d'autres critères facilement indexables par machine. Une telle tâche serait bien adaptée pour une base de données relationnelle utilisant un langage tel que SQL. Cependant, si l'on souhaite prendre en charge des requêtes plus abstraites, telles que "Poème de guerre civile", il n'est plus possible de s'appuyer sur des métriques de similarité naïves telles que le nombre de mots en commun entre deux phrases. Par exemple, la requête « science-fiction » est plus liée à « futur » qu'à « science de la terre » bien que la première ait zéro et la seconde un mot en commun avec la requête.

L'apprentissage automatique (ML) a considérablement amélioré les capacités des ordinateurs à comprendre la sémantique du langage et donc à répondre à ces requêtes abstraites. Les modèles de ML modernes peuvent transformer des entrées telles que du texte et des images en intégrations, des vecteurs de grande dimension formés de telle sorte que des entrées plus similaires se regroupent plus étroitement. Pour une requête donnée, on peut donc calculer son plongement, et trouver les œuvres littéraires dont les plongements sont les plus proches de celui de la requête. De cette manière, ML a transformé une tâche abstraite et auparavant difficile à spécifier en une tâche mathématique rigoureuse. Cependant, un défi de calcul demeure : pour un plongement de requête donné, comment trouver rapidement les plongements de jeu de données les plus proches ? L'ensemble des plongements est souvent trop grand pour une recherche exhaustive et sa grande dimensionnalité rend l'élagage difficile.

Dans notre article ICML 2020, "Accélérer l'inférence à grande échelle avec la quantification vectorielle anisotrope", nous abordons ce problème en nous concentrant sur la façon de compresser les vecteurs de l'ensemble de données pour permettre des calculs de distance approximatifs rapides, et proposons une nouvelle technique de compression qui améliore considérablement la précision par rapport à travaux antérieurs. Cette technique est utilisée dans notre bibliothèque de recherche de similarité vectorielle (ScaNN) récemment ouverte et nous permet de surpasser les autres bibliothèques de recherche de similarité vectorielle par un facteur de deux, tel que mesuré sur ann-benchmarks.com.

L'importance de la recherche de similarité vectorielle
La recherche basée sur l'intégration est une technique efficace pour répondre aux requêtes qui reposent sur une compréhension sémantique plutôt que sur de simples propriétés indexables. Dans cette technique, les modèles d'apprentissage automatique sont entraînés pour mapper les requêtes et les éléments de la base de données à un espace d'intégration de vecteurs commun, de sorte que la distance entre les intégrations a une signification sémantique, c'est-à-dire que les éléments similaires sont plus proches les uns des autres.

Le modèle de réseau de neurones à deux tours, illustré ci-dessus, est un type spécifique de recherche basée sur l'intégration où les requêtes et les éléments de base de données sont mappés à l'espace d'intégration par deux réseaux de neurones respectifs. Dans cet exemple, le modèle répond à des requêtes en langage naturel pour une base de données littéraire hypothétique.
Pour répondre à une requête avec cette approche, le système doit d'abord mapper la requête à l'espace d'insertion. Il doit ensuite trouver, parmi tous les plongements de base de données, ceux les plus proches de la requête, c'est le problème de recherche du voisin le plus proche. L'un des moyens les plus courants de définir la similarité d'intégration de la base de données de requête est par leur produit interne, ce type de recherche du voisin le plus proche est connu sous le nom de recherche de produit interne maximale (MIPS).

Étant donné que la taille de la base de données peut facilement atteindre des millions, voire des milliards, MIPS est souvent le goulot d'étranglement de calcul pour la vitesse d'inférence, et une recherche exhaustive est peu pratique. Cela nécessite l'utilisation d'algorithmes MIPS approximatifs qui échangent une certaine précision contre une accélération significative par rapport à la recherche par force brute.

Une nouvelle approche de quantification pour MIPS
Plusieurs solutions de pointe pour MIPS sont basées sur la compression des éléments de la base de données afin qu'une approximation de leur produit interne puisse être calculée en une fraction du temps pris par la force brute. Cette compression est généralement effectuée avec une quantification apprise, où un livre de codes des vecteurs est formé à partir de la base de données et est utilisé pour représenter approximativement les éléments de la base de données.

Les schémas de quantification vectorielle précédents quantifiaient les éléments de la base de données dans le but de minimiser la distance moyenne entre chaque vecteur X et sa forme quantifiée X. Bien qu'il s'agisse d'une métrique utile, l'optimiser n'équivaut pas à optimiser la précision de la recherche du plus proche voisin. L'idée clé derrière notre article est que les encodages avec plus haute la distance moyenne peut en fait entraîner une précision MIPS supérieure.

L'intuition de notre résultat est illustrée ci-dessous. Supposons que nous ayons deux intégrations de base de données X1 et X2, et doit quantifier chacun à l'un des deux centres : c1 ou alors c2. Notre objectif est de quantifier chaque Xje à Xje tel que le produit intérieur <q, Xje> est aussi similaire au produit intérieur d'origine <q, Xje> que possible. Cela peut être visualisé comme faisant l'ampleur de la projection de Xje sur q aussi proche que possible de la projection de Xje sur q. Dans l'approche traditionnelle de la quantification (à gauche), nous choisirions le centre le plus proche pour chaque Xje, ce qui conduit à un classement relatif incorrect des deux points : <q, X1> est plus grand que <q, X2>, même si <q, X1> est moins que <q, X2>! Si nous attribuons plutôt X1 à c1 et X2 à c2, nous obtenons le bon classement. Ceci est illustré dans la figure ci-dessous.

Le but est de quantifier chaque Xje à Xje = c1 ou alors Xje = c2. La quantification traditionnelle (à gauche) entraîne un ordre incorrect des X1 et X2 pour cette requête. Même si notre approche (à droite) choisit des centres plus éloignés des points de données, cela conduit en fait à une erreur de produit interne plus faible et à une précision plus élevée.
Il s'avère que la direction compte autant que l'ampleur, même si c1 est plus loin de X1 que c2, c1 est décalé de X1 dans une direction presque entièrement orthogonale à X1, tandis que c2le décalage de est parallèle (pour X2, la même situation s'applique mais inversée). L'erreur dans la direction parallèle est beaucoup plus préjudiciable dans le problème MIPS car elle affecte de manière disproportionnée les produits internes élevés, qui sont par définition ceux que MIPS essaie d'estimer avec précision.

Based on this intuition, we more heavily penalize quantization error that is parallel to the original vector. We refer to our novel quantization technique as anisotropic vector quantization due to the directional dependence of its loss function. The ability of this technique to trade increased quantization error of lower inner products in exchange for superior accuracy for high inner products is the key innovation and the source of its performance gains.

In the above diagrams, ellipses denote contours of equal loss. In anisotropic vector quantization, error parallel to the original data point x is penalized more.
Anisotropic Vector Quantization in ScaNN
Anisotropic vector quantization allows ScaNN to better estimate inner products that are likely to be in the top-k MIPS results and therefore achieve higher accuracy. On the glove-100-angular benchmark from ann-benchmarks.com, ScaNN outperformed eleven other carefully tuned vector similarity search libraries, handling roughly twice as many queries per second for a given accuracy as the next-fastest library. *
[email protected] is a commonly used metric for nearest neighbor search accuracy, which measures the proportion of the true nearest k neighbors that are present in an algorithm’s returned k neighbors. ScaNN (upper purple line) consistently achieves superior performance across various points of the speed-accuracy trade-off.
ScaNN is open-source software and you can try it yourself at GitHub. The library can be directly installed via Pip and has interfaces for both TensorFlow and Numpy inputs. Please see the GitHub repository for further instructions on installing and configuring ScaNN.

Conclusion
By modifying the vector quantization objective to align with the goals of MIPS, we achieve state-of-the-art performance on nearest neighbor search benchmarks, a key indicator of embedding-based search performance. Although anisotropic vector quantization is an important technique, we believe it is just one example of the performance gains achievable by optimizing algorithms for the end goal of improving search accuracy rather than an intermediate goal such as compression distortion.

Acknowledgements
This post reflects the work of the entire ScaNN team: David Simcha, Erik Lindgren, Felix Chern, Nathan Cordeiro, Ruiqi Guo, Sanjiv Kumar, and Zonglin Li. We’d also like to thank Dan Holtmann-Rice, Dave Dopson, and Felix Yu.


An NLU-Powered Tool to Explore COVID-19 Scientific Literature

Posted by Keith Hall, Research Scientist, Natural Language Understanding, Google Research

Due to the COVID-19 pandemic, scientists and researchers around the world are publishing an immense amount of new research in order to understand and combat the disease. While the volume of research is very encouraging, it can be difficult for scientists and researchers to keep up with the rapid pace of new publications. Traditional search engines can be excellent resources for finding real-time information on general COVID-19 questions like "How many COVID-19 cases are there in the United States?", but can struggle with understanding the meaning behind research-driven requêtes. Furthermore, searching through the existing corpus of COVID-19 scientific literature with traditional keyword-based approaches can make it difficult to pinpoint relevant evidence for complex queries.

To help address this problem, we are launching the COVID-19 Research Explorer, a semantic search interface on top of the COVID-19 Open Research Dataset (CORD-19), which includes more than 50,000 journal articles and preprints. We have designed the tool with the goal of helping scientists and researchers efficiently pore through articles for answers or evidence to COVID-19-related questions.

When the user asks an initial question, the tool not only returns a set of papers (like in a traditional search) but also highlights snippets from the paper that are possible answers to the question. The user can review the snippets and quickly make a decision on whether or not that paper is worth further reading. If the user is satisfied with the initial set of papers and snippets, we have added functionality to pose follow-up questions, which act as new queries for the original set of retrieved articles. Take a look at the animation below to see an example of a query and a corresponding follow-up question. We hope these features will foster knowledge exploration and efficient gathering of evidence for scientific hypotheses.

Semantic Search
A key technology powering the tool is semantic search. Semantic search aims to not just capture term overlap between a query and a document, but to really understand whether the meaning of a phrase is relevant to the user’s true intent behind their query.

Consider the query, “What regulates ACE2 expression?” Even though this seems like a simple question, certain phrases can still confuse a search engine that relies solely on text matching. For example, “regulates” can refer to a number of biological processes. While traditional information retrieval (IR) systems use techniques like query expansion to mitigate this confusion, semantic search models aim to learn these relationships implicitly.

Word order also matters. ACE2 (angiotensin converting enzyme-2) itself regulates certain biological processes, but the question is actually asking what regulates ACE2. Matching on terms alone will not distinguish between “what regulates ACE2 ” and “what ACE2 regulates.” Traditional IR systems use tricks like n-gram term matching, but semantic search methods strive to model word order and semantics at their core.

The semantic search technology we use is powered by BERT, which has recently been deployed to improve retrieval quality of Google Search. For the COVID-19 Research Explorer we faced the challenge that biomedical literature uses a language that is very different from the kinds of queries submitted to Google.com. In order to train BERT models, we required supervision — examples of queries and their relevant documents and snippets. While we relied on excellent resources produced by BioASQ for fine-tuning, such human-curated datasets tend to be small. Neural semantic search models require large amounts of training data. To augment small human-constructed datasets, we used advances in query generation to build a large synthetic corpus of questions and relevant documents in the biomedical domain.

Specifically, we used large amounts of general domain question-answer pairs to train an encoder-decoder model (part a in the figure below). This kind of neural architecture is used in tasks like machine translation that encodes one piece of text (e.g., an English sentence) and produces another piece of text (e.g., a French sentence). Here we trained the model to translate from answer passages to questions (or queries) about that passage. Next we took passages from every document in the collection, in this case CORD-19, and generated corresponding queries (part b). We then used these synthetic query-passage pairs as supervision to train our neural retrieval model (part c).

Synthetic query construction.
However, we found that there were examples where the neural model performed worse than a keyword-based model. This is because of the memorization-generalization continuum, which is well known in most fields of artificial intelligence and psycholinguistics. Keyword-based models, like tf-idf, are essentially memorizers. They memorize terms from the query and look for documents that have them. Neural retrieval models, on the other hand, learn generalizations about concepts and meaning and try to match based on those. Sometimes they can over-generalize when precision is important. For example, if I query, “What regulates ACE2 expression?”, one may want the model to generalize the concept of “regulation,” but not ACE2 beyond acronym expansion.

Hybrid Term-Neural Retrieval Model
To improve our system we built a hybrid term-neural retrieval model. A crucial observation is that both term-based and neural models can be cast as a vector space model. In other words, we can encode both the query and documents and then treat retrieval as looking for the document vectors that are most similar to the query vector, also known as k-nearest neighbor retrieval. There is a lot of research and engineering that is needed to make this work at scale, but it allows us a simple mechanism to combine methods. The simplest approach is to combine the vectors with a trade-off parameter.

Hybrid Term and Neural Retrieval.
In the figure above, the blue boxes are the term-based vectors, and the red, the neural vectors. We represent documents by concatenating these vectors. We concatenate the two vectors for queries as well, but we control the relative importance of exact term matches versus neural semantic matching. This is done via a weight parameter k. While more complex hybrid schemes are possible, we found that this simple hybrid model significantly increased quality on our biomedical literature retrieval benchmarks.

Availability and Community Feedback
The COVID-19 Research Explorer is freely available to the research community as an open alpha. Over the coming months we will be making a number of usability enhancements, so please check back often. Try out the COVID-19 Research Explorer, and please share any comments you have with us via the feedback channels on the site.

Acknowledgements
This effort has been successful thanks to the hard work of many people, including, but not limited to the following (in alphabetical order of last name): John Alex, Waleed Ammar, Greg Billock, Yale Cong, Ali Elkahky, Daniel Francisco, Stephen Greco, Stefan Hosein, Johanna Katz, Gyorgy Kiss, Margarita Kopniczky, Ivan Korotkov, Dominic Leung, Daphne Luong, Ji Ma, Ryan Mcdonald, Matt Pearson-Beck, Biao She, Jonathan Sheffi, Kester Tong, Ben Wedin

La source: Google AI Blog


Optimizing a nearest neighbor calculation using PostGIS - Geographic Information Systems

When we model dynamic phenomena, it is important to properly incorporate their probabilistic uncertainty. In particular, there is an increasing need for modeling and analysis methods for rare events that cause severe impact, e.g., extreme wind power fluctuations due to gusts. For the modeling of the stochasticity in dynamical systems, Gaussian noise is often used because of its analytical tractability. However, it cannot represent outliers because of its rapidly decaying tails. In this context, this article introduces a modeling and analysis method using stable distributions. This framework is capable of modeling rare events while retaining the favorable properties equipped with the Gaussian. As applications, we also describe our results on stochastic linearization analysis and privacy protection in dynamical systems.

Three-dimensional (3D) audio is a technology for reproducing acoustic events in an arbitrary environment and for creating virtual reality. In this technology, multiple loudspeakers or a head-related transfer function that is defined between a sound source and a point in the ear canal is used. This paper focuses on studies, technologies, and services based on the head-related transfer function. There are many studies on the head-related transfer function, and research infrastructures such as public head-related transfer function databases are also available. Furthermore, high-performance and inexpensive devices and software make us familiar with spatial audio. In this paper, the fundamentals, applications, related equipment, and services for spatial audio based on the head-related transfer function are reviewed, and the future prospects of spatial audio are described.

By the achievements in science and technology, we are enjoying a rich life that has never been seen in the past. On the other hand, the sophistication of science and technology has led to a high complexity and large scale of systems that support society and life. Our lives are greatly affected by these sudden failures and malfunctions. As the news of system failures are well reported everyday, it is becoming more and more important to improve the reliability of the “system” that surrounds us and to consider the design and maintenance of highly reliable systems. Research on system reliability (system operating probability) began in the 1960s. In this paper, we focus on the consecutive k-system in which the system fails (operates) when a part of the system fails (operates), and give an overview of the research surrounding the design and maintenance of consecutive-k systèmes.

In this paper, the cooperation between technological development and social implementation is described on the basis of the author&aposs experience in natural language processing research and development of language resources. First, I describe the social implementation project of natural language processing technology currently underway. Next, I discuss the issues and directions of natural language processing technology for social implementation. After describing the importance of data in artificial intelligence systems, I introduce our experience in language data development so far. I also describe the AI Data Consortium we established recently for sharing data with society. I also explain the related activities on international standardization. Finally, I discuss human language understanding and artificial intelligence from a broader perspective.

The rapid and universal proliferation of wireless network technology and the considerable development of artificial intelligence technology together have brought forth the era of Internet of Things (IoT). Although each IoT device has limited computational capability, an IoT network as a whole, which realiges the role of data collection from devices, can be regarded as a rich computational resource. In this paper, we introduce several attempts to embed a neural network into a wireless network and conduct neural computing, which contribute to the realization of a high-performance, energy-efficient, and low-latency IoT system.

Gait has been considered as a biometric cue for identifying a person, and hence, gait recognition has recently become an active research area. Unlike other biometrics, gait recognition is still applicable even if the target person is captured at a distance from the camera without being aware of the camera, and therefore, it is expected to applied to be forensics using CCTV footage. In this article, we introduce basic approaches to gait recognition, as well as recently deep-learning frameworks for it. Moreover, we address our practice of gait recognition in forensics. Finally, we conclude this article with perspectives on gait recognition in the future.

In 1985, Miller and Koblitz independently introduced elliptic curve cryptosystems, a type of public key cryptosystem. Elliptic curve cryptosystems use the fact that elliptic curves become a group to realize an ID-based cryptosystem for the first time, by applying a bilinear map on an elliptic curve. Furthermore, in recent years, isogenies on elliptic curves have been used to realize post-quantum cryptosystems. Elliptic curves are indeed treasures for solving various cryptographic problems. Elliptic curves have been applied to resolve many theoretical problems and are merely a theoretical breakthrough. The charm of elliptic curves is that they are highly practical. To verify the correctness of a blockchain, the elliptic curve DSA signature (ECDSA) is used, since the signature size of ECDSA is very short. Furthermore, the elliptic curve realizes a post-quantum cryptosystem. In this paper, we discuss various breakthroughs achieved by using elliptic curves as well as international standardization related to elliptic curves.

To realize future large-scale quantum computation, we must perform a design procedure called “quantum circuit design.” Quantum circuit design can be considered as solving optimization problems similar to the conventional circuit design procedure. In this paper, we explain some costs that are optimized in quantum circuit design. Among such costs, we especially explain some known methods of optimizing nearest-neighbor cost (NNC) that have been studied intensively in recent years.


Table of contents (28 chapters)

Query Evaluation via Tree-Decompositions

Scalar Aggregation in FD-Inconsistent Databases

On Decidability and Complexity of Description Logics with Uniqueness Constraints

Expressiveness Issues and Decision Problems for Active Database Event Queries

A Theory of Transactions on Recoverable Search Trees

Minimizing View Sets without Losing Query-Answering Power

Cost Based Data Dissemination in Broadcast Networks

Parallelizing the Data Cube

Asymptotically Optimal Declustering Schemes for Range Queries

Flexible Data Cubes for Online Aggregation

Mining for Empty Rectangles in Large Data Sets

FUN: An Efficient Algorithm for Mining Functional and Embedded Dependencies

Axiomatization of Frequent Sets

On Answering Queries in the Presence of Limited Access Patterns

The Dynamic Complexity of Transitive Closure Is in DynTC°

Query Languages for Constraint Databases: First-Order Logic, Fixed-Points, and Convex Hulls

A Semi-monad for Semi-structured Data (ICDT Version)

Algebraic Rewritings for Optimizing Regular Path Queries

Why and Where: A Characterization of Data Provenance

Subsumption for XML Types

Towards Aggregated Answers for Semistructured Data

Orthogonal Range Queries in OLAP

Reasoning about Summarizability in Heterogeneous Multidimensional Schemas

Estimating Range Queries Using Aggregate Data with Integrity Constraints: A Probabilistic Approach


Voir la vidéo: Spatial Relationships using PostGIS. PostGIS Baby Steps (Octobre 2021).