Loading AI tools
מוויקיפדיה, האנציקלופדיה החופשית
אלגוריתם רשויות ורכזים (Hubs and Authorities; בשמו הרשמי Hyperlink-Induced Topic Search, בראשי תיבות: HITS) הוא אלגוריתם לניתוח קישורים אשר נועד לדרג דפי אינטרנט, ופותח על ידי ג'ון קליינברג (Jon Kleinberg). הרעיון מאחורי HITS נבע מתוך הצורך בהבנה מעמיקה של יצירת דפי האינטרנט וחיפושם בזמן המצאת האינטרנט. דף אינטרנט נקרא "רכז" אם הוא מצביע על הרבה דפי אינטרנט אחרים. דף "רשות" טוב הוא דף אשר הרבה רכזים מצביעים עליו.
מבנה נתונים | גרף מכוון |
---|---|
ממציא | ג'ון קליינברג |
האלגוריתם, אם כן, פולט שני פרמטרים לכל דף, "רשות" אשר מעריך את הקישורים אל העמוד, ו"רכז" אשר מעריך את הקישורים מהעמוד לעמודים אחרים.
האלגוריתם נוצר על ידי ג'ון קלינברג בשנת 1997 בעת שעבד ב-IBM ונועד לדרג אתרים, מבחינת דיוק נחשב למדויק ביותר מבין האלגוריתם אבל מבחינת יעילות נחשב למוצלח פחות. בשל היותו פחות יעיל מאלגוריתם אחרים אין כמעט מנועי חיפוש שמשתמשים בו.
חברות החיפוש מעדיפות להשתמש ב-PageRank של גוגל אשר מבחינת יעילות נחשב לטוב ביותר, אחד ממנועי החיפוש הגדולים אשר עדיין משתמשים באלגוריתם HITS הוא ask.com אשר מטרתו לתת למשתמש את התשובה הטובה ביותר לכל שאלה.
בעוד ש-PageRank שולף ממאגר נתונים את תוצאות החיפוש בתוך זמן אפסי (ננושניות בודדות), כל חיפוש בעזרת אלגוריתם HITS מצריך להפעיל את האלגוריתם מחדש מה שגורם לתוצאות החיפוש להיות אטיות באופן משמעותי.
ישנם כתבי עת אשר נחשבים למשפיעים יותר מאשר כתבי עת אחרים, למשל Science ו-Nature. כאשר משווים שני כתבים עת מודדים אותם על פי מספר הציטוטים בהם, בעזרת האלגוריתם ניתן לתת ערך רב יותר לציטוטים מאתרים כמו Science ו-Nature מאשר מציטוטים מאתרים פחות נחשבים. במילים אחרות עדיף לקבל אזכורים בכתבי עת נחשבים מאשר מכתבי עת פחות נחשבים ואת זה האלגוריתם עושה בהצלחה.
תופעה זו קיימת גם באינטרנט, ספירת הקישורים שמובילים לדף מסוים יכולה לתת הערכה על האיכות שלו, או לפחות על ההתבלטות שלו ברשת, אך לעיתים דף עם פחות קישורים יכול להיות משמעותי יותר אם הקישורים מופנים ממנועים חיפוש גדולים כגון יאהו, גוגל, MSN.
באלגוריתם HITS השלב הראשון הוא למצוא מספר עמודים מצומצם הכי רלוונטיים בעזרת אלגוריתם חיפוש מבוסס טקסט, לקבוצת דפים זו נקרא "קבוצת השורש".
לאחר מכן ניצור "קבוצת בסיס" אשר תכלול בתוכה את "קבוצת השורש" והקשרים אשר יוצאים ממנה, בנוסף לכך נכלול מספר עמודים אשר מקושרים לדפים בקבוצת השורש.
בזכות יצירת כל הקשרים למעלה נוצר תת-גרף, בשביל לחסוך בזמן ריצה, אלגוריתם HITS רץ רק על תת-הגרף שנוצר ולא על האינטרנט כולו.
לדברי קלינברג, רוב הרשויות הרלוונטיות יהוו חלק נכבד "מקבוצת הבסיס" ובכך האלגוריתם יחזיר תשובה נכונה ככל הניתן.
ערכי הרשות והרכז נקבעים זה מתוך זה. ערך הרשות של דף יעלה אם רכז טוב מצביע עליו, ובאופן דומה ערכו של רכז יעלה אם הוא מצביע על רשות טובה.
האלגוריתם רץ מספר מחזורים, אשר מבצעים בכל מחזור שני שלבים בסיסים:
האלגוריתם לחישוב הרכז והרשות מחושב כך:
HITS, כמו אלגוריתמי חיפוש אחרים, הוא אלגוריתם לולאתי שמבוסס על קישורים באינטרנט. למרות זאת ישנם כמה הבדלים מהותיים:
על מנת להתחיל את הדירוג, דרגת כל רשות ורכז ייקבעו ל-1.
אנו מתכוונים לבצע שני עדכונים: עדכון ערכי רשויות, ועדכון ערכי רכזים.
כלל עדכון הרשויות – לכל רשות p נבצע עדכון של ערכה –
כאשר n מייצגת את מספר הרכזים אשר מפנים אל רשות זו.
כלל עדכון הרכזים – לכל רכז p נבצע עדכון של ערכו –
כאשר m מייצגת את מספר הרשויות אשר רכז זה מצביע עליהן.
על מנת להגיע לתוצאה אופטימלית מבצעים על תהליך החישוב מספר חזרות, ואחרי כל חזרה מעדכנים את ערך הרשות/רכז.
G = set of pages
for page in G do
page.auth = 1 // page.auth is the authority score of the page p
page.hub = 1 // page.hub is the hub score of 'page
function HubsAndAuthorities(G)
for step in (1 to k) do // run the algorithm for k steps
norm = 0
for page in G do // update all authority values first
page.auth = 0
for inNeighbor in page.incomingNeighbors do // page.incomingNeighbors is the set of pages that link to 'page'
page.auth += inNeighbor.hub
norm += square(page.auth) // calculate the sum of the squared auth values to normalise
norm = sqrt(norm)
for page in G do // update the auth scores
page.auth = page.auth / norm // normalise the auth values
norm = 0
for page in G do // then update all hub values
page.hub = 0
for outNeighbor in page.outgoingNeighbors do // page.outgoingNeighbors is the set of pages that 'page' links to
p.hub += outNeighbor.auth
norm += square(page.hub) // calculate the sum of the squared hub values to normalise
norm = sqrt(norm)
for page in G do // then update all hub values
page.hub = page.hub / norm // normalize the hub values
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.