محرّك matching متعدّد المتغيّرات على بيانات نصّية و categorical و عددية

Ismail Mebsout
٢٣ أكتوبر ٢٠٢٤
٥ دقائق
جدول المحتويات

تواجه كثير من الشركات في وقتنا الحاضر معالجة حالات متشابهة ضمن نشاطها. وقليلٌ منها يستفيد من العمل السابق والقديم، بينما تعيد الغالبية الكبرى منها كل شيء من جديد.

في هذا المقال، سنكتشف كيف يمكن الاستفادة من خوارزميات الـ AI لبناء matching engine قادر على استخدام متغيرات نصية وفئوية ورقمية على حدّ سواء.

من باب التبسيط، سنفترض أنّ الحالة تُوصف بالبيانات التالية:

  • Num: متغيّر رقمي
  • Categ: متغيّر فئوي (كلمة واحدة)
  • Sent: متغيّر نصي (جملة واحدة - يتطلّب embedding)
  • Parag: متغيّر نصي (فقرة - تتطلّب embedding)

إذا كانت قاعدة بياناتك لا تتّبع البنية ذاتها، فيمكنك تطبيق preprocessing pipeline للوصول إلى السيناريو نفسه.

الملخّص كالتالي:

  1. Embeddings
  2. التشابهات
  3. Matching engine

Embeddings

Word embedding

إنّ الـ word embedding هو فنّ تمثيل كلمة في فضاء شعاعي بحجم N حيث تكون الكلمات المتشابهة دلالياً، رياضياً، قريبة من بعضها البعض.
وهي خطوة مهمّة عند التعامل مع البيانات النصية بما أنّ خوارزميات الـ ML تعمل في معظمها بالقيم العددية.

Word embedding

توجد العديد من خوارزميات الـ word embedding مثل Word2Vec وFastText وBERT، …، ولها العديد من التكييفات في لغات مختلفة.

Sentence Embedding

الجملة هي تسلسل من الكلمات. وبناءً على ذلك، يمكننا تجميع embeddings الكلمات لتوليد embedding الجملة وفق الخطوات أدناه:

Sentence Emebdding

حيث:

Sentence embedding - Formula

  • NB1: في مرحلة التنظيف، يمكننا الاحتفاظ فقط بالكلمات المفتاحية ليتمّ embedding لها
  • NB2: الصيغة المُجمَّعة تسمح بتحقيق التوازن بين الجمل الطويلة والقصيرة
  • NB3: حجم embedding الجملة هو نفسه حجم embedding الكلمة N

Paragraph Embedding

يمكننا اتباع المقاربة ذاتها أعلاه باعتبار أنّ الفقرة هي تسلسل من الجمل:

Paragraph embedding
  • NB1: في الاستخدام الشائع، تُفصل الجمل غالباً باستخدام السلسلة " . "، ولكن قد يلزم تخصيص ذلك في بعض الحالات.
  • NB2: حجم embedding الفقرة هو (N، k) حيث N هو حجم embedding الجملة وk هو عدد الجمل داخل الفقرة.

التشابه

التشابهات الرقمية

لنعتبر قيمتين رقميتين x و y، ويُعرَّف NumSim، أي المسافة بينهما، كما يلي:

Numerical similarity

إذا:

  • x=y => NumSim(x,y)=1
  • x>>y => NumSim(x,y)≈1/(|x|+1)≈0

تشابهات الكلمات

توجد عدّة طرق لحساب التشابه بين كلمتين، ونذكر أدناه اثنتين من أشهر المقاربات:

  • Approximate string matching (مبنيّ على الحروف): Levenshtein’s distance، …
  • Semantic string matching (مبنيّ على الـ Embedding): Cosine similarity، Euclidian distance، …

في هذا المقال، سنركّز بشكل رئيسي على الـ cosine similarity وهي ليست سوى جيب تمام الزاوية بين شعاعَي الـ embedding للكلمتين المُقارَنتين:

Word similarity

حيث:

Cosine similarity

تشابهات الجمل

نتّبع المقاربة ذاتها مستخدمين هذه المرة خوارزمية sentence embedding المعرَّفة أعلاه:

Sentence similarity

حيث:

Sentence similarity - Formula

تشابهات الفقرات

تشابهات الفقرات أكثر تعقيداً نوعاً ما لأنّ embeddings الخاصة بها تُعتبر مصفوفات ثنائية الأبعاد بدلاً من أشعّة. لمقارنة فقرتين، نحسب SentSim لكلّ زوج من الجمل ونولّد مصفوفة تشابه ثنائية الأبعاد تُجمَّع بعد ذلك في درجة واحدة:

Paragraph similarity

حيث:

Paragraph similarity - Formula

Matching Engine

كما ذُكر سابقاً، لنفترض حالة عمل علينا فيها التعامل مع معالجة حالات كثيرة. تُوصف كلّ حالة بأربعة متغيرات: Num وCateg وSent وParag (انظر المقدمة).
يمكننا الاستفادة من البيانات التاريخية لمقارنة كل حالة جديدة مع قاعدة البيانات بأكملها واختيار الحالات الأكثر تشابهاً باستخدام المخطّط التالي:

Matching engine

حيث:

Matching engine - formula

نُجري هذه العمليات على كل الحالات من 1 إلى L (وهو حجم قاعدة البيانات) ونُخرج أعلى درجات المطابقة.

  • NB1: إذا كان للمتغيّر Categ طرائق فريدة وثابتة، يمكننا استبدال المطابقة بـ filtering بسيط
  • NB2: إذا كان لديك أكثر من متغيّر واحد لكل نوع، فيمكنك تكديسها في المحرّك ذاته باستخدام مقاربة التشابه الصحيحة
  • NB3: يُختار وزن كلّ متغيّر بناءً على أولوّيته وأهمّيته العملية

الخاتمة

تحظى الـ matching engines بشعبية واسعة وتُستخدم بكثرة في عالم التقنية. فهي تتيح للشركات أدوات معالجة أسرع تساعد في تحقيق مكاسب زمنية ومالية.
في هذا المقال، ركّزنا على نوع معيّن من المدخلات (الرقمية والنصية)، ولكن يمكنك أيضاً تخيّل امتلاك صورة كوصف إضافي لحالتنا. وهذا يستدعي استخدام تقنيات CNN مثل Siamese networks التي تولّد embedding للصورة يُستخدم مع cosine similarity لتوليد درجة مطابقة إضافية.

ابقَ على تواصل

هل لديك سؤال؟ يسعدنا أن نسمع منك.