Le projet Rakuten

Description du Projet

Le projet Rakuten est le projet fil rouge que j'ai réalisé pour mon diplôme de Data Scientist chez Datascientest.com. L'objectif global est de classifier à grande échelle des produits du catalogue de Rakuten France en utilisant des données multimodales, principalement des textes et des images, pour les associer à leur catégorie correcte.
La catégorisation des annonces de produits se fait par le biais de la désignation, de la description (quand elle est présente) et des images.

𝐭𝐚𝐜𝐡𝐞𝐬 𝐚𝐜𝐜𝐨𝐦𝐩𝐥𝐢𝐞𝐬 :

  • Exploration des données
  • traitement des valeurs manquantes
  • visualisation à l’aide des librairies Python Matplotlib et Seaborn
  • Prédictions des classes à partir de modèles de Machine Learning et de réseaux de neurones récurrents pour la partie texte (prédiction avec une précision de 80%)
  • Prédictions des classes à partir de réseaux de neurones convolutifs pour la partie image
  • Présentation du projet à l'aide de Streamlit

Introduction

Le projet vise à prédire le code de chaque produit tel que défini dans le catalogue de Rakuten France. La catégorisation des annonces se fait à partir de la désignation, de la description (si disponible) et des images. Les fichiers de données sont structurés comme suit :

  • X_train_update.csv : Fichier d'entrée d'entraînement contenant 84,916 produits.
  • Y_train_CVw08PX.csv : Fichier de sortie d'entraînement avec les codes de type de produit.
  • X_test_update.csv : Fichier d'entrée de test (inutilisable sans le fichier de sortie de test correspondant.C'est le fichier à utiliser pour participer au challenge Rakuten ENS).
  • Un fichier images.zip contenant toutes les images, avec des sous-dossiers "image_train" et "image_test".

Les identifiants de produit et d'image permettent de lier les fichiers entre eux pour associer les données textuelles aux images correspondantes.

Description du Problème

L'objectif du projet est la classification à grande échelle des données de produits en types spécifiques, en utilisant à la fois des textes et des images.
Par exemple, un produit comme "Grand Stylet Ergonomique Bleu Gamepad Nintendo Wii U - Speedlink Pilot Style" est classé sous le code produit 50, avec une désignation, une description et une image associée.

designation description productid imageid
0 Olivia: Personalisiertes Notizbuch / 150 Seiten / Punktraster / Ca Din A5 / Rosen-Design NaN 3804725264 1263597046
1 Journal Des Arts (Le) N° 133 Du 28/09/2001 - L'art Et Son Marche Salon D'art Asiatique A Paris - Jacques Barrere - Francois Perrier - La Reforme Des Ventes Aux Encheres Publiques - Le Sna Fete Ses Cent Ans. NaN 436067568 1008141237
2 Grand Stylet Ergonomique Bleu Gamepad Nintendo Wii U - Speedlink Pilot Style PILOT STYLE Touch Pen de marque Speedlink est 1 stylet ergonomique pour GamePad Nintendo Wii U.
Pour un confort optimal et une précision maximale sur le GamePad de la Wii U: ce grand stylet hautement ergonomique est non seulement parfaitement adapté à votre main mais aussi très élégant.
Il est livré avec un support qui se fixe sans adhésif à l'arrière du GamePad.
Caractéristiques:
Modèle: Speedlink PILOT STYLE Touch Pen.
Couleur: Bleu.
Ref. Fabricant: SL-3468-BE.
Compatibilité: GamePad Nintendo Wii U.
Forme particulièrement ergonomique excellente tenue en main.
Pointe à revêtement longue durée conçue pour ne pas abîmer l'écran tactile.
En bonus : Support inclu pour GamePad.
201115110 938777978
3 Peluche Donald - Europe - Disneyland 2000 (Marionnette À Doigt) NaN 50418756 457047496
4 La Guerre Des Tuques Luc a des idées de grandeur. Il veut organiser un jeu de guerre de boules de neige et s'arranger pour en être le vainqueur incontesté. Mais Sophie s'en mèle et chambarde tous ses plans... 278535884 1077757786

  • Image 0
  • Image 1
  • image_1263597046_product_3804725264.jpg
  • image_1008136847_product_436067984.jpg

  • Image 2
  • Image 3
  • image_938777978_product_201115110.jpg
  • image_457047496_product_50418756

Machine-Learning

Dans ce projet, plusieurs algorithmes de machine learning traditionnels ont été mis en œuvre pour établir une base de référence solide.
Bien que les réseaux de neurones soient devenus de plus en plus populaires pour des tâches complexes, ces modèles classiques de machine learning conservent une grande pertinence. Ils offrent des solutions efficaces et rapides pour des problèmes où les réseaux de neurones pourraient être excessivement complexes ou où les données disponibles ne justifient pas l'utilisation de modèles plus sophistiqués.

En comparant les performances de ces approches traditionnelles avec celles de modèles plus avancés, comme les réseaux de neurones convolutifs (CNN) et récurrents (RNN), nous avons pu démontrer que, dans certains cas, les méthodes classiques restent compétitives et peuvent même surpasser les réseaux de neurones en termes de simplicité et d'interprétabilité. Ainsi, bien que les réseaux de neurones apportent des améliorations significatives dans des scénarios spécifiques, les techniques de machine learning traditionnelles demeurent une option précieuse et pertinente pour un large éventail de tâches de classification, y compris celles rencontrées dans ce projet.
Pour ce projet, 7 modèles ont été testés :

  • - un modèle SVC (Machine à vecteurs de support)
  • - un modèle de régression logistique
  • - une forêt aléatoire
  • - un modèle de gradient boosting
  • - un modèle extreme de gradient boosting
  • - un classificateur multinomial Naive Bayes
  • - un arbre de décision

Réseaux de Neurones Récurrents (RNN)

Les RNN ont été utilisés pour le traitement automatique du langage naturel (NLP) sur les textes associés aux produits. Plusieurs modèles ont été développés pour tester différentes approches de prétraitement et d'embedding :

  • RNN_EMBEDDING : Utilise une tokenisation simple suivie d'une couche d'embedding de TensorFlow pour capturer les séquences de mots.
  • RNN_STEMMER : Applique une tokenisation suivie d'une racinisation (stemming) avant de passer à une couche d'embedding de TensorFlow.
  • RNN_LEMMER : Utilise la lemmatisation avec NLTK après la tokenisation, suivi par une couche d'embedding de TensorFlow.
  • RNN_SPACY : Emploie la lemmatisation avec SpaCy avant d'appliquer l'embedding de TensorFlow.

Ces modèles exploitent des couches GRU (Gated Recurrent Unit) pour capturer les dépendances séquentielles dans les données textuelles, permettant ainsi une meilleure compréhension contextuelle des descriptions de produits.

Un cinquième modèle, basé sur Word2Vec, a également été testé dans un notebook séparé. Il utilise un algorithme d'embedding Word2Vec pour créer des représentations vectorielles des mots, avant d'appliquer un RNN pour la classification.

Réseaux de Neurones Convolutifs (CNN)

Les réseaux de neurones convolutifs (CNN) ont été utilisés pour traiter les images associées aux produits. Ces modèles permettent d'extraire des caractéristiques visuelles complexes, améliorant ainsi la précision globale du classificateur. Pour ce projet, plusieurs architectures de CNN pré-entraînées ont été employées :

  • EfficientNetB1 : Un modèle optimisé offrant un excellent compromis entre précision et efficacité computationnelle.
  • VGG16 et VGG19 : Connus pour leur simplicité et profondeur, ces modèles sont adaptés pour diverses tâches de classification.
  • Inception (GoogLeNet) : Un modèle avec une architecture innovante utilisant des modules d'inception pour capturer des caractéristiques à différentes échelles.
  • ResNet50 : Un réseau résiduel qui permet de créer des modèles très profonds sans problème de gradient, assurant d'excellentes performances.
  • Xception : Une version améliorée de l'Inception utilisant des convolutions séparables en profondeur pour une meilleure efficacité.

Ces architectures ont été adaptées au problème en utilisant la technique du transfert d'apprentissage, permettant de tirer parti des connaissances préexistantes de modèles entraînés sur des larges bases de données comme ImageNet.

Conclusion

Le projet Rakuten montre l'efficacité d'une approche multimodale, combinant des analyses textuelles avancées, des modèles de machine learning traditionnels, et des réseaux de neurones convolutifs et récurrents. Les techniques et modèles explorés offrent un cadre solide pour le traitement et la gestion automatisés des données de produits à grande échelle.