Utilisateur:Madginal/Brouillon
- → N'hésitez pas à publier sur le brouillon un texte inachevé et à le modifier autant que vous le souhaitez.
- → Pour enregistrer vos modifications au brouillon, il est nécessaire de cliquer sur le bouton bleu : « Publier les modifications ». Il n'y a pas d'enregistrement automatique.
Si votre but est de publier un nouvel article, votre brouillon doit respecter les points suivants :
- Respectez le droit d'auteur en créant un texte spécialement pour Wikipédia en français (pas de copier-coller venu d'ailleurs).
- Indiquez les éléments démontrant la notoriété du sujet (aide).
- Liez chaque fait présenté à une source de qualité (quelles sources – comment les insérer).
- Utilisez un ton neutre, qui ne soit ni orienté ni publicitaire (aide).
- Veillez également à structurer votre article, de manière à ce qu'il soit conforme aux autres pages de l'encyclopédie (structurer – mettre en page).
- → Si ces points sont respectés, pour transformer votre brouillon en article, utilisez le bouton « publier le brouillon » en haut à droite. Votre brouillon sera alors transféré dans l'espace encyclopédique.
Le hachage sémantique (semantic hashing en anglais), est un algorithme utilisant l’apprentissage automatique semi-supervisé pour créer un code binaire simple à partir du contenu d'un document. Ces codes sont créés de sorte qu’une fois placé sur un plan 2D, ils soient physiquement près l’un de l’autre s’ils possèdent un contenu similaire. Cela permet de retrouver des documents d’un même sujet indépendamment du nombre de documents totaux, à partir d’un document utilisé comme clé.
Plus spécifiquement, le hachage sémantique permet de transformer un document en un code binaire. Ce code binaire représente une adresse, ainsi des documents semblables auront une adresse semblable avec une distance de Hamming basse. On peut faire l’analogie avec un supermarché, dans lequel les produits semblables (ex. le pain) sont normalement dans un même rayon. Parce que ce code est binaire, le calcul de distance est très rapide peu importe la quantité totale de documents. Le temps de recherche est donc linéairement dépendant avec la quantité de documents que l’on souhaite rapatrier. Cette particularité fait de la recherche sémantique un outil puissant pour les recherches où d’énorme quantité de données sont disponibles, tel que le web.[1]
Théorie
[modifier | modifier le code]Pour transformer un document en une adresse binaire, le hachage sémantique[1], tel que décrit par Ruslan Salakhutdinov et Geoffrey Hinton , utilise un type de réseau neural appelé Deep belief network (en) (DBN). Le DBN est construit à partir de plusieurs réseaux neuraux appelés Restricted Boltzmann machine (en) (RBM) et possède la particularité d’être capable d’extraire une hiérarchie d’information à partir d’une série de variables visibles (le décompte des mots dans un document, par exemple). Chacune des RBM a pour tâche d’apprendre à retrouver une série de variables cachées, ou latentes, dans un document.
-
Une Restricted Boltzmann machine
La première RBM a pour tâche de transformer un document en une série de variables cachées. Elle utilise deux lois mathématiques pour apprendre à les découvrir :
- Une loi de Poisson contrainte pour modéliser la probabilité de mots clés dans un document. La distribution est dite contrainte car le taux de variation moyen à travers tous les mots du document est limité à la somme de ceux-ci. Cette normalisation permet à la RBM d'apprendre efficacement peu importe la taille d’un document.
- Une loi de Bernoulli conditionnel pour modéliser la probabilité des variables cachés.
La RBM va, pour un document, activer certaine variables cachées de façon semi-aléatoire, de sorte que pour chaque connexion variable visible – variable cachée, les connexions du même type (quand les deux variables sont éteintes ou allumées) ont plus de chance d’exister. Ensuite, elle va reconstruire les variables visibles de la même façon en utilisant la loi de Poisson contrainte, puis refaire la première étape. En comparant les résultats avant et après, la RBM va apprendre à reconnaitre les variables importantes et faire des liens entre celles-ci. L'algorithme est répété plusieurs fois, suite à quoi elle sera capable de reconstruire statistiquement les variables cachées à partir des variables visibles. Une fois le vecteur de variables latentes obtenu, il sera donné à la prochaine RBM qui répétera le processus complet, en utilisant seulement la loi de Bernoulli conditionnel. Le processus se répète jusqu’à la dernière RBM, qui produira le hachage que l’on recherche.
Cette étape est appelé pré-entrainement.
Une fois terminée, le réseau sera déroulé, c’est-à-dire que les RBM seront directement relié une à l’autre en un tout appelé auto-encodeur . Cette machine apprenante a toujours pour but de trouver un code binaire, mais utilise une approche d’apprentissage différente. Pour améliorer le code, elle transforme le document en code binaire, puis fait la transformation inverse. Elle compare ensuite le document final à l’original et ajuste les poids statistiques de telle sorte que le code permette une reconstruction plus juste du document. Du bruit gaussien déterministique est ajouté aux variables visibles avant le dernier réseau, celui produisant le code.
En d’autres mots, on augmente la quantité d’information contenu dans le code afin qu'il représente mieux son contenu et on l'entraine à ne produire que des codes binaires. À la fin de l’apprentissage, le réseau est déroulé en une série d’opérations matricielles capable de transformer directement un document en code.
Application
[modifier | modifier le code]En convertissant tous les documents d'une collection en codes binaires, il est possible de récupérer une liste de documents au contenu semblable à celui utilisé comme clé. Comme les codes sont binaires et significativement plus petits que les documents d’origine (la taille est déterminée par le réseau neural), il est très rapide de les comparer et de calculer la distance de Hamming souhaité. Il est donc possible de récupérer une quantité importante de documents sans que la quantité totale de documents influence la vitesse d’exécution.
Il est possible d’augmenter l’efficacité de la recherche en combinant le hachage sémantique à un autre algorithme, tel que TF-IDF. En filtrant la majorité des documents avec le hachage puis en analysant les documents restant avec TF-IDF, on obtient une vitesse d’exécution plus rapide qu’en utilisant TF-IDF uniquement, mais une plus grande précision dans la recherche.[1] Il est aussi possible d’identifier d’autres types de documents à l’aide du hachage sémantique, tel que des images. Il suffit d’adapter le premier vecteur de variables visibles au document souhaité. [2]
Critiques
[modifier | modifier le code]Le hachage sémantique possède certaines faiblesses inhérentes à son fonctionnement :
- Les documents au contenu semblable se retrouve aux même adresses, mais pas nécessairement le contraire. Il n’y a aucune garanti que des documents portant sur le même sujet se trouvent nécessairement côte-à-côte. [1]
- Le réseau neural base une partie de son apprentissage sur la recréation du document d’origine, et non à mesurer la pertinence du contenu. [3]
- Le modèle manque de flexibilité lorsque le nombre de variables visibles initial est très élevé, comme dans une recherche web. [3]
Références
[modifier | modifier le code]- Ruslan Salakhutdinov et Hinton Geoffrey, « Semantic hashing », International Journal of Approximate Reasoning, vol. 50, no 7, , p. 969–978 (DOI 10.1016/j.ijar.2008.11.006, lire en ligne) Modèle:Subscription or libraries
- Alex Krizhevsky et Geoffrey Hinton « Using very deep autoencoders for content-based image retrieval » ()
—ESANN - P. S. Huang, X. He, J. Gao, L. Deng, A. Acero et L. Heck « Learning deep structured semantic models for web search using clickthrough data » ()
—ACM