תרגיל בדמיון מודרך

ה”פוליטי-מטר” העברי הראשון פותר את תעלומת גנץ; לו היו בחירות ישירות מי היה נבחר לראשות הממשלה; סיוע לקמפיינרים ומצביעים מתלבטים; האם אפשר להחליף סקרים בכלים אוטומטיים לעיבוד שפה טבעית. כל זאת ועוד עם קצת דמיון (מודרך)

אז מה היה לנו שם?

בפוסט הקודם, דיברנו על “קסם” אלגוריתמי שמאפשר ללמוד בצורה אוטומטית מאוסף גדול של טקסטים (“קורפוס”) וללא שימוש במקורות מידע חיצוניים כגון וויקיפדיה ייצוג מספרי לכל מילה. ליתר דיוק ייצוג של כל מילה כוקטור של מספרים המכונה embedding. גם ראינו שהייצוג הנ”ל חושף מידע סמנטי אודות המשמעות של המילה כך שלמשל ניתן לפתור אנלוגיות פוליטיות בסגנון של “נתניהו לקואליציה כמו מי לאופוזיציה?“.

יכול להיות שיש כאלו שיופתעו מהמשפט הבא (אז אולי כדאי לקרוא אותו בישיבה) אבל הייצוג הנ”ל לא ממש נועד לפתור אנלוגיות פוליטיות. למעשה הוא נועד כדי להמיר קלט טקסטואלי לפורמט מספרי שמהווה קלט נוח יותר להרבה אלגוריתמים בעולם של לימוד מכונה (machine learning) באופן כללי, ועיבוד שפה טבעית (natural language processing) באופן ספציפי. אבל כפי שנהוג לומר (וסליחה על הנדושות) “הי, אם כבר למדנו ייצוג כזה אפשר לעשות איתו לא מעט דברים נחמדים“.

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

ימין ושמאל רק חול וחול

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

בהינתן העמימות היחסית של המושגים ימין ושמאל, לא פעם ובפרט לקראת מערכת בחירות, השיח הבין-מפלגתי בישראל הופך למאבק תודעתי. כשנלחמים על מנדטים בתוך אותו הגוש, כל מפלגה מנסה להצטייר טהורה יותר. הימניים יאשימו את מפלגת האחות הימנית בשמאלנות, השמאלנים את אחיהם השמאלניים בימניות ואלו שבמרכז (ככל שיש מרכז) יקראו לכל השאר קיצוניים. לי באופן אישי זה קצת מזכיר את המערכון של מונטי פייטון עם people’s front of Judea. 

כחלק מהעניין, התקשורת מתחבטת שבועות ארוכים איפה בעצם בני גנץ ממוקם במפה הפוליטית, וכשאין תשובות ברורות מתחילים לפשפש בעברו ולחפש התבטאויות מרמזות שלו או של משפחתו וחבריו. אז הנה פיתרון שעוד לא חשבו עליו – “הפוליטי-מטר העברי הראשון” – נשתמש בייצוג הוקטורי שלמדנו מהקורפוס ונמדוד האם המשמעות הסמנטית של “גנץ” כפי שמיוצגת ע”י וקטור קרובה יותר לייצוג הוקטורי של המושג “ימין” או לזה של המושג “שמאל“. למעשה, אנחנו נעשה יותר מזה, כדי להעריך עד כמה השיטה הזאת עובדת אנחנו ניישם אותה על כל ראשי המפלגות המובילות (ומכאן שלוחה התנצלות חמה לאיימן עודה אבל אני מתמקד בטוויטים בעברית ולכן הוא לא נכלל בבדיקה, חוץ מזה, הוא הודיע על פרישה ועוד לא נבחר לו מחליף). 

נטייה פוליטית של מנהיגי המפלגות כפי שנמצאה באופן אוטומטי ע”י דמיון סמנטי יחסי למושגים “ימין” ו-“שמאל”.

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

שוב, באופן מאוד מרשים ואולי קצת מפתיע, אפשר לראות בגרף שלפחות בחלוקה הגסה של ימין/שמאל השיטה הנ”ל מצליחה לסווג את הפוליטיקאים המוכרים בצורה נכונה ולכן אפשר להעריך שגם גנץ מסווג נכון והוא שייך לאגף השמאלי של המפה הפוליטית כפי שאכן מאושש ע”י הסקר האמיתי להלן. צריך לציין שגודל המשרעת (אמפליטודה) של כל פוליטיקאי מושפע לא רק מרמת ה-“קיצוניות” שלו אלא גם מטיב הייצוג שלו בטוויטר ולכן למשל סמוטריץ’ שנכנס רק בימים האחרונים להנהגת מפלגת תקומה, נראה פחות ימני מנתניהו, למרות שסביר שהמצב האמיתי הפוך. מעבר לכך, חשוב להדגיש גם שמקורות שונים מייצגים פוליטיקאים באור שונה ולכן הימניות של מיודענו סמוטריץ’ פחות מודגשת כי הוא מכוסה יותר ע”י מקורות חדשות מהמגזר הימני ופחות מהמרכז וביחס למקורות חדשות אלו, סמוטריץ’ לא ימני במיוחד. בהמשך הסידרה מתוכנן פוסט שמשווה בין עיתונים, ערוצי חדשות וכו’ כדי לבחון האם יש משמעות לדיווח אובייקטיבי או שהכל תלוי בנטייה הפוליטית של המוציא לאור.

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

מבחן מנהיגות

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

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

פוליטיקאים בעלי דמיון גבוה לייצוג הסמנטי של המילה “מנהיג”

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

סקר אמיתי מתאריך 17.1.19 לגבי ראש הממשלה המועדף על הציבור

מת מתל מתלב מתלבט (במי לבחור)

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

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

במפת החום (heat map) שלעיל, הקירבה בין הפוליטיקאים שבכל שורה ועמודה מתבטאת בצבע של המשבצת בה העמודה והשורה מצטלבות – צבע כחול כהה מבטא חוסר דמיון מובהק וככל שהדמיון גדל והפוליטיקאים קרובים יותר, צבע המשבצת “יתחמם” עד שיגיע לאדום. האלכסון הראשי ממנו אפשר להתעלם הוא כמובן אדום כיוון שמתאר קירבה מושלמת בין כל פוליטיקאי לעצמו. אפשר לראות למשל שהפוליטיקאי המאוים ביותר ע”י כניסתו של גנץ הוא יאיר לפיד. באופן דומה אפשר לראות שליצמן ודרעי מאוד קרובים, דבר שמסביר את המגעים לאיחוד אפשרי בין יהדות התורה וש”ס.

האם כלים מעין אלו של מדע נתונים יכולים להחליף סקרים?

לא.

ובכל זאת?

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

 

הערות והרחבות

  1. שוב אני עושה שימוש בחבילת הפייטון gensim לטובת עבודה עם ייצוגים וקטוריים.
  2. כדי לשמור על מדידה אחידה ככל האפשר הייצוג הוקטורי של כל פוליטיקאי הוא מעין ממוצע ממושקל על ייצוגים שונים אפשריים שלו הכוללים את שם חשבון הטוויטר שלו והטיות שונות על שם המשפחה של אותו הפוליטיקאי. למשל, במקרה של נפתלי בנט יש פה ממוצע בין הייצוגים של “naftalibennett@”, “בנט”, “ובנט”, “שבנט”, וכו’. המשקל היחסי של כל ייצוג נגזר מהשכיחות היחסית של הביטוי בקורפוס לעומת ביטויים אחרים. למשל, “בנט” יותר שכיח בקורפוס מ-“שבנט” ולכן משקל הוקטור של “בנט” בממוצע המשוקלל יהיה גבוה יותר מהמשקל של הוקטור המתאים ל-“שבנט”. טכנית הממוצע הנ”ל מחושב ע”י numpy.average
  3. הגרפים נוצרו ע”י חבילת פייטון מומלצת בשם matplotlib. ישנן עוד חבילות מומלצות כגון plotly שיכולות גם להציג גרפיקה דינמית כפי שנדגים בפוסט הבא.
  4. בכדי לייצר מטריצת דמיון כמו זו של ה-heatmap ניתן להשתמש עקרונית ב-similarity_matrix של gensim. בפועל לא השתמשתי בה כיוון שרציתי למצוא דמיון בין וקטורים ממושקלים כפי שתואר לעיל ולכן חישבתי ישירות את המטריצה

 

מה מחשבים מבינים ואנלוגיות פוליטיות

אנלוגיות פוליטיות

האם מחשב יכול לזהות בעצמו מי ראש האופוזיציה?איך השוויון בין המינים בא לידי ביטוי במפלגות השונות? מה שלום השד העדתי נכון לתחילת 2019? איך החלפת היו”ר במחנה הציוני (ז”ל) באה לידי ביטוי? מי מזוהה יותר עם המשרד שלו – ליברמן (לשעבר) או כחלון?

פרולוג – מה בעצם מחשבים מבינים?

(הקדמה קצרה לגבי מה מחשבים “מבינים”. מי שכבר ממש בוער לו לראות דברים מגניבים ופחות מלל מוזמן לדלג לפסקאות הבאות ואז לחזור כדי להבין טוב יותר מה בעצם קורה פה …)

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

הנה מספר תשובות שיצדיקו את קיום הבלוג וכמות לא מבוטלת של משרות:

  1. לא תמיד המחשב חייב להבין עד הסוף. מספיק שיספק תוצרי ביניים שקל לאדם לצרוך. למשל, מנוע חיפוש לא פותר לאנשים שאלות הבנה אלא רק חוסך להם את החיפוש בכמות עצומה של מקורות מידע, ומשאיר להם את השלב האחרון של בחינת כל מקור ידע לעומק.
  2. עיבוד שפה טבעית (natural language processing) הוא תחום שעוסקים בו שנים רבות באקדמיה ובתעשיה. בשנים האחרונות היו לא מעט פריצות דרך בעיבוד שפה ובתחומים קשורים כגון לימוד מכונה (machine learning) ואינטיליגנציה מלאכותית (artificial intelligence) וכיום השיטות והכלים חזקים הרבה יותר מבעבר. בנוסף, השילוב בין כמויות אדירות של נתונים אשר זמינים למשתמשים בודדים וארגונים, לבין חבילות תוכנה פתוחות ללימוד מכונה מאיץ את תהליך השיפור בתחומי המחקר הנ”ל.
  3. השיטות שמוצגות בבלוג הזה יתמקדו בדרך כלל פחות בהבנה ממוקדת של טקסטים בודדים ויותר בהבנה כללית של אוסף טקסטים גדול המכונה “קורפוס”. דמיינו שאתם עומדים במוזיאון ממש קרוב לציור גדול וממשיכים להתבונן בו תוך שאתם מתרחקים לאט לאט וכך בהדרגה במקום להתמקד במשיחות מכחול בודדות אתם עוברים להסתכל על היצירה כולה. אז יכול להיות שיש לא מעט נקודות שמקרוב לא ברור למתבונן אם הן אדומות או כתומות אבל כשמתרחקים קל לראות שהציור כולו נוטה לצבעים חמים.

על הסמנטיקה העדינה של הסמנטיקה

מה זו סמנטיקה? תלוי את מי שואלים.  באופן כללי סמנטיקה היא תחום שעוסק בחקר והבנת המשמעות של טקסטטים (אבל לא רק). קיימות כמובן דרכים שונות להבין ולייצג את המשמעות של טקסט. למשל, אפשר לקבל את המשמעות של כל מילה מסוג של מילון, ולחבר איכשהו למשמעות המשפט תוך הסתמכות על הקשר בין המילים המכונה “תחביר” (syntax). אפשר אולי גם להצליב עם מקורות ידע חיצוניים כגון וויקיפדיה כדי שכשמזכירים את בריאותה הרופפת של מלכת אנגליה והאפשרות שצ’ארלס יירש אותה, המחשב יבין שמלכת אנגליה היא אליזבת וצ’ארלס הוא בנה.

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

אמור לי מי שכניך ואומר לך מי אתה

במקרה שלנו, “וקטור של מספרים” הוא פשוט סדרת מספרים באורך קבוע. לדוגמא, מספר טלפון סלולרי בישראל הוא וקטור של 10 מספרים שלמים בין 0 ל-9 (עם כמה מגבלות על מבנה הוקטור למשל הוא חייב להתחיל ב-0). בהקשר של סמנטיקה, זו עדיין סדרת מספרים באורך קבוע אבל הוקטור ארוך יותר מ-10 ומכיל מספרים בעלי נקודה עשרונית (float).

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

המחשב נותן ייצוג וקטורי התחלתי לכל מילה (למשל רצף אקראי של 100 מספרים בין 0.0 ל-1.0), ואז הוא עובר על המון טקסטים (“קורפוס”) כמה וכמה פעמים, ובכל פעם שרואה מילה הוא משנה קצת את הייצוג שלה כך שיתאים יותר לייצוגים של המילים השכנות לה.

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

אחד מהתוצרים המעניינים של שיטות ייצוג וקטוריות כנ”ל, הוא שהמשמעות במובנה הוקטורי משמרת יחסים בין מילים (ראו הרחבה בסוף). למשל, Mikolov אחד החוקרים המפורסמים בתחום, הראה ב-2013 שבעזרת ייצוג כזה שנלמד על קורפוס גדול וללא מאגרי מידע חיצוניים ניתן לפתור אנלוגיות שברורות לנו כבני אדם בסגנון של:

  • “מלך ל-מלכה זה כמו גבר ל_____?” (תשובה: אישה)
  • “איטליה ל-רומא זה כמו צרפת ל____?” (תשובה: פריז)
  • “שוחה ל-שחה זה כמו אוכל ל____?” (תשובה: אכל)

 

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

אנלוגיות פוליטיות

אז בנינו קורפוס שכולל את כל הטוויטים הפומביים בעברית שפורסמו בשנים האחרונות ע”י

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

למעשה בנינו 2 קורפוסים. הראשון עם ציוצים מ3-4 שנים אחורה והשני עם ציוצים מ-2018 בלבד. למדנו ייצוג וקטורי על כל קורפוס כנ”ל ואז התחלנו לבחון את התוצאות לפתרון אנלוגיות שונות.

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

איך מודדים חוזק של אנלוגיה?

נניח שהייתם מתבקשים לפתור את האנלוגיה הבאה : “חמוץ ללימון כמו מתוק ל_?”

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

כדי לחדד את תשובת המתלבטים נבקש מהם למשקל את רמת הביטחון בכל אפשרות ואז תשובה אפשרית של אדם מתלבט היתה יכולה להיות 50% שוקולד, 45% וניל ושאר ה-5% דבש. תשובה כזאת אומרת שאצל אותו אדם באופן אישי האנלוגיה לא עם פתרון חד משמעי כי הוא מאוד מתלבט בין שוקולד (50) לדבש (45) ויש פער קטן של 5% ביניהם. לעומת זאת אם המתלבט היה אומר 50% שוקולד, 30% וניל, ו-20% דבש היינו אומרים שלמרות ההתלבטות העקרונית יש נטייה ברורה לשוקולד.

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

אנחנו גם ננצל את השוני בין 2 הקורפוסים שיצרנו (הראשון של 3-4 שנים אחורה, והשני החל מ-2018) בכדי להבין באילו מקרים אנלוגיות השתנו לאורך הזמן (ראו למשל את מקרה ציפי לבני להלן).

גברים ונשים

פער ב-2018

פער ממקום 2

ל___?

כמו

ל

מי/מה

19%11%שקדאישהבנטגבר
17%ציפיאישהגבאיגבר
אישה / לפיד

כחלון

גבר
20%בוז’יגברלבניאישה

נקודות מעניינות:

  1. שקד נמצאת באופן עקבי כאנלוגיה הנשית של בנט, כפי שאכן מסתמן שקורה במציאות עם ההובלה המשותפת של “הימין החדש”.
  2. כשמתמקדים בציוצים מ-2018 אך לא לפני, ליבני נמצאת מקבילה לגבאי. כשמוסיפים גם ציוצים של מספר שנים אחורה היא מקבילה לבוז’י אך לא ב-2018. כמובן זה מוסבר ע”י החלפתו של בוז’י בגבאי כמועמד המחנצ לראשות הממשלה.
  3. ללפיד וכחלון אין מקבילה נשית כלל. גם זה הגיוני.

סטראוטיפים

פער ב-2018

פער ממקום 2

ל___?

כמו

ל

מי/מה

26%16%רוסיליברמןכיפה בנט
-7% (אלאלוף)3%מרגימזרחיגפניאשכנזי

נקודות מעניינות:

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

נושאים וחוקים מקודמים

פער ב-2018

פער ממקום 2

ל___?

כמו

ל

מי/מה

18%16%רגבנאמנותשקדהתגברות

נקודות מעניינות:

  1. ספינת הדגל או אחת מהספינות בארמדה של איילת שקד היא פסקת ההתגברות והיא נמצאה אנלוגית לחוק הנאמנות של רגב.

תפקידים פוליטיים

פער ב-2018

פער ממקום 2

ל___?

כמו

ל

מי/מה

20%
3%לפידאופוזיציהביביקואליציה
1%דרעיש”סביביליכוד
2%מרצשמאלליכודימין
20%8%ליברמןביטחוןבנטחינוך
3%2%כחלוןאוצרליצמןבריאות

נקודות מעניינות:

  1. בשורות רעות למחנ”צ. מעמדו של לפיד כמנהיג האופוזיציה הולך ומתחזק ככל שמתקדמים לעבר 2018. בנוסף מרצ ולא מחנ”צ הם המפלגה המייצגת את השמאל.
  2. מנהיגותו של ביבי הרבה יותר דומיננטית מאשר זו של דרעי.
  3. הקשר בין ליברמן לתיק הביטחון בולט הרבה יותר מהקשר בין כחלון לתיק האוצר.

סיכום

אז מה בעצם ראינו בפוסט הזה?

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

הערות והרחבות

  1. שיטת ה-embedding הספציפית בה נעשה שימוש בפוסט נקרא word2vec. מוזמנים לקרוא עליה עוד פה. עוד שיטות פופולאריות הן Glove, fasttext.
  2. חבילת הפייטון בה עשיתי שימוש לטובת ייצוגים וקטוריים היא Gensim.
  3. נניח שאנו רוצים לפתור את האנלוגיה “a ל-b כמו מה ל-c?” אזי בהינתן הייצוג הוקטורי של המילים a,b,c שיסומן כ-Va, Vb, Vc, נמצא את המילה w שמרחקה הוא המינימלי מהסכום Va+Vc-Vbמבין כל המילים עבורן למדנו יצוג. המרחק יכול להיות מחושב למשל ע”י cosine אבל יש גם דרכים נוספות.

אז למה לי פוליטיקה עכשיו?

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

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

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

למה טוויטר ?

 כי בטוויטר יש עושר של מקורות טקסטואלים  – עיתונים, ערוצי רדיו וטלוויזיה, משרדי ממשלה, ארגונים לא ממשלתיים, חשבונות פרטיים של עיתונאים,  פוליטיקאים, מפלגות, והמון אנשים פרטיים שמשקפים ברמה כזו או אחרת את הדעה של הציבור.
ברמה הטכנית, השפה שבה אנשים כותבים בטוויטר שונה מזו שמשתמשים בה בעיתונים או אפילו בחיי היום יום. כל ציוץ (tweet) הוא טקסט מוגבל באורכו ל-280 תווים,  והדקדוק והתחביר של טקסט זה לא בהכרח תיקניים, מה שמקשה לא מעט על ניתוח אוטומטי ע”י מודלים סטנדרטיים לעיבוד שפה. אבל, מצד שני, החדשות הטובות הן שטוויטר חושף ממשק שדרכו מתכנתים יכולים להוריד כמויות גדולות של מידע פומבי בצורה קלה יחסית, כך שעל אף הקשיים שווה להתאמץ.

מה למשל אפשר לעשות עם המידע שמפורסם בטוויטר ?

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

 

מה יהיה ומה לא יהיה בבלוג הזה?

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

 

טוב, מספיק הקדמות… בפוסט הבא כבר נתחיל לראות דברים מעניינים


הערות והרחבות

  1. מתעניינים במדע נתונים ושואלים איזו שפת תכנות הכי מתאימה לכם? ברוב הסקרים Python מובילה בפופולאריות בקרב מדעני נתונים. למשל פה.
  2. רוצים ללמוד עוד על Twitter Developer API? לכו לפה. אני משתמש בחבילת Python בשם Tweepy לצורך הממשק עם טוויטר.

מדע הנתונים בחיי היום-יום

איפה הימים שהיה אפשר להבדיל בקלות בין חנון להיפסטר

מדע נתונים (“data-science”) הוא תחום מחקר שמשלב בין סטטיסטיקה, לימוד מכונה (“machine learning”), כריית נתונים, תכנות ועוד מילים קצת מפחידות.

בטח אתם שואלים את עצמכם – “חוץ מכרטיס הנחה למחלקת משקפיים עבות באופטיקנה, ופופולריות מטורפת בטינדר, מה בעצם מדע נתונים נותן לי?” או במילים אחרות, למי רלוונטי מדע נתונים באופן כללי והבלוג הזה ספציפית?

אז בגדול מדע נתונים רלוונטי ל-2 סוגים של אנשים:

    1. מדעני נתונים
    2. כל מי שהוא לא מדען נתונים

מכיוון ש-1 די מסביר את עצמו אז נדלג ישר ל-2. 

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

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

אז יאללה מתחילים…