$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Cette étude a été menée conformément aux directives du Comité d’éthique de la recherche de l’Université nationale de Malaisie (UKM) et approuvée sous le numéro d’approbation UKM FST/2025-AI/023. Un consentement éclairé écrit a été obtenu de tous les participants avant la collecte des requêtes du chatbot. Toutes les données ont été anonymisées afin de garantir la confidentialité et la vie privée des participants
Aperçu de l’étude
La figure 1 présente une vue d’ensemble du système de restauration intelligent proposé à l’aide de technologies d’IA. Comme illustré, les données du client sont prétraitées avec les techniques NLP telles que les plongements de mots, la lemmatisation et la tokenisation pour extraire les balises. Ensuite, le modèle ML appelé LDA a été appliqué à la modélisation des étiquettes des clients pour leur fournir un service sans contact. La suggestion alimentaire est réalisée à l’aide d’un modèle Conv-RNN. Sur la base de la séquence de flux enregistrée à partir des choix du client précédent, l’aliment est suggéré au client de manière intelligente. Enfin, le niveau de satisfaction des clients est prédit en utilisant un modèle Conv-LSTM optimisé pour une amélioration supplémentaire des services du restaurant. Les performances des modèles d’IA proposés sont évaluées en fonction des différentes mesures d’évaluation.

Figure 1 : Modèle de système proposé pour les services de restauration intelligents (SCI). L’architecture intègre l’interaction avec l’utilisateur, le prétraitement des données, la détection d’intention, la recommandation d’aliments et les mécanismes de rétroaction. Veuillez cliquer ici pour voir une version agrandie de cette figure.
Jeu de données utilisé
Pour créer le système de restauration intelligent, nous avons recueilli 283 demandes d’un restaurant voisin à l’aide d’un chatbot. Ces questions, qui comprenaient une grande variété de demandes de clients, des détails du menu aux heures d’ouverture, ont été divisées manuellement en 15 groupes d’intention différents. Cela garantit une couverture complète de toutes les interactions possibles de l’utilisateur avec le système. Les salutations, les adieux, l’appréciation, la restauration, les heures, le cadre, les coordonnées, les questions sur les paiements, le menu d’aujourd’hui, les alternatives de livraison, les questions sur les menus, les processus de commande, les offres spéciales, les réservations, les options de boissons et l’accessibilité pour s’asseoir à l’extérieur ne sont que quelques-uns des aspects spécifiques des demandes des clients que les classes d’intention ont été faites pour enregistrer. Le tableau 1 montre la fréquence des questions dans chacun des groupes d’objectifs et la classification en fonction de la substance thématique des requêtes. Par exemple, la catégorie Coordonnées a reçu le plus grand nombre de requêtes, ce qui suggère que les clients sont très intéressés à savoir comment entrer en contact avec le restaurant. D’autre part, les catégories Sièges et Boissons ont reçu le moins de demandes, ce qui peut indiquer qu’il y a moins d’intérêt des consommateurs pour ces sujets ou qu’il y a déjà plus de clarifications à leur sujet.
Service sans contact utilisant le NLP avec LDA
L’entrée de l’utilisateur qui démarre l’activité du cadre est initialement prétraitée pour normaliser le texte et éliminer le bruit. La tokenisation, l’élimination des mots vides et la lemmatisation sont des exemples de cette préparation, qui prépare les données pour une analyse supplémentaire. Après un traitement préliminaire, les demandes de l’utilisateur sont converties en représentations numériques. Les liens sémantiques et la pertinence contextuelle font partie des caractéristiques linguistiques capturées par ces représentations. Plusieurs classificateurs d’apprentissage automatique ont été utilisés pour entraîner ces représentations vectorielles des requêtes des utilisateurs pour la classification de 16 classes prédéfinies (intentions/balises). Le modèle récupère la réponse associée prédéterminée et la renvoie à l’utilisateur après avoir prédit avec précision les intentions de requête de l’utilisateur.
Prétraitement
La fiabilité de notre analyse est considérablement améliorée par les requêtes prétraitées, qui vérifient que les données entrantes sont formatées de manière cohérente et pertinente pour la procédure de classification qui suit. Les modèles d’intention (par exemple, des salutations telles que hi, hello, hey) ont été collectés et prétraités en convertissant le texte en minuscules, en supprimant les mots vides et en appliquant la tokenisation à l’aide de la boîte à outils NLTK33. Le tableau 2 présente les étapes de prétraitement suivies par cette étude.
Modélisation de balises basée sur LDA
Le système classe les balises de l’utilisateur à l’aide de la régression vectorielle de support (SVR) afin que les messages d’accueil de l’utilisateur soient reconnus par le système. Afin d’améliorer la capacité du système à anticiper l’intention de l’utilisateur, nous avons examiné en profondeur les méthodes de traitement de texte conventionnelles et de pointe, en plus des modèles d’apprentissage automatique (ML) et d’apprentissage profond (DL). Notre objectif était de construire un algorithme très précis capable de comprendre un large éventail de questions des utilisateurs. Cette étude a utilisé les stratégies fondamentales de Bag of Words (BoW) et de TF-IDF en raison de leur facilité d’utilisation et de leur capacité à mettre l’accent sur la fréquence des mots et l’importance des mots dans le texte. La capacité de Glove et de Word2Vec à produire des plongements de mots en fonction de l’usage des mots leur a permis de transmettre une connaissance des significations des mots et du contexte22.
Une fois les données préparées, les requêtes d’intentions sont classées à l’aide de la méthode d’allocation de Dirichlet latente (LDA). L’objectif est d’utiliser l’exploration de texte avec la méthode LDA pour analyser les connexions entre les termes et identifier des modèles dans leurs structures34,35. Non supervisée et de nature probabiliste, LDA part du principe que chaque document d’un corpus est composé d’un nombre prédéterminé de thèmes définis manuellement. Chaque document de LDA a le même poids et contient un sac de mots. Les mots de chaque document sont présumés être non ordonnés. Un sujet est également décrit à l’aide d’une fonction de masse de probabilité des mots. Chaque document utilise une fonction de masse de probabilité pour choisir les thèmes. Pour la classification de l’intention, l’allocation de Dirichlet latente (LDA) a été appliquée à l’aide de la bibliothèque GensimPython34.
Dans LDA, les intentions sont considérées comme la distribution sur le latent qui est désignée par la distribution LDA air appelée
. Un motif est sélectionné en fonction de la distribution d’intention, qui est notée θ(multinomiale) qui définit l’intention donnée, la probabilité de I appartient à la classe C donnée. Une distribution de Dirichlet est liée à β qui encode le motif dans un sac de mots. Étant donné le α et le β, il est défini comme la distribution multivariée avec N mots liés à M motifs avec z intentions. Le groupe de N termes est noté W, qui est donné par36 :
(1)
En intégrant sur θ, la somme est déclarée Z, et le produit est pris des probabilités du marginal des intentions individuelles, et la probabilité d’intention entière est calculée comme,
(2)
Les motifs, y compris les variations d’intention pour les salutations, sont hi, hello, hey, good morning/noon/eve et hola. Lors de la réception de ces modèles, le système trouve l’intention de l’utilisateur sous forme de salutations et y répond en conséquence avec la phrase définie, telle que Que puis-je vous aider ? ou Comment puis-je vous aider ? Si la requête n’est pas reconnue par le système avec les 15 classes prédéfinies, le système fournit des informations sur le restaurant et suggère à l’utilisateur de communiquer avec le service client. Le résultat de la modélisation des balises basée sur LDA des requêtes utilisateur liées aux messages d’accueil est illustré à la figure 2. De même, les réponses sont effectuées pour l’ensemble des 15 classes liées aux intentions de l’utilisateur (Queries). Le modèle LDA a les paramètres suivants. Le nombre de rubriques (k) est déclaré comme 40, l’alpha est fixé à 0,05, la valeur bêta est de 0,04 et le nombre d’itérations est déclaré comme 100.
Suggestion alimentaire à l’aide de Bi-NN pour ICS
Dans le système de restauration intelligent (ICS), les produits alimentaires sont systématiquement catégorisés pour étayer des recommandations précises. Chaque entrée de menu peut représenter soit un seul article (p. ex., un hamburger, une collation, une boisson), soit une combinaison d’articles tels qu’un ensemble de repas (p. ex., du poulet frit avec une boisson froide). Ces articles sont regroupés en six catégories principales : poulet, hamburger, collation, boisson, costume et tiffin. Pour plus de clarté, suit fait référence aux ensembles de repas emballés, tandis que tiffin représente des repas traditionnels à plusieurs articles. Chaque aliment est défini par trois caractéristiques clés : son prix, sa catégorie et un vecteur de contenu décrivant sa composition. Cette catégorisation structurée permet au modèle de recommandation d’analyser l’historique des achats des clients au niveau de l’article et de la catégorie, améliorant ainsi la capacité du système à suggérer des repas et des combinaisons pertinents qui s’alignent sur les préférences de l’utilisateur. Tous les aliments de l’ICS sont un ensemble désigné par
N désigne le nombre total d’aliments de l’ICS. Pour chaque produit
alimentaire en F,
comprend des détails sur les caractéristiques des aliments, et il est noté comme,
(3)
où,
désigne les prix des denrées alimentaires,
désigne la catégorie des produits alimentaires où
, C désigne les catégories.
désigne le nombre de menus, où
M désigne les menus
, désigne le vecteur de contenu des aliments, où
où
est l’élément du vecteur de contenu et représente respectivement le poulet, le hamburger, la collation, la boisson, le costume et le Tiffin.
Les données utilisateur se composent de détails sur l’utilisateur pour indiquer les fonctionnalités de l’utilisateur qui peuvent être obtenues à partir de l’application ou du flux d’utilisation. Pour chaque utilisateur
, les fonctionnalités sont notées comme,
(4)
où
, désigne les détails sur l’utilisateur, tels que l’âge et le sexe.
Désigne l’événement de clic de l’utilisateur, qui est un vecteur de longueur variable où
et t déclare l’heure de l’événement de clic récent,
est le nombre positif et
désigne la séquence de flux entière qui désigne l’ensemble de l’achat effectué par l’utilisateur.
Désigne la liste des aliments achetés par le client, où
, k désigne la quantité totale d’aliments achetés par l’utilisateur.
Avec l’utilisation de F et U, qui désignent respectivement les aliments et les données de l’utilisateur, le système de recommandation est encadré dans l’ICS. L’objectif de ce système est d’améliorer la précision pour renforcer l’intention d’achat de l’utilisateur. Le problème de l’ICS est formulé comme suit :
(5)
L’équation (5) indique l’objectif du problème qui est de trouver des résultats de précision améliorés sur le problème ICS en réduisant la fonction de perte qui est notée dans l’équation (6).
(6)
où,
est le résultat prédit et
est le résultat réel. Le modèle fonctionne mieux lorsque la valeur de la fonction de perte est plus petite. La fonction de perte est utilisée pour déterminer l’écart entre la valeur prédite du modèle et la valeur réelle Y. Dans ce contexte,
(7)
où
(8)
(9)
Dans ce cas, r désigne les données d’entraînement dans X et s est le numéro d’aliment acheté d’une donnée d’entraînement. L’ICS développé a utilisé l’entropie croisée comme fonction de perte, qui est décrite dans la section suivante.
Recommandation alimentaire basée sur Conv-RNN
En analysant les attributs du produit, les évaluations des utilisateurs et les profils d’utilisateurs, un système de recommandation basé sur Conv-RNN fournit aux utilisateurs des recommandations basées sur leurs intérêts. La figure 3 montre la conception proposée du CRNN. Les modèles Conv-RNN prennent souvent en compte ou ajoutent automatiquement des informations spécifiques sur le contexte temporel de l’utilisateur tout en faisant des suggestions. Cependant, la capacité d’un système de recommandation à comprendre et à utiliser le contexte fourni par les demandes de suggestion détermine souvent son efficacité. Conv-RNN calcule les évaluations de prédiction en fonction des caractéristiques et des attributs dynamiques de l’élément et du contexte temporel actuel de l’utilisateur afin de fournir des recommandations appropriées pour un utilisateur spécifique. Il est inévitable que des personnes qui traversent des choses similaires en même temps aient des préférences similaires. L’efficacité d’un système de recommandations temporel basé sur CNN dépend de sa capacité à trouver les utilisateurs qui sont les plus comparables au récepteur prévu et qui partagent le même contexte temporel. Ainsi, CNN enregistre le contexte temporel, c’est-à-dire les informations sensibles au temps sur l’activité de l’utilisateur. La couche d’entrée du CNN a ensuite été alimentée avec les attributs de l’utilisateur, les caractéristiques de l’élément et les informations temporelles pour reconstruire la matrice d’origine. Une méthode de calcul de la sortie finale est donnée une fois que la couche de convolution a été utilisée pour extraire des caractéristiques de la matrice.
À partir des couches de convolution, les événements de clic alimentaire sont extraits à l’aide de Eqn (10)
(10)
où O est la taille de sortie, X est la taille des données d’entrée, F est la taille du noyau convolutif, a est pour remplir les données d’entrée, et S est supérieur à 1 et S est la foulée du noyau. Le réseau neuronal peut modéliser des modèles plus complexes qu’il ne le pourrait s’il était limité à la simulation de calculs entre les couches voisines du réseau, ce qu’il fait en utilisant l’uniformité mais uniquement le fonctionnement linéaire, car la fonction d’activation au sein de la couche de stimulation est utilisée pour effectuer des opérations non linéaires. Dans un réseau neuronal, la communication couche à couche est strictement séquentielle. Dans Conv-RNN, les fonctions d’activation étaient les plus prévalentes. Les fonctions conventionnelles Tanh, sigmoïde et d’autres types d’activation n’ont pas de gradient et ont de petites plages d’intervalles pratiques. Lorsqu’une opération non linéaire économe en ressources est également utilisée, les fonctions d’unité linéaire redressée (ReLU) deviennent le principal instrument permettant de surmonter ces deux problèmes.
Pour plus d’efficacité de calcul, la couche de regroupement sous-échantillonne et traite peu les données de fonction. Les méthodes de regroupement maximum et moyen sont deux exemples bien connus d’algorithmes de regroupement ; MaxPooling fournit de meilleurs résultats de sélection de fonctionnalités. MaxPooling a sélectionné les fonctionnalités suivantes :
(11)
Le Conv-RNN utilise ensuite la couche entièrement connectée en utilisant deux approches denses pour réentraîner la queue du Conv-RNN avec moins de perte d’informations sur les caractéristiques. Les couches récurrentes sont couramment utilisées dans les réseaux neuronaux pour l’analyse de données séquentielles. En raison des connexions qui leur permettent de conserver une mémoire interne des entrées précédentes, les couches récurrentes gèrent chaque entrée séparément, contrairement aux couches de prédiction traditionnelles. Cela rend les couches récurrentes particulièrement bien adaptées aux tâches impliquant des séquences, des données de séries chronologiques ou tout type d’information où l’ordre des entrées compte. L’unité fondamentale d’une couche récurrente est le neurone récurrent, souvent connu sous le nom de cellule RNN. Comme les cellules RNN gèrent les entrées une par une, elles conservent un état interne qui contient les données des entrées précédentes. Son état interne est modifié à chaque pas de temps, ce qui influence le traitement des entrées ultérieures. La couche de sortie montre à l’utilisateur les résultats après avoir utilisé le classificateur SoftMax. Avant d’utiliser les champs, dont les caractéristiques sont classées comme l’index de la matrice intégrée, ils doivent d’abord être convertis en entiers.
La fonction catégorielle de perte d’entropie croisée, qui quantifie la différence entre les étiquettes de classe vraies y et la distribution de probabilité projetée y', a été utilisée pour entraîner le modèle de recommandation Conv-RNN. La descente de gradient stochastique (SGD) avec estimation de moment adaptative (Adam) a été utilisée pour améliorer les paramètres du modèle θ (poids et biais). Les paramètres ont été modifiés comme suit à chaque itération de l’entraînement t :
(12)
où, η est le taux d’apprentissage,
est le gradient de la fonction de perte par rapport à θ.
Les tactiques suivantes ont été utilisées pour éviter le surapprentissage. Pendant l’entraînement, la régularisation de l’abandon (ρ=0,3) est utilisée sur des couches entièrement liées pour désactiver aléatoirement les neurones. Lorsqu’aucune amélioration n’a été observée pendant 15 périodes consécutives, la formation a été interrompue prématurément en raison de la perte de validation.
Validation croisée divisée en cinq fois pour confirmer les performances de généralisation
À l’aide d’une recherche par grille sur le jeu de validation, le réglage des hyperparamètres a été effectué. L’espace de recherche comprenait le nombre de filtres pour la couche de convolution, 64, la taille du noyau, 3 x 3, le nombre de couches récurrentes comme 100, la taille du lot, le taux d’abandon de 0,2 et le taux d’apprentissage de 0,002. L’optimiseur utilisé est ADAM. Enfin, la couche de sortie renvoie les résultats des aliments recommandés sous la forme d’un vecteur d’encodage à chaud, où les aliments suggérés sont désignés par un et les autres sorties sont notées 0.
Prédiction de la satisfaction client à l’aide de Conv-LSTM
Cette étude a utilisé la mémoire à long terme à convolution (Conv-LSTM) pour prévoir la satisfaction des clients une fois qu’ils ont terminé leur restauration. La structure de Conv-LSTM est illustrée à la figure 4. L’architecture de CNN comprend des neurones d’entrée, une série de couches convolutives, des pools, des couches complètement connectées et des couches de normalisation37. Les cellules nerveuses de la couche de convolution sont connectées à la couche supérieure par une région étroite, tandis que les neurones d’activation des couches entièrement liées sont entièrement liés aux couches situées en dessous. Les entrées Conv-LSTM définissent explicitement les formes tensorielles et la granularité temporelle. Chaque séquence d’entrée est structurée par session de commande de vente (pas de temps = par commande), où la liste d’achats est encodée sous la forme d’un vecteur multi-chaud et le niveau de satisfaction associé est représenté par un score numérique. Le tenseur résultant a la forme (taille du lot × longueur de séquence × dimension de la caractéristique).
La transmission inverse avant et arrière d’une fonction dans CNN sépare généralement les facteurs en différents groupes en fonction de leur entrée. De nombreux modèles de CNN ont vu le jour à la suite des récentes avancées de la recherche. Comme le montre l’équation (15), trois poids, iw, rw et b, désignent respectivement le poids d’entrée, le poids récurrent et le biais qui ont été utilisés dans chaque bloc LSTM.
(13)
Ce qui suit est une déclaration de l’état de la cellule à l’intervalle de temps t :
(14)
où le produit de Hadamard est noté . Le code de l’état caché Ht de t est,
(15)
Les hyperparamètres et leurs valeurs de Conv-LSTM sont déclarés comme suit : Le nombre de filtres pour la couche de convolution est de 64, la taille du noyau est de 3 x 3, les unités LSTM sont de 100 avec un taux d’abandon de 0,2, la taille du lot est de 64, le taux d’apprentissage est de 0,002 et le nombre de pas de temps est de 50 avec l’optimiseur Adam.
Diagramme UML et pseudo-code pour l’interaction avec le client
Le flux dynamique des interactions dans le système suggéré est décrit dans le diagramme de séquence UML (Figure 5). Le module NLP-LDA traite la demande de l’utilisateur (telle qu’une commande de repas ou une requête) pour la modélisation de sujets et l’extraction d’intentions. Après le traitement, le moteur de recommandation (Conv-RNN) reçoit la demande et produit une recommandation personnalisée. Enfin, l’utilisateur reçoit une réponse en temps réel du système. Cette séquence garantit la transparence dans la conversion des entrées de l’utilisateur en sorties de service intelligentes et met l’accent sur l’interaction modulaire des composants.
L’algorithme de recommandation Conv-RNN a reçu un pseudo-code pour améliorer la reproductibilité. Il fournit une vue d’ensemble de la logique de calcul séquentielle, qui comprend le prétraitement de la demande de l’utilisateur, l’utilisation de couches convolutives et récurrentes pour la modélisation de séquences et l’extraction de caractéristiques, la régularisation et une couche de sortie softmax pour générer une suggestion. Ce pseudo-code offre une vue claire du flux de travail du modèle au niveau de l’implémentation, ce qui améliore les formulations mathématiques.
Pseudo code : algorithme de recommandation Conv-RNN
Entrée : Demande de l’utilisateur U, séquence d’interaction historique H
Sortie : Aliment recommandé R
- Prétraitez U → tokenize, intégrez avec Word2Vec
- Construire la séquence d’entrée S = [H, U]
- Appliquer une couche convolutive :
S_conv = Conv1D(S, filtres, kernel_size)
- Passage à travers la couche récurrente (RNN/GRU) :
S_RNN = RNN(S_conv, hidden_units)
- Appliquer Dropout pour régularisation
- Couche dense avec activation Softmax :
P = Softmax(W xS_rnn + b)
- Sélectionnez la recommandation :
R = argmax(P)
- Renvoyer R à l’utilisateur