اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

و عليكم السلام،

كلاهما عبارة عن طريقة لتمثيل الكلمات بشكل رقمي.

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

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

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

هذا مثال بسيط جدًا، بالطبع هذه الأبعاد يتم تعلمها بشكل تلقائي و لكن يمكن فهم ما تمثله عن طريق رؤية تمثيل العديد من الكلمات بعد القيام بتدريب النموذج.

بالطبع عليك استعمال Embedding Layer، فهي الطريقة المعتمدة حاليًا.

تحياتي.

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

إن One-hot Encoding هو تمثيل رقمي للمتغيرات الفئوية حيث نقوم بتحويل كل فئة إلى متجه ثنائي (binary vector) بطول يساوي عدد الفئات حيث كل عنصر في المتجه يمثل فئة معينة وتكون القيمة 1 إذا كانت الفئة موجودة و 0 إذا كانت غير موجودة. وهو بسيط وسهل التطبيق و مناسب إذا كانت عدد الفئات صغيرة. ولكنه لا يعكس العلاقات بين الفئات مثل التشابه بين الفئات أى أنه لا يمكنك فهم معنى التحويل وسيتم فصل كل فئة عن الأخرى.

أما Embedding Layer فهي طبقة في الشبكات العصبية تقوم بتحويل المتغيرات الفئوية إلى متجهات ذات أبعاد أقل حيث يتم تعلم هذه المتجهات أثناء التدريب مما يمكننا من تمثيل و إعطاء معنى للفئات.

وأخيرا نستطيع أن نقومل أن One-hot Encoding هو بسيط ولكن غير جيد للفئات الكبيرة ولا يعكس العلاقات بينها ولهذا إذا كان لديك فئات كبيرة و تريد فهم العلاقات بينها فهذا ليس مناسبا.

أما Embedding Layer فهو معقد أكثر من  One-hot Encoding ولكنه أكثر كفاءة في الفئات الكبيرة ويعكس العلاقات بينها مما يجعله مناسبا للتطبيقات المعقدة مثل معالجة اللغة الطبيعية (NLP).

  • 0
نشر

يعتبر الترميز باستخدام One-hot Encoding طريقة بسيطة لتحويل المتغيرات الفئوية إلى تمثيل عددي يمكن للحواسيب التعامل معه بسهولة ففي هذه الطريقة يتم تحويل كل فئة إلى متجه ثنائي حيث يكون عنصر واحد فقط مساويا للرقم 1 مما يدل على وجود تلك الفئة بينما تكون بقية العناصر مساوية للصفر.

وبهذا ينشَأ بُعد منفصل لكل فئة فريدة، مما يؤدي إلى الحصول على متجهات عالية الأبعاد ومتفرقة (Sparse Vectors) في حال زيادة عدد الفئات ومن الجدير بالذكر أن هذه الطريقة لا تظهر أي تشابه أو علاقة دلالية بين الفئات، إذ أن جميع المتجهات تكون متعامدة مع بعضها البعض، مما يعني أنه لا يمكن استنتاج أي علاقة بين الفئات اعتمادا على هذه التمثيلات لذلك تعتبر هذه التقنية ملائمة للمجموعات الصغيرة التي تحتوي على عدد محدود من الفئات فهي سهلة التطبيق وسريعة.

ويمكنك الاطلاع من هنا على كيفية تطبيق One-Hot Encoding  باستخدام مكتبة Sklearn:

فبالرغم من أنه ينتج متجهات عالية الأبعاد لكنه لا يظهر أي علاقة بين الفئات في حين أنّ ال Embedding Layer يتعلم تمثيلا كثيفا ومنخفض الأبعاد إلا أنه يمكنه التقاط العلاقات الدلالية بين الفئات، مما يجعله أكثر كفاءة عند التعامل مع مجموعات بيانات كبيرة أو مفردات واسعة.

  • 0
نشر

One-hot Encoding مناسب في الحالات البسيطة جدًا كأن يكون القاموس صغيرًا، ونادرًا ما تُستخدم في التطبيقات الحديثة لمعالجة اللغات الطبيعية بسبب قيودها.

الاستخدام: تُستخدم

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

بمعنى أننا نستخدم فضاءً بـ 3 أبعاد فقط للتبسيط، فبعد التدريب، ستُمثل الكلمات كالتالي:

  • "ملك" بـ [0.9, 0.8, 0.2]
  • "ملكة" بـ [-0.9, 0.7, 0.1]
  • "شعب" بـ [0.1, -0.5, -0.9]

image.thumb.png.c503ae2220b095f8f723cc2c251623b4.png

الكلمات ذات المعاني المشابهة مثل "ملك" و"ملكة" ستكون قريبة من بعضها في الفضاء، بينما الكلمات المختلفة "شعب" ستكون بعيدة.

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

وحجم المتجه ثابت 50، 100، أو 300 بعد بغض النظر عن حجم القاموس، لذا هي تقنية أكثر كفاءة من One-hot Encoding عند التعامل مع قواميس كبيرة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...