Étape 2.5: Choisir un modèle

À ce stade, nous avons assemblé notre ensemble de données et obtenu des insights sur les caractéristiques clés de nos données. Ensuite, en fonction des métriques que nous avons recueillies à l'étape 2, nous devons réfléchir au modèle de classification à utiliser. Cela implique de poser des questions comme : "Comment présenter les données textuelles à un algorithme qui attend une entrée numérique ?" (opération appelée prétraitement et vectorisation des données), "Quel type de modèle devons-nous utiliser ?", "Quels paramètres de configuration devons-nous utiliser pour notre modèle ?", etc.

Grâce à des décennies de recherche, nous avons accès à un large éventail d'options de prétraitement des données et de configuration des modèles. Toutefois, la disponibilité d'un très large éventail d'options viables augmente considérablement la complexité et la portée du problème en question. Étant donné que les meilleures options peuvent ne pas être évidentes, une solution naïve consisterait à essayer toutes les options possibles de manière exhaustive, en étudiant certains choix par le biais d'une intuition. Cependant, cela serait extrêmement coûteux.

Dans ce guide, nous essayons de simplifier considérablement le processus de sélection d'un modèle de classification de texte. Pour un ensemble de données donné, notre objectif est de trouver l'algorithme qui atteint une justesse maximale tout en réduisant au minimum le temps de calcul nécessaire à l'entraînement. Nous avons effectué un grand nombre (environ 450 000) tests sur différents types de problèmes (en particulier d'analyse des sentiments et de classification des sujets), en utilisant 12 ensembles de données, en alternant pour chaque ensemble de données entre différentes techniques de prétraitement des données et différentes architectures de modèles. Cela nous a aidés à identifier les paramètres de l'ensemble de données qui influent sur les choix optimaux.

L'algorithme de sélection du modèle et l'organigramme ci-dessous récapitulent nos tests. Si vous ne comprenez pas encore tous les termes utilisés, ne vous inquiétez pas. Les sections suivantes de ce guide vous donneront des explications détaillées.

Algorithme de préparation des données et de création de modèles

1. Calculate the number of samples/number of words per sample ratio.
2. If this ratio is less than 1500, tokenize the text as n-grams and use a
simple multi-layer perceptron (MLP) model to classify them (left branch in the
flowchart below):
  a. Split the samples into word n-grams; convert the n-grams into vectors.
  b. Score the importance of the vectors and then select the top 20K using the scores.
  c. Build an MLP model.
3. If the ratio is greater than 1500, tokenize the text as sequences and use a
   sepCNN model to classify them (right branch in the flowchart below):
  a. Split the samples into words; select the top 20K words based on their frequency.
  b. Convert the samples into word sequence vectors.
  c. If the original number of samples/number of words per sample ratio is less
     than 15K, using a fine-tuned pre-trained embedding with the sepCNN
     model will likely provide the best results.
4. Measure the model performance with different hyperparameter values to find
   the best model configuration for the dataset.

Dans l'organigramme ci-dessous, les cases jaunes indiquent les processus de préparation des données et du modèle. Les cases grises et vertes indiquent les choix que nous avons envisagés pour chaque processus. Les cases vertes indiquent notre choix recommandé pour chaque processus.

Vous pouvez utiliser cet organigramme comme point de départ pour construire votre premier test, car il vous apportera une bonne précision à moindre coût de calcul. Vous pouvez ensuite continuer à améliorer votre modèle initial au cours des itérations suivantes.

Organigramme de la classification du texte

Figure 5: Organigramme de la classification du texte

Cet organigramme répond à deux questions clés:

  1. Quel algorithme ou algorithme d'apprentissage devons-nous utiliser ?

  2. Comment préparer les données pour apprendre efficacement la relation entre le texte et l'étiquette ?

La réponse dépend de la réponse à la première question. La façon dont nous prétraitons les données à intégrer dans un modèle dépend du modèle que nous choisissons. Les modèles peuvent être classés en deux grandes catégories: ceux qui utilisent des informations de tri des mots (modèles de séquence) et ceux qui voient simplement du texte comme "sacs" (ensembles) de mots (modèles de n-grammes). Les types de modèles de séquence incluent les réseaux de neurones convolutifs (CNN), les réseaux de neurones récurrents (RNN) et leurs variantes. Les types de modèles à n-grammes incluent la régression logistique, les perceptrons multicouches simples (MLP ou réseaux de neurones entièrement connectés), les arbres de décision à boosting de gradient et les machines à vecteurs.

D'après nos tests, nous avons constaté que le ratio entre"nombre d'échantillons" (S) et"nombre de mots par échantillon" (W) correspond au modèle qui fonctionne bien.

Lorsque la valeur de ce ratio est faible (<1500), les petits perceptrons multicouches qui acceptent des n-grammes en entrée (que nous appellerons Option A) offrent de meilleures performances, ou du moins des modèles de séquence. Les MLP sont simples à définir et à comprendre, et ils prennent beaucoup moins de temps que les modèles de séquence. Lorsque la valeur de ce ratio est élevée (> = 1 500), utilisez un modèle séquentiel (option B). Dans les étapes suivantes, vous pouvez passer aux sous-sections pertinentes (étiquettes A ou B) correspondant au type de modèle que vous avez choisi en fonction du ratio échantillons/mots par échantillon.

Dans le cas de notre ensemble de données d'examen IMDb, le ratio échantillons/mots par échantillon est d'environ 144. Nous allons donc créer un modèle de MLP.