Ce référentiel s'appuie sur les travaux d' analyse des données exploratoires (EDA) sur Amazon Review Data (2018) à l'aide de MongoDB & Pyspark et comprend une application Web connectée à un système de recommandation de produits développé avec les données complètes de la revue Amazon (2018), composée de près de 233,1 millions d'enregistrements et d'occupation approximative Kafka, dans le cadre du projet final pour le cours fondamental du cours d'analyse de Big Data (DS2004).
Les systèmes de recommandation de produits sont des types de logiciels qui utilisent l'analyse des données et les techniques d'apprentissage automatique pour suggérer des produits aux clients en fonction de leurs intérêts, de leurs achats passés et de leur historique de navigation. Ces systèmes peuvent être trouvés sur des sites Web de commerce électronique, tels que Amazon.com, et sont conçus pour fournir des recommandations personnalisées aux utilisateurs en temps réel. Les systèmes de recommandation fonctionnent en analysant de grandes quantités de données, telles que le comportement des utilisateurs, les attributs de produits et l'historique des transactions. Sur la base de ces données, le système génère des recommandations pertinentes pour les intérêts et les préférences de l'utilisateur. Par exemple, si un utilisateur a déjà acheté un livre sur un sujet spécifique, le système de recommandation peut suggérer d'autres livres sur le même sujet ou des sujets connexes.
L'ensemble de données Amazon Review (2018) peut être utilisé pour former un système de recommandation de produits qui offre des suggestions de produits personnalisées aux utilisateurs en fonction de leur historique d'achat, ainsi que les niveaux de satisfaction des autres utilisateurs qui ont examiné et évalué les produits sur la plate-forme. Cependant, comme l'ensemble de données est vaste, il est crucial d'analyser soigneusement et de sélectionner les fonctionnalités pertinentes qui contribueront efficacement au système de recommandation de produit, afin d'éviter à la fois le sur-ajustement et le sous-ajustement du modèle d'apprentissage automatique.
Semblable à notre approche dans la conduite de l'exploration d'analyse des données (EDA) sur Amazon Review Data (2018) DataSet Amazon Review Data (2018) Analysis.Ipynb, 1-38) , nous avons utilisé une méthode statistique inférentielle pour former notre modèle de recommandation de produit. La justification de l'utilisation d'un échantillon pour faire des inférences sur l'ensemble de la population est de minimiser la charge de calcul associée au traitement de l'ensemble de données complet, ce qui est souvent peu pratique pour une seule machine. Bien que l'apprentissage en profondeur nécessite généralement de grandes quantités de données, l'apprentissage automatique peut être utilisé efficacement pour développer des méthodologies de formation robustes, même avec de petits ensembles de données. Ceci est particulièrement utile pour la recherche axée sur l'hypothèse, qui est notre principal objectif avec le système de recommandation de produit. (Vabalas et al., 2019) Dans tous les cas, il est important de noter que tout ensemble de données est essentiellement un sous-ensemble d'une population plus importante.
Pour assurer la précision de nos résultats, il est crucial d'analyser et d'atténuer soigneusement les biais potentiels dans les données. Ceci est particulièrement important dans l'apprentissage automatique, qui est sensible aux biais qui peuvent entraîner des estimations de performance asymétriques. Pour résoudre ce problème, nous appliquerons l'approche d'échantillonnage aléatoire stratifiée que nous avons discutée plus tôt pour extraire un échantillon représentatif de 10 000 000 enregistrements de la population tout en conservant la même distribution de produit que dans l'ensemble de données d'origine. (Compress.py, 1-61) Étant donné que la taille de l'échantillon est assez grande, nous l'avons compressée dans un format de fichier parquet Apache, ce qui réduit la taille de l'ensemble de données de plus de 90%.
Les moindres carrés alternatifs (SLA) sont un algorithme de filtrage collaboratif utilisé pour développer des systèmes de recommandation de produits. L'algorithme vise à apprendre les facteurs latents ou cachés qui influencent les interactions utilisateur-item, en décomposant la matrice de notation de l'élément utilisateur en deux matrices de bas rang représentant l'utilisateur et les facteurs latents de l'utilisateur.
Les moindres carrés alternés (SLA) fonctionnent de manière itérative, en alternant entre fixer un ensemble de facteurs latents et la résolution de l'autre en utilisant un algorithme d'optimisation des moindres carrés. En particulier, dans chaque itération, l'algorithme corrige les facteurs latents de l'élément et résout les facteurs latents de l'utilisateur en utilisant l'optimisation des moindres carrés, puis corrige les facteurs latents de l'utilisateur et résout les facteurs latents de l'élément en utilisant l'optimisation des moindres carrés.
Les moindres carrés alternatifs (SLA) présentent plusieurs avantages pour les systèmes de recommandation de produits. Il est évolutif et efficace sur le plan informatique, en particulier pour les ensembles de données grands et clairsemés. Il peut gérer les données de rétroaction implicites, où les interactions utilisateur-élément sont connues uniquement pour exister ou non, et non leurs notes spécifiques. Il peut également gérer les données manquantes, où tous les utilisateurs n'ont pas évalué tous les éléments. De plus, l'alternance des moindres carrés (ALS) peut fournir des recommandations d'articles en temps réel, ce qui le rend adapté aux systèmes de recommandation en ligne.
Product Recommendation Model.ipynb - Contient la mise en œuvre (MLIB) du système de recommandation de produit formé et testé sur l'ensemble de données Amazon Review Data (2018).srcdata.py - Code source pour stocker l'ensemble de données à partir du fichier JavaScript Object Notation (JSON) dans une base de données MongoDB en tant que collection.srccompress.py - Code source pour extraire un échantillon aléatoire stratifié d'une taille d'échantillon spécifiée à partir de l'ensemble de données stocké dans la base de données MongoDB en tant que collection et en le stockant en tant que fichier de parquet Apache.srcvalidate.py - Code source pour valider la précision et la fonctionnalité du système de recommandation de produit formé à l'aide d'un exemple pratique.modelproduct_recommendation_model - Répertoire contenant le modèle d'apprentissage automatique formé pour le système de recommandation de produit.appapplication.py - source pour l'application Web (FLASK) associée au système de recommandation de produit via un cluster Apache Kafka.apprecommendation.py - Code source pour le cluster Apache Kafka connecté au modèle d'apprentissage automatique formé pour le système de recommandation de produit permettant la génération de recommandations de produits.templates - Contient les codes source pour les pages Web ( login.html , dashboard.html , review.html , loading.html et recommendation.html ) rendu par l'application Web (FLASK).static - contient toutes les icônes et éléments visuels utilisés par l'application Web (FLASK)..hintrc - Fichier de configuration pour personnaliser le comportement d'Eslint en spécifiant des paramètres et des règles spécifiques. All_Amazon_Review.json.gz à partir du site Web de collection Amazon Review Data (2018).srcdata.py pour enregistrer l'ensemble de données à partir du fichier JavaScript Object Notation (JSON) dans une base de données MongoDB en tant que collection (assurez-vous que MongoDB est déjà configuré).srccompress.py pour extraire un échantillon aléatoire stratifié d'une taille spécifiée à partir de l'ensemble de données stocké dans MongoDB et enregistrez l'échantillon en tant que fichier d'Apache Parquet.Product Recommendation Model.ipynb (1-16) pour transformer la collection et le stocker dans MongoDB pour un accès permanent (vous n'avez pas à exécuter le fichier entier).apprecommendation.py sur le côté (assurez-vous qu'un cluster Apache Kafka a été établi avec succès et est opérationnel, avec deux sujets nommés des informations d'identification et des recommandations ).appapplication.py et ouvrir le lien fourni vers le port hôte./dashboard , cliquez sur le bouton Revoir et soumettez tout contenu./loading pendant que les recommandations de produits seront générées./recommendation pour afficher les recommandations de produits générés. Les fichiers de code source ont été spécifiquement écrits pour MacOS Ventura et peuvent avoir besoin de modifications pour assurer une exécution appropriée sur d'autres systèmes d'exploitation.
Ce projet existe grâce aux gens extraordinaires qui y ont contribué.