خوارزمية بيج رانك
إذا كنت دون عمرٍ معيَّن، فالكلمات هوت بوت ولايكوس وإكسايت وألتا فيستا وإنفوسيك لن تعني لك شيئًا، أو إن كانت تعني شيئًا، فربما لن يكون معناها محرِّكات بحْث. غير أن جميع تلك المحركات كانت تتبارى من أجل جذب اهتمامنا في وقتٍ ما، سعيًا إلى جذبنا لاستخدامها بوابة إلى الشبكة العنكبوتية.
قبل أن نشرع في وصف خوارزمية بيج رانك، ينبغي أن نفهم تحديدًا ما تفعله محركات البحث. إنها تقوم بوظيفتين في الحقيقة. أولًا: تتسلَّل إلى الشبكة العنكبوتية وتقرأ كل صفحات الويب التي يمكنها الوصول إليها وتُفهرِسها. بهذه الطريقة، عندما نكتب شيئًا في خانة البحث، تبحث محركات البحث في البيانات التي خزَّنتها على صفحات الويب التي تسلَّلت إليها وتعثر على البيانات التي تتطابق مع استفسارنا. لذا إذا بحثنا عن «تغيُّر المناخ»، فستبحث محركات البحث في البيانات التي جمعتها لإيجاد صفحات الويب التي تحتوي على كلمات البحث.
إذا كانت كلمة البحث المستخدمة تصف موضوعًا شائعًا، يمكن أن نخرج بعدد هائل من النتائج. في وقت تأليف هذا الكتاب، يعود السؤال عن «تغيُّر المناخ» على جوجل بما يزيد على ٧٠٠ مليون نتيجة؛ قد يختلف هذا الرقم عندما تقرأ تلك السطور، ولكن على الأقل لديك لمحة عن نطاق النتائج. وهذا يقودنا إلى الوظيفة الثانية التي تقوم بها محركات البحث. لا بد أن تعرض لنا نتائج البحث بحيث تظهر النتائج الأكثر ارتباطًا بما نبحث عنه في البداية، وتظهر النتائج التي لا يُحتمل أنها تهمنا لاحقًا. فإذا كنت تسعى إلى معرفة الحقائق عن تغير المناخ، فستتوقع أن ترى النتائج من مواقع الأمم المتحدة أو الإدارة الوطنية للملاحة الجوية والفضاء (ناسا) أو ويكيبيديا في صدارة النتائج الظاهرة لك. وستتفاجأ إلى حدٍّ ما إذا تصدرت نتائجَ البحث صفحةُ ويب تشرح وجهةَ نظر «جمعية الأرض المسطحة» عن الموضوع. ومن بين مئات الملايين من صفحات الويب التي قد تتعلق باستفسارك، سيكون العديد منها بلا قيمة؛ وقد تتسم صفحات أخرى بالسطحية والثرثرة، ولكن ثمة صفحات أخرى لن يرجى منها فائدة على الإطلاق. أنت تريد أن تركِّز على تلك الصفحات الموثوق فيها التي تتحدَّث في صلب الموضوع.
عندما ظهر محرك البحث جوجل على الساحة (المؤلِّف في سنٍّ تسمح له بتذكُّر ذلك)، بدأ الناس (ومن بينهم المؤلِّف) في التحوُّل من محركات البحث القديمة المنقرضة في الوقت الحالي إلى محرك البحث الجديد؛ لأن نتائجه كانت أفضل وكانت تصل أسرع. وكان من العوامل المفيدة أيضًا بساطة صفحة الويب لجوجل؛ إذ كانت لا تحتوي إلا على المعلومات ذات الصلة بدلًا من تدفُّق أنواع الأدوات كافة في وجهك؛ إذ كان ذلك نمط الصفحات السائد حينذاك. سنُنحِّي العامل الثاني جانبًا على الرغم من أهميته (فقد أدركت جوجل أن المستخدمين يهتمون بنتائج البحث الجيدة والسريعة لا بالأجراس والصافرات)، وسنتناول العامل الأول. كيف تمكَّنت جوجل من تقديم نتائج أفضل وأسرع من محركات البحث الأخرى؟
لو كانت الشبكة العنكبوتية صغيرة، لتمكَّنا من إنشاء كتالوج لها، ولأصبح لدينا محررون لتنظيم ذلك الكتالوج ويعينون درجات الأهمية لمدخلاته؛ أي صفحات الويب. ولكن حجم الشبكة العنكبوتية يحول دون اتباع مثل هذا النهج، على الرغم من وجود محاولات سابقة في هذا الصدد، قبل أن يتضح أن هذا الحجم الهائل للشبكة سيجعل من تنفيذ هذه المهمة أمرًا مستحيلًا.
إذا كنتَ تسعى إلى معرفة الحقائق عن تغيُّر المناخ … فستتفاجأ إلى حدٍّ ما إذا تصدَّرت نتائج البحث صفحة ويب تشرح وجهة نظر «جمعية الأرض المسطحة» عن الموضوع.
تتألَّف الشبكة العنكبوتية من صفحات ويب يرتبط بعضها ببعض من خلال روابط. نطلق على تلك الروابط «الارتباطات التشعُّبية»، والنص الذي يحتوي على مثل هذه الإسنادات الترافقية إلى أجزاءٍ أخرى من النص أو النصوص الأخرى يُطلق عليه «النص التشعبي». فكرة النص التشعُّبي تسبق الشبكة العنكبوتية. وكان المهندس الأمريكي فانيفار بوش هو مَن كتب أول وصف لنظام تنظيم المعرفة عن طريق المستندات المترابطة، وظهر في عام ١٩٤٥ في صحيفة «أتلانتيك». أما شبكة الإنترنت العالمية — أو الشبكة العنكبوتية كما تُعرف الآن — فطوَّرها عالِم الكمبيوتر البريطاني تيم بيرنرز-لي في ثمانينيات القرن العشرين. كان بيرنرز-لي يعمل لدى المنظَّمة الأوروبية للأبحاث النووية (سيرن) خارج جينيف بسويسرا، وأراد أن ينشئ منظومةً تساعد العلماء على مشاركة المستندات والمعلومات. وتمكَّن العلماء من القيام بذلك من خلال إتاحة المستندات عبر الإنترنت، وكذلك إضافة روابط من مستنداتهم إلى مستندات أخرى كانت متاحة عبر الإنترنت. نمت الشبكة العنكبوتية واستمرت في النمو بالأساس بفضل الأشخاصِ الذين يضيفون صفحات ويب جديدة. فيكتب مؤلفو الشبكة العنكبوتية محتوى صفحات الويب ويربطونها بالصفحات الحالية ذات الصلة بمحتوى الصفحات التي يكتبونها.
تخيَّل أنك مؤلِّف لمقالٍ على الإنترنت يقدِّم نظرةً عامة حول تأثيرات تغيُّر المناخ في بلدك. قد ترغب، في معرض تقديمك لموضوع المقال، في جعل القراء يطَّلعون على صفحة ويب تعتقد أنها مصدرٌ موثوق فيه عن الموضوع نفسه؛ ومِن ثَم تضيف رابطًا إلى صفحة الويب تلك. وبهذه الطريقة، تساعد القراء عن طريق إتاحة الفرصة لهم للتعمُّق أكثر في الموضوع، وفي الوقت نفسه تضيف ثقلًا إلى محتواك الخاص لأنك تثبِت عباراتك بعبارات أخرى من صفحة ويب تثق بها.
هناك العديد مثلك ممن يكتبون مقالاتهم عبر الإنترنت عن تأثيرات تغيُّر المناخ في بلدانهم أو أقاليمهم. وقد يرغب كل واحد منهم أيضًا في إضافة روابط إلى مقالاتٍ يعتقدون أنها مصدرٌ موثوق فيه للموضوع الذي يكتبون فيه. ستنبثق الارتباطات التشعُّبية من هذه المقالات المكتوبة عبر الإنترنت للإشارة إلى مصادر معلومات ذات صلة.
إن السبب في ظهور صفحات وكالة ناسا في صدارة نتائج البحث عن تغيُّر المناخ هو أن كثيرًا من المؤلفين، يكتب كلٌّ منهم مقاله الخاص، قد قرروا إضافة ارتباط تشعبي لصفحة الويب الخاصة بناسا عن موضوع تغيُّر المناخ. لقد حدَّد المؤلفون اختياراتهم كلٌّ بمفرده، ولكن ربما اختار العديد منهم الصفحة نفسها، مثل صفحة ناسا. لذا من المنطقي اعتبار هذه الصفحة التي تتحدَّث عن تغيُّر المناخ مهمةً مقارنةً بصفحات الويب الأخرى.
يعمل النظام بأكمله كنوع من النظام الديمقراطي. فيربط مؤلفو صفحات الويب صفحاتهم بصفحات أخرى. وكلما زادت الروابط المشيرة إلى صفحة الويب تلك، اعتبرها المؤلفون مهمةً بما يكفي لإضافة رابطها على صفحاتهم الخاصة؛ ومِن ثَم تزداد أهميتها بوجه عام.
يعمل النظام بأكمله كنوع من الديمقراطية. فيربط مؤلفو صفحات الويب صفحاتهم بصفحات أخرى. وكلما زادت الروابط المشيرة إلى صفحة الويب تلك … تزداد أهميتها بوجه عام.
لكنَّ ثمَّة فرقًا مفاهيميًّا عن الديمقراطية التي نمارسها عادةً. فليست كل المقالات التي تُكتب متساوية. فبعضها يظهر على مواقع ويب مرموقة أكثر من غيره. فمقال على مدونة يقرؤه حَفنة من الناس يحمل ثقلًا أقل من مقال على موقع جهة من جهات النشر الإلكتروني يجتذب مئات الآلاف من القراء. وهذا يدل على أنه ينبغي ألَّا نتخذ عدد الروابط التي تشير إلى صفحة ويب بعينها مقياسًا لأهميتها. فالجهة التي تشير إلى صفحة الويب مهمة أيضًا، وليس مجرد عدد المُشيرين إليها. من المنطقي أن نتوقَّع أن يكون لرابط من صفحة ويب مرموقة ثِقلٌ أكبر من رابط من موقع مغمور. وعلى الرغم من أنه لا ينبغي الحكم على كتابٍ من غلافه، فإن المصادقة من مؤلِّف بارز أهم من مراجعة جيدة من مُشاهِد غير معروف. وكل رابط من صفحة إلى أخرى بمثابة مصادقة من الصفحة الأولى إلى الثانية، ويعتمد ثِقل المصادقة على وضع المصدق. في الوقت نفسه، إذا كانت صفحة تضيف روابط للعديد من الصفحات الأخرى، فينبغي أن تقسم مصادقتها — كما هو الحال — بين الصفحات التي تتلقَّاها.
تشكِّل مجموعة الصفحات المرتبطة بارتباطات تشعُّبية مخططًا بيانيًّا كبيرًا يحتوي على مليارات الصفحات والكثير الكثير من الروابط بينها. تمثِّل كل صفحة ويب عقدة في المخطط البياني. ويمثل كل رابط من صفحة إلى أخرى الحافة الموجهة في هذا المخطط البياني الضخم. الفكرة الأساسية في خوارزمية بيج رانك هي أنه باتباع الاستدلال المنطقي الذي أوضحناه من قبل، يمكننا استخدام بنية المخطط البياني للشبكة العنكبوتية كي يوضح لنا أهمية كل صفحة. بعبارة أدقَّ، يمكننا معرفة أهمية كل صفحة من خلال رقم. وهذا الرقم — الذي سنسميه ترتيب الصفحة — سيقيس أهمية صفحة الويب مقارنة بصفحات الويب الأخرى. وكلما زادت أهمية صفحة الويب، ارتفعت قيمة ترتيب الصفحة. تتَّبع خوارزمية بيج رانك التشعُّب الناتج عن تلك الفكرة على نطاقٍ ضخم؛ أي على التمثيل البياني الذي يمثِّل الشبكة العنكبوتية بكاملها.
المبادئ الأساسية
عندما نكون على صفحة ويب، تشير الروابط في تلك الصفحة إلى صفحاتٍ أخرى ذات صلةٍ بمحتوى الصفحة التي نتصفحها في الوقت الحالي. ووجود ذلك الرابط في حد ذاته يدل على أهمية صفحة الويب الموجودة في نهاية الرابط، وإلا لما أضاف مؤلِّف صفحة الويب رابطها من البداية. انظر مثال المخطَّط البياني التالي الذي يمثِّل مجموعة صغيرة من صفحات الويب يرتبط بعضها ببعض:
في مخطَّط بياني كهذا، نسمي الروابط التي تشير إلى صفحة ويب «الروابط الخلفية»؛ وبالتبعية، سنسمي الصفحات التي تشير إلى صفحة ويب أيضًا «الروابط الخلفية». وبذلك تكون الروابط الخلفية لصفحة الويب رقم ٣ هي الحواف التي تشير إليها — الحواف المتجهة إليها — وهي كذلك العُقَد التي تبرز منها وهي صفحات الويب رقم ٢ و٤ و٥. في هذا الفصل، سنهتم بالمخططات البيانية التي تتكوَّن من صفحات الويب؛ ومِن ثَم سنستخدم المصطلحين «عقدة» و«صفحة» بالتبادل.
- (١)
اعتماد أهمية صفحة الويب على ثِقل صفحات الويب التي تذكر الرابط إليها؛ أي على أهمية روابطها الخلفية.
- (٢)
تقسيم صفحة الويب لأهميتها بالتساوي بين صفحات الويب التي تذكر الرابط إليها.
بوجه عام، إذا كنا نريد حساب أهمية صفحة ويب معينة ونعرف أهمية كل ارتباط خلفي، يكون من السهل إيجاد ما نبحث عنه، من خلال قسمة درجة أهمية كل صفحة ذات رابط خلفي على عدد صفحات الويب التي تذكر الرابط إليها، ونضيف ناتج القسمة إلى مساهمات الروابط الخلفية الأخرى الخاصة بتلك الصفحة.
يمكن اعتبار حساب أهمية صفحات الويب كأنه سباق تصويتي بينها. كل صفحة مشاركة في التصويت لها ثِقَل يمكن أن تستخدمه كتأييد لصفحات الويب التي تعتبرها مهمة. إذا كانت تعتبر صفحة ويب واحدة هي المهمة، فإنها تعطي صوتَها تلك الصفحةَ. أما إذا رأت أن هناك أكثرَ من صفحة مهمة، فإنها تقسم صوتها وتعطي جزءًا منه كلَّ صفحة ويب من تلك الصفحات. لذلك، إذا أرادت صفحة ويب التصويت لثلاث صفحات ويب أخرى باعتبارها مهمة، فستعطي كل صفحة منها ثلثَ صوتها. إلى أي الصفحات ستُخصص صفحة الويب صوتها؟ إلى الصفحات في نهاية الارتباطات التشعُّبية؛ أي الصفحات التي تضيف الرابط إليها. وكيف تُشتق أهمية صفحة الويب؟ تُشتق من أهمية روابطها الخلفية.
يضفي المبدآن بالفعل هالة من الديمقراطية على ترتيب صفحات الويب. فلا توجد سلطة منفردة تقرِّر الصفحات الأهم. فأهمية صفحة الويب تتحدَّد من أهميتها لدى صفحات الويب الأخرى التي تصوِّت عن طريق إضافة الروابط فيها. ولكن على النقيض من مبدأ شخص واحد يساوي صوتًا واحدًا المطبَّق في غالبية الانتخابات التي تجري في العالم الواقعي، ليست كل صفحات الويب تتساوى فيها الأصوات هنا. فأصوات صفحات الويب تعتمد على مدى أهمية الصفحة وتلك الأهمية تحدِّدها، مرة أخرى، صفحات الويب الأخرى.
قد يبدو هذا أشبه باحتيالٍ شرعي؛ لأنه في الواقع يخبرنا بأنه لا بد أن نجد أهمية الروابط الخلفية لصفحة ويب ما من أجل إيجاد أهميتها. إذا اتبعنا أسلوب الاستدلال نفسه لإيجاد أهمية كل رابط من الروابط الخلفية الخاصة بتلك الصفحة، فلا بد أن نوجد درجة أهمية الروابط الخلفية لذلك الرابط الخلفي. عندئذٍ تبدو العملية تتراجع أكثر وأكثر — من روابط خلفية إلى روابط خلفية — وفي النهاية نُترك دون معرفة كيفية حساب أهمية صفحة الويب من المكان الذي بدأنا من عنده. الأسوأ من ذلك أننا قد نجد أنفسنا ندور في دوائر. في المثال الذي بين أيدينا، كي نحسب أهمية الصفحة رقم ٣، نحتاج إلى معرفة درجة أهمية الصفحات ٢ و٤ و٥. ولحساب أهمية الصفحة ٢، نحتاج إلى أهمية الصفحة ١ (والصفحة ٥، ولكن لننحي هذا جانبًا الآن). ولحساب أهمية الصفحة ١، نحتاج إلى أهمية الصفحة ٤، ولإيجاد أهميتها، نحتاج إلى معرفة أهمية الصفحة ٣. لقد عُدنا إلى حيث بدأنا.
مثال
لمعرفة كيفية الخروج من هذه الإشكالية، لنفترض أننا نعطي كل الصفحات أهميةً متساوية قبل البدء في حساب أهمية صفحات الويب. بالاستعانة باستعارة التصويت المذكورة آنفًا، سنعطي كل صفحة ويب صوتًا واحدًا فقط. عند بدء التصويت، ستصوِّت كل صفحة من الصفحات بالطريقة التي ذكرناها، بتوزيع صوتها على الصفحات المرتبطة بها. عندئذٍ ستتلقى كل صفحة الأصوات من كل روابطها الخلفية. سيبدو نقل الأصوات على النحو التالي:
ترسل الصفحة ١ صوتها إلى الصفحة ٢، وهي الصفحة الوحيدة المرتبطة بها. تقسم الصفحة ٢ صوتها إلى جزأين، وترسل النصف إلى الصفحة ٣، والنصف الآخر إلى الصفحة ٥. تقسم الصفحة ٣ صوتها إلى ثلاثة أجزاء، وترسل ثلثًا واحدًا إلى كلٍّ من الصفحات ١ و٤ و٥. وتصوِّت الصفحتان ٤ و٥ بالطريقة نفسها.
بمجرد انتهاء التصويت، ستحسب كل صفحة الإجمالي من مجموع الأصوات — أو كسور الأصوات — التي تلقتها من روابطها الخلفية. على سبيل المثال، بما أن الصفحة رقم ١ تلقت أصواتًا من الصفحتين ٣ و٤، فستكون درجة أهميتها ١ / ٢ + ١ / ٣ = ٥ / ٦ من الأصوات، وبما أن الصفحة ٣ تلقت أصواتًا من الصفحات ٢ و٤ و٥، فستحصل على ١ / ٢ + ١ / ٢ + ١ / ٣ = ٤ / ٣ من الأصوات. من ذلك نرى أن الصفحة رقم ١ قلَّلت حصتها من الأصوات مقارنةً بما بدأت به، بينما زادت الصفحة رقم ٣ من حصتها.
بعد انتهاء التصويت، ستكون درجة أهمية كل صفحة ويب قد تغيَّرت. فبدلًا من أن تساوي أهمية كل الصفحات ١ / ٥ = ٠٫٢، سنجد، بإجراء الحسابات، أنها تساوي ٠٫١٧ و٠٫٢٧ و٠٫٢٧ و٠٫١٣ و٠٫١٧ لكل صفحة تباعًا. صفحتا الويب ٢ و٣ زادت قيمة أهميتهما، ولكن الصفحات ١ و٤ و٥ قلَّت قيمة أهميتها. حاصل جمع الأهمية الإجمالية لصفحات الويب يساوي واحدًا.
يمكننا الآن البدء في جولة تصويت جديدة باستخدام القواعد نفسها بحذافيرها. ستوزِّع الصفحات الأصوات التي جمعتها على الصفحات المرتبطة بها. وفي نهاية هذه الجولة الثانية، ستحصي كل صفحة أصواتها لتحديد موقفها من حيث درجات الأهمية المجمَّعة. بعد إجراء العمليات الحسابية، ستكون قيم الأهمية الجديدة كما يلي: ٠٫١٦ و٠٫٢٢ و٠٫٢٦ و٠٫١٤ و٠٫٢٢.
سنعيد العملية مرة أخرى بحذافيرها. في الحقيقة، سنعيد عملية التصويت مرارًا وتكرارًا. وإذا فعلنا ذلك، فستتطور الأصوات — أو الأهمية المعينة لكل صفحة — كما هو مبيَّن في الجدول التالي، الذي يُظهر القيم الأولية والنتائج بعد كل جولة تصويت:
الجولة | الصفحة ١ | الصفحة ٢ | الصفحة ٣ | الصفحة ٤ | الصفحة ٥ |
---|---|---|---|---|---|
البداية | ٠٫٢٠ | ٠٫٢٠ | ٠٫٢٠ | ٠٫٢٠ | ٠٫٢٠ |
١ | ٠٫١٧ | ٠٫٢٧ | ٠٫٢٧ | ٠٫١٣ | ٠٫١٧ |
٢ | ٠٫١٦ | ٠٫٢٢ | ٠٫٢٦ | ٠٫١٤ | ٠٫٢٢ |
٣ | ٠٫١٦ | ٠٫٢٣ | ٠٫٢٦ | ٠٫١٦ | ٠٫٢٠ |
٤ | ٠٫١٧ | ٠٫٢٢ | ٠٫٢٦ | ٠٫١٥ | ٠٫٢٠ |
٥ | ٠٫١٦ | ٠٫٢٣ | ٠٫٢٥ | ٠٫١٥ | ٠٫٢٠ |
٦ | ٠٫١٦ | ٠٫٢٣ | ٠٫٢٦ | ٠٫١٥ | ٠٫٢٠ |
إذا شرعنا في إجراء جولة تصويت سابعة، فسنكتشف أن الموقف لن يتغيَّر مقارنة بجولة التصويت السادسة. فستظل الأصوات كما هي دون تغيير؛ ومِن ثَم لن تتغيَّر أهمية صفحات الويب. وعندئذٍ نستخلص النتيجة النهائية. فيكون ترتيب صفحات الويب بأن الصفحة رقم ٣ هي الأهم، يتبعها الصفحة رقم ٢ ثم الصفحة رقم ٥ ثم الصفحة رقم ١ وأخيرًا الصفحة رقم ٤.
السؤال هنا بالطبع هو ما إذا كان النهج الذي وصفناه لتونا يصلح بوجه عام وليس فقط في هذا المثال أم لا. إضافة إلى ذلك، هل يخرج لنا بنتائج منطقية؟
مصفوفة الارتباطات التشعُّبية وطريقة الأس
طريقة حساب أهمية صفحة ما بناءً على أهمية روابطها الخلفية لها صيغة ممتازة. نبدأ من المخطَّط البياني الذي يصف الروابط بين صفحات الويب. يمكننا التعبير عن المخطَّط البياني باستخدام «مصفوفة» أعداد نطلق عليها «مصفوفة التجاور» للمخطَّط البياني. بنية المصفوفة بسيطة وواضحة. ننشئ مصفوفة تحتوي على صفوف وأعمدة بعدد العُقَد في الرسم البياني. ثم نضع العدد واحد لكل تقاطع يتطابق مع رابطٍ ما والعدد صفر لكل التقاطعات الأخرى. فيما يلي مصفوفة التجاور لمثالنا:
يمكننا أيضًا التعبير عن أهمية صفحات الويب باستخدام صف أو «متجه» واحد:
أمَا وقد دخلنا في الجوانب العملية لخوارزمية بيج رانك، سنبدأ في استخدام مصطلح ترتيب الصفحات للإشارة إلى أهمية صفحةٍ ما. سترى أن المصطلح سيكون له ما يبرِّره؛ إذ سنتمكَّن من اشتقاق ترتيب لكل الصفحات على الشبكة العنكبوتية بناءً على الأهمية. وبما أن الصف يحتوي على كل ترتيبات الصفحات، سنسميه «متجه ترتيب الصفحات» للمخطَّط البياني.
تُقسَّم أهمية صفحة الويب على الصفحات المرتبطة بها. وبما أن لدينا الآن مصفوفة التجاور، يمكننا تنفيذ تلك المهمة عن طريق الاتجاه إلى كل صف، وتقسيم كل قيمة في الصف على عدد القيم الموجودة في ذلك الصف. تلك الطريقة تعادل تقسيم صوت كل صفحة على عدد الروابط الخارجية التي تذكر تلك الصفحة. وإذا فعلنا ذلك، فسنحصل على المصفوفة التالية:
نطلِق على تلك المصفوفة اسم «مصفوفة الارتباطات التشعُّبية».
إذا أمعنا النظر في مصفوفة الارتباطات التشعُّبية، فسنجد كل عمود يوضِّح كيفية اشتقاق أهمية الصفحة من الصفحات المرتبطة بها. لنأخذ العمود الأول المتعلِّق بأهمية الصفحة رقم ١. تستمد هذه الصفحة أهميتها من الصفحتين رقم ٣ و٤. الصفحة رقم ٣ تعطي ثلثَ أهميتها الصفحةَ رقم ١ لأنها ترتبط بثلاث صفحات، والصفحة رقم ٤ تعطي نصف أهميتها الصفحةَ ١ لأنها ترتبط بصفحتين. لا تتلقى الصفحة رقم ١ أهمية من الصفحات الأخرى في التمثيل البياني لأن تلك الصفحات لا ترتبط بها. يمكننا التعبير عن ذلك بالمعادلة التالية:
لنرَ ما يحدث إذا أخذنا متجهَ ترتيب الصفحات وجمعنا حواصل ضرب عناصره مع العناصر المقابلة له في العمود الثاني من مصفوفة الارتباطات التشعُّبية:
ما لم تكن على دراية بعمليات المصفوفة، قد يكون هذا أمرًا مربكًا؛ لأننا عادةً ما نتحدَّث عن حاصل ضرب عددين — وهي عملية الضرب المعروفة — وليس عن ناتج بنيات مثل المتجهات والمصفوفات. يمكننا إسقاط العمليات الحسابية على البنيات الأخرى — وليس فقط الأرقام — ما دامت تناسبها. فحاصل ضرب المتجه في المصفوفة عبارة عن عملية حسابية. لا توجد ألغاز في المسألة: إنها ببساطة عملية نعرِّفها بأنها عملية حسابية خاصة تتضمَّن عناصر المتجه وعناصر المصفوفة.
لنفترض أننا نُعدُّ مخبوزات بيجل وكرواسون تُباع مقابل ٢٠٠ و١٥٠ دولارًا على التوالي. لدينا متجران؛ يبيع الأول ١٠ قطع بيجل و٢٠ قطعة كرواسون، ويبيع الثاني ١٥ قطعة بيجل و١٠ قطع كرواسون. كيف نوجد إجمالي المبيعات لكل متجر؟
لإيجاد إجمالي المبيعات من المتجر الأول، سنضرب سعر البيجل في عدد القطع المبيعة في ذلك المتجر، ونضرب سعر الكرواسون في عدد القطع المبيعة ثم نجمع الناتجين:
ونقوم بالعملية نفسها لإيجاد إجمالي مبيعات المتجر الثاني:
للتعبير عن هذه المعادلة بصورةٍ أكثرَ إيجازًا، نكتب أسعار البيجل والكرواسون في صورة متجه:
نكتب أيضًا المبيعات اليومية في صورة مصفوفة. ستحتوي المصفوفة على عمودين، عمود لكل متجر، وصفين، أحدهما للبيجل والآخر للكرواسون:
لإيجاد إجمالي المبيعات لكل متجر، نضرب عناصر المتجه في كل عمود من مصفوفة المبيعات ثم نجمع حواصل الضرب. تلك العملية تحدِّد حاصل ضرب المتجه في المصفوفة:
حاصل ضرب المتجه في المصفوفة حالة خاصة لحاصل ضرب مصفوفتين. لنوسع نطاق المثال وبدلًا من أن يكون لدينا متجه يحتوي على أسعار البيجل والكرواسون، يصبح لدينا مصفوفة تضم الأسعار والأرباح لكل عملية مبيعات.
نعود إلى ترتيب الصفحات؛ في كل جولة، تعبِّر العملية الحسابية لمتجه ترتيب الصفحات في الحقيقة عن حاصل ضرب قيمة متجه ترتيب الصفحات في الجولة السابقة في مصفوفة الارتباطات التشعُّبية. ومع خوض الجولات، نحصل على تقديرات متعاقبة لترتيبات الصفحات؛ أي تقديرات تعاقبية لمتجه ترتيب الصفحات الذي يتكوَّن من تلك القيم. للحصول على تلك التقديرات المتعاقبة في متجه ترتيب الصفحات، لا نحتاج إلَّا إلى ضرب المتجه في كل جولة في مصفوفة الارتباطات التشعُّبية، ومِن ثَم نحصل على المتجه للجولة التالية.
في كل جولة، نستخدم متجه ترتيب الصفحات لتلك الجولة لحساب متجه ترتيب الصفحات للجولة التالية. وفي جولة التصويت الثانية حيث حصلنا على تقديرات ترتيب الصفحة الثالثة — أي متجه ترتيب الصفحات الثالث — نجري العملية الحسابية التالية:
في جولة التصويت الثالثة، نحصل على متجه ترتيب الصفحات الرابع:
وكما هو الحال في كل عملية تكرار، نضرب ناتج عملية التكرار السابقة في مصفوفة الارتباطات التشعُّبية، ونحصل في النهاية على سلسلة من حواصل ضرب التقديرات المتعاقبة لمتجه ترتيب الصفحات في مصفوفة الارتباطات التشعُّبية. وكما نرى، تلك العملية تكافئ ضرب متجه ترتيب الصفحات الأول في أسس متزايدة لمصفوفة الارتباطات التشعُّبية. يطلَق على عملية حساب التقديرات المتعاقبة هذه اسم «طريقة الأس». لذا نرى أن حساب ترتيبات الصفحات لمجموعة من صفحات الويب عبارة عن تطبيقٍ لطريقة الأس على متجه ترتيب الصفحات ومصفوفة الارتباطات التشعُّبية إلى أن يتوقَّف متجه ترتيب الصفحات الناتج عن التغيُّر، أو كما نقول، إلى أن «يتلاقى» مع قيمة ثابتة وهي المصفوفات النهائية لترتيبات الصفحات.
- (١)
تكوين مصفوفة الارتباطات التشعُّبية للتمثيل البياني.
- (٢) البدء من التقديرات الأولية لترتيب الصفحات، بحيث نعطي ترتيبًا بقيمة لكل صفحة، حيث تعبِّر عن إجمالي عدد الصفحات.
- (٣)
تطبيق طريقة الأس، بضرب متجه ترتيب الصفحات في مصفوفة الارتباطات التشعُّبية إلى أن تثبت قيم متجه ترتيب الصفحات.
فضلًا عن الإيجاز الذي تتسم به هذه الصياغة، فإنها تتيح لنا نقل المسألة إلى ميدان علم الجبر الخطي، وهو فرع الرياضيات الذي يتعامل مع المصفوفات والعمليات التي تجري لها. توجد بنية ثابتة للنظرية يمكننا استخدامها لدراسة طريقة الأُس وكذلك تنفيذ عمليات المصفوفة، مثل الضرب الذي ذكرناه. كذلك ستساعد الصياغة المصفوفية للمسألة في معرفة إذا ما كانت طريقة الأُس ستتلاقى «دومًا» بحيث يمكننا التوصُّل دائمًا إلى حلٍّ لترتيبات الصفحات في التمثيل البياني أم لا.
نموذج العُقَد المتدلية والتصفُّح العشوائي
ننتقل الآن إلى مثالٍ لتمثيل بياني أبسط حيث يتكوَّن من ثلاث عُقَد فقط:
نريد إيجاد ترتيبات الصفحات لهذه العُقَد الثلاث. نتَّبع الخوارزمية نفسها. نضع القيمة الأولية لمتجه ترتيب الصفحات ١ / ٣، بحيث تتساوى ترتيبات الصفحات بين كل العُقَد. ثم نضرب متجه ترتيب الصفحات في مصفوفة الارتباطات التشعُّبية كما يلي:
إذا بدأنا تكرارات طريقة الأس بحيث نضرب متجه ترتيب الصفحات في مصفوفة الارتباطات التشعُّبية لتحديث متجه ترتيب الصفحات، ثم أعدنا الكرَّة مرارًا، فسنجد أن جميع ترتيبات الصفحات بعد أربعة تَكرارات قد انخفضت إلى صفر:
الجولة | الصفحة ١ | الصفحة ٢ | الصفحة ٣ |
---|---|---|---|
البداية | ٠٫٣٣ | ٠٫٣٣ | ٠٫٣٣ |
١ | ٠٫٠٠ | ٠٫١٧ | ٠٫٥٠ |
٢ | ٠٫٠٠ | ٠٫٠٠ | ٠٫١٧ |
٣ | ٠٫٠٠ | ٠٫٠٠ | ٠٫٠٠ |
لا شك أن هذه مشكلة. فليس من المتوقَّع أن تكون أهمية جميع الصفحات هنا صفرًا. ففي النهاية، الصفحة رقم ٣ لها رابطان خلفيان، والصفحة رقم ٢ لها رابط خلفي واحد؛ ولذا توقَّعنا أن يظهر هذا بطريقةٍ ما في النتائج، فضلًا عن حقيقة أننا نريد أيضًا أن يساوي مجموع ترتيبات الصفحات واحدًا. أما هنا فلم نتوصَّل إلى وجود أهميةٍ لأي صفحة من الصفحات.
السبب في هذه المشكلة هو العقدة رقم ٣. على الرغم من أن هذه العقدة لها روابط خلفية، ومِن ثَم تكتسب أهمية، فلا يصدر منها أيُّ روابط. ولذا تستمد أهميةً بطريقةٍ ما من باقي التمثيل البياني ولكنها لا تعيد توزيعها على أي صفحة. إنها بمثابة عقدة أنانية أو ثقب أسود؛ فما يدخل إليها لا يخرج مرة أخرى. وبعد بضعة تكرارات، أصبحت بمثابة بالوعة دخلت فيها جميع قيم ترتيبات الصفحات واختفت.
يُطلق على مثل هذه العُقَد «العُقَد المتدلية»؛ لأنها تتدلَّى من النهايات (المغلقة) للتمثيل البياني. لا شيء يمنع وجود مثل تلك الصفحات على الشبكة العنكبوتية. وعلى الرغم من أن صفحات الويب تحتوي عادةً على روابطَ واردة وصادرة، فقد تظهر صفحة ليس لها روابط صادرة وتعيث فسادًا مع طريقة الأُس التي ذكرناها لتونا.
للتغلُّب على المشكلة، نستعين باستعارة. نتخيَّل أن لدينا شخصًا يتصفَّح الشبكة العنكبوتية ويقفز من صفحة إلى أخرى. للانتقال من صفحة إلى أخرى، عادةً ما يتَّبع الزائر رابطًا ما. ولكن بعد ذلك يصل المتصفح إلى عقدة متدلية؛ أي صفحة ليس لها روابط إلى أي صفحة أخرى. لا نريد للمتصفِّح أن يبقى حبيسًا في تلك الصفحة ومِن ثَم نعطيه إمكانية القفز إلى أي صفحة أخرى، إلى أي مكانٍ على الشبكة العنكبوتية. الأمر أشبه بتصفح الشبكة العنكبوتية من صفحة إلى أخرى إلى أن نصل إلى طريق مسدود. وعندما يحدث ذلك، لا نستسلم ونتوقف. يمكننا دائمًا كتابة عنوان آخر في متصفح الويب وننتقل إلى أي صفحة ويب أخرى، حتى إن لم توجد لها روابط في الصفحة المتدلية. هذا ما نريد من المتصفِّح أن يفعله. عندما يضل وجهته، سيختار المتصفِّح صفحة — أي صفحة — على الشبكة العنكبوتية ويذهب إليها كي يستمر في التصفُّح. وهكذا يصبح المتصفِّح «متصفِّحًا عشوائيًّا» مزودًا بجهاز انتقال آنيٍّ يمكن أن يأخذه على الفور إلى أي مكان على شبكة الإنترنت.
لإسقاط تلك الاستعارة مرةً أخرى على ترتيب الصفحات، نفسِّر مصفوفة الارتباطات التشعُّبية بأنها تعطينا الاحتمالات بأن متصفِّحًا ما سيتَّبع رابطًا للانتقال إلى صفحةٍ بعينها. في مثال العُقَد الثلاث، يوضِّح الصف الأول من مصفوفة الارتباطات التشعُّبية أنه عندما يكون المتصفِّح في الصفحة رقم ١، ستتساوى احتمالات اختياره تصفُّح الصفحة رقم ٢ أو الصفحة رقم ٣. ويوضِّح الصف الثاني أنه عندما يكون المتصفِّح في الصفحة رقم ٢، فسيختار دومًا زيارة الصفحة رقم ٣. لنعُدْ إلى المثال الأول برهةً، إذا استقر المتصفِّح في الصفحة رقم ٥، فمن المحتمل أن ينتقل إلى الصفحة رقم ٢ أو ٣ أو ٤ لتكون احتمالية الزيارة ١ / ٣ لكلٍّ من تلك النتائج.
الجولة | الصفحة ١ | الصفحة ٢ | الصفحة ٣ |
---|---|---|---|
البداية | ٠٫٣٣ | ٠٫٣٣ | ٠٫٣٣ |
١ | ٠٫١١ | ٠٫٢٨ | ٠٫٦١ |
٢ | ٠٫٢٠ | ٠٫٢٦ | ٠٫٥٤ |
٣ | ٠٫١٨ | ٠٫٢٨ | ٠٫٥٤ |
٤ | ٠٫١٨ | ٠٫٢٧ | ٠٫٥٥ |
٥ | ٠٫١٨ | ٠٫٢٧ | ٠٫٥٤ |
في هذه المرة، تتلاقى الخوارزمية عند قيمٍ غير صفرية؛ ومِن ثَم لا يحدث أيُّ سحب للأهمية. كذلك تصبح النتائج منطقية. أعلى ترتيب صفحات حقَّقته الصفحة رقم ٣، برابطين خلفيين؛ ثم الصفحة رقم ٢ برابط خلفي واحد، ثم الصفحة رقم ١ التي لا يوجد لها أي روابط خلفية على الإطلاق.
مصفوفة جوجل
يبدو أننا حلَلنا الإشكالية، ولكن ثمَّة مشكلة مشابهة تطل برأسها في مواقفَ أعقد. لا يحتوي التمثيل البياني التالي على عُقَد متدلية:
إذا طبَّقنا الخوارزمية، فسنجد أن هناك عقدتين — الصفحة رقم ١ والصفحة رقم ٤ — تنتهيان بترتيب يساوي صفرًا:
الجولة | الصفحة ١ | الصفحة ٢ | الصفحة ٣ | الصفحة ٤ | الصفحة ٥ | الصفحة ٦ |
---|---|---|---|---|---|---|
البداية | ٠٫١٧ | ٠٫١٧ | ٠٫١٧ | ٠٫١٧ | ٠٫١٧ | ٠٫١٧ |
١ | ٠٫٠٨ | ٠٫٢٢ | ٠٫١٤ | ٠٫٠٠ | ٠٫٤٢ | ٠٫١٤ |
٢ | ٠٫٠٠ | ٠٫٢٥ | ٠٫٢٥ | ٠٫٠٠ | ٠٫٢٩ | ٠٫٢١ |
٣ | ٠٫٠٠ | ٠٫٢٢ | ٠٫٢٢ | ٠٫٠٠ | ٠٫٣٣ | ٠٫٢٢ |
ما حدث أنه على الرغم من عدم وجود عقدة متدلية، توجد مجموعة عُقَد تعمل بمثابة بالوعة لباقي التمثيل البياني. إذا دقَّقت النظر في التمثيل البياني، فسترى أن العُقَد ٢ و٣ و٥ و٦، باعتبارها مجموعةً واحدة، لا تحتوي إلا على روابط واردة. يمكن الانتقال من العقدة ١ أو العقدة ٤ إلى هذه المجموعة، ولكن بمجرد الدخول إلى المجموعة، لا يمكننا سوى التنقُّل بداخلها. فلا يمكننا الخروج منها. وهكذا سيصبح المتصفح العشوائي أسيرًا، ليس داخل صفحة ويب واحدة هذه المرة، بل داخل مجموعة صفحات لا ترتبط إلا معًا.
- (١)
تكوين مصفوفة جوجل للتمثيل البياني.
- (٢) البدء من التقديرات الأولية لترتيب الصفحات، بحيث نعطي ترتيب الصفحة بقيمة لكل صفحة، حيث تعبِّر عن إجمالي عدد الصفحات.
- (٣)
تطبيق طريقة الأُس، بضرب متجه ترتيب الصفحات في مصفوفة جوجل إلى أن تتوقَّف قيم متجه ترتيب الصفحات عن التغيير.
ببساطة، وضعنا «مصفوفة جوجل» مكان «مصفوفة الارتباطات التشعُّبية» للخوارزمية الأولية. إذا تتبَّعنا هذه الخوارزمية في التمثيل البياني الذي يحتوي على مجموعة العُقَد البالوعية، فستكون النتيجة كما يلي:
الجولة | الصفحة ١ | الصفحة ٢ | الصفحة ٣ | الصفحة ٤ | الصفحة ٥ | الصفحة ٦ |
---|---|---|---|---|---|---|
البداية | ٠٫١٧ | ٠٫١٧ | ٠٫١٧ | ٠٫١٧ | ٠٫١٧ | ٠٫١٧ |
١ | ٠٫١٠ | ٠٫١٤ | ٠٫١٤ | ٠٫١٠ | ٠٫٣١ | ٠٫٢١ |
٢ | ٠٫٠٧ | ٠٫١٥ | ٠٫١٧ | ٠٫٠٧ | ٠٫٣١ | ٠٫٢٣ |
٣ | ٠٫٠٥ | ٠٫١٤ | ٠٫١٨ | ٠٫٠٥ | ٠٫٣٢ | ٠٫٢٦ |
٤ | ٠٫٠٥ | ٠٫١٤ | ٠٫١٧ | ٠٫٠٥ | ٠٫٣٣ | ٠٫٢٧ |
إنها طريقة رائعة؛ إذ لم يَعُد لدينا ترتيبات صفحات صفرية.
تطبيق خوارزمية بيج رانك عمليًّا
بعد إثبات أن لدينا طريقة لإيجاد ترتيب الصفحات في أي تمثيل بياني، يظل السؤال عمَّا إذا كانت النتائج في النهاية ستكون منطقية أم لا قائمًا.
يعتبر متجه ترتيب الصفحات — حسب التعريف الذي وضعناه له — متجهًا خاصًّا بالنسبة إلى مصفوفة جوجل. عندما تنهي طريقة الأس عملها، لا يتغير متجه ترتيب الصفحات بعد ذلك. ولذلك إذا ضربنا مصفوفة جوجل في متجه ترتيب الصفحات، فسنحصل ببساطة على متجه ترتيب الصفحات نفسه. في الجبر الخطي، يسمَّى هذا المتجه «المتجه الذاتي الأول» لمصفوفة جوجل. من دون التعمُّق في الرياضيات، تدعم النظرية الأساسية التي تشكِّل هذا المتجه فكرة أنه يحظى بأهمية خاصة بالنسبة إلى المصفوفة.
بعيدًا عن الرياضيات، فإن الحكمَ الباتَّ فيما إذا كانت خوارزمية بيج رانك طريقةً جيدة في تعيين أهمية لصفحات الويب راجع إلى مدى استفادتنا — نحن البشرَ — من نتائجها. يعطينا محرك البحث جوجل نتائجَ جيدة، بمعنى أن النتائج تتطابق مع ما نراه — نحن مستخدمي محرِّك البحث — مُهمًّا. ولو كان متجه ترتيب الصفحات مجرَّد فضول رياضي لا علاقة له بأهمية صفحات الويب، لما اهتممنا به اليوم.
تُبرِز خوارزمية بيج رانك جانبًا آخرَ في الخوارزميات. إن نجاح الخوارزمية لا يُعلَّق فقط على روعتها وفاعليتها. بل يتعلَّق الأمر أيضًا بتخطيط الخوارزمية لحل مسألةٍ ما. وهذا نهج ابتكاري. فحل مسألة البحث في الشبكة العنكبوتية يستلزم التغلُّب على مشكلة الحجم الهائل للشبكة العنكبوتية. ولكن بمجرد تخيُّل الشبكة العنكبوتية في صورة تمثيل بياني، يتحوُّل حجمها إلى ميزة لا عقبة. ويعود السبب في ذلك تحديدًا إلى وجود كم هائل من الصفحات المرتبطة بعضها ببعض عن طريق الارتباطات التشعُّبية، حتى إنك قد تتوقَّع أن طريقة قائمة على بنية الارتباطات في التمثيل البياني سوف تنجح في النهاية. وإيجاد طريقة لوضع نموذج للمسألة هو الخطوة الأولى لإيجاد طريقة لحلها باستخدام خوارزمية.