$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Данное исследование было проведено в соответствии с руководящими принципами Комитета по этике научных исследований Национального университета Малайзии (UKM) и утверждено под номером одобрения UKM FST/2025-AI/023. Письменное информированное согласие всех участников было получено до начала сбора запросов к чат-боту. Все данные были обезличены, чтобы обеспечить конфиденциальность и неприкосновенность частной жизни участников
Обзор исследования
Обзор предлагаемой интеллектуальной системы общественного питания с использованием технологий искусственного интеллекта представлен на рисунке 1. Как показано на рисунке, вводимые пользователем данные предварительно обрабатываются с помощью методов NLP, таких как встраивание слов, лемматизация и токенизация для извлечения тегов. Затем модель машинного обучения под названием LDA была применена для моделирования тегов клиентов для предоставления им бесконтактного обслуживания. Предложение пищи осуществляется с помощью модели Conv-RNN. На основе последовательности потока, записанной на основе выбора предыдущего клиента, продукт предлагается клиенту в разумном ключе. Наконец, уровень удовлетворенности клиентов прогнозируется с помощью оптимизированной модели Conv-LSTM для дальнейшего улучшения услуг ресторана. Производительность предложенных моделей ИИ оценивается по различным метрикам оценки.

Рисунок 1: Предложенная модель системы для интеллектуальных служб общественного питания (ИКС). Архитектура интегрирует взаимодействие с пользователем, предварительную обработку данных, обнаружение намерений, рекомендации продуктов питания и механизмы обратной связи. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этой цифры.
Используемый набор данных
Чтобы создать интеллектуальную систему общественного питания, мы собрали 283 запроса от ближайшего ресторана с помощью чат-бота. Эти вопросы, которые включали в себя широкий спектр запросов клиентов, от деталей меню до часов работы, были вручную разделены на 15 различных групп намерений. Это гарантирует тщательный охват всех возможных взаимодействий пользователя с системой. Приветствия, прощания, признательность, питание, часы работы, обстановка, контактная информация, вопросы об оплате, сегодняшнем меню, альтернативах доставки, вопросы меню, процессы заказа, специальные предложения, бронирование, варианты напитков и доступность для сидения на свежем воздухе — вот лишь некоторые из конкретных аспектов запросов клиентов, для записи которых были проведены занятия по намерениям. В таблице 1 приведена частота вопросов в каждой из целевых групп и классификация по тематическому содержанию запросов. Например, категория «Контактная информация» имела самые высокие запросы, что говорит о том, что посетители очень заинтересованы в том, чтобы узнать, как связаться с закусочной. С другой стороны, меньше всего запросов было получено в категориях «Сидячие места» и «Напитки», что может свидетельствовать о том, что интерес потребителей к этим темам снизился или что по ним уже появилось больше разъяснений.
Бесконтактное обслуживание с использованием NLP с LDA
Вводимые пользователем данные, с которых начинается работа фреймворка, изначально обрабатываются для стандартизации текста и устранения шума. Токенизация, исключение стоп-слов и лемматизация являются примерами такой подготовки, которая подготавливает данные к дополнительному анализу. После предварительной обработки запросы пользователей преобразуются в числовые представления. Семантические связи и контекстуальная релевантность относятся к числу лингвистических особенностей, которые фиксируются этими репрезентациями. Несколько классификаторов машинного обучения были использованы для обучения этих векторных представлений пользовательских запросов для классификации 16 предопределенных классов (намерений/тегов). Модель извлекает заранее определенный связанный ответ и возвращает его пользователю после точного прогнозирования намерений запроса пользователя.
Предварительная обработка
Надежность нашего анализа значительно повышается за счет предварительно обработанных запросов, которые подтверждают, что входящие данные отформатированы последовательно и релевантны для последующей процедуры классификации. Шаблоны намерений (например, приветствия, такие как привет, привет, привет) были собраны и предварительно обработаны путем преобразования текста в нижний регистр, удаления стоп-слов и применения токенизации с помощью инструментария NLTK33. В таблице 2 показаны этапы предварительной обработки, которым следовало данное исследование.
Моделирование тегов на основе LDA
Система классифицирует теги пользователя с помощью регрессии опорных векторов (SVR), чтобы приветствия пользователя были распознаны системой. Чтобы улучшить способность системы предугадывать намерения пользователя, мы тщательно изучили как традиционные, так и передовые методы обработки текста в дополнение к моделям машинного обучения (ML) и глубокого обучения (DL). Нашей целью было создание высокоточного алгоритма, который мог бы охватить широкий круг вопросов пользователей. В этом исследовании использовались фундаментальные стратегии Bag of Words (BoW) и TF-IDF из-за их простоты использования и эффективности в подчеркивании частоты слов и важности слов в тексте. Способность Glove и Word2Vec создавать встраивания слов в соответствии с употреблением слов позволила им получить знания о значениях слов и контексте22.
После подготовки данных запросы намерений классифицируются с помощью метода латентного распределения Дирихле (LDA). Цель состоит в том, чтобы с помощью интеллектуального анализа текста с помощью метода LDA проанализировать связи между терминами и выявить закономерности в их структурах34,35. Будучи неконтролируемым и вероятностным по своей природе, LDA исходит из предположения, что каждый документ в корпусе состоит из заранее определенного числа тем, определенных вручную. Каждый документ в LDA имеет одинаковый вес и имеет мешок слов. Предполагается, что слова в каждом документе не упорядочены. Тема также описывается с помощью функции вероятностной массы слов. Каждый документ использует функцию вероятностной массы для выбора тем. Для классификации намерений применялось латентное распределение Дирихле (LDA) с использованием библиотеки GensimPython34.
В LDA намерения рассматриваются как распределение по латентному веществу, которое обозначается распределительным воздухом LDA, называемым
. Шаблон выбирается на основе распределения намерений, которое обозначается как θ(мультином), определяющее данное намерение, вероятность I принадлежит к данному классу C. Распределение Дирихле связано с β, которое кодирует шаблон в мешок слов. Учитывая α и β, оно определяется как многомерное распределение с N словами, относящимися к M паттернам с z намерениями. Группа N членов обозначается как W, которая обозначается как36:
(1)
При интегрировании по θ суммирование объявляется как Z, и произведение берется из вероятностей предельного числа индивидуальных намерений, а вся вероятность намерения вычисляется как:
(2)
Шаблоны, включая варианты намерений для приветствий: привет, привет, привет, доброе утро/полдень/канун и хола. Получая эти шаблоны, система находит намерение пользователя в виде приветствия и отвечает на них определенной фразой, например, «Чем я могу вам помочь?» или «Как я могу вам помочь?». Если запрос не распознается системой с предопределенными 15 классами, то система предоставляет информацию о ресторане и предлагает пользователю связаться со службой поддержки клиентов. Результат моделирования тегов на основе LDA пользовательских запросов, связанных с приветствиями, показан на рисунке 2. Аналогично ответы выполняются для всех 15 классов, связанных с намерениями пользователя (Queries). Модель LDA имеет следующие параметры. Количество топиков (k) объявляется как 40, Альфа фиксируется как 0.05, значение Beta равно 0.04, а количество итераций объявляется как 100.
Рекомендации по питанию с использованием Bi-NN для ICS
В интеллектуальной системе общественного питания (ICS) продукты питания систематически классифицируются для поддержки точных рекомендаций. Каждая позиция в меню может представлять собой либо одно блюдо (например, бургер, закуска, напиток), либо комбинацию блюд, таких как набор блюд (например, жареная курица с холодным напитком). Эти товары сгруппированы в шесть основных категорий: курица, бургер, закуска, напиток, костюм и тиффин. Для ясности, suit относится к упакованным наборам блюд, в то время как tiffin представляет собой традиционные блюда из нескольких предметов. Каждый продукт питания определяется тремя ключевыми признаками: его ценой, его категорией и вектором контента, описывающим его состав. Такая структурированная категоризация позволяет рекомендательной модели анализировать историю покупок клиентов как на уровне товара, так и на уровне категории, улучшая способность системы предлагать подходящие блюда и комбинации, которые соответствуют предпочтениям пользователя. Все продукты питания в ICS обозначены как набор,
где N обозначает общее количество продуктов питания в ICS. Для каждого пищевого продукта
в букве F,
состоит из подробностей о свойствах пищи, и обозначается она как:
(3)
где ,
обозначает цены на продукты питания, обозначает категорию продуктов питания,
где
, C обозначает категории.
обозначает количество меню, где
где M обозначает меню
, обозначает вектор содержимого еды, где
где —
элемент вектора содержимого и представляет курицу, бургер, закуску, напиток, костюм и тиффин соответственно.
Данные пользователя содержат сведения о пользователе, обозначающие функции пользователя, которые можно получить из приложения или потока использования. Для каждого пользователя
функции обозначаются как:
(4)
где
, обозначает сведения о пользователе, такие как возраст и пол.
обозначает событие клика пользователя, которое представляет собой вектор переменной длины, где
t объявляет время последнего события клика, является положительным числом и
обозначает всю последовательность потока,
которая обозначает всю покупку, совершенную пользователем.
Обозначает список продуктов питания, приобретенных клиентом, где
, k обозначает общее количество приобретенных пользователем продуктов питания.
С использованием букв F и U, обозначающих продукты питания и данные о пользователях соответственно, рекомендательная система оформлена в ICS. Целью этой системы является повышение точности для улучшения намерения пользователя совершить покупку. Проблема ИКС сформулирована следующим образом:
(5)
Уравнение (5) обозначает цель задачи по нахождению результатов повышения точности в задаче ICS путем уменьшения функции потерь, которая обозначена в уравнении (6).
(6)
где,
— прогнозируемые результаты и
— фактический результат. Модель работает лучше, когда значение функции потерь меньше. Функция потерь используется для определения расхождения между прогнозируемым значением модели и истинным значением Y. В этом,
(7)
где
(8)
(9)
В этом случае r обозначает обучающие данные в X, а s — номер приобретенного продукта питания одного обучающего данных. Разработанная ICS использовала перекрестную энтропию в качестве функции потерь, которая описана в следующем разделе.
Рекомендации по питанию на основе Conv-RNN
Анализируя характеристики продукта, рейтинги пользователей и профили пользователей, рекомендательная система на основе Conv-RNN предоставляет пользователям рекомендации, основанные на их интересах. На рисунке 3 показана предлагаемая конструкция CRNN. Модели Conv-RNN часто учитывают или автоматически добавляют конкретную информацию о временном контексте пользователя при внесении предложений. Тем не менее, то, насколько хорошо рекомендательная система понимает и использует контекст, предоставляемый запросами предложений, часто определяет, насколько она эффективна. Conv-RNN вычисляет рейтинги прогнозирования на основе динамических характеристик и атрибутов элемента, а также текущего временного контекста пользователя, чтобы предоставить подходящие рекомендации для конкретного пользователя. Неизбежно, что люди, которые переживают похожие вещи в одно и то же время, будут иметь схожие предпочтения. Эффективность системы рекомендаций на основе СНС с учетом времени зависит от ее способности находить пользователей, которые наиболее сопоставимы с предполагаемым получателем и имеют один и тот же временной контекст. Таким образом, CNN фиксирует временной контекст, который представляет собой чувствительную ко времени информацию об активности пользователя. Затем входной слой CNN получал пользовательские атрибуты, характеристики элементов и информацию о времени для восстановления исходной матрицы. Метод вычисления конечного результата дается после того, как слой свертки был использован для извлечения признаков из матрицы.
Из слоев свертки события клика по продукту извлекаются с помощью уравнения (10)
(10)
где O — размер выходных данных, X — размер входных данных, F — размер сверточного ядра, a — заполнение входных данных, S — больше 1 и S — шаг ядра. Нейронная сеть может моделировать более сложные модели, чем если бы она была ограничена моделированием вычислений между соседними слоями сети, что она и делает, используя однородность, но только линейную операцию, потому что функция активации в слое стимуляции используется для выполнения нелинейных операций. В нейронной сети межуровневое взаимодействие происходит строго последовательно. В Conv-RNN функции активации были наиболее распространенными. Традиционные функции Тань, сигмоида и другие типы активационных функций не имеют градиента и имеют небольшие, практичные интервальные диапазоны. Когда также используется ресурсосберегающая нелинейная операция, функции выпрямленных линейных единиц (ReLU) становятся основным инструментом для преодоления этих двух проблем.
Для повышения вычислительной эффективности слой пула понижает выборку и разреженно обрабатывает данные об объектах. Методы пулинга maximum и average — два известных примера алгоритмов пулинга; MaxPooling обеспечивает лучшие результаты выбора функций. MaxPooling выбрал следующие функции:
(11)
Затем Conv-RNN использует полностью связной слой, используя два плотных подхода для повторного обучения хвоста Conv-RNN с меньшими потерями информации о признаках. Рекуррентные слои обычно используются в нейронных сетях для анализа последовательных данных. Благодаря соединениям, которые позволяют им поддерживать внутреннюю память предыдущих входных данных, рекуррентные слои обрабатывают каждый ввод отдельно, в отличие от традиционных слоев с прямой связью. Это делает рекуррентные слои особенно подходящими для задач, связанных с последовательностями, данными временных рядов или любой другой информацией, где порядок входных данных имеет значение. Основной единицей рекуррентного слоя является рекуррентный нейрон, часто известный как RNN-клетка. Поскольку ячейки RNN обрабатывают входные данные по одному, они поддерживают внутреннее состояние, содержащее данные из предыдущих входных данных. Его внутреннее состояние изменяется на каждом временном шаге, что влияет на обработку последующих входных данных. Выходной слой показывает пользователю результаты после использования классификатора SoftMax. Прежде чем использовать поля, характеристики которых классифицируются как индекс вложенной матрицы, их необходимо сначала преобразовать в целые числа.
Категориальная функция потерь перекрестной энтропии, которая количественно определяет разницу между истинными метками класса y и прогнозируемым распределением вероятностей y', была использована для обучения рекомендательной модели Conv-RNN. Для улучшения параметров модели θ (весов и смещений) использован стохастический градиентный спуск (SGD) с адаптивной оценкой момента (Adam). На каждой обучающей итерации t параметры модифицировались следующим образом:
(12)
где η — скорость обучения,
— градиент функции потерь относительно θ.
Чтобы избежать переобучения, была использована следующая тактика. Во время обучения регуляризация дропаутов (ρ=0,3) используется на полносвязных слоях для случайной дезактивации нейронов. Когда в течение 15 последовательных эпох не наблюдалось улучшений, обучение прекращалось досрочно из-за потерь при валидации.
Пятикратная перекрестная проверка с разделением для подтверждения производительности обобщения
С помощью поиска по сетке на валидационном наборе была проведена настройка гиперпараметров. В пространство поиска были включены следующие параметры: Количество фильтров для слоя свертки — 64, Размер ядра — 3 x 3, Количество рекуррентных слоев — 100, Размер пакета, Коэффициент отсева — 0,2 и Коэффициент обучения — 0,002. Используемым оптимизатором является ADAM. Наконец, выходной слой возвращает результаты рекомендуемых продуктов в виде вектора кодирования one-hot, где предлагаемые продукты обозначаются единицей, а другие выходные данные будут обозначаться как 0.
Прогнозирование удовлетворенности клиентов с помощью Conv-LSTM
В этом исследовании использовалась свертка длинной кратковременной памяти (Conv-LSTM) для прогнозирования удовлетворенности клиентов после того, как они закончили свое питание. Структура Conv-LSTM показана на рисунке 4. Архитектура CNN включает в себя входные нейроны, ряд сверточных слоев, пул, полностью связанные слои и нормализующие слои37. Нервные клетки сверточного слоя соединены со слоем над ним через узкую область, в то время как активационные нейроны полностью связанных слоев полностью связаны со слоями, расположенными под ними. Входные данные Conv-LSTM явно определяют формы тензоров и временную гранулярность. Каждая входная последовательность структурирована для каждого сеанса заказа клиента (временной шаг = для каждого заказа), где список закупок кодируется в виде вектора с несколькими горячими точками, а связанный с ним уровень удовлетворенности представлен в виде числовой оценки. Результирующий тензор имеет форму (размер пакета × длина последовательности × размерность функции).
Прямая и обратная обратная передача функции в СНС обычно разделяет факторы на разные группы на основе их входных данных. Многочисленные проекты CNN появились в результате последних достижений в области исследований. Как показано в уравнении (15), три веса, iw, rw и b, обозначают соответственно входной вес, рекуррентный вес и смещение, которые были использованы в каждом блоке LSTM.
(13)
Ниже приведено объявление состояния ячейки на временном шаге t:
(14)
где произведение Адамара обозначается . Код для скрытого состояния Ht из t выглядит следующим образом:
(15)
Гиперпараметры и их значения Conv-LSTM объявлены следующим образом: количество фильтров для слоя свертки — 64, размер ядра — 3 x 3, единиц LSTM — 100 с коэффициентом отсева 0,2, размер пакета — 64, коэффициент обучения — 0,002, а количество временных шагов — 50 с оптимизатором Адама.
UML-диаграмма и псевдокод для взаимодействия с клиентом
Динамический поток взаимодействий в предлагаемой системе изображен на диаграмме последовательностей UML (рис. 5). Модуль NLP-LDA обрабатывает запрос пользователя (например, заказ еды или запрос) для моделирования темы и извлечения намерений. После обработки рекомендательный механизм (Conv-RNN) получает запрос и выдает индивидуальную рекомендацию. Наконец, пользователь получает ответ от системы в режиме реального времени. Такая последовательность гарантирует прозрачность преобразования вводимых пользователем данных в интеллектуальные сервисные выходы и подчеркивает модульное взаимодействие компонентов.
Рекомендательный алгоритм Conv-RNN получил псевдокод для улучшения воспроизводимости. В нем представлен обзор последовательной вычислительной логики, которая включает в себя предварительную обработку запроса пользователя, использование сверточных и рекуррентных слоев для моделирования последовательностей и извлечения признаков, регуляризации и выходного слоя softmax для генерации предложения. Этот псевдокод обеспечивает четкое представление рабочего процесса модели на уровне реализации, что улучшает математические формулировки.
Псевдокод: Алгоритм рекомендаций Conv-RNN
Входные данные: запрос пользователя U, последовательность исторического взаимодействия H
Выход: Рекомендуемый продукт питания R
- Предварительная обработка U → токенизации, встраивание с помощью Word2Vec
- Построение входной последовательности S = [H, U]
- Нанесите сверточный слой:
S_conv = Conv1D(S, фильтры, kernel_size)
- Пройдите через рекуррентный слой (RNN/GRU):
S_RNN = RNN(S_conv, hidden_units)
- Применить Dropout для регуляризации
- Плотный слой с активацией Softmax:
P = Softmax(W xS_rnn + b)
- Выберите рекомендацию:
R = argmax(P)
- Возврат R пользователю