מידול גרפי לבניית צ'טבוט, האם זה אפשרי?

אחד הניסיונות לאפשר בנייה יעילה של צ'טבוט (Chatbot) היא להפוך את הבנית הצ'אטבוט לבניה גרפית. הגדילו לעשות motion.io שהפכו את המידול הגרפי לסלוגן: if you can draw it, the you can build it. זה נשמע נהדר, בו ניקח רגע עפרון וננסה לצייר שיחה

הצלחתם? גם אנחנו לא, וזה לא מקרה שלא הצלחנו...

אם נמדל שיח נוכל להבחין שהוא בעל שלושה ממדים באופן מובהק. כלומר המודל הפיזי שנוצר משיחה הוא בעל אורך, רוחב ועומק, והוא למעשה מרחב תלת ממדי, כאשר אנו נדרשים לצייר אותו בצורה דו ממדית של אורך ורוחב, קשה לנו מאוד לחשוב כיצד לחבר בין הנקודות השונות אם ברצונו לייצר שיח המדמה את השיח אנושי.

כניסה ויציאה לשיחה

לשיחה בין שני בני אדם יש הרבה נקודות כניסה, ובמילים פשוטות, אפשר להתחיל שיחה בהמון צורות והמון אופנים. הצורות השונות של של השיח אינן מבטעות רק דרכים שונות להביע מילות נימוסים, והקדמות כלליות, אלא גם מהות השיח אינו מחויב סדר אבסולוטי.

אנשים שונים מעדיפים לפתח שיח בצורות שונות, יש כאלה שמתחילים עם העיקר, ויש כאלה ששומרים אותו לסוף השיח. יש נקודות שהן חשובות ביותר לצד אחד, ולכן הוא יתחיל בהן, ולאחר הן יראו כנקודות שוליות וטפלות והוא ישמור אותם לסוף השיח, אם בכלל.

שיח אנושי מתאפיין בהרבה נקודות כניסה, ובסופו, גם בהרבה דרכים לסיום השיח. שיחה אינה מחויבת להיגמר באופן מסוים, ידוע ומוגדר. שיחה היא יכולה להיגמר בהרבה מאוד שלבים שונים, תלוי בהתאם למצב השיח. נקודות היציאה מהשיחה לא הכרח מעידות על שיחה יעילה, או שיחה שנתקע. שיחה יכולה להיות מאוד מהירה ויעילה ולצאת בשלב מאוד מוקדם מהשיח, וההפך, הכל תלוי סוג השיח והתוכן המועבר בשיח.

שיחה קופצת במהותה

אם נתבונן על שיחות אנושיות נוכל להבחין בקלות שיש להם נטייה "לקפוץ" בצורה לא סדורה מנקודה לנקודה. זו היא נטייה טבעית אשר מתרחשת מסיבות רבות. תפקידו של הצ'אטבוט הוא לשרת את הלקוחות ולא להכריח שיחה סדורה ועניינית שהיא לא טבעית. לכן היינו רוצים שהצ'אטבוט יאפשר לנו לקפוץ מנושא לנושא, ואף לחזור לנושאים שנשארו פתוחים. אבל כיצד ניתן לתאר זאת בצורה גרפית? האם נצייר מצב שבו כל הסתעפות מאפשרת להגיע לכל ההסתעפויות האחרות?

אולי זה אפשרי, אבל זו היא למעשה משימה מאוד מורכבת. ציור של שיחה בצורה גרפית מחייב את מתכנן הצ'טבוט לתכנן תרשים זרימה לשיחה שלא ממש מאפשר "קפיצה" מנושא לנושא.

נקודות מפנה בשיח

לכל שיחה עיניינית יש נקודות שהן נקודות מפנה בשיח. הכוונה בנקודות מפנה היא למקומות שבהן השיח יתקדם לאחד הכיוונים לפי התשובה.

לדוגמה:

האם יש לכם מכונית להשכרה בניו יורק?

אם התשובה היא "כן", השיחה תמשך לכיוון אחד, ואם התשובה היא "לא", השיחה תמשך לכיוון אחר.

ניתן לאפיין מספר נקודות מפנה בהתאם למהות השיחה. סביר להניח שלנקודות הללו יש סדר הגיוני, אבל בחינה מעמיקה מראה שהסדר הוא לא תמיד מחייב.

אולם לא כל נקודות המפנה עומדות בפני עצמן,
לדוגמה:

"האם תרצה תוספות על הפיצה" היא שאלה שבהכרח תלויה בהבנה שאתה אכן מעוניין בפיצה, ולמעשה מהווה העמקה במודל השיחה.

עץ החלטות
ניתן לצייר תהליך של העמקה בשיחה בצורה גרפית. זה הוא למעשה "עץ החלטות". אולם מודל שיחה הוא תלת ממדי כפי שציינו בהתחלה, ולכן אם ננסה לצייר עצי החלטות אחד ליד השני ניתקל בקושי רב, וזאת מפני שהם למעשה נמצאים בתור אחד אחרי השני ולא בסמיכות אחד ליד השני.

 

אם נרצה לצייר את העצי ההחלטות בתור, נצייר כל עץ החלטות על דף בנפרד, ואז נצרך לערום את כל הדפים יחד אחד על גבי השני. עכשיו ניקח את הערמה הזאת ונלחץ אותה לכדי שיכבה אחת ו… נישאר עם משהו שאי אפשר להבין אותו. זו הבעיות של מידול שיח בצורה גרפית של שני ממדים.

סיכום

הבשורה האמתית של הצ'טבוטים היא בכך שהם מאפשרים למשתמש שיח בשפה טבעית עם המכונה. אם המכונה אינה מאפשרת שיח, אלא רק בחירות מתוך עץ החלטות דמוי טופס אינטראקטיבי, אז למעשה נשארנו עם הצורה של הצ'אטבוט, אבל בלי התכונה שעושה שאותו למעשה לצ'אטבוט.



More articles

Overview of common methods for Natural Language Processing in Chatbots

We've already talked about it - Repetition in the Chatbot

The correct way to build a Chatbot that gathers critical information

How is asking, and how is answering

Chatbot? what is this?


Go back to: All articles