ABA


"איפה ניתן לקרוא על שיטת חיפוש המידע של גוגל?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10053 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10053
MrSus
חבר מתאריך 8.5.09
1801 הודעות
   01:26   03.09.10   
אל הפורום  
  איפה ניתן לקרוא על שיטת חיפוש המידע של גוגל?  
 
   הבנתי שבלימודי מדעי המחשב באחד הקורסים, לומדים על שיטת חיפוש המידע של גוגל - איך בעצם מנוע החיפוש של גוגל מצליח למצוא מידע בשברירי שניה מתוך מאגרי מידע עצומים.

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

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

תודה רבה.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  בגדול זה לא הכי ברור, אבל יש המון חומר תיאורטי בנושא Nokia 03.09.10 13:51 1
     ואו, כל הכבוד! MrSus 03.09.10 15:28 2
         בוא אני אתן לך חומרים מקורס שעשיתי בתחום.. Nokia 03.09.10 15:45 4
             תודה רבה על המידע MrSus 03.09.10 17:26 5
     סחטיין על התגובה ronen333  03.09.10 15:43 3
  תוכל למצוא מידע נוסף ומעניין פה, Deuce  03.09.10 17:40 6

       
Nokia
חבר מתאריך 1.7.02
538 הודעות
   13:51   03.09.10   
אל הפורום  
  1. בגדול זה לא הכי ברור, אבל יש המון חומר תיאורטי בנושא  
בתגובה להודעה מספר 0
 
   מן הסתם אף אחד לא יודע בדיוק איך גוגל עובד, כי זה אחד הסודות העסקיים הכי גדולים שיש. מדי פעם גוגל מדליפים מידע על איך החוות שרתים שלהם נראית וקצת על המערכות שמשתמשים בהם. גוגל בנו נניח דאטהבייס שנקרא BigTable מסוג Key-Value שהם נעזרים בו אבל הוא שלהם ולא נראה לי שהוא יצא לשוק.

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

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

בשביל זה משתמשים במנוע חיפוש ברכיבים הבאים:

Crawler - רץ כל הזמן ברקע. המטרה שלו היא להגיע לכמה שיותר דפים באינטרנט. בגדול מה שהוא עושה זה להתחיל הילוך אקראי על כמה אתרים ולהתקדם מהם לפי הלינקים שיש מהם (ואז מהם להתקדם לפי הלינקים וכו'). ברגע שהקרוולר מגיע לאתרים, הוא מעביר אותם לIndexer שהמטרה שלו לשמור אותם.
גוגל קוראים לCrawler שלהם גוגלבוט http://en.wikipedia.org/wiki/Googlebot

Indexer - מקבל דפים מהCrawler ודואג לשמור אותם בIndex Repository

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

Query Processor - בהנתן שאילתא של היוזר, תרצה להוציא ממנה רק את החלקים הרלוונטים והיחודיים לה. המילה The מופיעה כמעט בכל מסמך אז מן הסתם היא תעניין אותך פחות, וככה יש רשימה של Stop Words בד"כ שהן המילים הנפוצות באנגלית ותעדיף למחוק אותן מהשאילתא (כי זה סתם יגדיל לך את זמן החיפוש).
עוד דברים שלפעמים עושים הם Stemming שזה להוריד את המילה לשורש הבסיסי שלה. נניח Running -> Run (ואז גם עושים את זה במבנה נתונים של האינדקס)

Ranker - החלק שהוא בעצם ה"קרם דה לה קרם" של מנוע חיפוש. על כל שאילתא יש לך המון מידע, והמטרה שלך היא להציג בראש התוצאות את התוצאות הרלוונטיות ביותר. אז איך עושים את זה ? בגדול יש לך אלגוריתמים מסוג שנקרא TF-IDF שהוא מקבל שאילתא ורשימת מסמכים ובודק התאמה של השאילתא למסמכים http://en.wikipedia.org/wiki/Tf%E2%80%93idf ויש לך כמובן את מה שגוגל פיתחו שנקרא PageRank http://en.wikipedia.org/wiki/PageRank שהמטרה שלו היא להגיד שאתר נמדד לא בהכרח לפי ההתאמה שלו לשאילתא מסויימת, אלא לכל אתר יש משקל ואם מילים של שאילתא מופיעות באתר עם משקל גבוה, אז כנראה שהוא מתאים לשאילתא. המשקל עצמו נקבע בעיקר לפי הלינקים הנכנסים לאתר ונעשה שימוש במטריצות מעבר מאתר כלשהו וההסתברות לעבור לאתר אחר וככה בסוף פיתחו נוסחה שתקבע מעבר מאתר לאתר. הייתה בזה בעייתיות כי לפעמים האתרים לא יוצאים קשורים לתחום שאתה מחפש בכלל. בשביל זה פיתחו אלגוריתםשנקרא Hilltop http://en.wikipedia.org/wiki/Hilltop_algorithm שאומרים שגוגל עושים בו שימוש, שהוא מתנהג בדומה לפייג'ראנק רק שהוא נותן ציונים לאתרים ודואג למדוד לפי הלינקים הנכנסים הקשורים לתחום (נניח אתר יהיה נחשב מדורג גבוה בתחום כלשהו, אם אתר שהוזן מראש ע"י המפתחים כאתר משמעותי בתחום הזה מקשר אליו)

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MrSus
חבר מתאריך 8.5.09
1801 הודעות
   15:28   03.09.10   
אל הפורום  
  2. ואו, כל הכבוד!  
בתגובה להודעה מספר 1
 
   תודה רבה על ההשקעה בתגובה הארוכה והמפורטת!

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

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

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nokia
חבר מתאריך 1.7.02
538 הודעות
   15:45   03.09.10   
אל הפורום  
  4. בוא אני אתן לך חומרים מקורס שעשיתי בתחום..  
בתגובה להודעה מספר 2
 
   את רובם אני מניח שתוכל להבין גם בלי ידע מעמיק

זאת מצגת שמה שמסבירים בה בעיקר זה מבוא (כמו שכתבתי לך) ושיטות לייצוג המילון:
http://moodle.cs.huji.ac.il/cs09/mod/resource/view.php?id=3069

זאת מצגת שמסבירים בה איך לקודד את הרשימות של המסמכים שכל מילה מצביעה עליהם (משתמשים שם בקידודים נפוצים כמו קידוד האפמן,גאמא ואריתמטי):
http://moodle.cs.huji.ac.il/cs09/mod/resource/view.php?id=3104

זאת מצגת שמדברת על קידודים של כל הטבלה של מילה ורשימת מסמכים:
http://moodle.cs.huji.ac.il/cs09/mod/resource/view.php?id=3128

פה יש דיבור על הIndex Repository יותר במונחים של מקום בדיסק ואכסון:
http://moodle.cs.huji.ac.il/cs09/mod/resource/view.php?id=3538

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

אולי מה שאתה מחפש זה יותר מערכות מבוזרות שנעזרים בהן לטיפול בהרבה מידע
בסגנון BigTable של גוגל.
בשביל זה אני ממליץ לך אולי לקרוא על מערכת כמו Cassandra שזה דאטהבייס שפייסבוק משתמשים בו בשביל עבודה מבוזרת ואומרים שהוא מזכיר את BigTable של גוגל: http://en.wikipedia.org/wiki/Apache_Cassandra

יש מהמערכות בסגנון גם את Project Voldemort
http://project-voldemort.com/

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MrSus
חבר מתאריך 8.5.09
1801 הודעות
   17:26   03.09.10   
אל הפורום  
  5. תודה רבה על המידע  
בתגובה להודעה מספר 4
 
   יש פה המון מידע, אך אני לא מבין חצי מהדברים.

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

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

בכל אופן, עזרת לי מאד בתשובתיך המפורטות.
באמת תודה רבה!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   15:43   03.09.10   
אל הפורום  
  3. סחטיין על התגובה  
בתגובה להודעה מספר 1
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   17:40   03.09.10   
אל הפורום  
  6. תוכל למצוא מידע נוסף ומעניין פה,  
בתגובה להודעה מספר 0
 
http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/indexing.html






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

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net