הטמעות: תרגילים אינטראקטיביים

הווידג'ט הבא מבוסס על הכלי Embedding Projector של TensorFlow, והוא משטח 10,000 וקטורים סטטיים של word2vec לתוך מרחב תלת-ממדי. כיווץ הממדים הזה עלול להטעות, כי יכול להיות שהנקודות שהכי קרובות זו לזו במרחב המקורי עם הממדים הרבים יהיו רחוקות יותר זו מזו בהיטל התלת-ממדי. ‫n הנקודות הקרובות ביותר מודגשות בסגול, והמשתמש בוחר את n בשדה Isolate __ points (בידוד של __ נקודות). בסרגל הצד שמימין מופיעים השכנים הקרובים האלה.

בניסויים הבאים תשחקו עם ההטמעות של word2vec בווידג'ט שלמעלה.

משימה 1

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

  • iii,‏ third,‏ three
  • tao,‏ way
  • orange,‏ yellow,‏ juice

שמתם לב למשהו מיוחד בתוצאות האלה?

לחצו כאן כדי לראות את התשובה שלנו

למרות שהמילים iii, third ו-three דומות מבחינה סמנטית, הן מופיעות בהקשרים שונים בטקסט ולא קרובות זו לזו במרחב ההטמעה הזה. ב-word2vec, המילה iii קרובה יותר אל iv מאשר אל third.

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

בראש רשימת השכנים הקרובים של orange מופיעים צבעים, אבל המילים juice ו-peel, שקשורות למילה orange במשמעות של פרי, נמצאות במקום ה-14 ובמקום ה-18 ברשימת השכנים הקרובים. לעומת זאת, המילה prince, כמו ב-Prince of Orange (נסיך אורנז'), נמצאת במקום ה-17. המילים הקרובות ביותר למילה orange בהיטל הן yellow וצבעים אחרים, אבל המילה orange לא מופיעה ברשימת המילים הקרובות ביותר למילה juice.

משימה 2

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

  • boston,‏ paris,‏ tokyo,‏ delhi,‏ moscow,‏ seoul (זו שאלה טריקית)
  • jane,‏ sarah,‏ john,‏ peter,‏ rosa,‏ juan

לחצו כאן כדי לראות את התשובה שלנו

חלק גדול מהשכנים הקרובים של boston הם ערים אחרות בארה"ב. חלק גדול מהשכנים הקרובים של paris הם ערים אחרות באירופה. אבל נראה שהתוצאות שונות במקרה של tokyo ושל delhi: אחת מהן משויכת לערים בעולם שנחשבות למרכזי נסיעות, והשנייה משויכת אל india ולמילים קשורות. ‫seoul לא מופיעה בכלל בקבוצה המצומצמת הזו של וקטורי מילים.

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

בדומה לכך, נראה שקבוצת הנתונים הזו מכילה הרבה שמות באנגלית לגברים, כמה שמות באנגלית לנשים, ומעט מאוד שמות בשפות אחרות. שימו לב ש-Don Rosa (דון רוזה) כתב ואייר בשביל דיסני את הקומיקס Scrooge McDuck (הדוד קמצוץ), וזו כנראה הסיבה לכך שהמילים scrooge ו-mcduck מופיעות ברשימת השכנים הקרובים של המילה rosa.

למעשה, וקטורי המילים ב-word2vec עברו אימון מראש על כתבות בחדשות Google עד 2013.

משימה 3

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

  1. פותחים את Embedding Projector של TensorFlow.
  2. בסרגל הצד שמשמאל עם הכותרת Data (נתונים), בוחרים באפשרות Mnist with images (MNIST עם תמונות). יוצג היטל של ההטמעות של מסד הנתונים MNIST שכולל ספרות בכתב יד.
  3. לוחצים כדי לעצור את הסיבוב ובוחרים תמונה אחת. מגדילים ומקטינים את התצוגה לפי הצורך.
  4. בודקים מיהם השכנים הקרובים בסרגל הצד שמימין. יש נתונים מפתיעים?
  • למה 1 מופיע כשכן קרוב של 7 בחלק מהמקרים? ולמה 9 מופיע לפעמים כשכן קרוב של 8?
  • האם משהו בתמונות שבקצוות של מרחב ההיטל שונה מהתמונות שבמרכז?

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

לחצו כאן כדי לראות את התשובה שלנו

בגלל הדמיון בין הצורות, הייצוגים הווקטוריים של חלק מהתמונות שבהן הספרה 7 צרה ודקה יותר ממוקמים קרוב יותר לווקטורים של תמונות הספרה 1 בכתב יד. זה קורה גם בחלק מהתמונות של הספרות 8 ו-9, ואפילו בכמה תמונות של 5 ו-3.

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