الفصل الرابع

تحليلات البيانات الضخمة

بعدما تحدَّثنا عن كيفية جمع البيانات الضخمة وتخزينها، يمكننا الآن تناول بعضٍ من الأساليب المُستخدمة في استخراج المعلومات المفيدة من هذه البيانات، على غرار تفضيلات العملاء أو مدى سرعة انتشار وباءٍ ما. تتغيَّر تحليلات البيانات الضخمة، المصطلح الشامل لأساليب تحليل البيانات، بسرعة مع تزايد أحجام مجموعات البيانات وإفساح علم الإحصاء التقليدي المجالَ أمام هذا النموذج الجديد.

تقدِّم شركة هادوب، التي تعرَّفنا عليها في الفصل الثالث، وسيلةً لتخزين البيانات الضخمة من خلال نظام الملفات الموزَّعة الذي أنشأته. وكمثال على أساليب تحليل البيانات الضخمة، سنلقي نظرةً على نموذج «ماب رديوس» البرمجي، وهو عبارة عن نظام معالجة للبيانات الموزَّعة والذي يشكِّل جزءًا من الوظيفة الأساسية لنظام «هادوب إيكوسيستم». تستخدم أمازون، وجوجل، وفيسبوك، وغيرها من مؤسساتٍ أخرى نظام هادوب في تخزين بياناتها ومعالجتها.

نموذج «ماب رديوس»

إحدى الطرق الشائعة للتعامل مع البيانات الضخمة هي تقسيمها إلى مجموعاتٍ صغيرة ثم معالجة كلٍّ من هذه المجموعات على حدة، وهذا ما يفعله نموذج «ماب رديوس» MapReduce في الأساس عن طريق توزيع العمليات الحسابية أو الاستعلامات المطلوبة على الكثير والكثير من أجهزة الكمبيوتر. من المفيد أن نتناول مثالًا مبسَّطًا ومختصرًا على آلية عمل «ماب رديوس»، وبما أننا سنفعل ذلك يدويًّا، لا بد أن يكون حقًّا مثالًا مختصرًا إلى حدٍّ كبير، ولكنه يوضِّح في الوقت نفسه الآلية المستخدمة مع البيانات الضخمة. لا توجد بطبيعة الحال عدة آلاف من المعالجات المستخدَمة في معالجة كمية ضخمة من البيانات على نحو متزامن، ولكن، هذه الآلية قابلة للتوسُّع، وهي فكرةٌ بارعة ومن السهل تطبيقها.

ثمة أجزاء عديدة في هذا النموذج التحليلي: مُكَوِّن «التجزئة»، ومرحلة «الخلط»، ومُكَوِّن «التجميع». يُكتَب مُكَوِّن التجزئة بواسطة المُستخدِم، ويجري فيه فرز البيانات التي تُهمنا. ثم تأتي مرحلة الخلط، التي تُعَد جزءًا رئيسيًّا من الكود الرئيسي لنموذج «ماب رديوس» من هادوب، حيث تُوضَع البيانات في مجموعاتٍ حسب المفتاح، وأخيرًا نصل إلى مُكَوِّن التجميع، الذي يكتبه المستخدم أيضًا، والذي يتولَّى تجميع هذه المجموعات وعرض النتيجة. تُرسَل النتيجة بعد ذلك إلى نظام هادوب للملفات الموزَّعة من أجل تخزينها.

لنفترض، على سبيل المثال، أن لدينا ملفات المفتاح والقيمة الآتية مُخزَّنة في نظام هادوب للملفات الموزَّعة، مع وجود إحصاءاتٍ عن كلٍّ من الأمراض التالية: الحصبة، وفيروس زيكا، والسُّل، والإيبولا. في هذه الحالة، المرض هو المفتاح، وتُعيَّن له قيمة تمثِّل عدد الحالات المصابة بكل مرض. ما يهمنا هو إجمالي عدد الحالات لكل مرض.

الملف ١:

الحصبة، ٣.
فيروس زيكا، ٢ السُّل، ١ الحصبة، ١.
فيروس زيكا، ٣ الإيبولا، ٢.

الملف ٢:

الحصبة، ٤.
فيروس زيكا، ٢ السُّل، ١.

الملف ٣:

الحصبة، ٣ فيروس زيكا، ٢.
الحصبة، ٣ فيروس زيكا، ٢.
الحصبة، ٤ فيروس زيكا، ١ الإيبولا، ٣.
fig8
شكل ٤-١: دالة التجزئة.
تمكِّننا أداة التعيين من قراءة كل ملف من ملفات الإدخال هذه على حدة، سطرًا بسطر، كما هو موضَّح في شكل ٤-١. ثم تعرض أداة التعيين نتيجةً بأزواج المفتاح والقيمة لكلٍّ من هذه السطور المنفردة.
بعد تجزئة الملفات وإيجاد أزواج المفتاح والقيمة لكل ملف مجزَّأ، تُستخدَم في الخطوة التالية الخوارزمية التي يقدِّمها البرنامج الرئيسي، والتي تتولَّى فرز أزواج المفتاح والقيمة وخلطها. يُجرى فرزٌ أبجدي للأمراض، وتُرسَل النتيجة إلى ملف مناسب استعدادًا لعملية التجميع، كما هو موضَّح في شكل ٤-٢.
استمرارًا مع شكل ٤-٢، يدمج مُكَوِّن التجميع نتائج مرحلتَي التجزئة والخلط، ونتيجةً لذلك، يرسل بيانات كل مرض إلى ملف منفصل. بعد ذلك، تسمح مرحلة التجميع في الخوارزمية بحساب الإجماليات الفردية ثم تُرسِل هذه النتائج إلى ملف إخراج نهائي، في صورة أزواج المفتاح والقيمة، يمكن حفظه في نظام الملفات المُوزَّعة.
fig9
شكل ٤-٢: دالتا الخلط والتجميع.

يُعَد هذا مثالًا بسيطًا للغاية، ولكن يُمَكِّننا نموذج «ماب رديوس» من تحليل كمياتٍ كبيرةٍ للغاية من البيانات. على سبيل المثال، باستخدام البيانات التي تقدِّمها مؤسسة كومون كراول، وهي مؤسسة غير ربحية توفِّر نسخةً مجانية من شبكة الإنترنت، يمكننا إحصاء عدد مرات ظهور كل كلمة على شبكة الإنترنت عن طريق كتابة برنامج كمبيوتر مناسب يستخدم نموذج «ماب رديوس» البرمجي.

عوامل تصفية «بلوم»

أحد الأساليب المفيدة بوجه خاص في التنقيب في البيانات الضخمة عامل تصفية «بلوم» Bloom، وهو أسلوبٌ يعتمد على نظرية الاحتمال ابتُكِرَ في سبعينيات القرن العشرين. كما سنرى، تناسب عوامل تصفية «بلوم» بشكل خاص التطبيقات التي يُمثِّل فيها التخزين مشكلة، والتي يمكن فيها التفكير في البيانات على هيئة قائمة.

الفكرة الأساسية في عوامل تصفية «بلوم» أننا نريد إنشاء نظام، بِناءً على قائمة من عناصر البيانات، للإجابة عن السؤال «هل يوجد (س) في القائمة؟» في حالة مجموعات البيانات الضخمة، قد تصبح عملية البحث في المجموعة بأكملها بطيئةً للغاية بما يجعل البحث غير مفيد؛ ومن ثمَّ، نستخدم عامل تصفية «بلوم» الذي لا يكون دقيقًا بنسبة ١٠٠ في المائة؛ لأنه أسلوب قائم على الاحتمالات — قد تحدِّد الخوارزمية أن عنصرًا ما ينتمي إلى القائمة رغم أنه لا ينتمي إليها في الواقع، ولكنه مع ذلك أسلوبٌ يتسم بالسرعة والموثوقية وكفاءة التخزين لاستخراج المعلومات المفيدة من البيانات.

لعوامل تصفية «بلوم» الكثير من الاستخدامات. على سبيل المثال، يمكن استخدامها للتحقق ممَّا إذا كان عنوان ويب معين يؤدي إلى موقع إلكتروني ضار. في هذه الحالة، قد يعمل عامل تصفية «بلوم» بمثابة قائمة حظر بعناوين المواقع الإلكترونية الضارة المعروفة والتي يمكن الاستعانة بها للتحقُّق، بسرعة ودقة، ممَّا إذا كان عنوان الموقع الإلكتروني الذي نقرت عليه للتو آمنًا أم لا. ويمكن كذلك أن نضيف إلى قائمة الحظر عناوين المواقع الإلكترونية التي اكتُشِفَ حديثًا أنها ضارة. وبما أن عدد المواقع الإلكترونية قد تخطَّى حاليًّا المليار، ويُضاف المزيد منها يوميًّا، أصبح تتبُّع المواقع الإلكترونية الضارة إحدى مشكلات البيانات الضخمة.

أحد الأمثلة الوثيقة الصلة على ذلك رسائل البريد الإلكتروني الضارة، التي ربما تكون بريدًا عشوائيًّا أو ربما تحتوي على محاولات تصيُّد احتيالي. يوفِّر لنا عامل تصفية «بلوم» طريقة سريعة للتحقق من كل عنوان بريد إلكتروني؛ ومن ثمَّ، نتمكَّن من إصدار تحذير في الوقت المناسب إذا لزم الأمر. يشغل كل عنوان ٢٠بايت تقريبًا؛ ومن ثمَّ فإنَّ تخزين كلٍّ منها وفحصه عملية تستهلك وقتًا طويلًا للغاية بما أننا نحتاج إلى تنفيذ هذا بسرعة كبيرة — باستخدام عامل تصفية «بلوم»، يمكننا تقليل كمية البيانات المخزَّنة كثيرًا. يمكننا أن نرى كيفية هذا عمليًّا باتباع عملية إنشاء عامل تصفية «بلوم» صغير واستعراض آلية عمله.

لنفترض أن لدينا قائمةً بعناوين البريد الإلكتروني التالية، ونريد أن نضع عليها علامةً بأنها ضارة: [email protected]; [email protected]; [email protected]; [email protected]. لإنشاء عامل تصفية «بلوم» الخاص بنا، نفترض أولًا أن مساحة الذاكرة المتوافرة لدينا على جهاز الكمبيوتر هي ١٠بت. يُطلَق على هذا اسم «مصفوفة البت»، وتكون فارغةً في البداية. للبت حالتان فقط، يُرمز لهما عادةً بصفر وواحد؛ ولذا سنبدأ بضبط كل القيم في مصفوفة البت على ٠، ما يعني أنها فارغة. وكما سنرى بعد قليل، سيعني البت الذي قيمته ١ أن الفهرس المرتبط قد تمَّ تعيينه لمرة واحدة على الأقل.
حجم مصفوفة البت ثابت، وسيظل كما هو دون تغيير بغض النظر عن عدد الحالات التي نُضيفها. وننشئ فهرسًا لكل بت في المصفوفة كما هو موضَّح في جدول ٤-١.
جدول ٤-١: مصفوفة مكوَّنة من ١٠بت
الفهرس ٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩
قيمة البت ٠ ٠ ٠ ٠ ٠ ٠ ٠ ٠ ٠ ٠

علينا الآن أن نتعرَّف على «دوال التجزئة»، وهي عبارة عن خوارزميات مُصمَّمة لتعيين كل عنصر في قائمة معينة إلى موضعٍ ما في المصفوفة. وبذلك، لن نخزِّن سوى الموضع المُعيَّن في المصفوفة، بدلًا من عنوان البريد الإلكتروني نفسه؛ ومن ثمَّ يقل مقدار مساحة التخزين المطلوبة.

في شرحنا هنا، سنعرض نتيجة استخدام دالتَي تجزئة، ولكن، تُستخدم في المعتاد ١٧ أو ١٨ دالةً معًا في حالة التعامل مع مصفوفة أكبر بكثير. وبما أن هذه الدوال مُصمَّمَة لإجراء عملية التعيين على نحو موحَّد نوعًا ما، فإن كلَّ فهرس لديه فرصة متساوية لعرضه كنتيجة في كل مرة تُطبَّق فيها خوارزمية التجزئة على عنوان مختلف.

ومن ثمَّ، علينا أولًا أن ندع خوارزميات التجزئة تُعيِّن كلَّ عنوان بريد إلكتروني إلى أحد فهارس المصفوفة.

لإضافة العنوان الإلكتروني [email protected] إلى المصفوفة، يُمرَّر أولًا عبر دالة التجزئة ١، التي تعرض قيمة موضع أو فهرس داخل المصفوفة. على سبيل المثال، دعونا نفترض أن دالة التجزئة ١ عرضت الفهرس ٣. وعند تطبيق دالة التجزئة ٢ على العنوان الإلكتروني [email protected]، عرضت الفهرس ٢. سيكون لكلٍّ من هذَين الموضعَين قيمة بت مُخزَّنة لهما مُعيَّنة على ١. إذا كان الموضع مُعيَّنًا على القيمة ١ بالفعل، فإنه يُترَك كما هو. وبالمثل، قد ينتج عن إضافة العنوان الإلكتروني [email protected] في الموضعَين ٢ و٧ شغل هذَين الموضعَين أو تعيين القيمة ١ لهما، وقد ينتج عن إضافة العنوان الإلكتروني [email protected] الموضعان ٤ و٧. وأخيرًا، افترض أن دالتَي التجزئة المُطبقتَين على العنوان الإلكتروني [email protected] ينتج عنهما الموضعَين ٢ و٦. يعرض جدول ٤-٢ ملخصًا بهذه النتائج.
جدول ٤-٢: ملخص نتائج دالتَي التجزئة
البيانات دالة التجزئة ١ دالة التجزئة ٢
[email protected] ٣ ٤
[email protected] ٢ ٧
[email protected] ٤ ٧
[email protected] ٢ ٦
مصفوفة عامل تصفية «بلوم» الحقيقي موضَّحة في جدول ٤-٣ مع تعيين القيمة ١ إلى المواضع المشغولة فيها.
جدول ٤-٣: عامل تصفية «بلوم» لعناوين البريد الإلكتروني الضارة
الفهرس ٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩
قيمة البت ٠ ٠ ١ ١ ١ ٠ ١ ١ ٠ ٠

كيف نستخدم إذن هذه المصفوفة بوصفها عامل تصفية «بلوم»؟ دعونا نفترض أننا تسلمنا رسالة بريد إلكتروني ونرغب في التحقق ممَّا إذا كان العنوان يظهر في قائمة عناوين البريد الإلكتروني الضارة أم لا. ولنفترض أن هذا العنوان مُعيَّن إلى الموضعَين ٢ و٧، اللذَين يحملان القيمة ١. بما أن جميع القيم المعروضة تساوي ١، من «المحتمل» أن العنوان ينتمي إلى القائمة، وعليه، فمن «المحتمل» أن يكون ضارًّا. لا يمكننا الجزم يقينًا بأن العنوان موجود في القائمة؛ لأن الموضعَين ٢ و٧ كانا نتيجة تعيين عناوين أخرى وربما تكون الفهارس قد استُخدِمَت أكثر من مرة. ومن ثمَّ، عندما نختبر انتماء عنصر ما إلى القائمة، فمن المحتمَل أيضًا عرضُ نتيجة إيجابية خاطئة. ومع ذلك، في حالة عرض فهرس مصفوفة بالقيمة ٠ كنتيجة لأي دالة تجزئة (تذكَّر أنه قد يوجد بوجه عام ١٧ أو ١٨ دالة)، نعلم يقينًا أن العنوان غير موجود في القائمة.

إن العمليات الحسابية المتضمَّنة معقَّدة، ولكننا نلاحظ أنه كلما زاد حجم المصفوفة زاد عدد الأماكن غير المشغولة، وتضاءلت احتمالية الحصول على نتائج إيجابية زائفة أو تطابق غير صحيح. ومن الجليِّ أن حجم المصفوفة يتحدَّد بعدد المفاتيح ودوال التجزئة المُستخدَمة، ولكن لا بد أن تكون المصفوفة كبيرةً بما يكفي لتوفير عدد من الأماكن غير المشغولة يسمح لعامل التصفية بأداء وظيفته بفاعلية ويقلِّل عدد النتائج الإيجابية الزائفة إلى الحد الأدنى.

تتسم عوامل تصفية «بلوم» بالسرعة، ويمكنها أن تقدِّم طريقةً مفيدة للغاية لاكتشاف مُعامَلات بطاقات الائتمان الاحتيالية. يتحقَّق عاملُ التصفية ممَّا إذا كان عنصرٌ معين ينتمي إلى قائمة أو مجموعة معينة أم لا، وعليه، تُوضَع علاماتٌ على أي معاملات غير معتادة بأنها لا تنتمي إلى قائمة معاملاتك المعتادة. على سبيل المثال، إذا لم تكن اشتريت من قبل معدات تسلق الجبال باستخدام بطاقتك الائتمانية، فسيضع عامل تصفية «بلوم» علامةً على عملية شراء حِبَال التسلق هذه بأنها مشبوهة. وعلى النقيض من ذلك، إذا كنت قد اشتريت معدات تسلق الجبال من قبل، فسيُحدِّد عامل تصفية «بلوم» عملية الشراء هذه بأنها ربما تكون مقبولة، ولكن سيظل الاحتمالُ قائمًا في أن النتيجة زائفة.

كما يمكن استخدام عوامل تصفية «بلوم» لتصفية رسائل البريد الإلكتروني بحثًا عن البريد العشوائي. وتُعد عوامل تصفية البريد العشوائي مثالًا جيدًا على ذلك بما أننا لا نعلم ما نبحث عنه بالضبط — نحن نبحث عادةً عن أنماط، ومن ثمَّ، إذا كنا نريد أن تُعامَل رسائل البريد الإلكتروني المشتملة على كلمة mouse على أنها بريد عشوائي، فعلينا أن نحدِّد أيضًا ضرورة التعامل مع أشكال أخرى للكلمة، مثل m0use أو mou$e، على أنها بريد عشوائي. في الواقع، نريد التعامل مع كل الأشكال المحتمَلة التي يمكن تعريفها للكلمة على أنها بريد عشوائي. سيكون من الأسهل كثيرًا تصفية كل الكلمات التي لا تطابق كلمةً معينة، وعليه، قد نسمح لكلمة mouse وحدها بالمرور عبر عامل التصفية.

تُستخدَم عوامل تصفية «بلوم» أيضًا لتسريع الخوارزميات المُستخدَمة في ترتيب نتائج استعلامات الويب، وهو موضوع على جانب كبير من الأهمية لأولئك الذين لديهم مواقع إلكترونية يرغبون في الترويج لها.

خوارزمية «بيدج رانك»

عندما نُجري بحثًا على محرك بحث جوجل، تُرتَّب المواقع الإلكترونية الناتجة حسب صلتها بكلمات البحث. يجري محرك بحث جوجل هذا الترتيب في الأساس عن طريق تطبيق خوارزمية تُسمَّى «بيدج رانك» PageRank؛ أي «رُتبة الصفحات». يُعتقَد أن اسم الخوارزمية «بيدج رانك» قد اختير تيمُّنًا بلاري بيدج، أحد مؤسسي شركة جوجل، الذي نشر مقالات، بالتعاون مع الشريك المؤسِّس سيرجي برين، عن هذه الخوارزمية الجديدة. حتى صيف عام ٢٠١٦، كانت نتائج خوارزمية «بيدج رانك» متاحةً للجمهور عن طريق تنزيل شريط الأدوات «بيدج رانك». كانت أداة «بيدج رانك» العامة تعتمد على مقياس من ١ إلى ١٠. وقبل أن يتم حجبها، تَمكَّنتُ من حفظ بعض النتائج. إذا كتبتُ عبارة «البيانات الضخمة» في محرك بحث جوجل باستخدام الكمبيوتر المحمول، تصلني رسالة تخبرني بأنه يوجد «حوالي ٣٧٠ مليون نتيجة (في غضون ٠٫٤٤ ثانية)» برتبة صفحات مقدارها ٩. وفي أعلى هذه القائمة، توجد بعض الإعلانات المدفوعة، تليها نتيجة البحث الخاصة بموقع ويكيبيديا. يترتَّب على البحث عن كلمة «بيانات» عرض ٥٫٥٣٠٫٠٠٠٫٠٠٠ نتيجة في غضون ٠٫٤٣ ثانية برتبة صفحات مقدارها ٩. ومن الأمثلة الأخرى، التي كانت جميعها برتبة صفحات مقدارها ١٠، موقع الحكومة الأمريكية، وفيسبوك، وتويتر، ورابطة الجامعات الأوروبية.

يعتمد أسلوب حساب رتبة الصفحات هذا على عدد الروابط المؤدية إلى صفحة ويب ما، فكلما زاد عدد الروابط، ارتفعت درجة التقييم، وظهرت الصفحة في مكان أكثر تقدمًا ضمن نتائج البحث. ولا يعكس هذا عدد مرات زيارة الصفحة. إذا كنت مصمِّم مواقع إلكترونية، فإنك ترغب في تحسين موقعك حتى يتصدَّر قائمة نتائج البحث بكلمات بحثٍ معينة؛ وذلك لأن أغلب الناس لا ينظرون إلى ما هو أبعد من نتائج البحث الثلاث أو الأربع الأولى. وهذا يتطلَّب عددًا هائلًا من الروابط، ويؤدي، لا محالة، إلى عملية متاجرة بالروابط. حاولت جوجل حل مشكلة الترتيب «الزائف» تلك عن طريق تعيين رتبة جديدة هي صفر للشركات المتورطة في الأمر، أو حتى إزالتها تمامًا من محرك بحث جوجل، إلا أن هذا لم يحلَّ المشكلة، بل أجبر هذه التجارة على العمل في الخفاء، واستمر بيع الروابط.

لم تُستبعَد خوارزمية «بيدج رانك» نفسها، بل أصبحت جزءًا من مجموعة كبيرة من برامج الترتيب غير المتاحة للعامة. يعيد محرك بحث جوجل حساب الرُّتَب بصورة دورية، بما يعكس الروابط المضافة وكذلك المواقع الإلكترونية الجديدة. وبما أن خوارزمية «بيدج رانك» حسَّاسة من الناحية التجارية، فلا توجد تفاصيل كاملة عنها متاحة للعامة، ولكن يمكننا تكوين فكرة عامة عنها بالنظر إلى مثال. تقدِّم الخوارزمية طريقةً معقدة لتحليل الروابط بين صفحات الويب بِناءً على نظرية الاحتمالات، حيث تُشير الاحتمالية «واحد» إلى اليقين والاحتمالية «صفر» إلى الاستحالة، وكل شيء آخر يحمل قيمةً احتمالية تتراوح بين هاتَين القيمتَين.

لفهم كيفية تحديد الرُّتَب، نحتاج أولًا إلى أن نعرف الشكل الذي يكون عليه التوزيع الاحتمالي. إذا فكَّرنا في نتيجة إلقاء نرد ذي ستة أوجه متساوية، فإن النتائج من ١ إلى ٦ تحمل احتمالية الظهور نفسها، وعليه، فإن كلًّا منها له احتمالية بنسبة ١ / ٦. تصف القائمةُ التي تتضمَّن جميع النتائج المحتملة، بالإضافة إلى احتمالية حدوث كل منها، التوزيعَ الاحتمالي.

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

سنتناول مثالًا مُبسَّطًا يتضمَّن موقعًا إلكترونيًّا مكوَّنًا من ثلاث صفحات ويب فقط، وهي BigData1،وBigData2، وBigData3. لنفترض أن الروابط الوحيدة توجد ما بين BigData2 وBigData3، وما بين BigData2 وBigData1، وما بين BigData1 وBigData3. يمكن إذن تمثيل هذا الموقع الإلكتروني على النحو الموضَّح في شكل ٤-٣، حيث تُمثِّل العُقَد صفحات الويب وتُمثِّل الأسهم (الأضلاع) الروابط.
fig10
شكل ٤-٣: رسم بياني موجَّه يُمثِّل جزءًا صغيرًا من الموقع الإلكتروني.
لكل صفحة رُتبة تدل على مدى أهميتها أو شيوعها. ستكون صفحة BigData3 هي الأعلى رُتبة؛ لأن أغلب الروابط تتجه إليها، ما يجعلها الأكثر شيوعًا. والآن، لنفترض أن متصفحًا عشوائيًّا يزور صفحة ويب، ومتاح له تصويتٌ نسبي بواقع صوتٍ واحد فقط للإدلاء به، والذي يُقسَّم بالتساوي بين اختياراته التالية من صفحات الويب. على سبيل المثال، إذا كان المتصفح العشوائي يزور حاليًّا صفحة BigData1، فإن الخيار الوحيد المتوفر أمامه هو زيارة صفحة BigData3 بعد ذلك. وعليه، يمكننا القول إنه أُجري تصويتٌ بواقع صوتٍ واحد من قِبل BigData11 لصالح BigData4.
تُنشَأ روابط في موقع الويب الحقيقي باستمرار؛ ومن ثمَّ، لنفترض أننا وجدنا الآن أن صفحة BigData3 تشتمل على رابط يؤدي إلى صفحة BigData2، كما هو موضَّح في شكل ٤-٤، إذن ستتغيَّر قيمة PageRank لصفحة BigData2؛ لأن المتصفح العشوائي أصبح لديه الآن أكثر من وجهة للانتقال إليها بعد صفحة BigData3.
fig11
شكل ٤-٤: رسم بياني موجَّه يُمثِّل جزءًا صغيرًا من الموقع الإلكتروني مع إضافة الرابط.
إذا بدأ المتصفح العشوائي في مثالنا الحالي عند صفحة BigData1، وكان الخيار الوحيد أمامه هو الانتقال إلى صفحة BigData3 بعدها، فإن التصويت بأكمله بواقع صوت واحد ينتقل إلى BigData3، وتحصل صفحة BigData2 على صفر من الأصوات. أمَّا إذا بدأ المتصفح العشوائي عند صفحة BigData2، فسيُقسَّم التصويت بالتساوي بين الصفحتَين BigData3 وBigData1. وأخيرًا، إذا بدأ المتصفح العشوائي عند BigData3، فسوف يتنقَّل عدد الأصوات كاملًا إلى BigData2. يعرض جدول ٤-٤ مُلخَّصًا بقِيم «التصويت» النسبي هذه.
باستخدام جدول ٤-٤، يمكننا أن نرى الآن إجمالي عدد الأصوات المُدلى بها لصالح كل صفحة ويب كالآتي:
  • إجمالي الأصوات لصالح BD1 هو ١ / ٢ (من قِبل BD2).
  • إجمالي الأصوات لصالح BD2 هو ١ (من قِبل BD3).
  • إجمالي الأصوات لصالح BD3 هو (من قِبل BD1 وBD2).
جدول ٤-٤: الأصوات المُعطاة لكل صفحة ويب
نسبة الأصوات المُعطاة من قِبل BD1 نسبة الأصوات المُعطاة من قِبل BD2 نسبة الأصوات المُعطاة من قِبل BD3
لصالح BD1 صفر ١ / ٢ صفر
لصالح BD2 صفر صفر ١
لصالح BD3 ١ ١ / ٢ صفر

وبما أن اختيار صفحة البدء يكون عشوائيًّا، فإن احتمالية اختيار المتصفح لكل صفحة منها يكون متساويًا؛ ومن ثمَّ تُعيَّن لكل منها رُتبة صفحة مبدئية هي ١ / ٣. لتحديد رتب الصفحات المرغوب فيها فيما يخص مثالنا الحالي، علينا أن نُحدِّث رُتب الصفحات المبدئية حسب نسبة الأصوات المُعطاة لكل صفحة.

على سبيل المثال، حصلت صفحة BD1 على ١ / ٢ صوت، أعطته لها صفحة BD2، وعليه، فإن رُتبة صفحة BD1 هي ١ / ٣ × ١ / ٢ = ١ / ٦. وبالمثل، تُحسَب رُتبة صفحة BD2 من خلال ١ / ٣ × ١ = ٢ / ٦، ورُتبة BD3 من خلال ١ / ٣ × ٣ / ٢ = ٣ / ٦. وبما أن رُتب الصفحات مجموعها يساوي واحدًا، نلجأ إلى التوزيع الاحتمالي الذي يُحدِّد أهمية كل صفحة أو رُتبتها.
ولكننا سنواجه عقبةً هنا. قلنا سابقًا إنَّ احتمالية أن يبدأ متصفحٌ عشوائي التصفح من أي صفحة تساوي ١ / ٣. وبعد خطوة واحدة، حسبنا أن احتمالية بدء المتصفح العشوائي التصفح من صفحة BD1 تساوي ١ / ٦. ماذا سيحدث بعد خطوتَين؟ حسنًا، مرةً أخرى نستخدم رُتب الصفحات الحالية كأصواتٍ لحساب رُتب الصفحات الجديدة. ستكون العمليات الحسابية مختلفةً قليلًا في هذه المرحلة؛ لأن رُتب الصفحات الحالية ليست متساوية، ولكن الطريقة لم تتغيَّر، ما يعطينا رُتب صفحات جديدة كالآتي: رُتبة صفحة BD1 هي ٢ / ١٢، ورُتبة صفحة BD2 هي ٦ / ١٢، ورُتبة صفحة BD3 هي ٤ / ١٢. تُكرَّر هذه الخطوات، أو التكرارات، حتى تتقارب الخوارزمية، وهذا يعني أن العملية تستمر على هذا المنوال حتى لا يكون هناك مجال لإجراء أي تغييرات أخرى بِناءً على أي عمليات ضرب أخرى. وبعد الوصول إلى الترتيب النهائي، يمكن لخوارزمية «بيدج رانك» أن تختار الصفحة ذات الرتبة الأعلى لعملية بحث معينة.
قدَّم بيدج وبرين، في أوراقهما البحثية الأصلية، معادلةً لحساب رُتب الصفحات، تضمَّنت معامل تخميد ، والذي يُعرَّف بأنه احتمالية أن ينقر متصفح ويب عشوائي على أحد الروابط في الصفحة الحالية. ومن ثمَّ، فإن احتمالية عدم نقر متصفح ويب عشوائي على أحد الروابط في الصفحة الحالية تساوي ، ما يعني أن المتصفح العشوائي قد أنهى التصفح. ضمِن معامل التخميد هنا أن ينتهي الحال بمتوسط رُتب الصفحات على مستوى الموقع الإلكتروني بالكامل عند ١، بعد إجراء عددٍ كافٍ من الحسابات التكرارية. قال بيدج وبرين إن متوسط رتب الصفحات في موقع إلكتروني مُكوَّن من ٣٢٢ مليون رابط تحدَّد بعد ٥٢ تكرارًا.

مجموعات البيانات العامة

ثمَّة الكثير من مجموعات البيانات الضخمة المتاحة مجانًا، والتي يمكن أن يستخدمها الأفراد المهتمون أو المجموعات المهتمة في مشروعاتهم. وتُعَد مؤسسة كومون كراول، التي ذكرناها في موضع سابق في هذا الفصل، مثالًا على ذلك. تضمَّن الأرشيف الشهري لمؤسسة كومون كراول، الذي يستضيفه برنامج أمازون لمجموعات البيانات العامة، في أكتوبر ٢٠١٦، ما يزيد على ٣٫٢٥ مليار صفحة ويب. تتضمَّن مجموعات البيانات العامة مجموعةً كبيرة من التخصُّصات، بما في ذلك بيانات الجينوم، وصور الأقمار الصناعية، وبيانات الأخبار العالمية. وبالنسبة إلى أولئك الذين من غير المرجَّح أن يكتبوا النصوص البرمجية بأنفسهم، توفِّر أداة جوجل للتحليل الإحصائي للكلمات (Google Ngram Viewer) طريقةً مشوِّقة لاستكشاف عددٍ من مجموعات البيانات الضخمة على نحو تفاعلي (انظر جزء «قراءات إضافية» لمعرفة التفاصيل).

نموذج البيانات الضخمة

رأينا سابقًا بعضًا من طرق الاستفادة من البيانات الضخمة، وتحدَّثنا في الفصل الثاني عن البيانات الصغيرة. بالنسبة إلى تحليل البيانات الصغيرة، يمكن استخدام الأسلوب العلمي على نحو راسخ تمامًا وينطوي بالضرورة على التفاعل البشري: شخصٌ تتراءى لذهنه فكرة ما، ثم يضع فرضيةً أو نموذجًا فكريًّا، ويبتكر طرقًا لاختبار توقعاته. كتبَ عالِمُ الإحصاء الشهير جورج بوكس عام ١٩٧٨: «جميع النماذج خاطئة، ولكن بعضها مفيد». وما يعنيه بهذه العبارة أنَّ النماذج الإحصائية والعلمية، بوجه عام، لا تُقدِّم تمثيلاتٍ دقيقةً للعالَم من حولنا، ولكن يمكن لنموذج فكري جيد أن يُقدِّم تصوُّرًا مفيدًا لِمَا يجب أن تستند إليه التوقعات ويستخرج النتائج بطريقة موثوقة. ولكن، كما أوضحنا سابقًا، فإننا لا نتَّبع هذه الطريقة عند التعامل مع البيانات الضخمة. بدلًا من ذلك، نجد أن السيادة للآلة وليس للعالِم.

وصفَ توماس كون، في إحدى كتاباته عام ١٩٦٢، مفهوم الثورات العلمية التي تلي فتراتٍ طويلةً من العلم العادي عندما يُطوَّر نموذج حالي ويُدرَس من جميع جوانبه. وإذا ظهر عدد كافٍ من الانحرافات التي لا يمكن حلها وتؤدي إلى تقويض أركان نظريةٍ قائمة، ما يؤدي بالباحثين إلى فقدان الثقة فيها، فإن هذا يُسمَّى «أزمة»، وتُحَل في نهاية المطاف بوضع نظرية جديدة أو نموذج فكري جديد. ولكي يُقبَل نموذج فكري جديد، فإنه لا بد أن يُجيب عن بعض الأسئلة الإشكالية الموجودة في النموذج الفكري القديم. ولكن، بوجه عام، لا يطمس النموذج الجديد النموذج السابق بالكامل. على سبيل المثال، غيَّر التحوُّل من ميكانيكا نيوتن إلى النظرية النسبية لأينشتاين من نظرة العِلم إلى العالَم، دون أن يطرح قوانين نيوتن جانبًا: تُمثِّل حاليًّا ميكانيكا نيوتن حالةً خاصة من نظرية النسبية الأوسع نطاقًا. كما يُمثِّل التحوُّل من علم الإحصاء الكلاسيكي إلى أساليب تحليل البيانات الضخمة تغيُّرًا كبيرًا، وتجتمع فيه الكثير من السمات المميِّزة للتحوُّل النوعي. وعليه، فإنَّ الأمر يستلزم حتمًا تطوير أساليب للتعامل مع هذا الوضع الجديد.

دعونا نتناول أسلوب إيجاد ارتباطات في البيانات الضخمة، والذي يوفِّر وسيلةً للتوقع بناءً على قوة العلاقات بين المتغيِّرات. من المتعارَف عليه في علم الإحصاء الكلاسيكي أنَّ الارتباط لا يقتضي السببية. على سبيل المثال، قد يُسجِّل مُعلِّم عدد مرات غياب أحد الطلاب عن المحاضرات ودرجات الطالب؛ ومن ثمَّ، عندما يجد ارتباطًا واضحًا بينها، قد يستخدم غياب الطالب في توقع درجاته. ولكن، لن يكون من الصائب أن يستنتج أن عدد مرات غياب الطالب سبب في تدني درجاته. لا يمكننا معرفة السبب في ارتباط متغيِّرَين من خلال النظر إلى العمليات الحسابية المجرَّدة فحسب؛ فربما الطلاب الأقل قدرةً على الاستيعاب يميلون إلى التغيُّب عن الصف، وربما لا يمكن للطلاب الذين يغيبون بسبب المرض أن يعوِّضوا ما فاتهم لاحقًا. ومن ثمَّ، لا بد من التفاعل والتفسير البشري لتحديد أي الارتباطات مفيدة.

فيما يخصُّ البيانات الضخمة، يؤدي استخدام الارتباطات إلى ظهور مشكلاتٍ إضافية. فإذا تناولنا مجموعة بيانات هائلة، يمكن كتابة خوارزميات تؤدي — عند تطبيقها — إلى عدد كبير من الارتباطات الزائفة، التي تكون مستقلةً تمامًا عن وجهات نظر أي إنسان أو آرائه أو فرضياته. تنشأ مشكلات بسبب الارتباطات الزائفة — على سبيل المثال، معدلات الطلاق واستهلاك السمن النباتي، وهي أحد الارتباطات الزائفة الكثيرة التي تحدَّثت عنها وسائل الإعلام. يمكننا أن نرى مدى سُخف هذا الارتباط من خلال تطبيق الأسلوب العلمي. ولكن، عندما يصبح عدد المتغيِّرات كبيرًا، يزداد أيضًا عدد الارتباطات الزائفة. تُعد هذه إحدى المشكلات الرئيسية المصاحبة لمحاولة استخراج معلومات مفيدة من البيانات الضخمة؛ لأننا عندما نفعل ذلك، مثلما هو الحال مع التنقيب في البيانات الضخمة، فإننا عادةً ما نبحث عن أنماط وارتباطات. وكما سنرى في الفصل الخامس، كانت هذه المشكلات هي أحد أسباب فشل توقُّعات خدمة «اتجاهات الأنفلونزا من جوجل».

جميع الحقوق محفوظة لمؤسسة هنداوي © ٢٠٢٤