PageRank گوگل چگونه محاسبه می شود
جزئیات دقیق این مقیاس مشخص نیست ، چرا که PageRank صفحات هر ماه و در زمانی که گوگل رتبه بندی خود را انجام می دهد عوض می شود . اگر فرض کنیم که مقیاس به صورت لگاریتمی است، پس گوگل می تواند به بالاترین PageRank عدد ۱۰ را نسبت دهد و بقیه را نسبت به آن رتبه بندی نماید. همچنین خود نوار ابزار گوگل بعضی مواقع PageRank را حدس می زند این به خاطر این است که به صفحاتی که تازه Upload شده اند نیز PageRank تعلق می گیرد.
این طور به نظر می رسد که نوار ابزار به URL نگاه می کند و از روی آن صفحه مادر ( اشاره کننده ) را تشخیص می دهد و اگر صفحه مادر دارای PageRank باشد، نوار ابزار عدد ۱ را از آن کم می کند و به صفحه مذکور PageRank نسبت می دهد. و اگر از این راه نتواند PageRank را حدس بزند آنگاه عبارت PageRank بر روی نوار ابزار خاکستری می شود و عبارت No PageRank Information available پس از قرار گرفتن موس بر روی آن نمایش داده می شود.
● PageRank چیست؟
به طور مختصر می توان گفت که : PageRank یک “رای” به اهمیت یک صفحه خاص است که توسط تمامی صفحات دیگر وب به آن اختصاص داده می شود. هر link به صفحه یک رای مثبت به PageRank آن می باشد و اگر لینکی وجود نداشته باشد رای ممتنع می گردد (دقت کنید که رای منفی نمی شود).
خود گوگل PageRank را به شرح زیر تعریف می نماید.
“فرض کنیم که صفحه A دارای صفحات T۱ تا Tn است که به آن اشاره می کنند. d هم یک فاکتور کند کننده ( damping factor ) است که مقداری بین ۰ تا ۱ دارد. معمولا برای d مقداری معادل ۰.۸۵ انتخاب می شود. همچنین C(A) تعداد لینک هایی است که این صفحه به صفحات دیگر داده است. در این صورت PageRank صفحه A مساوی است با :
PR(A) = (۱-d) + d(PR(T۱)/C(T۱)+…+PR(Tn)/C(Tn))
باید توجه داشت که PageRank به صورت یک احتمال پراکندگی ( probability distribution) بوجود می آید و از یک الگوریتم تکرار شونده استفاده می کند.”
اجازه دهید که نحوه عملکرد این فرمول را با تقسیم وظایف اجزای آن توضیح دهیم :
۱. PR(Tn) : هر صفحه PageRank خود را دارد. که PR(T۱) برای صفحه اول سایت است و PR(Tn) برای nامین صفحه ای که در سایت به آن می رسیم.
۲. C(Tn) : هر صفحه رای خود را به صورت مساوی بین صفحاتی که به آنها لینک داده است تقسیم می کند. تعداد لینک های خارج شده از صفحه ۱ را با C(۱) و برای صفحه nام را با C(n) نشان داده ایم.
۳. PR(Tn)/C(Tn) : اگر صفحه A از صفحه n یک لینک داشته باشد آنگاه سهم رای صفحه A برابر می شود با PR(Tn)/C(Tn)
d(..۴ : تمامی آراء با هم جمع می شود و برای اینکه از افزایش بی رویه وزن برخی از صفحات جلوگیری شود این مجموع در عدد ۰.۸۵ ضرب می شود.
۵. (۱-d) : برای اینکه میانگین PageRank ها همواره یک باشد.
● نحوه محاسبه PageRank
فهمیدیم که PageRank صفحه به PageRank صفحاتی که به آن لینک داده اند بستگی دارد. بنابراین، این طور به نظر می آید که ما نمیتوانیم PageRank یک صفحه را به دست بیاوریم مگر آنکه PageRank صفحات اشاره کننده به آن را محاسبه کنیم. و همچنین اگر یک صفحه دارای لینک به خودش باشد و یا اینکه صفحات از یک شکل دایره ای لینک دادن استفاده کرده باشند تکلیف چیست؟
اما حقیقت امر به این بدی نیست . یعنی ما می توانیم PageRank صفحه را بدون دانستن PageRank صفحات دیگر به دست آوریم. این عجیب به نظر می رسد ولی اساسا هر بار که ما محاسبه را تکرار می کنیم یک رقم به رقم نهایی نزدیک تر می شویم. پس تنها چیزی که باید به خاطر داشت مقدار به دست آمده در هر بار محاسبه فرمول می باشد و آن را باید تکرار کرد تا آنکه عدد دیگر به دست آمده آن چنان تغییری نکند. در این زمان به عدد PageRank واقعی رسیده ایم.
یک مثال ساده : دوصفحه که هر کدام به یکدیگر اشاره می کنند.
هر کدام از این صفحات تنها یک لینک خروجی دارد . پس C(A) = ۱ , C(B) = ۱
نمی دانیم که برای شروع PageRank این صفحات چیست . پس حدس می زنیم.
▪ حدس ۱ :
حدس می زنیم که PageRank صفحات ۱ است و محاسبه را انجام می دهیم.
d=۰.۸۵
PR(A) = (۱-d) + d(PR(B)/۱)
PR(B) = (۱-d) + d(PR(A)/۱)
که می شود
PR(A) = ۰.۱۵ + ۰.۸۵ * ۱ = ۱
PR(B)= ۰.۱۵ + ۰.۸۵ * ۱ = ۱
اعداد اصلا تغییر نمی کند ، پس به این نتیجه می رسیم که حدس اول بسیار حدس خوبی بوده است.
▪ حدس ۲ :
حدس اول خیلی ساده ما را به نتیجه رساند ، پس ممکن است که درست نباشد. اجازه دهید حدس را به عدد صفر تغییر دهیم و محاسبات را تکرار کنیم.
PR(A) = ۰.۱۵ + ۰.۸۵ * ۰ = ۰.۱۵
PR(B)= ۰.۱۵ + ۰.۸۵ * ۰.۱۵ = ۰.۲۷۷۵
و دوباره تکرار می کنیم :
PR(A) = ۰.۱۵ + ۰.۸۵ * ۰.۲۷۷۵ = ۰.۳۸۵۸۷۵
PR(B)= ۰.۱۵ + ۰.۸۵ * ۰.۳۸۵۸۷۵ = ۰.۴۷۷۹۹۳۷۵
و دوباره تکرار می کنیم :
PR(A) = ۰.۱۵ + ۰.۸۵ * ۰.۴۷۷۹۹۳۷۵ = ۰.۵۵۶۲۹۴۶۸۷۵
PR(B)= ۰.۱۵ + ۰.۸۵ * ۰.۵۵۶۲۹۴۶۸۷۵ = ۰.۶۲۲۸۵۰۴۸۴۳۷۵
به همین ترتیب اعداد بزرگتر می شوند ولی آیا اعداد از یک هم بیشتر می شوند؟ و اگر عددی از یک بیشتر شود چه باید کرد؟
▪ حدس ۳ :
حالا فرض کنیم که عدد شروع ۴۰ است. یعنی PageRank صفحات A و B عدد ۴۰ است. پس خواهیم داشت:
PR(A) = ۰.۱۵ + ۰.۸۵ * ۴۰ = ۳۴.۱۵
PR(B)= ۰.۱۵ + ۰.۸۵ * ۳۴.۱۵ = ۲۹.۱۷۷۵
و دوباره تکرار می کنیم :
PR(A) = ۰.۱۵ + ۰.۸۵ * ۲۹.۱۷۷۵ = ۲۴.۹۵۰۸۷۵
PR(B)= ۰.۱۵ + ۰.۸۵ * ۲۴.۹۵۰۸۷۵ = ۲۱.۳۵۸۲۴۳۷۵
خوب، همان طور که پیداست اعداد به سمت عدد ۱ کم می شوند و زمانی که به عدد یک برسند دیگر تغییر نخواهند کرد.
کد اجرایی و همچنین برنامه مورد نظر این محاسبات که با حدس صفر شروع شده :