ארכיון פוסטים ששייכים לנושא 'אינטרנט'

סימון אוטומטי של טוקבקיסטים אינטליגנטים

רביעי, 27 בספטמבר 2006

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

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

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

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

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

לגישה זו כמה בעיות מהותיות:

  1. הטיה חזקה לטובת התגובות הראשונות, שמטבע הדברים זוכות למספר הקוראים הגדול ביותר (טענה זו ניתנת כמובן להוכחה סטטיסטית).
  2. הטיה הנובעת מכך שלא כל הקוראים משתמשים במנגנון הדירוג: אם לקוראים שנוטים יותר לדרג תגובות יש במקרה גם העדפות תוכן משותפות (למשל חיבה לבדיחות סטייל "כנסו… עכשיו תצאו!", או אפילו העדפות פוליטיות דומות), המנגנון כולו קורס.
  3. פרק זמן ארוך יחסית מרגע שתגובה עולה לאתר, ועד שתסומן כמומלצת.
  4. כמעט בלתי אפשרי להגן על המערכת מהטיה ע"י גורמים בעלי אינטרס שמעוניינים לקדם תגובות מסויימות. גורמים כאלה יכולים להיות חברות מסחריות, מפלגות, ואפילו מיזמים כמו giyus.org. דוגמא מוכרת (מתחום אחר דוקא) היא פרשת הזיופים בכוכב נולד 3.

חלק מהבעיות ניתנות לפתרון: בעיה 1, למשל, נפתרת מיידית אם סדר התגובות נקבע בכל פעם מחדש באקראי (במחיר של שבירת הרצף של תגובות לתגובות: "34 - אתה אדיוט!"). אבל באופן כללי מדובר בבעיות אינהרנטיות של השיטה, ולכן קשה מאוד להתגבר עליהן. בפועל, ניתן לראות שמנגנון ההמלצות של ynet משיג תוצאות בינוניות ביותר.

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

את הפתרון אני מכנה SMARTCHA, והוא שילוב של שאלות ממבחני IQ עם מערכת CAPTCHA.

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

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

captcha.jpg

מבחני IQ הם מבחנים המודדים אינטליגנציה. קיימים סוגים רבים של מבחנים ושל שאלות, ואני אתמקד בסוג אחד של שאלות שמתאים במיוחד ליישום במערכת דמוית CAPTCHA: שאלות Matrix Reasoning מתוך מבחן האינטליגנציה של וקסלר.

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

wechsler.jpg

נראה קל? לא בהכרח. הנה דוגמא קשה יותר מתוך מבחן הדוגמא של מכון נועם:

wechsler-q.jpg
wechsler-a.jpg

SMARTCHA, כאמור, היא שילוב של שתי השיטות: עם שליחת התגובה, תוצג למגיב שאלת Matrix Reasoning, וינתן לו פרק זמן מוגבל (נניח דקה) לענות עליה. במידה והמשתמש ענה נכון, המערכת תסמן את התגובה כ"אינטליגנטית פוטנציאלית". היתרון בשימוש דוקא בשאלות מסוג Matrix Reasoning הוא שהן ניתנות לייצור אוטומטי ע"י מחשב (בדיוק כמו שאלות CAPTCHA).

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

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

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

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

פלאגין לוורדפרס, מישהו? :)

הפער העולמי - תמונת מצב

חמישי, 01 ביוני 2006

GapMinder הוא ארגון ללא כוונת רווח, ששם לו למטרה להסביר את הפער העולמי (בעיקר בנושאי בריאות). במילים שלהם: "Making sense of the world by having fun with statistics".

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

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

אתם מוזמנים לכתוב כאן על ממצאים מעניינים שתגלו (ממצא ראשון לדוגמא: בין שנת 2003 ל-2004 מספר משתמשי האינטרנט באירן ירד פי 10).

מומלץ בחום!

רשת p2p סלולרית

רביעי, 03 במאי 2006

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

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

אז הנה הפתרון-

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

במקום להסתובב עם מכשיר סלולרי שלם, נסתובב עם התקן bluetooth קטן שיתממשק למכשירים הסלולריים של אנשים אחרים מסביבנו. לתוך ההתקן נזין את כרטיס ה-SIM שלנו, כך שכשההתקן שלנו ידבר עם ספק הסלולר (תוך שימוש במכשירים הסלולריים שסביבו כתחנות ממסר) - הספק יוכל לדעת מי אנחנו, לחייב אותנו בהתאם ולהעביר להתקן שלנו שיחות המיועדות אלינו (שוב, תוך שימוש במכשירים הסלולריים שסביבו כתחנות ממסר).

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

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

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

ובעתיד הרחוק יותר? סביר שבסופו של דבר נדבר דרך תחנות חמות של אינטרנט (אני חוזה הופעת מכשירי skype "סלולריים" בטווח זמן של שנים בודדות).

הרעיון כולו מצלצל מוכר? זה לא מקרה. זה היישום הבסיסי של רשת "עמית לעמית" (peer2peer) לעולם הסלולר, בדומה ל-emule בעולם שיתוף הקבצים או skype בעולם ה-voip.

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

בלו סקיוריטי תחת התקפה

שלישי, 02 במאי 2006

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

ב-11.4.2006 (לפני כ-3 שבועות) התפרסם בבלוג של בלו סקיוריטי מאמר שכותרתו "על סיבתיות" (On Causality), שהגיב לתלונות של חברי הרשת שכמות הספאם שלהם עלתה. הטענה העיקרית של המאמר היתה שלא ניתן לנתח תופעה סטטיסטית רחבה תוך התייחסות למקרים ספציפיים, ושבסה"כ כמות הספאם הממוצעת של משתמשי הרשת ירדה.

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

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

קראתי בזמנו את המאמר, ושלחתי את התגובה הבאה (מובאת כאן בתרגום חופשי לעברית):

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

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

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

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

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

איך לבחור שם לאתר אינטרנט?

ראשון, 30 באפריל 2006

בחירת שם לאתר אינטרנט היא לא עניין פשוט. שם טוב הוא-

  1. קל לביטוי ו"מתגלגל על הלשון".
  2. קל לכתיבה ולאיות.
  3. שם שכתובת ה-.com שלו פנויה.

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

הדרישה שלנו, אם כן, היא כזו: אנחנו רוצים שם קצר וקליט (5-6 אותיות לכל היותר) שישמע טבעי כמו מילה באנגלית, אך לא יהיה מילה אמיתית (או לפחות לא מילה פופולארית). דוגמאות לשמות מפורסמים כאלה: Nike, Google, Skype, Joga, Ubuntu, Baidu, Xanga.

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

לכאורה, היינו יכולים לייצר את כל המחרוזות בנות 5 או 6 אותיות, לעבור עליהן בעין ולמצוא שמות טובים. בפועל, מדובר בכמות לא סבירה בעליל - מיליונים רבים של שמות פוטנציאליים, שרובם זבל מוחלט (בסגנון "sjdffq").

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

השתמשתי במודל סטטיסטי פשוט של "שרשראות מרקוב", שהרעיון הבסיסי בו הוא כזה: נעבור על רשימת כל המילים באנגלית, ועבור כל רצף של שלושה תווים שמופיע במילה נרשום בצד מה האות הבאה שהופיעה אחריו. לדוגמא: עבור המילה "lucky" נרשום בצד שאחרי הרצף "luc" הופיעה האות "k", ואחרי הרצף "uck" הופיעה האות "y". בסופו של דבר, נקבל רשימה ארוכה של רצפים בני 3 אותיות, שעבור כל אחד מהם ידוע אילו אותיות יכולות להופיע אחריו (ובאיזו שכיחות).

לדוגמא, הנה הפלט המתקבל עבור הרצף "nik" (בסוגריים מספר הפעמים שהאות הופיעה לאחר הרצף):

nik –> a (2)
nik –> e (10)
nik –> i (24)
nik –> o (2)
nik –> s (13)

ז"א, לפי המודל הרצף "nikf" אינו סביר כלל (ואכן אינו נשמע טוב), ולעומתו הרצף "niki" סביר מאוד (ואכן נשמע לא רע בכלל).

בשלב זה, ניתן להשתמש במודל כדי לייצר רצפים שישמעו טוב, בכל אורך שנרצה. נגריל 3 אותיות התחלתיות, ובכל פעם נגריל אות בודדת נוספת לפי ההסתברויות שהמודל חוזה. לדוגמא, נניח שהתחלנו עם הרצף "ram". נוסיף את האות "s" (לפי המודל, יש לה סיכוי גבוה להופיע לאחר הרצף הזה) וקיבלנו "rams". נסתכל כעת על הרצף "ams", ונגלה שבסבירות טובה תופיע אחריו האות "h", וכך נמשיך עד לקבלת רצף באורך המבוקש. עבור 6 אותיות, הרצף שיתקבל בסופו של דבר הוא ramshi. וכמובן, ניתן לכתוב תוכנה שתבצע את כל התהליך בצורה אוטומטית לחלוטין.

הנה רשימה קצרה של "מילים" שיוצרו בדרך זו: robulo, spanti, seromi, orshir, ticolo, weeksa, kineti, ricato, jackke - אף אחת מהן אינה מילה תקנית באנגלית, אך כולן נשמעות כך ברמה זו או אחרת.

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