Algorithme LDA (Latent Dirichlet Allocation, allocation de Dirichlet latente) - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Algorithme LDA (Latent Dirichlet Allocation, allocation de Dirichlet latente)

L'allocation de Dirichlet latente (LDA) Amazon SageMaker est un algorithme d'apprentissage non supervisé qui tente de décrire un ensemble d'observations sous la forme d'une combinaison de catégories distinctes. Le modèle LDA est plus couramment utilisé pour découvrir un certain nombre de rubriques partagées par les documents au sein d'un corpus de texte (ce nombre est spécifié par l'utilisateur). Ici, chaque observation est un document, les fonctions sont la présence (ou nombre d'occurrences) de chaque mot, et les catégories sont les rubriques. Étant donné que la méthode n'est pas supervisée, les rubriques ne sont pas spécifiées à l'avance et leur alignement avec la façon dont les humains peuvent naturellement classer les documents n'est pas garanti. Les rubriques sont apprises sous la forme d'une distribution de probabilité sur les mots rencontrés dans chaque document. Chaque document est à son tour décrit comme un mélange de rubriques.

Les contenus exacts de deux documents aux combinaisons de rubriques similaires ne seront pas identiques. Mais surtout, vous pouvez supposer que ces documents utilisent plus fréquemment un sous-ensemble partagé de mots qu'un document issu d'une combinaison de rubriques différentes. Cela permet au modèle LDA de découvrir ces nouveaux groupes de mots et de les utiliser pour former des rubriques. Prenons un exemple très simple : soit un ensemble de documents où les seuls mots rencontrés sont : eat (manger), sleep (dormir), play (jouer), meow (miauler) et bark (aboyer), le modèle LDA peut générer des rubriques telles que les suivantes :

Rubrique

manger dormir jouer miauler aboyer
Rubrique 1 0.1 0.3 0.2 0.4 0.0
Rubrique 2 0.2 0.1 0.4 0.0 0.3

Vous pouvez en déduire que les documents les plus susceptibles d'appartenir à la Rubrique 1 concernent les chats (qui sont les plus susceptibles de miauler et de dormir), et que les documents qui appartiennent à la Rubrique 2 concernent les chiens (qui préfèrent jouer et aboyer). Ces rubriques peuvent être retrouvées même si les mots chien et chat n'apparaissent jamais dans les textes.

Choix entre l'allocation de Dirichlet latente (LDA) et le modèle NTM (Neural Topic Model)

Les modèles de rubrique sont couramment utilisés pour produire des rubriques à partir de corpus qui (1) encapsulent de façon cohérente la signification sémantique et (2) décrivent bien les documents. Par conséquent, les modèles de rubrique visent à réduire la perplexité et à optimiser la cohérence des rubriques.

La perplexité est une métrique d'évaluation de modélisation du langage intrinsèque qui mesure l'inverse de la probabilité de moyenne géométrique par mot dans vos données de test. Un score de perplexité inférieur indique de meilleures performances de généralisation. Des recherches ont montré que la probabilité calculée par mot correspond rarement au jugement humain et peut être entièrement non corrélée, c'est pourquoi la cohérence des rubriques a été introduite. Chaque rubrique déduite de votre modèle se compose de mots, et la cohérence de la rubrique est calculée à partir des N mots principaux de cette rubrique spécifique de votre modèle. Elle est souvent définie comme la moyenne ou la médiane des scores de similitude par paire des mots de cette rubrique, comme Pointwise Mutual Information (PMI). Les modèles prometteurs génèrent des rubriques cohérentes ou des rubriques avec des scores élevés de cohérence des rubriques.

Bien que l'objectif soit d'entraîner un modèle de rubrique qui réduit la perplexité et optimise la cohérence des rubriques, il y a souvent un compromis avec les modèles LDA et NTM. Des recherches récentes menées par Amazon, Ding et al. en 2018 ont montré que le modèle NTM est prometteur pour atteindre une grande cohérence des rubriques, mais que le modèle LDA entraîné avec l'échantillonnage de Gibbs fragmenté permet d'obtenir une meilleure perplexité. Il y a un compromis entre la perplexité et la cohérence des rubriques. D'un point de vue pratique en ce qui concerne le matériel et la puissance de calcul, le matériel NTM de SageMaker est plus flexible que le modèle LDA et peut mieux se mettre à l'échelle, car il peut fonctionner sur CPU et GPU et peut être parallélisé sur plusieurs instances GPU, tandis que le modèle LDA ne prend en charge que l'entraînement CPU à instance unique.

Interface d'entrée/sortie pour l'algorithme LDA

Le modèle LDA s'attend à ce que les données soient fournies dans le canal train (canal de formation) et, le cas échéant, prend en charge un canal test, qui est noté par le modèle final. Le modèle LDA prend en charge les formats de fichier recordIO-wrapped-protobuf (denses et fragmentés) et CSV. Pour le format CSV, les données doivent être denses et avoir une dimension égale au nombre d'enregistrements * taille du vocabulaire. L'algorithme LDA peut être formé en mode File ou Pipe lors de l'utilisation du format protobuf recordIO-wrapped, mais uniquement en mode File pour le format CSV.

Pour l´inférence, les types de contenu text/csv, application/json et application/x-recordio-protobuf sont pris en charge. Les données fragmentées peuvent aussi être transmises pour application/json et application/x-recordio-protobuf. L'inférence du modèle LDA retourne les application/jsonprédictionsapplication/x-recordio-protobuf ou , qui incluent le vecteur topic_mixture de chaque observation.

Pour plus d'informations sur les détails des formats de formation et d'inférence, consultez les Exemples de blocs-notes LDA.

Recommandations relatives aux instances EC2 pour l'algorithme LDA

Actuellement, le modèle LDA prend uniquement en charge la formation CPU à instance unique. Les instances CPU sont recommandées pour l'hébergement/l'inférence.

Exemples de blocs-notes LDA

Pour obtenir un exemple de bloc-notes qui montre comment entraîner l'algorithme LDA sur un jeu de données, puis comment déployer le modèle entraîné pour effectuer des inférences sur les combinaisons de rubriques dans les documents d'entrée, consultez la section consacrée à une introduction à l'algorithme LDA de SageMaker. Pour savoir comment créer des instances de blocs-notes Jupyter et y accéder afin de les utiliser pour exécuter l'exemple dans SageMaker, consultez Instances Amazon SageMaker Notebook. Une fois que vous avez créé une instance de bloc-notes et que vous l'avez ouverte, sélectionnez l'onglet SageMaker Examples (Exemples SageMaker) pour afficher la liste de tous les exemples SageMaker. Les exemples de blocs-notes de modélisation de rubrique utilisant les algorithmes NTM se trouvent dans la section Introduction to Amazon algorithms (Présentation des algorithmes Amazon). Pour ouvrir un bloc-notes, cliquez sur son onglet Use (Utiliser) et sélectionnez Create copy (Créer une copie).