شعار العنصر 14

العنصر 14، قناة يوتيوب علميّة عن تكنولوجيا الحاسوب التي نتعامل معها في حياتنا اليوميّة

PageRank — الخوارزمية التي كانت بداية تفوق جوجل

20/12/2019


تمهيد

في حلقتنا الأولى تناولنا محركات البحث و تكلمنا عن أن أهم تحدٍ يواجه محركات البحث هو ترتيب النتائج بحيث ان النتيجة المطلوبة تكون في بداية الترتيب. تاريخيا، خوارزمية (PageRank) لترتيب الصفحات التي اخترعها مؤسسا جوجل أحدثت ثورة في محركات البحث. ما الفكرة الأساسية وراء هذه الخوارزمية؟ وكيف تعمل؟ كيف حاول الناس التحايل على هذه الخوارزمية؟ و كيف تقوم محركات البحث بالتغلب على محاولات التحايل؟

مقدمة

حالياً، من النادر أن يضطر المستخدم إلى تجاوز الصفحة الأولى من النتائج، أو حتى النظر لأسفل الصفحة الأولى. الوضع كان مختلفاً في منتصف التسعينيات عندما كانت محركات البحث في بداياتها. كان من الطبيعي أن ينظر المستخدم إلى الصفحة الثانية أو الثالثة لإيجاد النتيجة المطلوبة. في هذه الفترة أدرك الكثيرون أهمية الروابط بين الصفحات على الإنترنت لترتيب نتائج البحث من خلال تحديد أهمية كل صفحة. الرابط: هو النص الذي يكون عادةً باللون الأزرق و من خلال النقر عليه نستطيع الوصول لصفحة أخرى.

في سنة 1996 تم إختراع PageRank من قبل ليري بيج (من هنا جاءت التسمية في بيج رانك) و سيرجي برين، اللذان أسسا جوجل بعد ذلك بعامين .PageRank ساعد جوجل على ترتيب نتائج البحث بطريقة أفضل من منافسيها في حينه مثل AltaVista و Excite, Lycos.

الروابط كوسيلة لتحديد أهمية الصفحات

دعونا نبدأ بنظرة مبسطة للفكرة الأساسية لـ(PageRank). الفكرة هي النظر للروابط على أنها تصويت من الصفحة التي يوجد فيها الرابط للصفحة التي تربط إليها. دعونا نركز على الصفحة (أ) سريعاً. من الممكن أن نتخيل أن الشخص الذي كتب الصفحة (أ) فكر في مرجع لما يكتبه و قرر ان الصفحة (ب) احسن مرجع، و بالتالي أنشأ رابطاً من صفحته (أ) الى الصفحة (ب)، و كأنه صوَّت للصفحة (ب).

في المثال هنا، كل الروابط لها نفس الأهمية، لكن في الواقع الأمور تختلف. دعونا نأخذ مثالاً: لدينا صفحتين (A) و (B). (A) لها رابط من موقع مهم مثل ( بي بي سي)، و (B) لها رابط من موقع أقل أهمية مثل موقعي الشخصي (مع احترامي لنفسي). بالرغم من ان الصفحة (A) والصفحة (B) لهما نفس العدد من الروابط، إلا أن (بي بي سي) مهمة جداً و بالتالي الروابط من (بي بي سي) لها قيمة أعلى من قيمة روابط من مواقع أقل أهمية مثل موقعي. هذه هي المشكلة التي تعالجها PageRank؛ كيف تحدد أهمية الصفحات من خلال أهمية الروابط لهذه الصفحات؟ و كيف تحدد أهمية الروابط من خلال أهمية الصفحات التي تنطلق منها هذه الروابط؟

PageRank

هذه الصياغة لـ(PageRank) تبدو غريبة، مثل أيهما أول الدجاجة أم البيضة؟! لمعرفة أهمية الصفحات يلزمنا معرفة أهمية الروابط، و لمعرفة أهمية الروابط، يلزمنا معرفة أهمية الصفحات. هذا التعريف يسمى تعريفاً تكرارياً! مشكلة الدجاجة و البيضة ليس لها حل، لكن مشكلة PageRank لها حل!

كلمحة سريعة، هذه نتيجة حساب الـPageRank التي سوف نتوصل إليها. سننظر لأهمية الصفحة، التي هي الـPageRank للصفحة على أنها نسبة مئوية. الصفحة (هـ) لها اعلى PageRank 40٪، بعدها الصفحة (د) 38٪، الصفحة (ج) 13٪، الصفحة (ب) 8٪، أ 3٪. المجموع 100٪.

بسبب التعريف التكراري (مشكلة الدجاجة و البيضة التي تحدثنا عنها)، سنستخدم أسلوباً يسمى أسلوباً تكرارياً لحساب PageRank. لدينا 5 صفحات، في البداية نفترض أن لها نفس الأهمية، و بالتالي 100%/5 = 20% لكل صفحة. تذكروا أن هذه فرضية. لكن كيفية توزيع ال100٪ في البداية على الصفحات ليس له تأثير على النتيجة النهائية! وهكذا أصبح لدينا أهمية (او PageRank) لكل صفحة. بالعودة للتعريف، أهمية الرابط تعتمد على أهمية الصفحة التي ينطلق منها الرابط. ونوزع الـ(PageRank) لكل صفحة بالتساوي على الروابط التي تنطلق من هذه الصفحة.

الصفحة (أ) ينطلق منها رابط واحد، لذلك هذا الرابط يأخذ كل الـPageRank للصفحة. الصفحة (ب) ينطلق منها رابط واحد أيضاً، فيأخذ كل الـPageRank للصفحة (ب). الصفحة (ج) ينطلق منها أربعة روابط، و بالتالي نقسم الـPageRank عليها بالتساوي، فكل رابط يحصل على 5٪. الصفحة (د) ينطلق منها رابطين، فكل رابط له 10٪. الصفحة (هـ) ينطلق منها رابط واحد، فيأخذ ال20٪ كلها من الصفحة (هـ).

لو عدنا لفكرة التصويت التي تحدثنا عنها، فبدل أن يكون لكل رابط صوت، نفرض هنا أن الصفحة عندها كم معين من الأصوات ممكن تعطيها كلها لصفحة واحدة مثل الصفحة (أ) للصفحة (ب)، أو تقسمها على مجموعة صفحات مثل الصفحة (ج) للصفحات (أ، ب، د، هـ).

بذلك أصبحنا نعرف الأهمية لكل رابط، و بناءً عليه نحدد الأهمية لكل صفحة، هنا تأتي مسألة التعريف التكراري. أهمية الصفحة (PageRank الصفحة) هو مجموع أهمية الروابط لهذه الصفحة. الصفحة (أ) تأخذ ٥٪ جاءت أصلا من الصفحة (ج)، الصفحة (ب) تأخذ 25٪: 20٪ منها جاءت أصلا من الصفحة (أ) و 5٪ من الصفحة (ج). الصفحة (ج) تأخذ 10٪ من الرابط القادم من الصفحة (د). أما الصفحة (د) فتأخذ 25٪: 5٪ منها من الصفحة (ج) و 20٪ من الصفحة (هـ). بالنسبة للصفحة (هـ) فتأخذ 35٪: 20٪ منها من الصفحة (ب)، 5٪ من الصفحة (ج)، و 10٪ من الصفحة (د). هكذا نكون وصلنا لنهاية الدورة الأولى من الأسلوب التكراري لحساب PageRank. في كل دورة الـPageRank ينتقل من الصفحات للروابط و بعدها من الروابط للصفحات.

الدروة الثانية تبدأ من الوضع الذي انتهت فيه الدورة الأولى، ونكررالعملية ذاتها: بداية من قيمة الـPageRank لكل صفحة في نهاية الدورة الأولى ننقل PageRank للروابط و منها مجددا للصفحات.

السؤال الذي يبرز هنا، كم مرة يجب تكرار العملية؟ أو كم عدد الدورات اللازمة؟ الجواب هو اننا نستمر بالتكرار حتى تثبت قيم PageRank ولا تتغير بين الدورات. بإمكانكم ان تجربوا. في الدورة الثالثة تثبت قيم الـPageRank و ستحصلون على نفس القيم في الدورة الثانية، لذلك من يمكننا التوقف بعد 3 دورات في هذا المثال. طبعاً، عندما يطبق محرك البحث PageRank على كل الإنترنت كاملةً، سنحتاج لعشرات الدورات للوصول لحالة الثبات. في النهاية ينتج عندنا الترتيب التالي للصفحات بناء على الـPageRank.

من المفيد أن نقارن الترتيب الناتج من PageRank بالترتيب الناتج عن استعمال عدد الروابط لتقييم كل صفحة (دون الأخذ بعين الاعتبار فكرة أهمية كل رابط). دعونا نركز على الصفحات (ب) و (ج): بناء على عدد الروابط كان ترتيب الصفحة (ب) الثانية أو الثالثة (لانها تتساوى في عدد الروابط مع الصفحة (د) والصفحة (ج) ترتيبها الرابعة أو الخامسة (لانها تتساوى في عدد الروابط مع الصفحة (أ). أما بناءً على (PageRank) كان ترتيب الصفحة (ج) الثالثة بوضوح و (ب) الرابعة، السؤال: لماذا؟ الجواب:الصفحة (ج) يدخل لها رابط واحد، إلا أنه رابط من صفحة مهمة (مثل ـبي بي سي)، التي هي الصفحة (د). أما الروابط للصفحة (ب) فهي من صفحات أقل أهمية. لذلك ال PageRank للصفحة (ب) ضعف ال PageRank للصفحة (ج) بمرة و نصف.

التحايل على PageRank

بعد أن تعرف الناس على طريقة عمل PageRank، ظهر هنالك محاولات للتحايل عليه؛ إحدى طرق التحايل هي مزارع الروابط، بِشَكلين. الأول: أن يكون عندك موقع فتدفع لشخص يدير مزرعة روابط مقابل أن يقوم بربط الصفحات في مزرعته بصفحتك. والشكل الثاني: أن تتفق مجموعة من المواقع على إنشاء روابط بين بعضها البعض بهدف زيادة الـ(PageRank) لكل منها. مزارع الروابط تسببت في مشاكل لمحركات البحث مثل جوجل، لأنها أثرت على جودة النتائج. من أساليب مكافحة هذه المشكلة TrustRank و Anti-TrustRank. Trust تعني ثقة.

الفكرة تقوم على حساب علامة لكل موقع تعكس ما إذا كان موثوقاً أم لا. العملية تبدأ بأن يقوم شخص مختص بتقييم عينة من المواقع لتحديد إذا كانت موثوقة أو غير موثوقة (لأنها تساهم في مزارع الروابط). المواقع التي لها روابط من مواقع موثوقة تعتبر موثوقة، و بنفس الطريقة، المواقع التي لها روابط من مواقع غير موثوقة تعبر غير موثوقة.

خاتمة

تحدثنا اليوم عن استخدام PageRank في محركات البحث. تاريخيا PageRank لعب دوراً كبيراً في بدايات جوجل، لكن مع مرور الزمن صار واحداً من مجموعة كبيرة من العوامل التي تستخدمها جوجل لترتيب نتائج البحث. من الإشارات الأخرى التي تستخدمها محركات البحث طول الصفحة و عدد المستخدمين الذين قاموا بنفس البحث سابقاً و موقعك الجغرافي و عدد كلمات البحث التي لها مرادف في الصفحة.