$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Bu çalışma, Malezya Ulusal Üniversitesi (UKM) Araştırma Etik Kurulu'nun yönergelerine uygun olarak yürütülmüş ve UKM FST/2025-AI/023 onay numarasıyla onaylanmıştır. Chatbot sorguları toplanmadan önce tüm katılımcılardan yazılı bilgilendirilmiş onam alındı. Katılımcı gizliliğini ve mahremiyetini sağlamak için tüm veriler anonimleştirildi
Çalışmaya genel bakış
Yapay zeka teknolojileriyle desteklenen önerilen akıllı ikram sistemine genel bakış Şekil 1'de gösterilmektedir. Gösterildiği gibi, müşteri girişi, etiketleri çıkarmak için kelime yerleştirme, lemmatizasyon ve tokenizasyon gibi NLP teknikleriyle önceden işlenir. Ardından, müşteri etiketlerine temassız hizmet sağlamak için modellemeye LDA adı verilen makine öğrenimi modeli uygulandı. Yiyecek önerisi bir Conv-RNN modeli kullanılarak gerçekleştirilir. Önceki müşterinin seçimlerinden kaydedilen akış sırasına göre gıda, müşteriye akıllıca öneriliyor. Son olarak, restoranın hizmetlerinde daha fazla iyileştirme için optimize edilmiş bir Conv-LSTM modeli kullanılarak müşteri memnuniyeti düzeyi tahmin edilir. Önerilen yapay zeka modellerinin performansı, çeşitli değerlendirme ölçütleri altında değerlendirilir.

Şekil 1: Akıllı catering hizmetleri (ICS) için önerilen sistem modeli. Mimari, kullanıcı etkileşimini, veri ön işlemeyi, niyet tespitini, gıda önerisini ve geri bildirim mekanizmalarını entegre eder. Bu rakamın daha büyük bir sürümünü görüntülemek için lütfen buraya tıklayın.
Kullanılan veri kümesi
Akıllı catering sistemini oluşturmak için bir chatbot kullanarak yakındaki bir restorandan 283 talep topladık. Menü detaylarından çalışma saatlerine kadar çok çeşitli müşteri sorularını içeren bu sorular, manuel olarak 15 farklı niyet grubuna ayrıldı. Bu, sistemle olası tüm kullanıcı etkileşimlerinin kapsamlı bir şekilde kapsanmasını garanti eder. Selamlamalar, vedalar, takdir, ikram, çalışma saatleri, ortam, iletişim bilgileri, ödemelerle ilgili sorular, bugünün menüsü, teslimat alternatifleri, menü soruları, sipariş süreçleri, özel fırsatlar, rezervasyonlar, içecek seçenekleri ve açık havada oturmak için erişilebilirlik, niyet sınıflarının kaydetmek için yapıldığı müşteri sorgularının belirli yönlerinden sadece birkaçıdır. Tablo 1 , amaç gruplarının her birindeki soruların sıklığını ve sorguların tematik içeriğine göre sınıflandırmayı göstermektedir. Örneğin, İletişim Bilgileri kategorisi en yüksek sorgulara sahipti ve bu da müşterilerin restoranla nasıl iletişime geçeceklerini öğrenmekle çok ilgilendiklerini gösteriyor. Öte yandan, Oturma ve İçecek kategorileri en az sorguyu aldı, bu da bu konulara daha az tüketici ilgisi olduğunu veya bu konularda zaten daha fazla açıklama olduğunu gösterebilir.
LDA ile NLP kullanan temassız hizmet
Çerçevenin etkinliğini başlatan kullanıcı girişi, metni standartlaştırmak ve gürültüyü ortadan kaldırmak için başlangıçta önceden işlenir. Tokenizasyon, durdurma sözcüğünün ortadan kaldırılması ve lemmatizasyon, verileri ek analizlere hazır hale getiren bu hazırlığın örnekleridir. Ön işlemlerin ardından kullanıcı sorguları sayısal gösterimlere dönüştürülür. Anlamsal bağlantılar ve bağlamsal uygunluk, bu temsillerin yakaladığı dilsel özellikler arasındadır. Önceden tanımlanmış 16 sınıfın (amaçlar/etiketler) sınıflandırılması için kullanıcı sorgularının bu vektör temsillerini eğitmek için çeşitli makine öğrenimi sınıflandırıcıları kullanıldı. Model, önceden belirlenmiş ilgili yanıtı getirir ve kullanıcının sorgu amaçlarını doğru bir şekilde tahmin ettikten sonra kullanıcıya döndürür.
Ön
Analizimizin güvenilirliği, gelen verilerin tutarlı bir şekilde biçimlendirildiğini ve takip eden sınıflandırma prosedürüyle ilgili olduğunu doğrulayan önceden işlenmiş sorgularla büyük ölçüde artırılmıştır. Niyet kalıpları (örneğin, merhaba, merhaba, hey gibi selamlamalar), metni küçük harfe dönüştürerek, durdurma sözcüklerini kaldırarak ve NLTK araç seti33 kullanılarak belirteçleştirme uygulanarak toplandı ve ön işleme tabi tutuldu. Tablo 2 , bu çalışmanın izlediği ön işleme adımlarını göstermektedir.
LDA tabanlı etiket modelleme
Sistem, kullanıcının selamlamalarının sistem tarafından tanınması için Destek Vektör Regresyonu (SVR) kullanarak kullanıcıdan gelen etiketleri sınıflandırır. Kullanıcı amacını tahmin etmek için sistem kapasitesini geliştirmek amacıyla, Makine Öğrenimi (ML) ve Derin Öğrenme (DL) modellerine ek olarak hem geleneksel hem de son teknoloji metin işleme yöntemlerini kapsamlı bir şekilde inceledik. Amacımız, çok çeşitli kullanıcı sorularını anlayabilecek son derece hassas bir algoritma oluşturmaktı. Bu çalışmada, kullanım kolaylığı ve kelime sıklığını ve metindeki kelimelerin önemini vurgulamadaki güçleri nedeniyle Bag of Words (BoW) ve TF-IDF'nin temel stratejileri kullanılmıştır. Glove ve Word2Vec'in birlikte kelime kullanımına göre kelime yerleştirmeleri üretme kapasitesi, kelime anlamları ve bağlamı hakkında bilgi vermelerine izin verdi22.
Veriler hazırlandıktan sonra, amaç sorguları gizli Dirichlet tahsisi (LDA) yöntemi kullanılarak sınıflandırılır. Amaç, terimler arasındaki bağlantıları analiz etmek ve yapılarındaki kalıpları belirlemek için LDA yöntemiyle metin madenciliğini kullanmaktır34,35. Doğası gereği denetimsiz ve olasılıksal olan LDA, bir derlemdeki her belgenin önceden belirlenmiş sayıda manuel olarak tanımlanmış temadan oluştuğunu varsayar. LDA'daki her belge eşit ağırlığa sahiptir ve bir torba kelimeye sahiptir. Her belgenin kelimelerinin sırasız olduğu varsayılır. Bir konu, kelimelerin olasılık kütle fonksiyonu kullanılarak da tanımlanır. Her belge, temaları seçmek için bir olasılık kütle işlevi kullanır. Niyet sınıflandırması için, GensimPython kitaplığı34 kullanılarak Gizli Dirichlet Tahsisi (LDA) uygulandı.
LDA'da niyetler, adı verilen
LDA dağıtım havası ile gösterilen gizli üzerindeki dağılım olarak görülür. Verilen amacı tanımlayan θ(çok terimli) olarak gösterilen amaç dağılımına dayalı olarak bir model seçilir, I'in olasılığı verilen C sınıfına aittir. Bir Dirichlet dağılımı, kalıbı bir Torba kelimeye kodlayan β ile ilgilidir. α ve β göz önüne alındığında, z amaçlı M kalıplarıyla ilgili N kelimeli çok değişkenli dağılım olarak tanımlanır. N terim grubu,36 olarak verilen W olarak gösterilir:
(1)
θ üzerinden integral edilerek, toplam Z olarak bildirilir ve bireysel niyetlerin marjinal olasılıklarının çarpımı alınır ve tüm niyet olasılığı şu şekilde hesaplanır:
(2)
Selamlaşma niyet varyasyonları da dahil olmak üzere kalıplar merhaba, merhaba, Hey, Günaydın/öğlen/arife ve merhaba'dır. Sistem, bu kalıpları alırken, kullanıcının selamlama amacını bulur ve bunlara sonuç olarak tanımlanmış bir ifadeyle yanıt verir, örneğin Size ne yardımcı olabilirim? veya Size nasıl yardımcı olabilirim? Sorgu, önceden tanımlanmış 15 sınıfla sistem tarafından tanınmazsa, sistem restoran bilgilerini sağlar ve kullanıcının müşteri hizmetleri ile iletişim kurmasını önerir. Selamlamalarla ilgili kullanıcı sorgularının LDA tabanlı etiket modellemesinin sonucu Şekil 2'de gösterilmektedir. Benzer şekilde, yanıtlar kullanıcı amaçları (Sorgular) ile ilgili 15 sınıfın tümü için gerçekleştirilir. LDA modeli aşağıdaki parametrelere sahiptir. Konu sayısı (k) 40, Alfa 0,05, Beta değeri 0,04 ve yineleme sayısı 100 olarak bildirilir.
ICS için Bi-NN kullanarak yemek önerisi
Akıllı İkram Sisteminde (ICS), gıda maddeleri doğru önerileri desteklemek için sistematik olarak kategorize edilir. Her menü girişi, tek bir öğeyi (örneğin, burger, atıştırmalık, içecek) veya yemek seti (örneğin, soğuk bir içecekle kızarmış tavuk) gibi öğelerin bir kombinasyonunu temsil edebilir. Bu öğeler altı ana kategoriye ayrılmıştır: tavuk, burger, atıştırmalık, içecek, takım elbise ve tiffin. Açıklık getirmek gerekirse, takım elbise paketlenmiş yemek takımlarını ifade ederken, tiffin geleneksel çok öğeli yemekleri temsil eder. Her gıda maddesi üç temel özellik ile tanımlanır: fiyatı, kategorisi ve bileşimini açıklayan bir içerik vektörü. Bu yapılandırılmış sınıflandırma, öneri modelinin müşteri satın alma geçmişlerini hem ürün hem de kategori düzeyinde analiz etmesine olanak tanıyarak sistemin, kullanıcı tercihleriyle uyumlu ilgili yemekleri ve kombinasyonları önerme yeteneğini geliştirir. ICS'deki tüm gıdalar, N'nin
ICS'deki toplam gıda maddesi sayısını gösterdiği bir kümedir. F'deki her gıda ürünü
için,
gıdanın özelliklerinin detaylarından oluşur ve şu şekilde gösterilir:
(3)
burada,
gıda fiyatlarını belirtir,
gıda maddelerinin kategorisini belirtir, burada
, C kategorileri belirtir.
M'nin menüleri
ifade ettiği menü sayısını, nerede
M'nin yiyeceğin içerik vektörünü ifade ettiğini, nerede
içerik vektörünün öğesi olduğunu
ve sırasıyla tavuk, burger, atıştırmalık, içecek, takım elbise ve Tiffin'i temsil ettiğini belirtir.
Kullanıcı verileri, kullanıcının uygulamadan veya kullanım akışından elde edilebilecek özelliklerini belirtmek için kullanıcıyla ilgili ayrıntılardan oluşur. Her kullanıcı
için özellikler şu şekilde belirtilir:
(4)
burada
, kullanıcıyla ilgili yaş ve cinsiyet gibi ayrıntıları belirtir.
Değişken uzunluklu bir vektör olan kullanıcının tıklama olayını belirtir, burada
ve t son tıklama olayının zamanını bildirir,
pozitif sayıdır ve
kullanıcı tarafından gerçekleştirilen tüm satın alma işlemini gösteren tüm akış dizisini belirtir.
Müşteri tarafından satın alınan yiyeceklerin listesini, burada
k, kullanıcı tarafından satın alınan toplam gıda maddesi miktarını belirtir.
Sırasıyla gıda maddelerini ve kullanıcı verilerini ifade eden F ve U'nun kullanılmasıyla, öneri sistemi ICS'de çerçevelenmiştir. Bu sistemin amacı, kullanıcının satın alma niyetini geliştirmek için doğruluğu artırmaktır. ICS sorunu şu şekilde formüle edilir:
(5)
Denklem (5), Denklem (6)'da gösterilen kayıp fonksiyonunu azaltarak ICS probleminde daha iyi doğruluk sonuçları bulmak için problemin amacını belirtir.
(6)
nerede,
tahmin edilen sonuçlardır ve
gerçek sonuçtur. Model, kayıp fonksiyonunun değeri daha küçük olduğunda daha iyi performans gösterir. Kayıp fonksiyonu, modelin tahmin edilen değeri ile gerçek Y değeri arasındaki tutarsızlığı belirlemek için kullanılır. Bunda,
(7)
nerede
(8)
(9)
Bunda r, X'teki eğitim verilerini belirtir ve s, bir eğitim verisinin satın alınan gıda maddesi numarasıdır. Geliştirilen ICS, aşağıdaki bölümde açıklanan bir kayıp fonksiyonu olarak çapraz entropiyi kullandı.
Conv-RNN tabanlı yemek önerisi
Conv-RNN tabanlı bir öneri sistemi, ürünün özelliklerini, kullanıcı derecelendirmelerini ve kullanıcı profillerini analiz ederek kullanıcılara ilgi alanlarına göre öneriler sunar. Şekil 3 , önerilen CRNN tasarımını göstermektedir. Conv-RNN modelleri, önerilerde bulunurken sıklıkla kullanıcının zamansal bağlamı hakkında belirli bilgileri dikkate alır veya otomatik olarak ekler. Bununla birlikte, bir öneri sisteminin öneri istekleri tarafından sağlanan bağlamı ne kadar iyi anladığı ve kullandığı genellikle ne kadar etkili olduğunu belirler. Conv-RNN, belirli bir kullanıcı için uygun öneriler sağlamak üzere öğenin dinamik özelliklerine ve özniteliklerine ve kullanıcının geçerli zaman bağlamına dayalı olarak tahmin derecelendirmelerini hesaplar. Aynı anda benzer şeyler yaşayan insanların benzer tercihlere sahip olması kaçınılmazdır. CNN tabanlı zamana duyarlı bir sistemin öneriler için etkinliği, amaçlanan alıcıyla en karşılaştırılabilir ve aynı zamansal bağlamı paylaşan kullanıcıları bulma kapasitesine bağlıdır. Böylece CNN, kullanıcının etkinliği hakkında zamana duyarlı bilgiler olan zamansal bağlamı kaydeder. CNN'nin girdi katmanı daha sonra orijinal matrisi yeniden oluşturmak için kullanıcı nitelikleri, öğe özellikleri ve zaman bilgileriyle beslendi. Matristen özellikleri çıkarmak için evrişim katmanı kullanıldıktan sonra nihai çıktıyı hesaplamak için bir yöntem verilir.
Evrişim katmanlarından, yiyecek tıklama olayları Eqn (10) kullanılarak çıkarılır
(10)
burada O çıktı boyutu, X girdi veri boyutu, F evrişimli çekirdek boyutu, a girdi verilerini doldurmak ve S 1'den büyük ve S çekirdek adımıdır. Sinir ağı, ağın komşu katmanları arasındaki hesaplamaları simüle etmekle sınırlı olsaydı yapabileceğinden daha karmaşık modelleri modelleyebilir, bunu tekdüzelik kullanarak ancak yalnızca doğrusal işlem kullanarak yapar, çünkü stimülasyon katmanı içindeki aktivasyon işlevi doğrusal olmayan işlemleri gerçekleştirmek için kullanılır. Bir sinir ağında, katmanlar arası iletişim kesinlikle sıralıdır. Conv-RNN'de aktivasyon fonksiyonları en yaygın olanıydı. Geleneksel Tanh, sigmoid ve diğer aktivasyon fonksiyonları bir gradyandan yoksundur ve küçük, pratik aralık aralıklarına sahiptir. Kaynak açısından verimli doğrusal olmayan bir işlem de kullanıldığında, düzeltilmiş doğrusal birim (ReLU) fonksiyonları bu iki sorunun üstesinden gelmek için birincil araç haline gelir.
Hesaplama verimliliği için, havuzlama katmanı özellik verilerini aşağı örnekler ve seyrek olarak işler. Maksimum ve ortalama havuzlama yöntemleri, havuzlama algoritmalarının iyi bilinen iki örneğidir; MaxPooling daha iyi özellik seçimi sonuçları sağlar. MaxPooling aşağıdaki özellikleri seçti:
(11)
Conv-RNN daha sonra Conv-RNN kuyruğunu daha az özellik bilgisi kaybıyla yeniden eğitmek için iki yoğun yaklaşım kullanarak tam bağlantılı katmanı kullanır. Tekrarlayan katmanlar, sıralı verilerin analizi için sinir ağlarında yaygın olarak kullanılır. Önceki girişlerin dahili belleğini korumalarına izin veren bağlantılar nedeniyle, tekrarlayan katmanlar, geleneksel ileri beslemeli katmanların aksine, her girişi ayrı ayrı işler. Bu, tekrarlayan katmanları özellikle dizileri, zaman serisi verilerini veya girdi sırasının önemli olduğu her türlü bilgiyi içeren görevler için çok uygun hale getirir. Tekrarlayan bir katmanın temel birimi, genellikle bir RNN hücresi olarak bilinen tekrarlayan nörondur. RNN hücreleri girdileri birer birer işlediğinden, önceki girdilerden gelen verileri içeren dahili bir durumu korurlar. İç durumu her zaman adımında değiştirilir ve bu da sonraki girdilerin işlenmesini etkiler. Çıktı katmanı, kullanıcıya SoftMax sınıflandırıcısını kullandıktan sonraki sonuçları gösterir. Özellikleri gömülü matrisin indeksi olarak kategorize edilen alanları kullanmadan önce, önce tam sayılara dönüştürülmeleri gerekir.
Gerçek sınıf etiketleri y ile öngörülen olasılık dağılımı y' arasındaki farkı ölçen kategorik çapraz entropi kaybı fonksiyonu, Conv-RNN öneri modelini eğitmek için kullanıldı. Uyarlanabilir moment tahmini (Adam) ile stokastik gradyan inişi (SGD) model parametrelerini θ (ağırlıklar ve önyargılar) iyileştirmek için kullanıldı. Parametreler her eğitim yinelemesinde aşağıdaki gibi değiştirildi t:
(12)
burada, öğrenme hızı η,
kayıp fonksiyonunun θ'ye göre gradyanıdır.
Aşırı uyumu önlemek için aşağıdaki taktikler kullanıldı. Eğitim sırasında, nöronları rastgele devre dışı bırakmak için tamamen bağlı katmanlarda bırakma düzenlemesi (ρ=0.3) kullanılır. Art arda 15 dönem boyunca herhangi bir iyileşme görülmediğinde, doğrulama kaybına bağlı olarak eğitim erken durduruldu.
Genelleme performansını doğrulamak için beş kat bölünmüş çapraz doğrulama
Doğrulama kümesinde bir ızgara araması kullanılarak hiperparametre ayarlaması gerçekleştirildi. Arama alanına evrişim katmanı için filtre sayısı 64, çekirdek boyutu 3 x 3, Tekrarlayan katman sayısı 100, Toplu iş boyutu, bırakma oranı 0,2 ve öğrenme oranı 0,002 dahil edildi. Kullanılan optimize edici ADAM'dır. Son olarak, çıktı katmanı, önerilen yiyeceklerin sonuçlarını, önerilen yiyeceklerin bir ile gösterildiği ve diğer çıktıların 0 olarak gösterileceği tek sıcak bir kodlama vektörü olarak döndürür.
Conv-LSTM kullanarak müşteri memnuniyeti tahmini
Bu çalışma, ikramlarını bitirdikten sonra müşteri memnuniyetini tahmin etmek için Evrişim Uzun Kısa Süreli Belleği (Conv-LSTM) kullandı. Conv-LSTM'nin yapısı Şekil 4'te gösterilmektedir. CNN'in mimarisi, girdi nöronlarını, bir dizi evrişimli katmanı, havuzlamayı, tamamen bağlı katmanları ve normalleştirme katmanlarınıiçerir 37. Evrişim tabakasının sinir hücreleri, dar bir bölge aracılığıyla üstündeki tabakaya bağlanırken, tam bağlantılı tabakaların aktivasyon nöronları, altlarındaki tabakalarla tamamen ilişkilidir. Conv-LSTM girişleri, tensör şekillerini ve zamansal ayrıntı düzeyini açıkça tanımlar. Her giriş dizisi, satın alma listesinin çok sıcak bir vektör olarak kodlandığı ve ilişkili memnuniyet düzeyinin sayısal bir puan olarak temsil edildiği müşteri sipariş oturumu başına (zaman adımı = sipariş başına) yapılandırılır. Ortaya çıkan tensör şekle sahiptir (yığın boyutu × dizi uzunluğu × özellik boyutu).
CNN'de bir fonksiyonun ileri ve geri geri iletimi genellikle faktörleri girdilerine göre farklı gruplara ayırır. Son araştırma ilerlemelerinin bir sonucu olarak çok sayıda CNN tasarımı ortaya çıktı. Denklem (15)'te gösterildiği gibi, üç ağırlık, iw, rw ve b, her bir LSTM bloğunda kullanılan sırasıyla giriş ağırlığını, tekrarlayan ağırlığı ve önyargıyı belirtir.
(13)
Aşağıdakiler, t zaman adımındaki hücre durumunun bir bildirimidir:
(14)
Hadamard çarpımının ile gösterildiği yer. T'nin gizli durumu Ht'nin kodu,
(15)
Conv-LSTM'nin hiperparametreleri ve değerleri şu şekilde bildirilir: Evrişim katmanı için filtre sayısı 64, çekirdek boyutu 3 x 3, LSTM birimleri 0,2 bırakma oranıyla 100, yığın boyutu 64, öğrenme oranı 0,002 ve Adam iyileştirici ile zaman adımı sayısı 50'dir.
Müşteri Etkileşimi için UML diyagramı ve Sözde Kod
Önerilen sistemdeki dinamik etkileşim akışı, UML dizi diyagramında gösterilmektedir (Şekil 5). NLP–LDA modülü, konu modelleme ve amaç çıkarma için kullanıcının isteğini (yemek siparişi veya sorgu gibi) işler. İşlemin ardından öneri altyapısı (Conv-RNN) isteği alır ve özelleştirilmiş bir öneri üretir. Son olarak, kullanıcı sistemden gerçek zamanlı bir yanıt alır. Bu sıra, kullanıcı girdisinin akıllı hizmet çıktılarına dönüştürülmesinde şeffaflığı garanti eder ve bileşenlerin modüler etkileşimini vurgular.
Tekrarlanabilirliği artırmak için Conv-RNN öneri algoritmasına sözde kod verilmiştir. Kullanıcı isteğinin ön işlenmesini, dizi modelleme ve özellik çıkarma için evrişimli ve tekrarlayan katmanların kullanılmasını, düzenlileştirmeyi ve bir öneri oluşturmak için bir softmax çıktı katmanını içeren sıralı hesaplama mantığına genel bir bakış sağlar. Bu sözde kod, matematiksel formülasyonları geliştiren model iş akışının uygulama düzeyinde net bir görünümünü sunar.
Sözde Kod: Conv-RNN Öneri Algoritması
Giriş: Kullanıcı isteği U, geçmiş etkileşim dizisi H
Çıktı: Önerilen gıda maddesi R
- U → ön işleme özelliği, Word2Vec ile yerleştirme
- Giriş sırası oluşturun S = [H, U]
- Evrişimli Katmanı Uygulayın:
S_conv = Conv1D(S, filtreler, kernel_size)
- Tekrarlayan Katmandan Geçiş (RNN/GRU):
S_RNN = RNN(S_conv, hidden_units)
- Düzenleme için Dropout'u uygulayın
- Softmax aktivasyonu ile yoğun katman:
P = Softmax(W xS_rnn + b)
- Öneriyi seçin:
R = argmax(P)
- R'yi kullanıcıya döndürme