$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Badanie to zostało przeprowadzone zgodnie z wytycznymi Komitetu Etyki Badań Narodowego Uniwersytetu Malezji (UKM) i zatwierdzone pod numerem zatwierdzenia UKM FST/2025-AI/023. Przed zebraniem zapytań chatbotów uzyskano pisemną świadomą zgodę wszystkich uczestników. Wszystkie dane zostały zanonimizowane, aby zapewnić poufność i prywatność uczestników
Przegląd badania
Przegląd proponowanego inteligentnego systemu cateringowego wspomaganego technologiami AI przedstawiono na Rysunku 1. Jak pokazano, dane wejściowe klienta są wstępnie przetwarzane technikami NLP, takimi jak osadzanie słów, lemmatyzacja i tokenizacja, aby wyodrębnić tagi. Następnie model ML zwany LDA został zastosowany do modelowania tagów klientów, aby zapewnić im bezkontaktową obsługę. Sugestia żywieniowa realizowana jest za pomocą modelu Conv-RNN. Na podstawie sekwencji przepływu zarejestrowanej na podstawie wyborów poprzedniego klienta, jedzenie jest inteligentnie sugerowane klientowi. Na koniec poziom satysfakcji klientów jest przewidywany za pomocą zoptymalizowanego modelu Conv-LSTM w celu dalszej poprawy usług restauracji. Wydajność proponowanych modeli AI jest oceniana według różnych wskaźników oceny.

Rysunek 1: Proponowany model systemu dla inteligentnych usług cateringowych (ICS). Architektura integruje interakcję z użytkownikiem, wstępne przetwarzanie danych, wykrywanie intencji, rekomendację żywności oraz mechanizmy informacji zwrotnej. Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figurki.
Używany zbiór danych
Aby stworzyć inteligentny system cateringowy, zebraliśmy 283 żądania z pobliskiej restauracji za pomocą chatbota. Pytania te, obejmujące szeroki zakres zapytań klientów – od szczegółów menu po godziny pracy – zostały ręcznie podzielone na 15 różnych grup intencji. Gwarantuje to dokładne pokrycie wszystkich możliwych interakcji użytkowników z systemem. Powitania, pożegnania, wdzięczności, catering, godziny otwarcia, miejsca, dane kontaktowe, pytania dotyczące płatności, dzisiejsze menu, alternatywy dostawy, pytania dotyczące menu, procesy zamówień, specjalne promocje, rezerwacje, opcje napojów oraz dostępność do siedzenia na zewnątrz to tylko niektóre z konkretnych aspektów zapytań klientów, które miały być rejestrowane w klasach intencyjnym. Tabela 1 pokazuje częstotliwość pytań w każdej z grup celów oraz klasyfikację według tematycznej treści zapytań. Na przykład kategoria Dane Kontaktowe miała najwięcej zapytań, co sugeruje, że klienci są bardzo zainteresowani tym, jak skontaktować się z lokalem. Z drugiej strony, kategorie Siedzenia i Napojów otrzymały najmniej zapytań, co może wskazywać, że zainteresowanie konsumentów tymi tematami jest mniejsze lub że już istnieje więcej wyjaśnień na ich temat.
Usługa bezkontaktowa z wykorzystaniem NLP z LDA
Dane wejściowe od użytkownika, które uruchamiają działanie frameworka, są początkowo wstępnie przetwarzane, aby ustandaryzować tekst i wyeliminować szumy. Przykładami tego przygotowania są tokenizacja, eliminacja słów stop oraz lemmatyzacja, która przygotowuje dane do dalszej analizy. Po wstępnym przetwarzaniu zapytania użytkowników są przekształcane w reprezentacje liczbowe. Powiązania semantyczne i kontekstowa istotność to cechy językowe, które są uchwycone przez te reprezentacje. Do trenowania tych wektorowych reprezentacji zapytań użytkownika w celu klasyfikacji 16 wcześniej zdefiniowanych klas (intencji/tagów) użyto kilku klas uczenia maszynowego. Model pobiera wcześniej ustaloną powiązaną odpowiedź i zwraca ją użytkownikowi po dokładnym przewidzeniu intencji zapytania użytkownika.
Wstępnego przetwarzania
Wiarygodność naszej analizy znacznie zwiększa się dzięki wstępnie przetworzonym zapytaniam, które potwierdzają, że przychodzące dane są spójnie sformatowane i istotne dla następującej procedury klasyfikacji. Wzorce intencji (np. powitania takie jak cześć, cześć, hej) były zbierane i wstępnie przetwarzane przez konwersję tekstu na małe litery, usunięcie słów stop oraz zastosowanie tokenizacji za pomocą NLTK toolkit33. Tabela 2 przedstawia kroki wstępnego przetwarzania wykonane przez to badanie.
Modelowanie tagów oparte na LDA
System klasyfikuje tagi użytkownika za pomocą Support Vector Regression (SVR), aby system rozpoznawał powitania użytkownika. Aby zwiększyć zdolność systemu do przewidywania intencji użytkownika, dokładnie przeanalizowaliśmy zarówno konwencjonalne, jak i nowoczesne metody przetwarzania tekstu, a także modele uczenia maszynowego (ML) i głębokiego uczenia (DL). Naszym celem było stworzenie wysoce precyzyjnego algorytmu, który potrafiłby zrozumieć szeroki zakres pytań użytkowników. Badanie to wykorzystało podstawowe strategie Bag of Words (BoW) i TF-IDF ze względu na ich łatwość użycia i skuteczność podkreślania częstotliwości słów oraz znaczenia słów w tekście. Zdolność Glove i Word2Vec do tworzenia osadzeń słów zgodnie z użyciem słów pozwoliła im przekazać wiedzę o znaczeniach słów i kontekście22.
Po przygotowaniu danych zapytania o intencje są klasyfikowane metodą ukrytej alokacji Dirichleta (LDA). Celem jest wykorzystanie eksploracji tekstu metodą LDA do analizy powiązań między terminami i identyfikacji wzorców w ich strukturach34,35. Beznadzorowany i probabilistyczny z natury, LDA zakłada, że każdy dokument w korpusie składa się z ustalonej liczby ręcznie określonych tematów. Każdy dokument w LDA ma równą wagę i zawiera worek słów. Słowa każdego dokumentu są uznawane za nieuporządkowane. Temat jest również opisywany za pomocą funkcji masy prawdopodobieństwa słów. Każdy dokument używa funkcji masy prawdopodobieństwa do wyboru tematów. Do klasyfikacji intencji zastosowano Latent Dirichlet Allocation (LDA) przy użyciu bibliotekiGensimPython 34.
W LDA intencje są traktowane jako rozkład po utajonym obszarze oznaczanym przez powietrze rozkładu LDA zwane .
Wzorzec jest wybierany na podstawie rozkładu intencji, oznaczanego jako θ(wielomianowy), co definiuje dany zamiar, prawdopodobieństwo I należy do danej klasy C. Rozkład Dirichleta jest powiązany z β, który koduje wzór w worek słów. Dla α i β definiuje się go jako rozkład wielowymiarowy z N słowami powiązanymi z M wzorcami o intencjach z. Grupa N wyrazów oznacza się jako W, co jest dane jako36:
(1)
Przez całkowanie przez θ, sumowanie deklaruje się jako Z, a iloczyn prawdopodobieństw marginalu indywidualnych intencji oblicza się jako,
(2)
Wzorce, w tym zmiany intencji powitań, to cześć, cześć, hej, dzień dobry/południe/wieczora i hola. Podczas odbierania tych wzorców system znajduje intencje użytkownika jako powitania i odpowiada na nie zdefiniowaną frazą, taką: Co mogę ci pomóc? lub Jak mogę ci pomóc? Jeśli zapytanie nie zostanie rozpoznane przez system z predefiniowanymi 15 klasami, system dostarcza informacje o restauracji i sugeruje użytkownikowi komunikację z obsługą klienta. Wynik modelowania tagów opartych na LDA dla zapytań użytkowników związanych z powitaniami przedstawiono na Rysunku 2. Podobnie odpowiedzi są przeprowadzane dla wszystkich 15 klas związanych z intencjami użytkownika (zapytaniami). Model LDA ma następujące parametry. Liczba tematów (k) deklarowana jest jako 40, Alpha jako 0,05, wartość Beta to 0,04, a liczba iteracji jako 100.
Sugestia żywieniowa z użyciem Bi-NN dla ICS
W Inteligentnym Systemie Cateringowym (ICS) produkty spożywcze są systematycznie kategoryzowane, aby wspierać trafne rekomendacje. Każdy wpis w menu może stanowić albo pojedynczy element (np. burgera, przekąskę, napój), albo kombinację produktów, na przykład zestaw posiłków (np. smażony kurczak z zimnym napojem). Te produkty są podzielone na sześć głównych kategorii: kurczak, burger, przekąska, napoje, garnitur i tiffin. Dla jasności, suit odnosi się do zestawów posiłków pakowanych, natomiast tiffin oznacza tradycyjne dania wieloskładnikowe. Każdy produkt spożywczy definiowany jest przez trzy kluczowe cechy: cenę, kategorię oraz wektor treści opisujący skład. Ta uporządkowana kategoryzacja umożliwia modelowi rekomendacji analizę historii zakupów klientów zarówno na poziomie produktów, jak i kategorii, poprawiając zdolność systemu do sugerowania odpowiednich posiłków i kombinacji zgodnych z preferencjami użytkowników. Wszystkie produkty spożywcze w ICS są zbiorem oznaczonym jako ,
gdzie N oznacza łączną liczbę produktów spożywczych w ICS. Dla każdego produktu
spożywczego w F składa się
ze szczegółów cech żywności i oznacza się ją jako,
(3)
gdzie oznacza
ceny żywności, oznacza kategorię produktów spożywczych,
gdzie
, C oznacza kategorie.
oznacza liczbę menu, gdzie
M oznacza menu
jako wektor zawartości jedzenia, gdzie
gdzie
jest elementem wektora zawartości i oznacza odpowiednio kurczaka, burgera, przekąskę, napój, garnitur i Tiffin.
Dane użytkownika składają się z informacji o użytkowniku, które mogą być dostępne w aplikacji lub przepływie użytkowania. Dla każdego użytkownika
cechy oznaczane są następująco,
(4)
gdzie
, oznacza szczegóły dotyczące użytkownika, takie jak wiek i płeć.
oznacza zdarzenie kliknięcia użytkownika, które jest wektorem o zmiennej długości, gdzie
i t deklaruje czas ostatniego zdarzenia kliknięcia,
jest liczbą dodatnią i
oznacza całą sekwencję przepływu oznaczającą cały zakup dokonany przez użytkownika.
Oznacza listę zakupionych przez klienta produktów, gdzie
, k oznacza łączną ilość zakupionych produktów spożywczych przez użytkownika.
Dzięki użyciu liter F i U, które oznaczają odpowiednio produkty spożywcze i dane użytkownika, system rekomendacji jest oprogramowany w ICS. Celem tego systemu jest poprawa dokładności w celu zwiększenia intencji zakupu użytkownika. Problem ICS sformułuje się jako,
(5)
Równanie (5) oznacza cel zadania, jakim jest uzyskanie lepszej dokładności w problemie ICS poprzez zmniejszenie funkcji strat, co jest oznaczane w równaniu (6).
(6)
gdzie jest przewidywanymi wynikami,
a
jest rzeczywistym wynikiem. Model działa lepiej, gdy wartość funkcji straty jest mniejsza. Funkcja strat służy do określenia rozbieżności między wartością przewidywaną przez model a prawdziwą wartością Y. W tym,
(7)
gdzie
(8)
(9)
W tym przypadku r oznacza dane treningowe w X, a s to liczba zakupionych produktów spożywczych w danych treningowych jeden. Opracowany ICS zastosował entropię krzyżową jako funkcję strat, co zostało opisane w następnej sekcji.
Rekomendacja żywieniowa oparta na Conv-RNN
Analizując atrybuty produktu, oceny użytkowników i profile użytkowników, system rekomendacji oparty na Conv-RNN dostarcza użytkownikom rekomendacje oparte na ich zainteresowaniach. Rysunek 3 przedstawia proponowany projekt CRNN. Modele Conv-RNN często biorą pod uwagę lub automatycznie dodają konkretne informacje o kontekście czasowym użytkownika podczas formułowania sugestii. Jednak to, jak dobrze system rekomendujący rozumie i wykorzystuje kontekst dostarczany przez prośby o sugestie, często decyduje o jego skuteczności. Conv-RNN oblicza oceny predykcji na podstawie cech dynamicznych i atrybutów przedmiotu oraz bieżącego kontekstu czasowego użytkownika, aby dostarczyć odpowiednie rekomendacje dla konkretnego użytkownika. Nieuniknione jest, że osoby przechodzące przez podobne rzeczy w tym samym czasie będą miały podobne preferencje. Skuteczność opartego na CNN systemu świadomego czasu w zakresie rekomendacji zależy od jego zdolności do znalezienia użytkowników najbardziej porównywalnych do zamierzonego odbiorcy i dzielących ten sam kontekst czasowy. W ten sposób CNN rejestruje kontekst czasowy, czyli informacje o aktywności użytkownika, wrażliwe na czas. Warstwa wejściowa CNN była następnie przekazywana atrybutom użytkownika, cechom przedmiotu oraz informacjom o czasie, aby odbudować oryginalną macierz. Metoda obliczania końcowego wyniku jest podana po użyciu warstwy splotowej do wyodrębnienia cech z macierzy.
Z warstw splotowych zdarzenia kliknięcia żywności są wyodrębniane za pomocą równania (10)
(10)
gdzie O to rozmiar wyjściowy, X to rozmiar danych wejściowych, F to rozmiar jądra splotowego, a wypełnia dane wejściowe, a S jest większe niż 1, a S to krok jądra. Sieć neuronowa może modelować bardziej złożone modele niż gdyby była ograniczona do symulacji obliczeń między sąsiednimi warstwami sieci, co robi poprzez stosowanie jednorodności, ale wyłącznie operacji liniowej, ponieważ funkcja aktywacji w warstwie stymulacyjnej służy do wykonywania operacji nieliniowych. W sieci neuronowej komunikacja warstwa po warstwie jest ściśle sekwencyjna. W Conv-RNN funkcje aktywacyjne były najczęstsze. Konwencjonalne funkcje aktywacyjne Tanh, sigmoid i inne typy aktywacji nie mają gradientu i mają niewielkie, praktyczne zakresy interwałowe. Gdy stosuje się również nieliniową operację efektywną zasobowo, funkcje prostowanej jednostki liniowej (ReLU) stają się głównym narzędziem do przezwyciężenia tych dwóch problemów.
Dla efektywności obliczeniowej warstwa pulowania pobiera próbki i rzadko przetwarza dane cech. Metody pulowania maksymalnego i średniego to dwa dobrze znane przykłady algorytmów pulowania; MaxPooling zapewnia lepsze wyniki wyboru funkcji. MaxPooling wybrał następujące funkcje:
(11)
Conv-RNN wykorzystuje następnie w pełni połączoną warstwę, stosując dwa gęste podejścia do ponownego trenowania ogona Conv-RNN przy mniejszej utracie informacji o cechach. Warstwy rekurencyjne są powszechnie stosowane w sieciach neuronowych do analizy danych sekwencyjnych. Dzięki połączeniom pozwalającym zachować wewnętrzną pamięć poprzednich wejść, warstwy rekurencyjne obsługują każde wejście osobno, w przeciwieństwie do tradycyjnych warstw feedforward. To sprawia, że warstwy rekurencyjne są szczególnie dobrze przystosowane do zadań związanych z sekwencjami, danymi szeregów czasowych lub wszelkimi informacjami, gdzie kolejność wejść ma znaczenie. Podstawową jednostką warstwy rekurencyjnej jest neuron rekubientny, często nazywany komórką RNN. Ponieważ komórki RNN obsługują dane pojedynczo, utrzymują stan wewnętrzny zawierający dane z poprzednich wejść. Jego wewnętrzny stan jest zmieniany na każdym etapie czasowym, co wpływa na przetwarzanie kolejnych wejść. Warstwa wyjściowa pokazuje użytkownikowi wyniki po użyciu klasyfikatora SoftMax. Przed użyciem pól, których cechy są kategoryzowane jako indeks macierzy osadzonej, należy je najpierw przekształcić w liczby całkowite.
Funkcja utraty entropii kategorycznej, która kwantyfikuje różnicę między prawdziwymi etykietami klas y a prognozowanym rozkładem prawdopodobieństwa y', została użyta do trenowania modelu rekomendacyjnego Conv-RNN. Stochastyczny gradient descent (SGD) z adaptacyjnym momentem estymacyjnym (Adam) został użyty do poprawy parametrów modelu θ (wagi i polaryzowania). Parametry były modyfikowane w następujący sposób przy każdej iteracji treningowej t:
(12)
gdzie η to szybkość uczenia się,
to gradient funkcji strat względem θ.
Stosowano następujące taktyki, aby uniknąć nadmiernego dopasowania. Podczas treningu regularizacja dropoutu (ρ=0,3) jest stosowana na w pełni połączonych warstwach, aby losowo dezaktywować neurony. Gdy przez 15 kolejnych epok nie zaobserwowano poprawy, trening został przedwcześnie przerwany na podstawie utraty w wyniku walidacji.
Pięciokrotnie podzielona walidacja krzyżowa w celu potwierdzenia wydajności uogólnień
Za pomocą wyszukiwania siatkowego na zbiorze walidacyjnym wykonano dostrajanie hiperparametrów. W przestrzeni wyszukiwania znajdowały się Liczba filtrów dla warstwy konwolucyjnej (64), rozmiar jądra 3 x 3, Liczba warstw rekurencyjnych (100), wielkość wsady, wskaźnik wypadów 0,2 oraz wskaźnik uczenia (learning rate) 0,002. Optymalizator używany to ADAM. Na koniec warstwa wyjściowa zwraca wyniki polecanych produktów jako wektor kodowania one-hot, gdzie sugerowane produkty oznaczane są jedynką, a pozostałe wyjścia oznaczone jako 0.
Prognozowanie satysfakcji klienta za pomocą Conv-LSTM
Badanie to wykorzystało metodę Convolution Long Short-Term Memory (Conv-LSTM) do prognozowania satysfakcji klientów po zakończeniu cateringu. Struktura Conv-LSTM przedstawiona jest na Rysunku 4. Architektura CNN obejmuje neurony wejściowe, serię warstw splotowych, pooling, całkowicie połączone warstwy oraz warstwy normalizacyjne37. Komórki nerwowe warstwy splotowej są połączone z warstwą powyżej przez wąski obszar, podczas gdy neurony aktywacyjne w pełni połączonych warstw są w pełni powiązane z warstwami poniżej. Wejścia Conv-LSTM wyraźnie definiują kształty tensorów i ziarnistość czasową. Każda sekwencja wejściowa jest strukturyzowana dla każdej sesji zamówienia klienta (krok czasowy = na zamówienie), gdzie lista zakupów jest kodowana jako wektor multi-hot, a powiązany poziom satysfakcji reprezentowany jest jako wynik numeryczny. Powstały tensor ma kształt (rozmiar partii × długość sekwencji × wymiar cech).
Transmisja funkcji w przód i w tył w CNN zazwyczaj rozdziela czynniki na różne grupy na podstawie ich wejścia. W wyniku ostatnich postępów badawczych powstało wiele projektów CNN. Jak pokazano w równaniu (15), trzy wagi: iw, rw i b, oznaczają odpowiednio wagę wejściową, wagę rekurencyjną i polaryzację, które zostały zastosowane w każdym bloku LSTM.
(13)
Poniżej znajduje się deklaracja stanu komórki w kroku czasowym t:
(14)
gdzie iloczyn Hadamarda oznaczany jest przez . Kod ukrytego stanu Ht z t to:
(15)
Hiperparametry i ich wartości Conv-LSTM są deklarowane następująco: Liczba filtrów dla warstwy splotowej wynosi 64, rozmiar jądra to 3 x 3, jednostki LSTM to 100 z wskaźnikiem wypadów 0,2, rozmiar partii to 64, tempo uczenia to 0,002, a liczba kroków czasowych to 50 z optymalizatorem Adama.
Diagram UML i pseudokod do interakcji z klientem
Dynamiczny przepływ interakcji w sugerowanym systemie jest przedstawiony na diagramie sekwencji UML (Rysunek 5). Moduł NLP–LDA przetwarza żądanie użytkownika (takie jak zamówienie posiłków lub zapytanie) w celu modelowania tematu i ekstrakcji intencji. Po przetworzeniu silnik rekomendacyjny (Conv-RNN) otrzymuje żądanie i generuje spersonalizowaną rekomendację. Na koniec użytkownik otrzymuje odpowiedź w czasie rzeczywistym od systemu. Ta sekwencja gwarantuje przejrzystość w konwersji danych wejściowych użytkownika na inteligentne wyjścia usług i podkreśla modułową interakcję komponentów.
Algorytm rekomendacyjny Conv-RNN otrzymał pseudokod poprawiający powtarzalność. Przedstawia przegląd sekwencyjnej logiki obliczeniowej, która obejmuje wstępne przetwarzanie żądania użytkownika, wykorzystanie warstw splotowych i powtarzalnych do modelowania sekwencji i ekstrakcji cech, regularizacji oraz warstwy wyjściowej softmax do generowania sugestii. Ten pseudokod zapewnia jasny obraz na poziomie implementacyjnym na workflow modelu, co wzbogaca formuły matematyczne.
Pseudokod: Algorytm rekomendacji Conv-RNN
Input: Żądanie użytkownika U, sekwencja interakcji historycznych H
Wyjście: Zalecany produkt spożywczy R
- Preprocess U → tokenizować, osadzać w Word2Vec
- Skonstruuj sekwencję wejściową S = [H, U]
- Zastosuj warstwę splotową:
S_conv = Conv1D(S, filtry, kernel_size)
- Warstwa rekurencyjna (RNN/GRU):
S_RNN = RNN(S_conv, hidden_units)
- Aplikuj Dropout do regularizacji
- Warstwa gęsta z aktywacją Softmax:
P = Softmax(W xS_rnn + b)
- Wybierz rekomendację:
R = argmax(P)
- Zwróć R użytkownikowi