|
||||
|
||||
מה קורה אם גוגל מצנזרת בטעות אתר? יש להם יד קלה על ההדק נגד ספאמרים שמנסים להטעות אותם. אבל מה קורה אם הם בטעות (או שמא לא בטעות?) מצנזרים אתר לגיטימי שגם מתחרה שאחד ממיני העסקים הרבים שלהם? החשד שעולה בסוגריים הוא בגלל שהם "כמעט היחידים". כמוכן, רון העלה את הבעיה של חיפושים מותאמים. בתור מי שלא משתמש בשאר השירותים שלהם, אני פשוט מדי פעם מוחק את כל העוגיות שלהם. למיטב ידיעתי זה הופך אותי למשתמש חדש. אבל אם את משתמשת ב־GMail ושאר שירותים שלהם, את מזוהה על ידיהם פשוט ע"י ההזדהות והאפשרות הזו לא קיימת. אני אישית משתמש ב־DuckDuckGo בין השאר בגלל שהוא לא מיקרוסופט ולא גוגל. באנגלית הוא עובד טוב מאוד (יותר מגוגל, לעניות דעתי) לחיפושים פשוטים, ויש לו את השכל והצניעות להפנות למנועי חיפוש אחרים ולהפוך את השימוש בהם (ישירות, לא דרך תיווך כ־metacrawler) לפשוט. |
|
||||
|
||||
תוצאות החיפוש לא רק מותאמות אישית פר דפדפן/משתמש. הביקורת בקישור של רון היא רחבה יותר. ישנם קריטריונים נוספים להתאמת תוצאות חיפוש ולכן בעיית ה-Filter bubbles לא קשורה רק להתאמה אישית. דוגמה אחת: מיקום המחפש (עפ"י כתובת ה-IP). עד כמה שאני יודע, מחפש אמריקני עלול לקבל תוצאות חיפוש שונות ממחפש ישראלי, עבור אותו החיפוש. מחיקת Cookies לא רלבנטית במקרה זה. |
|
||||
|
||||
עכשיו DuckDuckGo מתגאים בצורה רשמית באתר שלהם "אנחנו לא שמים אותך בבועה": קישור ל: בהמשך לדף השיווקי הבא שבו הם מתגאים שהם לא עוקבים אחרי המשתמשים: הציניקנים יגידו שהם גם משקיעים פחות עבודה וגם מתגאים בזה. |
|
||||
|
||||
העלתי, ניסיתי שני נסיונות ואני מרוצה. |
|
||||
|
||||
אני לא מבינה, כל הסיפור של החיפוש המותאם זה העוגיות? מה, רק אני מוחקת את כל העוגיות כמה פעמים ביום? בסופו של דבר תוצאה כלשהי צריכה להיות במקום ראשון ותוצאה אחרת במקום שני, ואיזשהו דירוג אתה חייב לקבוע, התלונות לדעתי קטנוניות ומוגזמות. לכל אחד יש דעה על הדירוג של גוגל כי את זה כולם מבינים, אבל על עיקר העיקר, על החיפוש, אף אחד לא מדבר כי את זה אף אחד לא מבין. (אני ורוב הדברנים לא מבינים). אני לא מכירה את DUCKDUCK אבל אני מנחשת שהוא לא מחזיק את האינטרנט על הדיסקים שלו אלא זו קליפה שמפנה שאלות למנועים אחרים - וגוגל בראשם. אולי אני טועה. |
|
||||
|
||||
העוגיות הן דרך אחת לזהות מספר התחברויות שונות: אם קיבלת שתי שאלות שונות מדפדפן שיש לו את העוגיה 1092381203980298304598304, כנראה שמדובר על אותו דפדפן. מה בדיוק לא מובן? אתה יכולה לשאול שאלות יותר ממוקדות? לגבי DuckDuckGo: יש להם מאגר מידע משלהם. הם גם משתמשים במאגרים אחרים (בפרט: ממשק נוח שיאהו מספקת). גוגל דווקא בולטת בהעדרה מהרשימה. ר' השאלה "Where do you get your results?" בקובץ השאלות הנפוצות שלהם. |
|
||||
|
||||
הם כותבים שם: Why can't your crawling/index provide all the results? ומסבירים. התשובה מובנת מאליה, ואני חושבת שהמבנה הזה הוא לא הוגן, לא הוגן להשתמש במנועים אחרים כשואבי המים הנסתרים שלך. אולי זה אפילו לא חוקי. מה לא מובן לי בחיפוש של גוגל? אני אפילו לא יודעת מאיפה להתחיל לשאול. יש לי אתר, העליתי אליו קובץ בוורד, אני כותבת בגוגל משפט אקראי מעמוד 127 בספר: "הוטל עלי התפקיד העגום לנפק לחבר יקר זה גרב מלאת חול רטוב מאסיבית למדי בלסת", ולפני שאני לוחצת אנטר גוגל מחזיר לי את התשובה האחת והיחידה במרשתת, האתר שלי. אז אני מבינה שיש לגוגל "סיירים", crawlers, הם בטח מחולקים לחוליות לפי IP או בחלוקה אחרת, והם מסתובבים ברשת ונכנסים לכל לינק, אוספים מתוכו את כל הלינקים וכן האלה. הם אולי מגישים את רשימת הלינקים ל"מנהל סיירים ראשי", שזורק את כל הלינקים הכפולים, נכנס ללינקים, מעתיק את הטקסטים והופך אותם לאיזה פורמט טקסט נוח לגוגל. אם יש קובץ וורד הוא PDF או כל דבר דומה, הוא פותח גם אותם. מפה אני כבר הולכת לאיבוד. |
|
||||
|
||||
מהירות האיחזור ואיכותו נובעת דווקא מפעולה שכבר הזכרת, אינדוקס הטקסטים, ולא משיטות איסופם מן הרשת. האם את יודעת, בעיקרון, מה זה אומר לאנדקס אוסף טקסטים? |
|
||||
|
||||
זאת שאלת מפתח, איך גוגל מאנדקס את הטקסטים. תסביר לי. |
|
||||
|
||||
אין בעייה. אכתוב משהו מאוחר יותר היום. |
|
||||
|
||||
אם אתה תכתוב מאוחר יותר הסבר לאינדוקס - כל הכבוד. אם תכתוב אינדוקס כזה מאוחר יותר היום - עוד יותר כבוד :-) |
|
||||
|
||||
טוב, לא צריך לפתח ציפיות יותר מדי. אני אומנם לא מכיר את פרטי המנוע של גוגל, אבל כן יצא לי לבנות מנוע חיפוש. כל מה שאסביר הוא מה זה אינדקס, במובן הבסיסי והמשעמם ביותר. |
|
||||
|
||||
אתייחס רק לנקודה ספציפית, אך המרכזית לעובדה שמנועי חיפוש מסוגלים לספק במהירות את רשימת המסמכים המכילים מילה או צירוף מילים שנשלחו אליהם ע"י משתמשים. הדברים מובאים כמובן בנוסח פשטני ולא תמיד מדוייק. הפתרון מבוסס על מבנה פשוט, בו אנו נתקלים לעיתים לקראת סופו של ספר – אינדקס. אינדקס של ספר הוא רשימת מספרים הצמודה לכל מילה1, שמציינת את העמודים בהם מופיעה המילה. באופן זה, ברצון המשתמש לאתר את מופעיה של המילה "משכוכית" במדריך הרועים שלו, אין הוא צריך לעבור בעצמו על ספר ההפעלה של העדר, אלא די לו לגשת מיידית אל סופו ולשלוף את הרשימה הנדרשת. בזמן הקריאה שנחסך, יכול הבחור לכתוב על חווית השליפה סטטוס מייגע בפייסבוק, עבור מי מחבריו שטרם למד לעשות "hide" בממשק המתעמר של האתר. זהו גם עיקר סודה של השליפה המהירה ע"י מנוע חיפוש. עבור כל מילה בה נתקל מנוע האינדוקס בתוך דפי האינטרנט שהורדו אליו מבעוד מועד, הוא שומר בצד את רשימת המספרים שהוא העניק לכל עמוד שהורד אליו (נניח, לפי סדר ההורדה של העמוד): …. sambusak: 1, 5, 103, 104, 105, 244, 296 עתה, בהינתן שאילתת חיפוש הכוללת את המילה sambusak, לא צריך מנוע החיפוש לנדוד ברחבי הרשת בחיפושיו, ואף לא לקרוא את הדפים שכבר הורדו ממנה. כל שנדרש ממנו עתה הוא לגלות היכן איכסן מנגנון האינדוקס את רשימת העמודים עבור המילה sambusak, פעולה אותה ניתן לבצע באופן מיידי (חפשי למשל hash table), ולהחזיר את הרשימה למשתמש. טוב, לא בדיוק, הרי למשתמש אין מה לעשות עם רשימת המיספורים הפנימיים של המערכת. אז במקום לחזור למשתמש, עובר לפני כן המנוע אל טבלה נוספת, בה נמצא במקום הראשון הקישור לדף מספר אחת, במקום שני הקישור אל דף מספר 2 שהורד מן הרשת וכן הלאה. הוא ניגש עם 20 המספרים הראשונים (נניח) שברשימה, ניגש אל 20 המקומות המתאימים בטבלת הקישורים, שולף מן הטבלה את 20 הקישורים המתאימים וחוזר עמם אל המשתמש.samsung: 3, 200, 244, 245, 296, 301 …. זה בעיקרון. ישנם כמובן שיפורים ומורכבויות נוספות. למשל, אם ביקש המשתמש מסמכים בהם מופיעות גם sambusak וגם samsung, נדרש מנוע החיפוש לרוץ על שתי הרשימות במקביל, כדי למצוא עמודים המשותפים לשתי המילים. מאחר ושתי הרשימות הן כבר בסדר עולה, ומאחר ואפילו מחשב ביתי פשוט מסוגל למיליארד פעולות בשניה, אזי, למשל, אם כל אחת מן המילים הללו מופיעה בסדר גודל של מיליון מסמכים, הוא יסיים את ההצלבה בתוך כמה מילישניות לכל היותר2. שיפור נוסף הוא עבור חיפוש דפים בהם מופיעות מילים, נניח בזו אחר זו, כחלק מביטוי. עבור מקרים אלו שומרים לא רק את מספרי העמודים בהן מופיעה כל מילה, אלא גם את מיקומיה בכל דף. וכמובן ישנם עוד שיפורים הקשורים לרלוונטיות התוצאות, הטיות של מילים, סוגיות של חישוב מבוזר ועוד ועוד כהנה וכהנה אתגרים, ומשימות השמים לחם על שולחנם של מהנדסי תוכנה. ------------------------------------------------------------------------------------------------------------------------------------- 1 ליתר דיוק, כאשר מדובר בספר, כולל האינדקס רק את המילים שעורך הספר חפץ ביקרן, אבל במנוע חיפוש מדובר בכמעט כולן. 2 ישנן שיטות החוסכות את רוב פעולת ההצלבה (skip list) כך שזה יכול להגיע גם למיקרושניות עבור מיליון מופעים |
|
||||
|
||||
רק הערה קטנה: שאלתי פעם פרופסור (עוסק בנושא רלוונטי) בטכניון, והוא אמר לי שלגוגל יש מעבר לאינדקס גם "עותק" (בנוסף לאינדקס) של האינטרנט לשם הפעלת אלגוריתמי הפייג' ראנק. |
|
||||
|
||||
כמובן. בד"כ למנוע חיפוש שאינו "טפילי" ישנו עותק של כל המסמכים אותם הוא אינדקס, ולו כדי להחזיר ברשימת התוצאות גם את השורה בה מופיעה מילת/שאילתת החיפוש, על מנת לסייע למשתמש להחליט על מה ללחוץ ולחסוך לו זמן. אני מניח שבגוגל משתמשים בעותק זה גם בשביל המטרה אותה ציינת. |
|
||||
|
||||
מה שאני מתקשה להבין זה איך גוגל מוצאים ביטויים מדוייקים (כאלה בתוך גרשיים) ומהר? הם פשוט עוברים על כל הדפים שבהם נמצאות כל המילים בביטוי ומחפשים את הצירוף? |
|
||||
|
||||
כאמור, בפועל שומרים באינדקס של כל מילה לא רק את ה-ID (מספר מזהה) של כל דף html בו היא מופיעה, אלא גם את מיקומיה בו. אם נחזור לדוגמא שנתתי, בפועל יראה מאגר האינדקסים קרוב יותר לזה: sambusak: *1, 74, 90, *5, 2, 10, 100, *103, 11, 50, *104, 10, .... כאשר כוכבית מציינת שמדובר במספר דף ואילו ללא כוכבית, הכוונה למספר המילה בדף (ראשונה, שניה, שלישית,...).samsung: *3, 2, 5, *103, 12, 58, *200, 89, 244.... משום כך, אם חפצה נפשך בדפים הכוללים איזכורים של דגם החכמופון החדש "sambusak samsung", ירוץ המנוע במקביל לאורך שתי הרשימות (וכאמור, עבור רשימות המציינות מיליוני מסמכים בהם מופיעות שתי המילים זה לוקחת שברירי שניה), ויגלה שבדף מספר 103 המילה ה-11 היא sambusak בעוד שהמילה ה-12 באותו דף html היא samsung - בינגו! |
|
||||
|
||||
הגאון כבר מצליח למצוא sambusak samsung, אבל נכון לזמן כתיבת תגובה זו, עדיין לא את "sambusak samsung". |
|
||||
|
||||
באותו עניין: ראו לדוגמה את ויקיפדיה:מזנון/ארכיון 250#נפלאות גוגל [ויקיפדיה]1 שם הצלחתי בינתיים בקרב נגד Google. 1 אין אפשרות ליצור <קישור> שמצביע לתוך ויקיפדיה העברית. |
|
||||
|
||||
תודה, זה מאד מעניין, עד אתמול, אחרי ששאלתי אותך, לא עלה בדעתי שגוגל מאנדקסת כל מילה ומילה. הם הראשונים שעשו את זה? אתה מתעסק בדטה בייסים? עשיתי פעם קורס על אורקל, זה היה קורס קשה ושכחתי הכל מאלף עד תו. אחד הדברים הכי מסובכים היה הגיבויים. גם גוגל צריכה לגבות כל הזמן. מצאתי בלוג מעניין על גוגל. מסופר למשל שה crawler מאחסן 850 TB של מידע (TB אחד שווה 1024 ג'יגה בייט), זו מן הסתם הטבלה שאתה דיברת עליה, נכון? האינדקס שבנוי מכל המילים מסודרות לפי הסדר, עם פוינטר ל URL וגם ציון המקומות שהמילה מופיעה בתוך הטקסט. זה גודלה של כל הרשת? נשמע קטן. אז איך פיזית מחפשים במהירות בתוך אינדקס כל כך גדול? הוא יושב על דיסקים או בזכרון? אולי הוא מחולק לדיסקים שונים? כשאני שואלת משהו את גוגל, לאן מופנית השאלה, לכולם? אתה לא חייב לענות, המוח מסתחרר ממחשבות על גוגל על הבוקר. בבלוג הזה מסופר גם שגוגל בודקת ממשק חדש בלי כפתור I'M FEELING LUCKY. ברוך השם, מעולם לא לחצתי עליו שלא בטעות. |
|
||||
|
||||
1. רעיון האינדוקס הממוכן קדם בהרבה לגוגל (ואף לאינטרנט). עליו התבסס כל מנוע חיפוש, עד כמה שידיעתי מגעת, ובפרט אלו של יאהו, אלטה-ויסטה ואחרים שקדמו לזה של גוגל. 2. אין לי נגיעה בדטה בייסים. פעם הייתה עוינות הדדית אבל היום אנחנו כבר מיודדים, אם כי עדיין בלי הקטע הפיסי. 3. אכן גם גוגל צריכה לשמור גיבויים, אם כי אולי זה קורה מאליו, מעצם העובדה שכל מידע שמשמש את מנוע החיפוש משוכפל להרבה מכונות, כדי לתמוך בריבוי משתמשים. כך, כאשר מכונה קורסת, וזה כידוע עניין של זמן עד שזה קורה, ממשיכות לפעול המכונות עם העותקים האחרים של חלק המידע שנעלם. 4. נראה לי שהמידע שמאכסן ה-crawler שהזכרת הוא הדפים בשלמותם, ולא הטבלה שהזכרתי. אגב, בפועל, המילים לאו דווקא מסודרות אלפא-בייתית, אלא באמצעות Hash_table [Wikipedia] (אם ההסבר שם לא מספיק אנסה לפשט את הרעיון המגניב הזה). 5. נדמה לי שאצל גוגל הוא יושב בזיכרון. זכרי שגישה לזיכרון היא עניין של עשר נאנו-שניות (כנראה). כמובן, כל המידע הזה מחולק לחלקים קטנים ומפוזר על מאות אלפי מכונות, כדי לזרז את העניינים, ונתבים היודעים לזהות במהירות אל איזו קבוצה להפנות שאילתא נתונה. אם אני זוכר נכון, כל שאילתא מופנית אל יותר מקבוצה אחת, וזו שחוזרת קודם לנתב - חוזרת אל עוד לקוח מרוצה. לילה טוב! |
|
||||
|
||||
לפני ימים אחדים חיפשתי שם מסוים בגוגל, שם של אישה שהיא פרופסור. לצערי אינני זוכר מהו, אבל כשרשמתי את השם המלא לבדו קיבלתי פחות ממאה תוצאות. כשרשמתי גם "פרופ"' (הכל במרכאות כמובן) קיבלתי אלפי תוצאות. תופעה כזו כבר קרתה לי מספר פעמים עם צירופים אחרים. אתה מבין איך זה יכול לקרות? |
|
||||
|
||||
מוזר. אשמח לבחון דוגמא כזו. זה מזכיר לי שכל פעם אני צריך להסביר מחדש למי שהגיון החיפוש הממוכן זר לו, שאם לא חזרו תוצאות או שהן מעטות מדי ולא מכילות את המבוקש, אזי הוספת דרישות, למשל מילת חיפוש נוספת על אלו שניתנו, לא "תעזור" למנוע. זאת בניגוד לאופן בו היינו נוהגים במקרה של חפשן אנושי (נניח ספרן לפני שלושים שנה, או מחפש אוצרות של שודדי ים). אצל אדם, הוספת פרטים על אלו שכבר ניתנו ולא הניבו דבר, יכולה רק לעזור. הסיבה היא כפולה: המנוע מחפש כבר בפעם הראשונה בכל המקומות ולכן הוספת פרטים יכולה רק לכווץ את רשימת התוצאות, ולא לכוון אותו למקומות חדשים. הסיבה השניה היא שהמנוע מחפש במדוייק את מה שנשאל, ואם אין אז אין. אילו אדם, אם תוסיף לו פרטים, לוקח בחשבון שחלק מהם עשוי להיות לא מדוייק (למשל תורכיה לעומת טורקיה או כתיב מלא לעומת חסר) ולכן אם אין תוצאות הוא יתעלם מהם או ימיר אותם לצורה אחרת שאותה הוא יחפש. לזה יש סייג, מאחר ומנגנוני החיפוש מסוגלים במידה מסויימת כבר היום לחפש באופן לא מדוייק, ע"י תיקון שגיאות כתיב, התחשבות בהטיות ובמילים דומות. |
|
||||
|
||||
למה? המנוע לא מכיר פונקצית OR? |
|
||||
|
||||
המנוע כן, המשתמש המבוגר הממוצע פחות. |
|
||||
|
||||
המנוע מכיר את הפונקציה, אבל הוא לא אמור להפעיל אותה כשרושמים את המלים לחיפוש במרכאות. כעת נכון שבחודשים האחרונים הוא משום מה עושה גם את מה שאינו אמור לעשות, אבל מקרים כאלה קרו לי גם לפני שנים אחדות - כאשר לא עשה זאת. יותר מזה, כשרשמתי עכשיו (בדוגמא זו) את השם יחד עם התואר, התוצאות הראשונות שהופיעו היו שונות מאלה הראשונות בלי התואר - לפחות בעמודים הראשונים לא היה שימוש ב''או''. אגב, לא ברור לי גם למה הוחלט להתעלם מהמרכאות, ואם יש דרך אחרת לקבל רק את התוצאות של ''ו-''. מאוד מרגיז. |
|
||||
|
||||
אם אינני טועה, הוא תמיד מסדר לך את התוצאות לפי מידת ההתאמה לשאלה שלך. אני מוצאת שזה ידידותי מצדו כי השאלות שלי לא תמיד הכי חכמות. |
|
||||
|
||||
הוא אכן מסדר את התוצאות על פי מידת ההתאמה, אבל מה ההבדל (במובן הזה) בין מידת ההתאמה ל"XY" ול"פרופ' XY"? |
|
||||
|
||||
זה האלגוריתם של דירוג התוצאות... אני לא מכיר את זה של גוגל אבל מקובל לתת לכל מילה ''מיקום סמנטי'', ז''א המילה פרופ' קרובה סמנטית למילים שקשורות לאקדמיה ולכן מסמכים בהם הרבה יש הרבה מילים שקשורות לאקדמיה יופיעו קודם אם השאילתה מופיעה המילה פרופ'. את הקרבה הסמנטית בין מילים מוצאים (בד''כ, ואני מניח שגם בגוגל) לפי הקרבה בין המילים בטקסטים השונים. |
|
||||
|
||||
אז האם המחשב כבר יודע סמנטיקה? |
|
||||
|
||||
המהנדסים של גוגל יודעים. |
|
||||
|
||||
בעניין "ו-" בגוגל, תנסה להשתמש ב + לפני המלים שחייבות להיות כלולות בתוצאות. |
|
||||
|
||||
אבל אם אני רוצה גם את הסדר הספציפי? |
|
||||
|
||||
אולי "word1 word2"+ |
|
||||
|
||||
את כל אלה אני יודע, כמובן - שהרי אחרת לא הייתי שואל את השאלה...:) |
|
||||
|
||||
אני חושבת שזה כי גוגל כן עושה OR על מילות החיפוש. אם תחפש למשל: ברטולד חרסה (בלי מרכאות, וחרסה זה עוד שם נרדף לשמש) תקבל 3 תוצאות. עם תוסיף לחיפוש עוד מילה: ברטולד חרסה נציג תקבל 1,150 תוצאות. הוא פשוט מציג תחילה את אלה עם ה-AND ולכן נראה שהוא לא עושה OR. או שהוא עושה OR כשיש מעט מאד תוצאות על ה AND. |
|
||||
|
||||
בדיוק. וגם: תגובה 573797 |
|
||||
|
||||
קצת טפשי, אבל ניסית בלי גרש בפרופ'? זה סימן פיסוק שנדמה לי שנדיר בשפות העולם בסוף מילה, ואולי יש לו משמעות מיוחדת עבור מנוע החיפוש. |
|
||||
|
||||
לא נראה לי שגרש משנה לו משהו. |
|
||||
|
||||
ואם כבר מדברים על אינדקסים לספרים, הנה1 אינדקס שכיחות ע"פ זמן של גוגל לכל הספרים שהם אינדקסו (כמה אחוזים מכלל הספרים שאי פעם נדפסו; מישהו כבר בטח כתב על זה כאן, אבל לא מצאתי איפה). |
|
||||
|
||||
מוזר. אני קיבלתי שתי תוצאות. |
|
||||
|
||||
ב־Duck אני מקבל כרגע רק את התגובה לעיל של ג'וד. |
|
||||
|
||||
אחת מהן באייל הקורא? |
חזרה לעמוד הראשי | המאמר המלא |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |