التعلم الآلي في تحليل سجل Netflix



تخيل 2.5 غيغا بايت سجل بعد فشل بناء. هذه ثلاثة ملايين سطر. أنت تبحث عن خطأ أو انحدار يظهر في السطر رقم مليون. ربما يكون من المستحيل ببساطة العثور على أحد هذه الخطوط يدويًا. يتمثل أحد الخيارات في الحصول على فرق بين آخر بناء ناجح وفاشل على أمل أن يكتب الخطأ سطورًا غير عادية إلى السجلات. حل Netflix أسرع وأكثر دقة من LogReduce - تحت القص.



Netflix والخط الموجود في مكدس السجل



يعد اختلاف md5 القياسي سريعًا ، ولكنه يطبع مئات الآلاف على الأقل من الخطوط المرشحة للعرض لأنه يُظهر اختلافات في الخطوط. تباين logreduce هو فرق غامض باستخدام بحث k-القريب الذي يعثر على حوالي 40.000 مرشح ، لكن يستغرق ساعة واحدة. يجد الحل أدناه 20000 سلسلة مرشحة في 20 دقيقة. بفضل سحر المصدر المفتوح ، هذا فقط حوالي مائة سطر من كود Python.



الحل - مزيج من تمثيلات الكلمات المتجهة التي تشفر المعلومات الدلالية للكلمات والجمل ، وتجزئة قائمة على الموقع(LSH - تجزئة حساسة محلية) ، والتي توزع بشكل فعال العناصر القريبة تقريبًا في بعض المجموعات والعناصر البعيدة في مجموعات أخرى. الجمع بين التمثيل متجه من الكلمات وLSH هو فكرة عظيمة أقل من عشر سنوات مضت .
ملاحظة: قمنا بتشغيل Tensorflow 2.2 على وحدة المعالجة المركزية مع التنفيذ الفوري لنقل التعلم و scikit-Learn NearestNeighborلأقرب الجيران. هناك تطبيقات متطورة لتقريب الجار الأقرب من شأنها أن تكون أفضل لحل مشكلة الجار الأقرب المستندة إلى النموذج.



تمثيل الكلمات المتجهية: ما هو ولماذا؟



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



{"log": 2, "in": 1, "error": 1, "check": 1}




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



[2, 1, 1, 1, 0, 0, 0, 0, 0, ...]


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







{"problem": 1, "authenticating": 1}


اتضح:



[0, 0, 0, 0, 1, 1, 0, 0, 0, ...]


الجملتان "مشكلة في المصادقة" و "خطأ في تسجيل الدخول ، تحقق من السجل" متشابهة لغويًا. أي أنهم متماثلون في الأساس ، لكن معجميًا مختلفون قدر الإمكان. ليس لديهم كلمات مشتركة. من حيث الفروق الضبابية ، يمكننا القول إنها متشابهة جدًا للتمييز بينهما ، لكن ترميز md5 والوثيقة المعالجة بواسطة k-hot باستخدام kNN لا يدعمان ذلك.



يستخدم تقليل الأبعاد الجبر الخطي أو الشبكات العصبية الاصطناعية لوضع كلمات أو جمل أو خطوط تسجيل متشابهة لغويًا بجانب بعضها البعض في مساحة متجه جديدة. يتم استخدام تمثيلات المتجهات. في مثالنا ، "خطأ في تسجيل الدخول ، تحقق من السجل" يمكن أن يكون له متجه خماسي الأبعاد لتمثيل:



[0.1, 0.3, -0.5, -0.7, 0.2]


يمكن أن تكون عبارة "مشكلة المصادقة"



[0.1, 0.35, -0.5, -0.7, 0.2]




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



في الواقع ، يمكنك استبدال آلاف أو أكثر من أبعاد القاموس بتمثيل 100 بعد غني بالمعلومات (وليس خمسة). تتضمن الأساليب الحديثة لتقليل الأبعاد تحلل القيمة المفرد لكلمة مصفوفة التواجد المشترك ( GloVe ) والشبكات العصبية المتخصصة ( word2vec ، BERT ، ELMo ).



ماذا عن التجميع؟ دعنا نعود إلى سجل البناء



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



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



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



يمكن مطابقة المتجه الذي يمثل عبارة "خطأ في تسجيل الدخول ، تحقق من الخطأ" مع رقم ثنائي 01. ثم01يمثل الكتلة. يمكن أيضًا عرض المتجه "مصادقة مشكلة" ذات الاحتمالية العالية في 01. لذا فإن LSH تقدم مقارنة غير واضحة وتحل المشكلة العكسية - فرق غامض. كانت التطبيقات المبكرة لـ LSH على مساحات متجهية متعددة الأبعاد من مجموعة من الكلمات. لا يمكننا التفكير في سبب واحد لعدم عمله مع مسافات التمثيل المتجه للكلمات. هناك مؤشرات على أن الآخرين اعتقدوا نفس الشيء .







يوضح ما سبق استخدام LSH عند وضع الأحرف في نفس المجموعة ، ولكن رأسًا على عقب.



إن العمل الذي قمنا به لتطبيق طرق عرض LSH والمتجهات المقطوعة من خلال الكشف عن القيم المتطرفة للنص في سجلات الإنشاء يتيح الآن للمهندس عرض جزء صغير من سطور السجل لتحديد الأخطاء التجارية المحتملة وإصلاحها. كما يتيح لك أيضًا تحقيق التجميع الدلالي لأي سطر من السجل تقريبًا في الوقت الفعلي.



يعمل هذا النهج الآن في كل بناء من Netflix. يسمح لك الجزء الدلالي بتجميع العناصر التي تبدو غير متشابهة بناءً على معناها وعرض هذه العناصر في تقارير الانبعاثات.



بعض الأمثلة



المثال المفضل للفروق الدلالية. تحول 6892 سطراً إلى 3.







مثال آخر: سجل هذا التجميع 6044 سطراً ، لكن 171 بقي في التقرير. ظهرت المشكلة الرئيسية على الفور تقريباً في السطر 4036.







بالطبع ، من الأسرع تحليل 171 سطراً من 6044. لكن كيف حصلنا على سجلات التجميع الكبيرة؟ يتم تنفيذ بعض الآلاف من مهام الإنشاء التي تُعد اختبارات ضغط للإلكترونيات الاستهلاكية في وضع التتبع. من الصعب التعامل مع هذا الحجم من البيانات دون معالجة أولية.







نسبة الضغط: 91366/455 = 205.3.



هناك العديد من الأمثلة التي تعكس الاختلافات الدلالية بين الأطر واللغات ونصوص البناء.



خاتمة



نجح نضج منتجات التعلم ذات المصدر المفتوح و SDK في حل مشكلة البحث الدلالي الأقرب مع LSH في سطور قليلة جدًا من التعليمات البرمجية. كنا مهتمين بالمزايا الخاصة التي يجلبها التعلم والضبط الدقيق للتطبيق. يسعدنا أن نكون قادرين على حل مثل هذه المشاكل ومساعدة الناس على القيام بما يفعلونه بشكل أفضل وأسرع.



نأمل أن تفكر في الانضمام إلى Netflix وأن تصبح أحد الزملاء العظماء الذين نجعل حياتهم أسهل من خلال التعلم الآلي. المشاركة هي القيمة الأساسية لـ Netflix ، ونحن مهتمون بشكل خاص بتعزيز وجهات النظر المختلفة حول الفرق التقنية. لذلك ، إذا كنت تعمل في مجال التحليلات أو الهندسة أو علم البيانات أو أي مجال آخر ولديك خلفية ليست نموذجية للصناعة ، فنحن نحب أن نسمع منك بشكل خاص!



إذا كانت لديك أي أسئلة حول ميزات Netflix ، فيرجى الاتصال بمساهمي LinkedIn: Stanislav Kirdey ، William High كيف تحل مشكلة البحث في السجل



؟



صورة


تعرف على تفاصيل كيفية الحصول على مهنة رفيعة المستوى من البداية أو من المستوى الأعلى في المهارات والراتب من خلال حضور دورات SkillFactory عبر الإنترنت:





E







All Articles