Nous parlons d'un moteur de recherche visuel qui a reçu les premiers investissements occidentaux en capital-risque dans l'informatique en Russie, construit sur la base de réseaux de neurones sémantiques actifs. Sous la coupe, nous vous parlerons de ses principes de base de fonctionnement et d'architecture.
Origines
J'ai eu beaucoup de chance dans ma vie - j'ai étudié avec Nikolai Mikhailovich Amosov , une personne exceptionnelle, chirurgien cardiaque et cybernétique. J'ai étudié par contumace - l'effondrement de l'URSS ne m'a pas donné l'occasion de me rencontrer en personne.
On peut dire beaucoup de choses sur Nikolai Mikhailovich, il est né dans une famille de paysans dans un village près de Cherepovets et a en même temps reçu la deuxième place dans le projet "Grands Ukrainiens", cédant la première place à Yaroslav le Sage. Chirurgien cardiaque et ingénieur cybernétique hors pair qui a développé indépendamment la première valve artificielle en URSS. Les rues, une école de médecine, un collège, un bateau de croisière dans le réservoir Ivankovskoye portent son nom.
On a beaucoup écrit à ce sujet sur Wikipédia et sur d'autres sites .
Je veux aborder le côté peu éclairé d'Amosov. Une vision large, deux formations (médecine et ingénierie) lui ont permis de développer une théorie des réseaux de neurones sémantiques actifs (M-networks), au sein de laquelle, il y a plus de 50 ans, des choses ont été mises en œuvre qui frappent encore dans leur unicité.
Et s'il y avait une puissance de calcul suffisante à ce moment-là, peut-être qu'une IA forte aurait déjà été mise en œuvre aujourd'hui.
Dans ses travaux, Amosov a réussi à maintenir un équilibre entre la neurophysiologie et les mathématiques, étudiant et décrivant les processus informationnels de l'intelligence. Les résultats de ses travaux sont présentés dans plusieurs ouvrages, le final étant la monographie «Algorithmes de l'esprit» , publiée en 1979.
En voici une courte citation sur l'un des modèles:
«… (Nous) avons mené une étude dont le but était d'étudier les possibilités des réseaux M dans le domaine de la neurophysiologie et de la neuropsychologie, ainsi que d'évaluer l'importance pratique et cognitive de ces modèles. Un automate M a été développé et étudié, qui simule les mécanismes de la parole. Le modèle présente des aspects de la parole orale tels que la perception, la compréhension, l'expression verbale.
Le modèle est conçu pour reproduire des fonctions vocales relativement simples (!!!) - réponses à des questions de type limité, répétition, dénomination. Il contient les blocs suivants: perception auditive, parole sensorielle, discours proprioceptif, conceptuel, émotion, motivation, discours moteur, articulatoire et bloc SUT. Les blocs du modèle sont corrélés à certaines formations cérébrales ...
... L'entrée du modèle était les lettres de l'alphabet russe combinées en mots et phrases, ainsi que des objets spéciaux correspondant aux images des objets. À la sortie du modèle, en fonction du mode de son fonctionnement, des séquences de lettres de l'alphabet russe ont été observées, qui étaient soit des réponses à des questions d'entrée, soit une répétition de mots d'entrée, soit les noms d'objets.
Le fait que les données neurophysiologiques aient été largement utilisées dans la création du modèle a permis dans des expériences de simuler un certain nombre de lésions cérébrales de nature organique et fonctionnelle, entraînant une altération des fonctions de la parole.
Et ce n'est qu'une des œuvres.
Un autre est le contrôle d'un robot mobile. «… Le système de contrôle du robot suppose la mise en œuvre d'un mouvement ciblé en assurant sa propre sécurité (éviter les obstacles, éviter les endroits dangereux, maintenir les paramètres internes dans les limites spécifiées) et minimiser les coûts de temps et d'énergie».
En outre, la monographie décrit les résultats de la modélisation du comportement libre d'un «certain sujet dans un environnement qui contenait pour lui des objets utiles et dangereux. Les motifs de comportement du sujet étaient déterminés par des sentiments de fatigue, de faim et de désir d'auto-préservation. Le sujet a étudié l'environnement, choisi le but du mouvement, construit un plan pour atteindre cet objectif puis l'a mis en œuvre en effectuant des actions-étapes, en comparant les résultats obtenus pendant le mouvement avec ceux prévus, en complétant et en ajustant le plan en fonction des situations émergentes.
Caractéristiques de la théorie
Dans ses travaux, Amosov a tenté de créer un modèle informationnel / algorithmique, comme nous le disons maintenant, de «forte intelligence» et, à mon avis, sa théorie décrit le plus fidèlement ce qui se passe réellement dans le cerveau des mammifères.
Les principales caractéristiques des M-réseaux, qui les distinguent fondamentalement des autres paradigmes de réseaux de neurones, sont la charge sémantique stricte de chaque neurone et la présence d'un système d'évaluation interne de son état. Il existe des neurones-récepteurs, des neurones-objets, des neurones-sentiments, des neurones-actions.
L'apprentissage se déroule selon la règle Hebb modifiée, en tenant compte de votre état intérieur. En conséquence, la décision est prise sur la base d'une distribution compréhensible de l'activité des neurones désignés sémantiquement.
Le réseau apprend "à la volée", sans répétition répétée. Les mêmes mécanismes fonctionnent avec différents types d'informations, que ce soit la parole ou la perception de données visuelles, l'activité motrice. Ce paradigme simule à la fois le travail de la conscience et du subconscient.
Les personnes intéressées peuvent trouver les livres d'Amosov avec une description plus détaillée de la théorie et des implémentations pratiques de divers aspects de l'intelligence, mais je vais vous parler de notre expérience dans la construction d'un moteur de recherche visuel Quintura Search.
Quintura
La société Quintura a été fondée en 2005. Un prototype d'application de bureau démontrant notre approche a été mis en œuvre avec notre propre argent. Avec l'argent providentiel de Ratmir Timashev et Andrey Baronov (plus tard fonds ABRT ), le prototype a été finalisé, des négociations ont eu lieu et des investissements ont été reçus du fonds luxembourgeois Mangrove Capital Partners . Il s'agissait du premier investissement occidental en Russie dans le domaine informatique. Les trois partenaires du fonds sont venus à Sergiev Posad pour nous regarder dans les yeux et prendre une décision d'investissement.
Avec les fonds reçus, sur six ans, la fonctionnalité complète d'un moteur de recherche Web a été développée - collecte d'informations, indexation, traitement des requêtes et émission de résultats. Le noyau était un réseau M, ou plutôt un ensemble de réseaux M (un réseau conceptuel et des réseaux pour chaque document). Le réseau a été formé en un seul passage sur le document. Pendant quelques cycles de recalcul, des mots-clés ont été alloués, des documents correspondant à la requête ont été trouvés, et leurs annotations ont été construites. Le réseau a compris le contexte de la demande, plus précisément, il a permis à l'utilisateur de le clarifier en ajoutant les significations nécessaires à la recherche et en supprimant les documents qui avaient des contextes non pertinents des résultats de la recherche.
Principes et approches de base
Comme indiqué ci-dessus, chaque neurone du réseau a sa propre charge sémantique. Pour illustrer les brevets, nous avons proposé une image visuelle (je m'excuse pour la qualité - les originaux des images n'ont pas été conservés, ci-après nous avons utilisé des images de scans de nos brevets et d'articles sur nous provenant de divers sites):
Simplifié, un réseau conceptuel est un ensemble de neurones-concepts liés les uns avec les autres par des connexions, proportionnellement à la fréquence de leur apparition les uns avec les autres. Lorsque l'utilisateur entre le mot de la requête, nous "tirons" le (s) neurone (s) de ce mot, et lui, à son tour, extrait ceux qui lui sont associés. Et plus la connexion est forte, plus les autres neurones seront proches du neurone de requête.
S'il y a plusieurs mots dans la requête, alors tous les neurones correspondant aux mots de la requête seront "entraînés".
Si nous décidons de supprimer un mot non pertinent, nous y accrochons en quelque sorte une charge qui abaisse à la fois le concept supprimé et ceux qui lui sont associés.
En conséquence, nous obtenons un nuage de balises, où les mots de la requête sont en haut (la plus grande police), et les concepts associés sont situés côte à côte, plus le lien est grand, plus la police est grande.
Ci-dessous, une carte sémantique des documents trouvés par la requête "beauté".
Lorsque vous passez la souris sur le mot «mode», la carte est reconstruite:
Si vous déplacez le pointeur de la souris sur le mot «voyage», nous obtenons une autre carte:
Ainsi, nous pouvons affiner la requête en pointant la direction dont nous avons besoin, former le contexte dont nous avons besoin.
Simultanément à la reconstruction de la carte, nous recevons également les documents les plus pertinents pour le contexte donné, et nous excluons les branches inutiles en supprimant les mots non pertinents.
Nous construisons l'index du document selon le principe suivant:
Il y a 4 couches de neurones. Couche de mots, couche de concepts (ils peuvent être combinés en une seule couche), couche de phrases, couche de documents.
Les neurones peuvent être connectés les uns aux autres par deux types de connexions - amplificatrices et inhibitrices. En conséquence, chaque neurone peut être dans trois types d'états: actif, neutre et supprimé. Les neurones transmettent l'activité via les connexions amplificatrices sur le réseau, des «ancres» inhibitrices. La couche de concept est utile pour travailler avec des synonymes, ainsi que pour mettre en évidence des concepts «forts» ou significatifs par rapport aux autres, en définissant des catégories de documents.
Par exemple, le mot Apple dans la couche de mots serait associé aux concepts de fruit, terme anatomique et société. Huile - avec de l'huile et de l'huile. Le mot russe "tresse" avec une coiffure, des outils, des armes, du relief. Etc.
Nous établissons des communications bidirectionnelles - directes et inverses. L'apprentissage (changements dans les liens) se produit en un seul passage dans le document basé sur la règle Hebb - nous augmentons les liens entre les mots qui sont proches les uns des autres, nous lions également les mots qui se trouvent dans la même phrase, paragraphe, document avec des liens plus petits. Plus les mots se trouvent côte à côte, à la fois dans le même document et dans un groupe de documents, plus la connexion entre eux se fait.
Cette architecture vous permet de résoudre efficacement les tâches suivantes:
- définir et gérer le contexte de recherche;
- rechercher des documents qui correspondent au contexte de recherche (non seulement contenant des mots de requête);
- afficher les contextes sémantiques d'un ensemble de documents (quelles sont les associations du moteur de recherche avec les mots de la requête);
- mettre en évidence les mots-clés du / des documents;
- annoter un document;
- rechercher des documents de signification similaire.
Considérons la mise en œuvre de chaque tâche.
Définition et gestion du contexte de recherche
Ce cas a été illustré plus tôt. L'utilisateur entre les mots de la requête, ces mots excitent tous ceux qui leur sont associés, puis nous pouvons soit sélectionner les concepts les plus proches (ayant une excitation maximale), soit transmettre davantage l'excitation à travers le réseau à partir de tous les neurones excités à l'étape précédente, et ainsi de suite - dans ce cas, ils commencent associations de travail. Un certain nombre des mots / concepts les plus excités sont affichés sur la carte (vous pouvez également choisir ce que vous voulez afficher - une couche de mots, de concepts ou les deux). Si nécessaire, les mots non pertinents sont supprimés (en supprimant les concepts associés de la carte), fournissant ainsi une description précise du contexte de recherche requis.
Recherche de documents correspondant au contexte de recherche
L'état des deux premières couches du réseau à cette étape transmet leur excitation aux couches suivantes, dont les neurones sont classés par excitation, et nous obtenons une liste de documents classés par pertinence non seulement par rapport aux mots de la requête, mais au contexte généré.
Ainsi, les résultats de la recherche comprendront non seulement les documents contenant les mots de la requête, mais également ceux qui leur sont liés dans leur signification. Les documents résultants peuvent être utilisés pour modifier le contexte de recherche soit en renforçant les concepts contenus dans les documents «nécessaires» pour nous, soit en diminuant le poids des concepts associés à des documents non pertinents. De cette façon, vous pouvez affiner facilement et intuitivement votre requête et gérer les résultats de recherche.
Affichage des contextes sémantiques d'une collection de documents
Le transfert de l'excitation dans le sens inverse, des neurones-documents aux neurones en passant par les concepts / mots, permet d'obtenir une carte visuelle des contextes sémantiques présents dans l'ensemble des documents. Il s'agit d'une autre façon d'obtenir une carte d'étiquettes significative et de naviguer dans l'espace de signification. Ce processus peut être effectué de manière itérative en changeant la direction de l'excitation - en recevant des documents pour les contextes de recherche, ou en changeant le contexte de recherche pour les documents actifs.
Habituellement, le scénario du moteur de recherche est le suivant - la carte initiale est formée soit sur la base des dernières nouvelles, des articles populaires, des requêtes ou de leur combinaison. Ensuite, l'utilisateur peut soit commencer à former une requête en cliquant sur les mots de la carte, soit en créant une nouvelle requête en saisissant les mots d'intérêt dans le champ de saisie.
Dans notre service aux enfants Quintura Kids, même les enfants qui ne savaient pas écrire (ou qui avaient des difficultés) pouvaient travailler et rechercher les informations nécessaires.
Voici à quoi ressemblait la carte initiale.
Et l'utilisateur l'a vu après avoir cliqué sur le mot "Espace".
Le service pour enfants a été construit sur des sites sélectionnés et approuvés manuellement, de sorte que l'enfant ne pouvait rien voir d'un adulte. Ceci explique le petit nombre de documents trouvés. La version anglaise contenait plusieurs fois plus de documents - grâce à l'annuaire pour enfants de Yahoo.
Mise en évidence des mots-clés du / des documents
En fait, ces mots et concepts qui deviennent actifs lors de la transmission de l'excitation de la couche de documents ou de la couche de phrases sont les mots clés. Ils sont également classés par activité, puis un certain montant leur est coupé, ce qui est affiché.
Ici, nous avons appliqué une autre solution. Nous pensons que l'excitation totale de tous les mots ou concepts est égale à 100%. Ensuite, nous pouvons facilement contrôler le nombre de mots que nous considérerons comme des mots clés en définissant le pourcentage d'activité comme un seuil.
Par exemple, supposons qu'il existe un document traitant d'un contrat de tête d'affiche de Boeing. Lorsque l'excitation a été transmise du neurone de ce document à la couche de mots / concepts, les mots présentés sur cette figure étaient excités. L'excitation totale pondérée, réduite à 100%, nous a donné un poids individuel pour chaque mot. Et si nous voulons obtenir 75% de la «signification» des mots-clés, alors nous verrons les mots «BOEING», «787», «DREAMLINER», et si nous voulons voir 85% de la «signification», nous ajouterons «VENTES» à ces mots.
Cette méthode vous permet de limiter automatiquement le nombre de mots-clés et de phrases / documents affichés.
Annotez le document.
La réception d'extraits de code a également été effectuée de la manière décrite ci-dessus. Tout d'abord, nous obtenons les mots-clés du document, après quoi, par distribution directe de l'excitation à partir des mots-clés, nous obtenons une liste de phrases, amenons le poids de ces phrases à 100% et coupons la quantité requise de «sens», après quoi nous affichons ces phrases dans l'ordre dans lequel elles se sont produites dans le texte du document ...
Trouver des documents ayant une signification similaire
Le transfert d'excitation du neurone correspondant au document pour lequel nous recherchons des mots / concepts similaires en sens à la couche de mots et ensuite dans le sens opposé à la couche de document nous permet de trouver des documents similaires à l'original en contexte ou en signification. Si nous faisons plusieurs temps de transmission de l'excitation dans la couche mot / concept, nous pouvons élargir le contexte d'origine. Dans ce cas, nous pouvons trouver des documents qui ne contiennent pas une correspondance exacte dans tous les mots, mais qui sont les mêmes dans le sujet.
En fait, ce mécanisme peut être utilisé pour déterminer la similitude de quoi que ce soit, par exemple, en ajoutant une couche au réseau où l'ID utilisateur correspondra aux neurones, nous pouvons trouver des personnes ayant des intérêts similaires. En remplaçant la couche de phrases et de documents par des index d'œuvres musicales ou vidéo, nous obtenons une recherche de musique / vidéo.
À suivre
Cet article ne couvre que les principes de base du moteur de recherche visuel Quintura. Au cours des six années de vie de la société, de nombreux problèmes complexes ont été résolus, à la fois liés à l'architecture des réseaux de neurones sémantiques actifs et à la construction d'un cluster extensible tolérant aux pannes. L'index de recherche se composait de nombreux réseaux de neurones fonctionnant en parallèle, le résultat de ces réseaux a été combiné et une carte individuelle des intérêts de l'utilisateur a été construite.
Dans le cadre du projet, un service de recherche de site, un moteur de recherche pour enfants, un outil d'analyse de texte ont été mis en place, les travaux ont commencé sur la formation d'une ontologie d'information du monde, la construction d'une morphologie de réseau neuronal, 9 brevets américains ont été reçus.
Cependant, nous n'avons jamais pu monétiser notre système. A cette époque, il n'y avait pas encore de boom des réseaux de neurones, nous ne parvenions pas à nous mettre d'accord avec les gros moteurs de recherche (comme nous l'a dit l'architecte de l'un d'entre eux - «nous avons des paradigmes trop différents et nous ne savons pas comment les combiner»).
Le projet a dû être clôturé.
Personnellement, j'ai toujours un "euphémisme" - j'ai une grande envie de donner une seconde vie à ce projet. Savoir que l'ancien responsable de la publicité chez Google construit un moteur de recherche sans publicité où les utilisateurs peuvent «sortir de la bulle des filtres de personnalisation de contenu et des outils de suivi» ne fait que renforcer ma confiance dans la pertinence de nos développements.
Je vais à nouveau énumérer les caractéristiques des réseaux de neurones actifs construits sur la base de la théorie de Nikolai Amosov:
- Apprendre à la volée;
- ajouter de nouvelles entités sans avoir besoin de recycler l'ensemble du réseau;
- sémantique claire - il est clair pourquoi le réseau a pris telle ou telle décision;
- architecture de réseau uniforme pour différentes applications;
- architecture simple, en conséquence - haute performance.
J'espère que cet article sera la première étape dans l'ouverture des technologies mises en œuvre au grand public des développeurs et servira de début au projet open source des réseaux de neurones sémantiques actifs d'Amosov.