تجميع تسميات الحشود: أبعد من التصويت بالأغلبية
كيفية دمج العديد من التعليقات المشوشة في تسمية واحدة باستخدام نماذج المُعلِّقين مثل Dawid-Skene وMACE، ومتى تثق بها، وكيف يقدّر Potato الكفاءة ويستنتج التسميات.
عندما يُسمّي عدة أشخاص العنصر نفسه، يكون التصويت بالأغلبية الطريقة البديهية لدمج إجاباتهم، وهو في الغالب الطريقة الخاطئة. النماذج التي تقدّر موثوقية كل مُعلِّق تستعيد تسميات أفضل، وتكشف المُرسِلين العشوائيين، وتخبرك بمقدار الثقة التي ينبغي منحها. لكن كل نموذج منها يفترض وجود إجابة صحيحة واحدة، لذا في المهام الذاتية عليك أن تقرر أولًا ما إذا كان الخلاف خطأً يجب إزالته أم إشارة يجب الاحتفاظ بها. يغطي هذا الدليل نماذج التجميع الرئيسية، والافتراض المشترك بينها، وكيفية تشغيل أحدها في Potato.
المشكلة التي يتظاهر التصويت بالأغلبية بأنها غير موجودة
اجمع ثلاث تسميات لعنصر ما وخذ الأغلبية. ينجح ذلك عندما يكون المُعلِّقون متساوين تقريبًا ومصيبين في معظم الأحيان. وينهار في اللحظة التي لا يكونون فيها كذلك. يحسب التصويت بالأغلبية الخبير الدقيق والروبوت الذي ينقر عشوائيًا صوتًا واحدًا لكل منهما، ويهمل توزيع الأصوات (الفوز بنتيجة 2 مقابل 1 والاكتساح بنتيجة 3 مقابل 0 يخرجان بالنتيجة نفسها)، ولا يمنحك أي وسيلة لتمييز عنصر صعب حقًا من مُعلِّق كسول. هذه هي مشكلة استنتاج الحقيقة: استعادة التسمية الحقيقية الكامنة وموثوقية كل مُعلِّق في آنٍ واحد، انطلاقًا من مصفوفة التسميات وحدها لا غير.
نماذج مصفوفة الالتباس: Dawid and Skene
يبلغ عمر الطريقة التأسيسية نحو 50 عامًا. صاغ Dawid and Skene (1979) نموذجًا لكل مُعلِّق بمصفوفة التباس، أي احتمالات أن يُسمّي عنصرًا صحيحًا-موجبًا بأنه موجب أو سالب وهكذا، واستخدما تعظيم التوقّع لتقدير تلك المصفوفات والتسميات الحقيقية معًا. المُعلِّق الذي يخلط بين فئتين يحصل على مصفوفة التباس تُظهر ذلك، ويُخفَّض وزن صوته في هذا التمييز تبعًا لذلك. تكاد كل نماذج التجميع الحديثة تنحدر من هذه الفكرة.
MACE: الكفاءة وكشف الإرسال العشوائي
قدّم Hovy et al. (2013) نموذج MACE (Multi-Annotator Competence Estimation)، الذي يضيف نموذجًا صريحًا للإرسال العشوائي: يُعامَل كل مُعلِّق بوصفه إما يعرف الإجابة أو يخمّن، ويقدّر MACE احتمال أنه كان يخمّن في كل عنصر. يمنحك ذلك درجة كفاءة واحدة لكل مُعلِّق بين 0 و1، إضافة إلى إنتروبيا لكل عنصر تُشير إلى العناصر الغامضة حقًا. وهو سريع، وبارع في اصطياد الناقرين عشوائيًا، وهو النموذج الذي يأتي مدمجًا مع Potato.
النماذج البايزية وأدلة الدراسات الاستقصائية
اتسع هذا المجال إلى ما هو أبعد بكثير من هذين النموذجين. قارن Paun et al. (2018) عائلة من نماذج التعليق البايزية على مجموعات بيانات حقيقية ووجدوا أنها تتفوق باطراد على التصويت بالأغلبية، خصوصًا عندما تتفاوت جودة المُعلِّقين كثيرًا، مع تقديمها في الوقت نفسه لعدم يقين معايَر يمكنك تمريره إلى المراحل اللاحقة. وعلى الصعيد الهندسي، قيّم Zheng et al. (2017) 17 طريقة لاستنتاج الحقيقة وتساءلوا عمّا إذا كانت المشكلة قد حُلّت. والجواب المختصر: لا تفوز طريقة واحدة في كل مكان، لكن جميعها تقريبًا تتفوق على التصويت بالأغلبية، وتتسع الفجوة كلما انخفضت جودة التسميات.
الافتراض الذي تشترك فيه جميعها
تفترض كل النماذج المذكورة أعلاه وجود تسمية حقيقية واحدة وأن الخلاف خطأ. وهذا مقبول في المهام الموضوعية. أما في المهام الذاتية فهو خطأ تمامًا: في مسائل الإساءة أو الانفعال أو الحكم الأخلاقي، قد يختلف مُعلِّقان لأنهما يقرآن النص فعلًا بطريقتين مختلفتين، ويرى Plank (2022) أن هذا التباين البشري في التسميات غالبًا ما يكون إشارة لا تشويشًا. فإن أزلته بالتجميع، تكون قد ألقيت بعيدًا ما جعل البيانات مثيرة للاهتمام. (نتعمق في هذا في الخلاف إشارة لا تشويش.)
هنا يبدأ أهمية معرفة مَن قام بالتعليق. إن NUTMEG (Ivey, Gauch, and Jurgens, 2025) نموذج بايزي مبني لهذا التوتر بالضبط: يستخدم معلومات خلفية المُعلِّق لفصل الخلاف المشروع والمنهجي عن التشويش، فيزيل التسميات المتهاونة من بيانات التدريب مع الحفاظ على الخلاف الذي يعكس هوية المُعلِّق. ولا ينجح ذلك إلا إذا كنت قد جمعت الخلفية في المقام الأول. فإذا أجريت استبيانًا ديموغرافيًا تمهيديًا قبل الدراسة (انظر جمع البيانات الديموغرافية للمُعلِّقين بمسؤولية وأدوات الاستبيان في Potato)، فستملك بيانات المُعلِّق الوصفية التي يحتاجها نموذج على غرار NUTMEG؛ ومن دونها، تبقى عالقًا في معاملة كل خلاف بوصفه إما كله خطأً أو كله إشارة.
تنفيذ ذلك في Potato
يُشغّل Potato نموذج MACE على بيانات المُعلِّقين المتعددين لديك ويُبلغ عن الكفاءة والتسميات المستنتجة في لوحة تحكم المسؤول. وهو يعمل على المخططات الفئوية (radio وlikert وselect وmultiselect) ويحتاج إلى تداخل حقيقي، أي عدة مُعلِّقين لكل عنصر، حتى يكون لديه ما يقدّره.
mace:
enabled: true
trigger_every_n: 10 # re-estimate after every 10 new annotations
min_annotations_per_item: 3 # ignore items with fewer than 3 labels
min_items: 5 # wait for at least 5 eligible itemsبعد تشغيله، يحصل كل مُعلِّق على درجة كفاءة (قرب 1.0 موثوق، وما دون 0.5 غالبًا مُرسِل عشوائي)، ويحصل كل عنصر على تسمية متوقّعة إضافة إلى قيمة إنتروبيا. الإنتروبيا المنخفضة تعني أن النموذج واثق؛ والإنتروبيا القريبة من حدها الأقصى تعني غياب الإجماع، وهو ما يُشير عادة إلى عنصر صعب حقًا أو غير محدد بدقة لا إلى مُعلِّق سيئ. تجد جميع الخيارات في مرجع ميزة MACE.
ملاحظتان عمليتان. أولًا، جمِّع على التداخل الذي جمعته فعلًا؛ فـ MACE يحتاج إلى عدة تسميات لكل عنصر، لذا خطّط لـالتداخل قبل الدراسة لا بعدها. ثانيًا، يمنحك MACE تسمية واحدة؛ وإذا كانت مهمتك ذاتية، ففكّر في الاحتفاظ بالتوزيع بدلًا من ذلك عبر مخطط soft_label، ولا تلجأ إلى الفصل إلا حيث تحتاج فعلًا إلى إجابة واحدة.
متى تُجمّع ومتى تحتفظ بالتشتت
قاعدة قرار تقريبية:
- مهمة موضوعية، ويوجد مفتاح إجابات حقيقي ← جمّع إلى تسمية واحدة. استخدم MACE أو التصويت بالأغلبية وامضِ قدمًا.
- شبه موضوعية، لكن بعض المُعلِّقين غير موثوقين ← جمّع باستخدام نموذج كفاءة (MACE) لا التصويت بالأغلبية البسيط، حتى لا يؤثّر المُقيّمون الرديئون في النتيجة.
- مهمة ذاتية، والخلاف ذو معنى ← احتفظ بالتوزيع الكامل (
soft_label)، وإذا كانت لديك بيانات وصفية للمُعلِّق، فنمذِج الخلاف بدلًا من حذفه.
قراءات إضافية
- تقدير الكفاءة بـ MACE، مرجع الميزة مع نقاط نهاية واجهة البرمجة والتفسير.
- الفصل والخلاف، لتسوية الحالات التي تقرر دمجها.
- شرح الاتفاق بين المُعلِّقين، لقياس مقدار تباعد مُعلِّقيك قبل التجميع.
- كم عدد المُعلِّقين الذين تحتاجهم؟، للتداخل الذي يجعل التجميع ممكنًا.