Leur usage s'élargit et vous en aurez bientôt besoin
Les premières bases de données vectorielles ont été créées dès le début des applications qui avaient besoin de gérer des vecteurs : CAO et Systèmes d’Information Géographiques.. Aujourd’hui, adoubées par l’IA, elles font les premières pages et vous les adopterez bientôt.
Pour une fois, dans la rubrique « les mots de l’informatique », nous allons aborder un sujet de façon moins légère.
Et si la recherche d’un produit était facilitée : au lieu de faire une recherche par mots-clés et vous retrouver avec le dernier ventilateur chinois tandis que vous recherchiez un système de refroidissement pour microprocesseur à air pulsé capable d’évacuer une certaine quantité d’énergie avec une consommation maximale donnée, vous saisiriez un certain nombre de critères sous forme d’un vecteur. Rassurez vous, une interface adaptée le ferait pour vous, nul besoin de saisir une multitude de chiffres. Et là on vous proposerait les produits les plus proches de votre demande. Le code produit serait plus complexe mais il serait universel, pour autant que les fabricants n’y mettent des capacités illusoires.
Vous connaissiez les bases de données relationnelles et sans doute les bases de données No-SQL. Peut être avez-vous connu les bases de données hiérarchiques. Pour ma part, en bon « SmallTalkien », rien à voir avec le « Seigneur des anneaux », j’ai travaillé quelques temps chez Gemstone Systems qui a développé le premier serveur d’objets persistants dès 1983. Techniquement une base de données n’est qu’un fichier, plus ou moins bien organisé. Pour retrouver efficacement les données, on utilise un moteur de base de données, DBMS ou Système de gestion de base de données.
Les bases de données vectorielles répondent aux besoins modernes de l’intelligence artificielle et de la recherche d’information. Les nuages sémantiques sont un bon point de départ pour comprendre ce qu’apportent les bases de données vectorielles. Les nuages de mots-clés en sont une version simplifiée. Et ne vous y trompez pas, si la base de données que vous utilisez, quelle qu’en soit sa technique, vous paraît triviale, elle a été l’aboutissement de travaux mathématiques rigoureux.
Un peu de mathématiques : la topologie algébrique
La topologie est, par essence, le langage sémantique des mathématiques. C’est Georg Cantor qui, avec la théorie des ensembles, a apporté l’outil déterminant pour la topologie moderne. La topologie algébrique, quant à elle, a apporté un outil de mesure de l’appartenance à un ensemble. Si vous avez utilisé la logique floue, vous comprenez ce que je veux dire.
Ces deux objets, v1 et v2, sont des vecteurs d’un espace qui dans cet exemple est réel, mais il peut tout aussi bien être complexe. L’outil de mesure des distances va varier en fonction du besoin, par exemple si vos objets sont répartis à la surface d’une sphère, vous utiliserez peut-être plutôt des géodésiques qu’une mesure euclidienne du type :
Si vous voulez aller plus loin sur les mesures de distance, jetez un œil au livre de Cédric Villani, « Optimal Transport: Old and New »*.
Le premier pas avant de passer à l’intelligence artificielle
Beaucoup de gens me demandent des idées sur ce qu’ils pourraient faire, dans leur domaine, avec l’intelligence artificielle. Si j’ai un conseil à donner c’est de commencer par mettre de l’ordre dans leurs données. Après plusieurs années, elles sont le résultat d’une stratification de complexité pour répondre à des évolutions constantes. La première action pourrait être de penser en terme de base de données vectorielle. Nul besoin de modifier votre base de données relationnelle développée au sein de votre ERP/CRM, sauf peut être d’intégrer des UUID (Universal Unique ID) quand elles n’en sont pas pourvues.
Une base de données vectorielle peut très bien rechercher ses informations dans une base de données relationnelle. Certes, c’est une rustine qui ajoute de l’entropie à votre système d’information, mais il faut savoir rester pragmatique. Ne vous y trompez pas, le chantier est fastidieux et il fait remonter à la surface la mauvaise rigueur des collaborateurs qui se sont succédés et durant des années ont saisi les données. Mais sans sémantique, lancer un projet d’intelligence artificielle n’a pas de sens. On a inventé un terme ronflant pour ce travail : « Data Scientist » mais dans de nombreux cas, vous seriez capable de le faire vous même.
Un cas concret
Vous êtes un fabricant d’ordinateurs spécialisés et à haute performance. Vous n’avez pas les volumes d’un gros fabricant. Votre réputation n’est plus à faire mais vous souhaitez proposer les meilleures machines au meilleur prix, et vos machines sont, par définition complexes. Vous voulez améliorer vos performances avec un outil d’optimisation de la conception.
Vous avez un stock de pièces détachées, mais il a été tellement mal renseigné dans l’ERP que le même produit peut se retrouver sous plusieurs codes et même dans des familles différentes. C’est la vraie vie : les acheteurs qui se sont succédés ont fait leur propre classification par paresse, dans l’urgence, ou parce que les informations déjà saisies étaient peu claires, à chacun ses raisons. Certains produits peuvent avoir des performances similaires mais comment le savoir? Tout repose sur votre responsable du stock. Certains sont consciencieux, d’autres moins. Trop d’informations restent dans les têtes et les têtes ne sont pas éternelles dans l’entreprise.
Une solution pourrait être de redonner un sens à tous les composants et cette fois vous avez recours à la théorie des ensembles et vous donnez des valeurs aux caractéristiques accessibles dans chacun des ensembles : vous entrez déjà dans la topologie algébrique. Vos acheteurs commencent par appliquer les nouvelles règles aux composants qui rentrent. Progressivement, tout le stock se voit donner un sens.
Vous verrez, la topologie algébrique n’est pas si obscure et maintenant, vous pouvez passer à l’étape suivante : intégrer l’intelligence artificielle.
Et votre serviteur dans tout ça ?
Si j’avais à créer un ERP aujourd’hui, ma structure reposerait certainement sur une base de données vectorielle. Mon ERP serait prêt pour une future connexion à un système d’intelligence artificielle. C’est certes un changement de paradigme et les développeurs devront penser différemment. Malheureusement, fort de l’expérience de l’échec des bases de données à objets, j’ai aussi appris combien une population de développeurs avait du mal à aborder de nouveaux concepts. La programmation par objets a mis presque vingt ans à s’imposer.
Pour ma part, je travaille dans des espaces métriques multidimensionnels de Fourier. Le principe est fondamentalement identique à celui des espaces métriques vectoriels, ce sont juste l’outil de mesure des distances qui n’est pas euclidien et les filtrages qui sont plus intéressants. N’est-ce pas en travaillant sur les transformées de Fourier que Cantor en est arrivé à la théorie des ensembles ?
Hugues Sansen
* Villani C. 2008. Optimal Transport: Old and New. Berlin: Springer, ISBN: 978‑3‑540‑71050‑9,
https://cedricvillani.org/sites/dev/files/old_images/2012/08/preprint-1.pdf