$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Este estudio se realizó de acuerdo con las directrices del Comité de Ética de la Investigación de la Universidad Nacional de Malasia (UKM) y se aprobó con el número de aprobación UKM FST/2025-AI/023. Se obtuvo el consentimiento informado por escrito de todos los participantes antes de la recopilación de consultas de chatbot. Todos los datos fueron anonimizados para garantizar la confidencialidad y privacidad de los participantes
Resumen del estudio
En la Figura 1 se muestra la descripción general del sistema de restauración inteligente propuesto asistido por tecnologías de IA. Como se ilustra, la entrada del cliente se preprocesa con las técnicas de NLP, como incrustaciones de palabras, lematización y tokenización para extraer las etiquetas. Luego, el modelo ML llamado LDA se ha aplicado para modelar las etiquetas de los clientes para brindarles un servicio sin contacto. La sugerencia de alimentos se realiza utilizando un modelo Conv-RNN. Con base en la secuencia de flujo registrada de las elecciones del cliente anterior, la comida se sugiere al cliente de manera inteligente. Finalmente, el nivel de satisfacción del cliente se predice mediante el uso de un modelo Conv-LSTM optimizado para una mayor mejora en los servicios del restaurante. El rendimiento de los modelos de IA propuestos se evalúa bajo las diversas métricas de evaluación.

Figura 1: Modelo de sistema propuesto para servicios de catering inteligente (ICS). La arquitectura integra la interacción del usuario, el preprocesamiento de datos, la detección de intenciones, la recomendación de alimentos y los mecanismos de retroalimentación. Haga clic aquí para ver una versión más grande de esta figura.
Conjunto de datos utilizado
Para crear el sistema de catering inteligente, recopilamos 283 solicitudes de un restaurante cercano utilizando un chatbot. Estas preguntas, que incluían una amplia variedad de consultas de los clientes, desde los detalles del menú hasta el horario de atención, se dividieron manualmente en 15 grupos de intenciones diferentes. Esto garantiza una cobertura completa de todas las posibles interacciones del usuario con el sistema. Saludos, despedidas, agradecimiento, catering, horarios, entorno, información de contacto, preguntas sobre pagos, menú de hoy, alternativas de entrega, preguntas sobre el menú, procesos de pedido, ofertas especiales, reservas, opciones de bebidas y accesibilidad para sentarse al aire libre son solo algunos de los aspectos específicos de las consultas de los clientes que las clases de intención se hicieron para registrar. La Tabla 1 muestra la frecuencia de preguntas en cada uno de los grupos de propósito y la clasificación según la sustancia temática de las consultas. Por ejemplo, la categoría Información de contacto tuvo las consultas más altas, lo que sugiere que los clientes están muy interesados en saber cómo ponerse en contacto con el restaurante. Por otro lado, las categorías de Asientos y Bebidas fueron las que menos consultas recibieron, lo que puede indicar que hay menos interés de los consumidores en estos temas o que ya hay más aclaraciones sobre ellos.
Servicio sin contacto mediante NLP con LDA
La entrada del usuario que inicia la actividad del marco se preprocesa inicialmente para estandarizar el texto y eliminar el ruido. La tokenización, la eliminación de palabras vacías y la lematización son ejemplos de esta preparación, que prepara los datos para un análisis adicional. Después del procesamiento preliminar, las consultas de los usuarios se convierten en representaciones numéricas. Los vínculos semánticos y la relevancia contextual se encuentran entre las características lingüísticas que capturan estas representaciones. Se utilizaron varios clasificadores de aprendizaje automático para entrenar estas representaciones vectoriales de consultas de usuarios para la clasificación de 16 clases predefinidas (intenciones/etiquetas). El modelo obtiene la respuesta relacionada predeterminada y la devuelve al usuario después de predecir con precisión las intenciones de consulta del usuario.
Preprocesamiento
La confiabilidad de nuestro análisis se ve reforzada en gran medida por las consultas preprocesadas, que verifican que los datos entrantes tengan un formato consistente y relevante para el procedimiento de clasificación que sigue. Los patrones de intención (por ejemplo, saludos como hola, hola, hola) se recopilaron y preprocesaron convirtiendo el texto a minúsculas, eliminando palabras vacías y aplicando tokenización utilizando el kit de herramientas NLTK33. La Tabla 2 muestra los pasos de preprocesamiento seguidos por este estudio.
Modelado de etiquetas basado en LDA
El sistema clasifica las etiquetas del usuario mediante la regresión vectorial de soporte (SVR) para que el sistema reconozca los saludos del usuario. Con el fin de mejorar la capacidad del sistema para anticipar la intención del usuario, examinamos minuciosamente los métodos de procesamiento de texto convencionales y de vanguardia, además de los modelos de aprendizaje automático (ML) y aprendizaje profundo (DL). Nuestro objetivo era construir un algoritmo altamente preciso que pudiera comprender una amplia gama de preguntas de los usuarios. Este estudio empleó las estrategias fundamentales de Bag of Words (BoW) y TF-IDF debido a su facilidad de uso y potencia para enfatizar la frecuencia de las palabras y la importancia de las palabras en el texto. La capacidad de Glove y Word2Vec para producir incrustaciones de palabras de acuerdo con el uso de palabras les permitió brindar conocimiento de los significados y el contexto de las palabras22.
Una vez preparados los datos, las consultas de intenciones se clasifican mediante el método de asignación latente de Dirichlet (LDA). El objetivo es utilizar la minería de texto con el método LDA para analizar las conexiones entre términos e identificar patrones en sus estructuras34,35. Sin supervisión y de naturaleza probabilística, LDA asume que cada documento en un corpus se compone de un número predeterminado de temas definidos manualmente. Cada documento en LDA tiene el mismo peso y tiene una bolsa de palabras. Se presume que las palabras de cada documento no están ordenadas. Un tema también se describe utilizando una función de masa de probabilidad de palabras. Cada documento utiliza una función de masa de probabilidad para elegir temas. Para la clasificación de intención, se aplicó la asignación latente de Dirichlet (LDA) utilizando la biblioteca GensimPython34.
En LDA, las intenciones se ven como la distribución sobre el latente que se denota por el aire de distribución LDA llamado
. Se selecciona un patrón basado en la distribución de la intención, que se denota como θ (multinomial) que define la intención dada, la probabilidad de I pertenece a la clase C dada. Una distribución de Dirichlet está relacionada con β que codifica el patrón en una bolsa de palabras. Dada la α y β, se define como la distribución multivariada con N palabras relacionadas con patrones M con z intenciones. El grupo de N términos se denota como W, que se da como36:
(1)
Al integrar sobre θ, la suma se declara como Z, y el producto se toma de las probabilidades del marginal de las intenciones individuales, y la probabilidad de intención total se calcula como,
(2)
Los patrones, incluidas las variaciones de intención para los saludos, son hola, hola, hola, buenos días/mediodía/víspera y hola. Al recibir estos patrones, el sistema encuentra la intención del usuario como saludos y responde a ellos en consecuencia con la frase definida, como ¿En qué puedo ayudarte? o ¿En qué puedo ayudarte? Si el sistema no reconoce la consulta con las 15 clases predefinidas, el sistema proporciona información del restaurante y sugiere que el usuario se comunique con el servicio de atención al cliente. El resultado del modelado de etiquetas basado en LDA de las consultas de usuario relacionadas con los saludos se muestra en la Figura 2. Del mismo modo, las respuestas se llevan a cabo para las 15 clases relacionadas con las intenciones del usuario (Consultas). El modelo LDA tiene los siguientes parámetros. El número de temas (k) se declara como 40, el alfa se fija como 0,05, el valor beta es 0,04 y el número de iteraciones se declara como 100.
Sugerencia de alimentos usando Bi-NN para ICS
En el Sistema Inteligente de Catering (ICS), los alimentos se clasifican sistemáticamente para respaldar recomendaciones precisas. Cada entrada del menú puede representar un solo elemento (p. ej., hamburguesa, refrigerio, bebida) o una combinación de elementos como un juego de comidas (p. ej., pollo frito con una bebida fría). Estos artículos se agrupan en seis categorías principales: pollo, hamburguesa, bocadillo, bebida, traje y tiffin. Para mayor claridad, suit se refiere a los juegos de comida envasados, mientras que tiffin representa comidas tradicionales de varios artículos. Cada alimento se define por tres características clave: su precio, su categoría y un vector de contenido que describe su composición. Esta categorización estructurada permite que el modelo de recomendación analice los historiales de compra de los clientes tanto a nivel de artículo como de categoría, mejorando la capacidad del sistema para sugerir comidas y combos relevantes que se alineen con las preferencias del usuario. Todos los alimentos en el ICS son un conjunto denotado como,
donde N denota el número total de alimentos en el ICS. Para cada producto
alimenticio en F,
consta de detalles de las características de los alimentos, y se denota como,
(3)
donde,
denota los precios de los alimentos,
denota la categoría de los alimentos donde
, C denota las categorías.
denota el número de menús donde
donde M denota los menús
denota el vector de contenido de la comida, donde
donde donde
es el elemento del vector de contenido y representa pollo, hamburguesa, bocadillo, bebida, traje y Tiffin, respectivamente.
Los datos del usuario consisten en detalles sobre el usuario para indicar las características del usuario que se pueden obtener de la aplicación o del flujo de uso. Para cada usuario
, las características se denotan como,
(4)
donde
, denota los detalles sobre el usuario, como la edad y el sexo.
Denota el evento de clic del usuario, que es un vector de longitud variable donde
y t declara la hora del evento de clic reciente,
es el número positivo y
denota toda la secuencia de flujo que denota toda la compra realizada por el usuario.
Denota la lista de alimentos comprados por el cliente, donde
, k denota la cantidad total de alimentos comprados por el usuario.
Con el uso de F y U, que denotan alimentos y datos de usuarios, respectivamente, el sistema de recomendación se enmarca en ICS. El objetivo de este sistema es mejorar la precisión para mejorar la intención de compra del usuario. El problema de ICS se formula como,
(5)
La ecuación (5) denota el objetivo del problema de encontrar resultados de precisión mejorados en el problema ICS mediante la reducción de la función de pérdida que se indica en la ecuación (6).
(6)
donde,
son los resultados predichos y
es el resultado real. El modelo funciona mejor cuando el valor de la función de pérdida es menor. La función de pérdida se emplea para determinar la discrepancia entre el valor predicho del modelo y el valor verdadero Y. En esto,
(7)
Dónde
(8)
(9)
En esto, r denota los datos de entrenamiento en X, y s es el número de alimento comprado de un dato de entrenamiento. El ICS desarrollado empleó la entropía cruzada como función de pérdida, que se describe en la siguiente sección.
Recomendación de alimentos basada en Conv-RNN
Al analizar los atributos del producto, las calificaciones de los usuarios y los perfiles de los usuarios, un sistema de recomendación basado en Conv-RNN proporciona a los usuarios recomendaciones basadas en sus intereses. La Figura 3 muestra el diseño CRNN propuesto. Los modelos Conv-RNN con frecuencia consideran o agregan automáticamente información específica sobre el contexto temporal del usuario al hacer sugerencias. Sin embargo, qué tan bien un sistema de recomendación comprende y utiliza el contexto proporcionado por las solicitudes de sugerencia a menudo determina qué tan efectivo es. Conv-RNN calcula las calificaciones de predicción en función de las características y atributos dinámicos del elemento y el contexto de tiempo actual del usuario para proporcionar recomendaciones adecuadas para un usuario específico. Es inevitable que las personas que están pasando por cosas similares al mismo tiempo tengan preferencias similares. La efectividad de un sistema de recomendaciones consciente del tiempo basado en CNN depende de su capacidad para encontrar usuarios que sean más comparables al receptor previsto y compartan el mismo contexto temporal. Por lo tanto, CNN registra el contexto temporal, que es la información sensible al tiempo sobre la actividad del usuario. Luego, la capa de entrada de CNN se alimentó con los atributos del usuario, las características de los elementos y la información de tiempo para reconstruir la matriz original. Se proporciona un método para calcular la salida final una vez que se ha utilizado la capa de convolución para extraer características de la matriz.
De las capas de convolución, los eventos de clic de alimentos se extraen usando la Ecuación (10)
(10)
donde O es el tamaño de salida, X es el tamaño de los datos de entrada, F es el tamaño del kernel convolucional, a es llenar los datos de entrada y S es más que 1 y S es el paso del kernel. La red neuronal puede modelar modelos más complejos de lo que podría si se limitara a simular cálculos entre capas vecinas de la red, lo que hace mediante el uso de uniformidad pero solo operación lineal, porque la función de activación dentro de la capa de estimulación se usa para realizar operaciones no lineales. En una red neuronal, la comunicación capa a capa es estrictamente secuencial. En Conv-RNN, las funciones de activación fueron las más prevalentes. Las funciones convencionales de Tanh, sigmoide y otros tipos de activación carecen de gradiente y tienen rangos de intervalo pequeños y prácticos. Cuando también se utiliza una operación no lineal eficiente en recursos, las funciones de unidad lineal rectificada (ReLU) se convierten en el instrumento principal para superar estos dos problemas.
Para la eficiencia computacional, la capa de agrupación reduce las muestras y procesa escasamente los datos de las características. Los métodos de agrupación máxima y media son dos ejemplos bien conocidos de algoritmos de agrupación; MaxPooling proporciona mejores resultados de selección de características. MaxPooling seleccionó las siguientes características:
(11)
Luego, Conv-RNN emplea la capa completamente conectada utilizando dos enfoques densos para volver a entrenar la cola Conv-RNN con menos pérdida de información de características. Las capas recurrentes se utilizan comúnmente en redes neuronales para el análisis de datos secuenciales. Debido a las conexiones que les permiten mantener una memoria interna de entradas anteriores, las capas recurrentes manejan cada entrada por separado, a diferencia de las capas de retroalimentación tradicionales. Esto hace que las capas recurrentes sean particularmente adecuadas para tareas que involucran secuencias, datos de series temporales o cualquier tipo de información donde el orden de las entradas sea importante. La unidad fundamental de una capa recurrente es la neurona recurrente, a menudo conocida como célula RNN. A medida que las células RNN manejan las entradas una a la vez, mantienen un estado interno que contiene datos de entradas anteriores. Su condición interna se altera en cada paso de tiempo, lo que influye en el procesamiento de las entradas posteriores. La capa de salida muestra al usuario los resultados después de usar el clasificador SoftMax. Antes de utilizar los campos, cuyas características se clasifican como índice de la matriz incrustada, primero deben convertirse en números enteros.
La función categórica de pérdida de entropía cruzada, que cuantifica la diferencia entre las etiquetas de clase verdadera y y la distribución de probabilidad proyectada y', se utilizó para entrenar el modelo de recomendación Conv-RNN. Se utilizó el descenso de gradiente estocástico (SGD) con estimación de momento adaptativo (Adam) para mejorar los parámetros del modelo θ (pesos y sesgos). Los parámetros se modificaron de la siguiente manera en cada iteración de entrenamiento t:
(12)
donde, η es la tasa de aprendizaje,
es el gradiente de la función de pérdida con respecto a θ.
Se utilizaron las siguientes tácticas para evitar el sobreajuste. Durante el entrenamiento, la regularización de abandono (ρ = 0,3) se utiliza en capas completamente unidas para desactivar aleatoriamente las neuronas. Cuando no se observó ninguna mejora durante 15 épocas consecutivas, el entrenamiento se detuvo antes de tiempo en función de la pérdida de validación.
Validación cruzada dividida cinco veces para confirmar el rendimiento de la generalización
Utilizando una búsqueda de cuadrícula en el conjunto de validación, se llevó a cabo el ajuste de hiperparámetros. En el espacio de búsqueda se incluyeron el número de filtros para la capa de convolución, 64, el tamaño del kernel, 3 x 3, el número de capas recurrentes como 100, el tamaño del lote, la tasa de abandono 0.2 y la tasa de aprendizaje 0.002. El optimizador utilizado es ADAM. Finalmente, la capa de salida devuelve los resultados de los alimentos recomendados como un vector de codificación de un calor, donde los alimentos sugeridos se indican con uno y otras salidas se denotarán como 0.
Predicción de la satisfacción del cliente mediante Conv-LSTM
Este estudio utilizó la memoria a corto plazo de convolución (Conv-LSTM) para pronosticar la satisfacción del cliente una vez que han terminado su catering. La estructura de Conv-LSTM se muestra en la Figura 4. La arquitectura de CNN incluye neuronas de entrada, una serie de capas convolucionales, agrupación, capas completamente conectadas y capas de normalización37. Las células nerviosas de la capa de convolución están conectadas a la capa superior a través de una región estrecha, mientras que las neuronas de activación de las capas completamente unidas están completamente relacionadas con las capas debajo de ellas. Las entradas Conv-LSTM definen explícitamente las formas tensoriales y la granularidad temporal. Cada secuencia de entrada está estructurada por sesión de pedido del cliente (paso de tiempo = por pedido), donde la lista de compras se codifica como un vector multicaliente y el nivel de satisfacción asociado se representa como una puntuación numérica. El tensor resultante tiene la forma (tamaño de lote × longitud de secuencia × dimensión de característica).
La transmisión hacia adelante y hacia atrás de una función en CNN generalmente separa los factores en diferentes grupos en función de su entrada. Numerosos diseños de CNN han surgido como resultado de los recientes avances de investigación. Como se muestra en la Ecuación (15), tres ponderaciones, iw, rw y b, denotan la ponderación de entrada, la ponderación recurrente y el sesgo, respectivamente, que se han empleado en cada bloque LSTM.
(13)
A continuación se muestra una declaración del estado de la celda en el paso de tiempo t:
(14)
donde el producto Hadamard se denota por . El código para el estado oculto Ht de t es,
(15)
Los hiperparámetros y sus valores de Conv-LSTM se declaran de la siguiente manera: El número de filtros para la capa de convolución es 64, el tamaño del kernel es 3 x 3, las unidades LSTM son 100 con una tasa de abandono de 0,2, el tamaño del lote es 64, la tasa de aprendizaje es 0,002 y el número de pasos de tiempo es 50 con el optimizador Adam.
Diagrama UML y pseudocódigo para la interacción con el cliente
El flujo dinámico de interacciones en el sistema sugerido se representa en el diagrama de secuencia UML (Figura 5). El módulo NLP-LDA procesa la solicitud del usuario (como un pedido de comida o una consulta) para el modelado de temas y la extracción de intenciones. Después del procesamiento, el motor de recomendación (Conv-RNN) recibe la solicitud y produce una recomendación personalizada. Por último, el usuario recibe una respuesta en tiempo real del sistema. Esta secuencia garantiza la transparencia en la conversión de la entrada del usuario en salidas de servicio inteligentes y enfatiza la interacción modular de los componentes.
El algoritmo de recomendación Conv-RNN ha recibido pseudocódigo para mejorar la reproducibilidad. Proporciona una descripción general de la lógica computacional secuencial, que incluye el preprocesamiento de la solicitud del usuario, el uso de capas convolucionales y recurrentes para el modelado de secuencias y la extracción de características, la regularización y una capa de salida softmax para generar una sugerencia. Este pseudocódigo ofrece una vista clara a nivel de implementación del flujo de trabajo del modelo, lo que mejora las formulaciones matemáticas.
Pseudocódigo: Algoritmo de recomendación Conv-RNN
Entrada: Solicitud del usuario U, secuencia de interacción histórica H
Resultado: Alimento recomendado R
- Preprocesar U → tokenizar, insertar con Word2Vec
- Construir secuencia de entrada S = [H, U]
- Aplicar capa convolucional:
S_conv = Conv1D(S, filtros, kernel_size)
- Pasar a través de la capa recurrente (RNN/GRU):
S_RNN = RNN(S_conv, hidden_units)
- Solicitar Dropout para regularización
- Capa densa con activación Softmax:
P = Softmax(W xS_rnn + b)
- Seleccione la recomendación:
R = argmax(P)
- Devolver R al usuario