Salut tout le monde. Cela fait longtemps que j’ai écrit mon dernier blog sur les différents types de systèmes de recommandation. Cette fois, je vais écrire sur la modélisation des sujets.
Il existe de nombreuses sources où vous pouvez apprendre ce qu’est la modélisation des sujets, mais je pense, la plupart d’entre eux sont un peu technique et nécessite une bonne connaissance des mathématiques et d’autres techniques comme les chaînes de Markov. Dans cet article, je vais essayer d’expliquer l’idée de la modélisation thématique de manière très intuitive, avec un minimum de mathématiques et de détails techniques. Je vais écrire cet article en deux parties. Dans la première partie, j’essaierai d’expliquer ce qu’est la modélisation des sujets et dans la deuxième partie, je fournirai un tutoriel python de la façon de faire la modélisation des sujets sur le jeu de données du monde réel.
Avant de commencer, je veux reconnaître que cet article est fortement inspiré par la conférence de mon analytique de données exploratoire Prof. Edward McFowland, du cours de Coursera sur le traitement du langage naturel par la Higher School of Economics et de l’explication de Jordan Boyd-Graber sur l’échantillonnage de Gibbs.
Qu’est-ce que la modélisation des sujets ?
La modélisation des sujets est une branche du traitement non supervisé du langage naturel qui est utilisée pour représenter un document textuel à l’aide de plusieurs sujets, qui peuvent mieux expliquer l’information sous-jacente dans un document particulier. Cela peut être considéré en termes de clustering, mais avec une différence. Maintenant, au lieu de caractéristiques numériques, nous avons une collection de mots que nous voulons regrouper de telle sorte que chaque groupe représente un sujet dans un document.
Pourquoi avons-nous besoin de la modélisation des sujets ?
Ok, donc maintenant la question se pose pourquoi avons-nous besoin de la modélisation des sujets ? Si nous regardons autour de nous, nous pouvons voir une énorme quantité de données textuelles qui traînent autour de nous dans un format non structuré sous la forme d’articles d’actualité, de documents de recherche, de messages sur les médias sociaux, etc. et nous avons besoin d’un moyen de comprendre, d’organiser et d’étiqueter ces données pour prendre des décisions éclairées. La modélisation thématique est utilisée dans diverses applications, comme la recherche de questions similaires sur stack overflow, l’agrégation et l’analyse de flux de nouvelles, les systèmes de recommandation, etc. Toutes ces applications se concentrent sur la recherche de la structure thématique cachée dans le texte, car on pense que chaque texte que nous écrivons, que ce soit un tweet, un post ou un document de recherche, est composé de thèmes comme le sport, la physique, l’aérospatiale, etc.
Comment faire de la modélisation thématique ?
À l’heure actuelle, il existe de nombreuses façons de faire de la modélisation thématique, mais dans ce post, nous allons discuter d’une approche de modélisation probabiliste appelée Latent Dirichlet Allocation (LDA) développée par le professeur David M. Blei en 2003. Il s’agit d’une extension de l’analyse sémantique latente probabiliste (PLSA) développée en 1999 par Thomas Hoffman, avec une différence minime en termes de traitement de la distribution par document. Alors sautons directement dans le fonctionnement de LDA.
L’allocation latente de Dirichlet
Commençons par comprendre la signification de chaque mot du titre, car je pense qu’il contient tout ce que nous devons savoir pour comprendre le fonctionnement de LDA.
Latent : Cela fait référence à tout ce que nous ne connaissons pas a priori et qui est caché dans les données. Ici, les thèmes ou sujets dont se compose le document sont inconnus, mais on pense qu’ils sont présents car le texte est généré à partir de ces sujets.
Dirichlet : C’est une « distribution de distributions ». Oui, vous avez bien lu. Mais qu’est-ce que cela signifie ? Réfléchissons à cela à l’aide d’un exemple. Supposons qu’une machine produise des dés et que nous puissions contrôler si la machine produira toujours un dé avec un poids égal pour tous les côtés, ou s’il y aura un biais pour certains côtés. Ainsi, la machine qui produit des dés est une distribution car elle produit des dés de différents types. Nous savons également que le dé lui-même est une distribution puisque nous obtenons plusieurs valeurs lorsque nous lançons un dé. C’est ce que signifie être une distribution de distributions et c’est ce qu’est Dirichlet. Ici, dans le contexte de la modélisation des sujets, le Dirichlet est la distribution des sujets dans les documents et la distribution des mots dans le sujet. Il se peut que ce ne soit pas très clair à ce stade, mais c’est très bien car nous allons l’examiner plus en détail dans un moment.
Allocation : Cela signifie qu’une fois que nous avons Dirichlet, nous allons allouer les sujets aux documents et les mots du document aux sujets.
C’est tout. Voilà ce qu’est le LDA en quelques mots. Maintenant, comprenons comment cela fonctionne dans la modélisation des sujets.
Pour récapituler, ce que dit LDA, c’est que chaque mot de chaque document provient d’un sujet et que le sujet est sélectionné dans une distribution par document sur les sujets. Nous avons donc deux matrices :
1. ϴtd = P(t|d) qui est la distribution de probabilité des sujets dans les documents
2. Фwt = P(w|t) qui est la distribution de probabilité des mots dans les sujets
Et, on peut dire que la probabilité d’un mot donné document i.c’est-à-dire P(w|d) est égale à :
où T est le nombre total de sujets. De plus, supposons qu’il y a W nombre de mots dans notre vocabulaire pour tous les documents.
Si nous supposons l’indépendance conditionnelle, nous pouvons dire que
P(w|t,d) = P(w|t)
Et donc P(w|d) est égal à :
– Troisièmement, représentons v(k,w) de la manière suivante pour montrer combien de fois chaque sujet est affecté à ce mot
- Quatrièmement, nous multiplierons ces deux matrices pour obtenir nos probabilités conditionnelles
- Enfin, nous choisirons au hasard n’importe quel sujet et l’assignerons au monde et nous répéterons ces étapes pour tous les autres mots également. Intuitivement, le sujet avec la plus grande probabilité conditionnelle devrait être sélectionné, mais comme nous pouvons le voir, les autres sujets ont également une certaine chance d’être sélectionnés
C’est tout. Voilà ce que fait l’algorithme d’échantillonnage de Gibbs sous le capot. Bien que nous ayons sauté certains détails comme le réglage des hyperparamètres, mais d’un point de vue intuitif, c’est ainsi que l’échantillonnage de Gibbs fonctionne pour la modélisation des sujets.
Alors, c’est tout pour la théorie de l’allocation latente de Dirichlet. J’espère que cela a été utile pour comprendre ce qu’est la modélisation des sujets et comment nous utilisons LDA avec Gibbs pour la modélisation des sujets. Dans le prochain article, je posterai l’implémentation de LDA en utilisant Python.
Merci!