$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
מחקר זה נערך בהתאם להנחיות ועדת האתיקה המחקרית של האוניברסיטה הלאומית של מלזיה (UKM) ואושר תחת מספר אישור UKM FST/2025-AI/023. הסכמה מדעת בכתב התקבלה מכל המשתתפים לפני איסוף שאילתות הצ'אטבוט. כל הנתונים עברו אנונימיזציה כדי להבטיח סודיות ופרטיות של המשתתפים
סקירת מחקר
הסקירה הכללית של מערכת הקייטרינג החכמה המוצעת בסיוע טכנולוגיות AI מוצגת באיור 1. כפי שמודגם, קלט הלקוח מעובד מראש עם טכניקות NLP כגון הטמעת מילים, למטיזציה וטוקניזציה כדי לחלץ את התגים. לאחר מכן, מודל ה-ML שנקרא LDA יושם על מידול תגי לקוחות כדי לספק להם שירות ללא מגע. הצעת המזון מתבצעת באמצעות מודל Conv-RNN. בהתבסס על רצף הזרימה שנרשם מהבחירות של הלקוח הקודם, האוכל מוצע ללקוח בצורה חכמה. לבסוף, רמת שביעות רצון הלקוחות צפויה על ידי שימוש במודל Conv-LSTM מותאם לשיפור נוסף בשירותי המסעדה. הביצועים של מודלי הבינה המלאכותית המוצעים מוערכים תחת מדדי ההערכה השונים.

איור 1: מודל מערכת מוצע עבור שירותי קייטרינג חכמים (ICS). הארכיטקטורה משלבת אינטראקציה עם המשתמש, עיבוד מקדים של נתונים, זיהוי כוונות, המלצות מזון ומנגנוני משוב. אנא לחץ כאן לצפייה בגרסה גדולה יותר של איור זה.
מערך נתונים בשימוש
כדי ליצור את מערכת הקייטרינג החכמה, אספנו 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 הנקרא
. תבנית נבחרת על סמך התפלגות הכוונה, המסומנת כ-θ (multinomial) המגדירה את הכוונה הנתונה, ההסתברות של I שייכת למחלקה הנתונה C. התפלגות דיריכלה קשורה β המקודדת את התבנית לשק של מילים. בהינתן α ו-β, היא מוגדרת כהתפלגות רב-משתנית עם N מילים הקשורות לתבניות M עם כוונות z. קבוצת המונחים N מסומנת כ-W, הנתונהכ-36:
(1)
על ידי אינטגרציה מעל θ, הסיכום מוצהר כ-Z, והמכפלה נלקחת מההסתברויות של השוליים של הכוונות הבודדות, וכל הסתברות הכוונה מחושבת כך,
(2)
הדפוסים, כולל וריאציות הכוונה לברכות, הם היי, שלום, היי, בוקר טוב/צהריים/ערב, והולה. בעת קבלת דפוסים אלה, המערכת מוצאת את כוונת המשתמש כברכות ומגיבה אליהן כתוצאה מכך בביטוי שהוגדר, כגון מה אני יכול לעזור לך? או איך אני יכול לעזור לך? אם השאילתה אינה מזוהה על ידי המערכת עם 15 המחלקות המוגדרות מראש, המערכת מספקת מידע על המסעדה ומציעה למשתמש לתקשר עם שירות הלקוחות. התוצאה של מידול תגים מבוסס LDA של שאילתות משתמשים הקשורות לברכות מוצגת באיור 2. באופן דומה, התגובות מתבצעות עבור כל 15 המחלקות הקשורות לכוונות המשתמש (שאילתות). למודל LDA יש את הפרמטרים הבאים. מספר הנושאים (k) מוצהר כ- 40, אלפא קבוע כ- 0.05, ערך הביתא הוא 0.04 ומספר החזרות מוצהר כ- 100.
הצעת מזון באמצעות Bi-NN עבור ICS
במערכת הקייטרינג החכמה (ICS), פריטי מזון מסווגים באופן שיטתי כדי לתמוך בהמלצות מדויקות. כל כניסה לתפריט עשויה לייצג פריט בודד (למשל, המבורגר, חטיף, משקה) או שילוב של פריטים כגון ערכת ארוחה (למשל, עוף מטוגן עם משקה קר). פריטים אלה מקובצים לשש קטגוריות עיקריות: עוף, המבורגר, חטיף, משקה, חליפה וטיפין. לשם הבהרה, חליפה מתייחסת לערכות ארוחות ארוזות, בעוד שטיפין מייצג ארוחות מסורתיות מרובות פריטים. כל פריט מזון מוגדר על ידי שלוש תכונות עיקריות: מחירו, הקטגוריה שלו וקטור תוכן המתאר את הרכבו. סיווג מובנה זה מאפשר למודל ההמלצות לנתח את היסטוריית הרכישות של הלקוחות הן ברמת הפריט והן ברמת הקטגוריה, ולשפר את יכולת המערכת להציע ארוחות ושילובים רלוונטיים התואמים את העדפות המשתמש. כל המזונות ב-ICS הם קבוצה המסומנת כ-,
כאשר N מציין את המספר הכולל של פריטי מזון ב-ICS. עבור כל מוצר
מזון ב-F,
מורכב מפרטים על תכונות המזון, והוא מסומן כ,
(3)
כאשר,
מציין את מחירי המזון,
מציין את הקטגוריה של פריטי המזון כאשר
, C מציין את הקטגוריות.
מציין את מספר התפריטים שבהם
M מציין את התפריטים
מציין את וקטור התוכן של המזון, כאשר
היכן
הוא האלמנט של וקטור התוכן ומייצג עוף, המבורגר, חטיף, משקה, חליפה וטיפין, בהתאמה.
נתוני המשתמש מורכבים מפרטים על המשתמש כדי לציין את תכונות המשתמש שניתן להשיג מהאפליקציה או מזרימת השימוש. עבור כל משתמש
, התכונות מסומנות כ,
(4)
כאשר
, מציין את הפרטים על המשתמש, כגון גיל ומין.
מציין את אירוע הקליק של המשתמש, שהוא וקטור באורך משתנה שבו
ו- t מצהיר על השעה של אירוע הקליק האחרון,
הוא המספר החיובי ומציין
את כל רצף הזרימה המציין את כל הרכישה שבוצעה על ידי המשתמש.
מציין את רשימת המזון שנרכש על ידי הלקוח, כאשר
, k מציין את הכמות הכוללת של פריטי מזון שנרכשו על ידי המשתמש.
עם השימוש ב-F ו-U, המציינים פריטי מזון ונתוני משתמשים, בהתאמה, מערכת ההמלצות ממוסגרת ב-ICS. מטרת מערכת זו היא לשפר את הדיוק כדי לשפר את כוונת הרכישה של המשתמש. הבעיה של 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 מתעדת את ההקשר הטמפורלי, שהוא המידע הרגיש לזמן על פעילות המשתמש. שכבת הקלט של ה-CNN הוזנה לאחר מכן בתכונות המשתמש, מאפייני הפריט ומידע הזמן כדי לבנות מחדש את המטריצה המקורית. שיטה לחישוב התפוקה הסופית ניתנת לאחר ששכבת הקונבולוציה שימשה לחילוץ תכונות מהמטריצה.
משכבות הקונבולוציה, אירועי קליק המזון מופקים באמצעות Eqn (10)
(10)
כאשר O הוא גודל הפלט, X הוא גודל נתוני הקלט, F הוא גודל הליבה הקונבולוציונית, a הוא למלא את נתוני הקלט, ו-S הוא יותר מ-1 ו-S הוא צעד הליבה. הרשת העצבית יכולה למדל מודלים מורכבים יותר ממה שהייתה יכולה אם היא הייתה מוגבלת להדמיית חישובים בין שכבות שכנות של הרשת, מה שהיא עושה על ידי שימוש באחידות אך רק פעולה ליניארית, מכיוון שפונקציית ההפעלה בתוך שכבת הגירוי משמשת לביצוע פעולות לא ליניאריות. ברשת עצבית, תקשורת שכבה לשכבה היא רציפה לחלוטין. ב-Conv-RNN, פונקציות ההפעלה היו הנפוצות ביותר. פונקציות ההפעלה הקונבנציונליות של Tanh, Sigmoid וסוגים אחרים של הפעלה חסרות שיפוע ויש להן טווחי מרווחים קטנים ומעשיים. כאשר משתמשים גם בפעולה לא-ליניארית חסכונית במשאבים, פונקציות היחידה הליניארית המתוקנת (ReLU) הופכות למכשיר העיקרי להתגברות על שתי בעיות אלה.
ליעילות חישובית, שכבת האיגום מורידה דגימות ומעבדת בדלילות נתוני תכונות. שיטות האיגום המקסימליות והממוצעות הן שתי דוגמאות ידועות לאלגוריתמי איגום; MaxPooling מספק תוצאות טובות יותר לבחירת תכונות. MaxPooling בחר את התכונות הבאות:
(11)
לאחר מכן, ה-Conv-RNN משתמש בשכבה המחוברת במלואה תוך שימוש בשתי גישות צפופות לאימון מחדש של זנב ה-Conv-RNN עם פחות אובדן מידע על תכונות. שכבות חוזרות משמשות בדרך כלל ברשתות עצביות לניתוח נתונים עוקבים. בגלל חיבורים המאפשרים להם לשמור על זיכרון פנימי של כניסות קודמות, שכבות חוזרות מטפלות בכל קלט בנפרד, בניגוד לשכבות הזנה מסורתיות. זה הופך את השכבות החוזרות למתאימות במיוחד למשימות הכוללות רצפים, נתוני סדרות זמן או כל סוג של מידע שבו סדר הקלט חשוב. היחידה הבסיסית של שכבה חוזרת היא תא העצב החוזר, המכונה לעתים קרובות תא RNN. כאשר תאי RNN מטפלים בכניסות אחת בכל פעם, הם שומרים על מצב פנימי המכיל נתונים מתשומות קודמות. מצבו הפנימי משתנה בכל שלב זמן, מה שמשפיע על עיבוד התשומות הבאות. שכבת הפלט מציגה למשתמש את התוצאות לאחר השימוש במסווג SoftMax. לפני השימוש בשדות, שמאפייניהם מסווגים כאינדקס של המטריצה המוטמעת, יש להמיר אותם תחילה למספרים שלמים.
פונקציית אובדן האנטרופיה הצולבת הקטגורית, המכמתת את ההפרש בין תוויות המחלקה האמיתיות y לבין התפלגות ההסתברות החזויה y', שימשה לאימון מודל ההמלצה של Conv-RNN. ירידה בשיפוע סטוכסטי (SGD) עם הערכת מומנט אדפטיבי (אדם) שימשה לשיפור פרמטרי המודל θ (משקולות והטיות). הפרמטרים שונו באופן הבא בכל איטרציה של אימון:
(12)
כאשר, η קצב הלמידה,
הוא השיפוע של פונקציית ההפסד ביחס ל-θ.
הטקטיקות הבאות שימשו כדי למנוע התאמת יתר. במהלך האימון, רגולציה של נשירה (ρ=0.3) משמשת בשכבות מקושרות לחלוטין כדי לנטרל באופן אקראי נוירונים. כאשר לא נראה שיפור במשך 15 תקופות רצופות, האימון הופסק מוקדם על סמך אובדן אימות.
אימות צולב מפוצל פי חמישה כדי לאשר את ביצועי ההכללה
באמצעות חיפוש רשת בערכת האימות, בוצע כוונון היפרפרמטרים. במרחב החיפוש נכללו מספר המסננים לשכבת הקונבולוציה, 64, גודל הליבה, 3 x 3, מספר השכבות החוזרות כ-100, גודל האצווה, שיעור הנשירה 0.2 וקצב הלמידה 0.002. האופטימיזציה המשומשת היא ADAM. לבסוף, שכבת הפלט מחזירה את התוצאות של מזונות מומלצים כווקטור קידוד חם אחד, כאשר המזונות המוצעים מסומנים באחד, ויציאות אחרות יסומנו כ-0.
חיזוי שביעות רצון לקוחות באמצעות Conv-LSTM
מחקר זה השתמש בזיכרון לטווח קצר של קונבולוציה (Conv-LSTM) כדי לחזות את שביעות רצון הלקוחות לאחר שסיימו את הקייטרינג שלהם. המבנה של Conv-LSTM מוצג באיור 4. הארכיטקטורה של CNN כוללת נוירוני קלט, סדרה של שכבות קונבולוציה, איגום, שכבות מחוברות לחלוטין ושכבות נורמליזציה37. תאי העצב של שכבת הקונבולוציה מחוברים לשכבה שמעליה דרך אזור צר, ואילו נוירוני ההפעלה של השכבות המקושרות במלואן קשורים באופן מלא לשכבות שמתחתיהן. כניסות Conv-LSTM מגדירות במפורש את צורות הטנזור ואת הגרעיניות הזמנית. כל רצף קלט מובנה לפי הפעלת הזמנת לקוח (שלב זמן = לכל הזמנה), כאשר רשימת הרכישות מקודדת כווקטור מרובה חם ורמת שביעות הרצון המשויכת מיוצגת כציון מספרי. לטנזור המתקבל יש את הצורה (גודל אצווה × אורך רצף × ממד תכונה).
השידור ההפוך קדימה ואחורה של פונקציה ב-CNN בדרך כלל מפריד גורמים לקבוצות שונות על סמך הקלט שלהם. עיצובים רבים של 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 למשתמש