أساسيات تعلم الآلة2001متوسط12 دقيقة قراءة
حقول مارکوف العشوائية الشرطية: نماذج احتمالية لتجزئة البيانات التسلسلية ووسمها
Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data
Lafferty, J. · McCallum, A. · Pereira, F. — ICML
المشكلة
حتى عام 2001 كانت مهمة — أي إعطاء وسم لكل عنصر في سلسلة، مثل تحديد نوع كل كلمة نحوياً — تقوم على عائلتين من النماذج، وكلتاهما فيها قصور جوهري. النماذج التوليدية كنموذج ماركوف الخفي تفترض أن كل مشاهدة مستقلة عن غيرها طالما عرفنا الحالة، وبالتالي لا تستطيع الاستفادة من سمات متداخلة أو معقدة في المدخلات. في المقابل، النماذج التمييزية الموجَّهة كنموذج ماركوف ذي الإنتروبيا العظمى (MEMM) تستطيع توظيف سمات غنية، لكنها تقع في فخ مشكلة : الحالات التي ليس أمامها إلا مخارج قليلة تتجاهل المدخلات فعلياً، لأن تسوية الاحتمالات تجري على مستوى كل حالة وحدها، فتتنافس الانتقالات مع بعضها فقط بدلاً من أن تتنافس مع فضاء الوسوم كاملاً.
الإسهام
الحقول العشوائية الشرطية (CRF): نماذج بيانية غير موجَّهة تحسب الاحتمال الشرطي P(y|x) لتسلسل الوسوم الكامل y بمعرفة تسلسل المشاهدات x، وذلك عبر تسوية واحدة شاملة على مستوى التسلسل بأكمله. هذه التسوية الشاملة هي ما يحلّ مشكلة انحياز الوسم، لأن كل انتقال يتنافس مع جميع الانتقالات الأخرى على مستوى التسلسل ككل وليس على مستوى الحالة المنفردة. بذلك تجمع CRF مزايا الاتجاهين: توظّف سمات متداخلة وعشوائية من المدخلات كما تفعل النماذج التمييزية، وفي الوقت نفسه تحافظ على احتمالات متسقة على مستوى التسلسل كاملاً فتتجنّب انحياز الوسم. في حالة السلاسل الخطية يُستخدم الدقيق ، ولإيجاد أفضل تسلسل وسوم خوارزمية — وهي أدوات البرمجة الديناميكية نفسها المستخدمة مع HMM، لكن بدوال جهد مختلفة.
الأثر
هيمنت CRF على مجال التنبؤ المهيكل في معالجة اللغة الطبيعية لأكثر من عقد ونصف. كانت وراء أفضل الأنظمة في التعرُّف على الكيانات المسمّاة ووسم أجزاء الكلام والتحليل السطحي واستخراج المعلومات. بنية BiLSTM-CRF — التي تغذّي تمثيلات عصبية مُتعلَّمة في طبقة إخراج CRF — ظلّت المعيار الذهبي لوسم التسلسلات حتى بعد انتشار التعلُّم العميق. وامتد تأثير CRF خارج معالجة اللغة إلى (كنموذج DeepLab للتجزئة الدلالية) وإلى المعلوماتية الحيوية. وحتى اليوم تظهر طبقات CRF داخل بنى حديثة مثل ELMo ووسوم BERT كلما كانت هناك تبعيات بين الوسوم يجب مراعاتها.
تخيّل أنك تجمع أحجية تمثّل جملة، كل قطعة فيها كلمة وعليك أن تلوّنها بلون يمثّل . في نموذج ماركوف الخفي أنت معصوب العينين: لا تحسّ إلا شكل القطعة الحالية، وتحاول تخمين لونها بناءً على لون القطعة السابقة فقط. أما في MEMM فترفع العصابة عن عينيك، لكنك تجلس أمام طاولة صغيرة مستقلة لكل قطعة — وإذا كان على الطاولة وعاء طلاء واحد، فستستخدمه حتماً بصرف النظر عن شكل القطعة.
يغيّر القواعد تماماً: يجلسك أمام طاولة طويلة واحدة عليها الأحجية كاملة مفرودة أمامك. ترى كل القطع دفعة واحدة وتختار ألوان التسلسل بأكمله معاً، فاللون الذي تختاره للموضع الخامس يمكن أن يتأثر بشكل القطعة في الموضع الخمسين. في النهاية يُقيَّم التلوين بأكمله تقييماً شاملاً، والتلوين الأفضل ككل هو الفائز.
المشكلة: حين تُخرِّب القرارات المحلية الاتساقَ الكلي
وسم من أكثر المهام جوهرية في معالجة اللغة الطبيعية: أعطني جملة، وسأعيّن وسماً لكل كلمة فيها. هل كلمة «عين» هنا اسم أم فعل؟ هل «القاهرة» مدينة أم اسم شخص؟ الإجابة تتوقف على السياق، والأهم من ذلك أنها تتوقف على الوسوم المجاورة.
قبل ظهور الحقول العشوائية الشرطية، كان هناك اتجاهان رئيسيان:
نماذج ماركوف الخفية نماذج توليدية تصوغ المشترك P(x, y) للمشاهدات والوسوم معاً. المشكلة أنها تبني على افتراض استقلال صارم: كل مشاهدة لا تعتمد إلا على وسمها هي فقط. عملياً هذا يعني أنك لا تستطيع أن تقول للنموذج «انتبه، الكلمة السابقة أداة تعريف» أو «هذه الكلمة تبدأ بحرف كبير والكلمة التالية فعل». اللغة الطبيعية مليئة بمثل هذه الأدلة المتداخلة والمترابطة التي يتجاهلها HMM تماماً.
نماذج ماركوف ذات الإنتروبيا العظمى (MEMM) تحلّ مشكلة : فهي وتستطيع توظيف أي سمات تريدها. لكنها تفتح الباب لمشكلة أسوأ: انحياز الوسم. لأن كل حالة تُسوّي انتقالاتها بشكل مستقل، فالحالات ذات المخارج القليلة تتجاهل المدخلات فعلياً. الصورة الذهنية هنا بسيطة: تخيّل مخرج طريق سريع بمنحدر واحد فقط — مهما قالت اللوحة الإرشادية، ستسلك هذا المنحدر لأنه الخيار الوحيد. هكذا تنفصل تنبؤات النموذج عن الواقع الذي تقوله المدخلات.
الفكرة: درجة واحدة شاملة للتسلسل بأكمله
الفكرة المحورية للحقول العشوائية الشرطية تبدو بسيطة للغاية لكن أثرها عميق: بدلاً من أن يتخذ النموذج قراراً محلياً عند كل موضع ويسوّي الاحتمالات حالة بحالة، نحسب درجة واحدة للتسلسل بأكمله ونجري مرة واحدة فقط على جميع تسلسلات الوسوم الممكنة. هذا هو الفرق الجوهري بين نموذج مُسوًّى محلياً كـ MEMM ونموذج مُسوًّى شاملاً كـ CRF.
يُعرِّف الحقل العشوائي الشرطي الاحتمال الشرطي لتسلسل الوسوم y بمعرفة تسلسل المشاهدات x كالتالي:
لتقريب الفكرة أكثر: تخيّل لجنة تحكيم في مسابقة تزلّج فني. حَكَم نموذج ماركوف الخفي يقيّم كل حركة على حدة دون أن يرى ما قبلها أو ما بعدها. حَكَم MEMM يشاهد العرض كاملاً لكنه يسجّل درجة كل حركة على بطاقة منفصلة ويعتمدها فوراً دون مراجعة. أما حَكَم الحقل العشوائي الشرطي فيشاهد العرض من أوله لآخره، ثم يضع درجة واحدة تعكس الأداء ككل — مدى انسجام الحركات معاً وتناسق الانتقالات بينها.
دوال السمات: عيون النموذج على البيانات
قوة الحقول العشوائية الشرطية تكمن في دوال السمات. كل دالة سمة هي دالة تُرجع قيمة ثنائية أو حقيقية، وتلتقط نمطاً بعينه من البيانات. مثلاً:
- «هل الكلمة الحالية تبدأ بحرف كبير والوسم هو اسم عَلَم؟» → 1 أو 0
- «هل الوسم السابق أداة تعريف والوسم الحالي اسم؟» → 1 أو 0
- «هل الكلمة الحالية تنتهي بـ'-ing' والوسم فعل؟» → 1 أو 0
- «هل الكلمة موجودة في قائمة أسماء مدن والوسم موقع جغرافي؟» → 1 أو 0
لكل سمة مُتعلَّم : إذا كان موجباً فهو يشجّع هذا النمط، وإذا كان سالباً فهو يثبّطه. الدرجة الإجمالية لأي تسلسل وسوم هي المجموع الموزون لكل السمات المُفعَّلة عبر جميع المواضع، ثم تأتي دالة التجزئة Z(x) لتضمن أن هذه الدرجات تتحوّل إلى احتمالات صحيحة.
هذا تحديداً ما يجعل CRF أقوى من نموذج ماركوف الخفي في المهام الغنية بالسمات: يمكنك إدخال أي سمة تستطيع حسابها من المدخلات، دون الحاجة لافتراضات استقلال تُقيّد النموذج.
انحياز الوسم: العيب الذي صُمِّمت CRF لعلاجه
مشكلة انحياز الوسم خفية لكنها مُدمِّرة. في نموذج MEMM، كل حالة تُسوّي احتمالات انتقالاتها الخارجة بحيث يكون مجموعها 1. يبدو هذا طبيعياً، لكن فكّر في حالة أمامها مخرج انتقال واحد فقط: سيحصل هذا الانتقال على احتمال 1.0 مهما كانت المشاهدة. النموذج ببساطة عاجز عن استخدام المدخلات لتغيير قراره عند هذه الحالة.
والمشكلة أعمّ من ذلك: كل حالة ذات مخارج أقل تحظى بميزة غير عادلة، لأن كتلتها الاحتمالية لا تنقسم على عدد كبير من البدائل. النتيجة أن المسار الأفضل كلياً قد تهيمن عليه حالات «قليلة التفرّع» حتى لو كانت المدخلات تناقضها بوضوح.
تحلّ CRF هذه المشكلة بطريقة جذرية: تتخلّص من التسوية على مستوى الحالة تماماً. درجة أي تسلسل وسوم هي مجموع غير مُسوًّى لأوزان السمات، ولا تتحوّل الدرجات إلى احتمالات إلا بالقسمة النهائية على Z(x). بهذا الشكل كل انتقال يتنافس مع كل تسلسل وسوم ممكن آخر على المستوى الكلي، فلا يمكن لأي حالة أن تحتكر الكتلة الاحتمالية.
التوليدي مقابل التمييزي: أين تقع CRF في الصورة
هناك توازٍ أنيق بين أزواج النماذج يستحق التأمل. الانحدار اللوجستي هو النظير التمييزي لنموذج بايز الساذج: كلاهما يتعامل مع المنفرد، لكن الانحدار اللوجستي يصوغ P(y|x) مباشرةً بينما بايز الساذج يصوغ الاحتمال المشترك P(x,y).
CRF تأخذ هذا التوازي وتمدّه إلى عالم التسلسلات. نموذج ماركوف الخفي هو بايز الساذج ممدوداً على سلسلة: وقائم على افتراضات استقلال. والحقل العشوائي الشرطي ذو السلسلة الخطية هو الانحدار اللوجستي ممدوداً على سلسلة: تمييزي ومتحرّر من افتراضات الاستقلال على المدخلات.
وكما يتفوق الانحدار اللوجستي على بايز الساذج باستمرار حين تتوفر بيانات كافية، كذلك تتفوق CRF على نموذج ماركوف الخفي باستمرار في مهام وسم التسلسلات الغنية بالسمات.
دالة التجزئة: من درجات خام إلى احتمالات حقيقية
دالة التجزئة هي المقام الذي يحوّل الدرجات الخام إلى احتمالات صحيحة. وظيفتها أنها تجمع الدرجات المُرفَّعة أُسّياً على كل تسلسل وسوم ممكن:
فكّر في دالة التجزئة كثابت تسوية يجيب عن سؤال واحد: «لو جمعنا الأوزان الخام لكل طريقة يمكن تصوّرها لوسم هذه الجملة، ما الإجمالي؟» حين تعرف هذا الإجمالي يصبح بإمكانك حساب نصيب أي تسلسل وسوم بعينه من هذا الإجمالي — وهذا هو الاحتمال.
حساب Z(x) بكفاءة أمر حيوي لأنها تظهر في مكانين: عند حساب الاحتمالات وعند حساب أثناء . خوارزمية الأمام تبنيها موضعاً بموضع مُعيدةً استخدام نتائج وسيطة — كل موضع يحتاج فقط الدرجات المتراكمة من الموضع السابق مضروبة في الجهد المحلي.
الاستدلال: كيف نجد أفضل تسلسل وسوم
في CRF نحتاج إلى حلّ مسألتي استدلال أساسيتين:
1. حساب الاحتمالات الهامشية — بمعنى: «ما احتمال أن الموضع t يحمل الوسم j؟» هذا الحساب ضروري لاشتقاق التدرُّج أثناء التدريب. خوارزمية الأمام-الخلف، وهي آلية تمرير رسائل على السلسلة الخطية، تحلّها في زمن O(T × L²).
2. إيجاد أفضل تسلسل — بمعنى: «أي تسلسل وسوم كامل يملك أعلى احتمال؟» خوارزمية فيتربي تجيب عن هذا السؤال، وأيضاً في زمن O(T × L²). الفكرة هي البرمجة الديناميكية ذاتها: تمشي إلى الأمام عبر السلسلة، وعند كل موضع تحتفظ فقط بأفضل مسار جزئي ينتهي بكل وسم، ثم تتتبّع الخطوات عكسياً لتستعيد أفضل تسلسل كامل.
كلتا الخوارزميتين تكييف مباشر لنظيرتيهما في نماذج ماركوف الخفية. الاختلاف الوحيد يكمن في دوال الجهد: HMM يستخدم ، بينما CRF يستخدم .
التدريب: تعظيم الأرجحية الشرطية
تدريب الحقل العشوائي الشرطي يهدف إلى تعظيم لوغاريتم الأرجحية الشرطية لتسلسلات الوسوم الصحيحة في بيانات التدريب. بالنسبة لزوج تدريب ، تكون :
التدرُّج يأخذ صيغة واضحة وسهلة التفسير: هذا نمط يتكرر كثيراً في : التدرُّج يدفع الإحصائيات التي يتوقعها النموذج لتقترب من الإحصائيات التي نلاحظها فعلاً في البيانات. يصل التدريب إلى حين تتطابق تنبؤات النموذج مع الواقع في المتوسط.
الورقة الأصلية استخدمت أسلوب القياس التكراري (Iterative Scaling) في ، لكن التطبيقات الحديثة تعتمد على L-BFGS أو لأنهما يتقاربان أسرع بكثير عملياً.
الفكرة نفسها مترجمة إلى شيفرة
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def crf_forward(emissions, transitions):
"""خوارزمية الأمام: حساب log Z(x).
emissions: (T, L) — درجة كل وسم عند كل موضع
transitions: (L, L) — درجة الانتقال من وسم i إلى وسم j
تُعيد: log Z(x)، لوغاريتم دالة التجزئة.
"""
T, L = emissions.shape
alpha = emissions[0] # نبدأ بالموضع الأول
for t in range(1, T):
# alpha[i] + transitions[i,j] + emissions[t,j] لكل زوج (i,j)
alpha = np.logaddexp.reduce(
alpha[:, None] + transitions + emissions[t][None, :],
axis=0
)
return np.logaddexp.reduce(alpha) # نجمع على حالات النهاية
def crf_viterbi(emissions, transitions):
"""فيتربي: إيجاد أفضل تسلسل وسوم.
تُعيد: أفضل درجة، وأفضل تسلسل وسوم (كقائمة أعداد صحيحة).
"""
T, L = emissions.shape
scores = emissions[0]
backpointers = []
for t in range(1, T):
candidates = scores[:, None] + transitions + emissions[t][None, :]
scores = candidates.max(axis=0)
backpointers.append(candidates.argmax(axis=0))
# نتتبّع المسار عكسياً
best = [scores.argmax()]
for bp in reversed(backpointers):
best.append(bp[best[-1]])
return scores.max(), list(reversed(best))
# مثال: 3 مواضع، وسمان اثنان
emissions = np.array([[1.0, 0.5], [0.3, 1.2], [0.8, 0.1]])
transitions = np.array([[0.7, 0.3], [0.4, 0.6]])
log_Z = crf_forward(emissions, transitions)
best_score, best_path = crf_viterbi(emissions, transitions)
print(f"log Z(x) = {log_Z:.3f}")
print(f"أفضل مسار: {best_path}، الدرجة: {best_score:.3f}")مقارنة مباشرة: HMM مقابل MEMM مقابل CRF
لماذا غيّرت CRF قواعد اللعبة
هيمنت CRF على مجال التنبؤ المهيكل في معالجة اللغة الطبيعية لأكثر من خمسة عشر عاماً. بين 2001 و2015 كاد كل نظام فائز في ووسم أجزاء الكلام والتحليل السطحي و يعتمد على CRF — إما بشكل مستقل مع سمات مصمَّمة يدوياً، أو بوصفها إخراج فوق مستخلصات .
بنية BiLSTM-CRF تستحق وقفة خاصة. الفكرة أنك تأخذ تمثيلات مُتعلَّمة من شبكة LSTM ثنائية الاتجاه وتغذّيها في طبقة إخراج CRF، فتحصل على أفضل ما في الاتجاهين: سمات عميقة من وتنبؤات تسلسلية متسقة من CRF. سيطرت هذه البنية على معايير التعرُّف على الكيانات المسمّاة لسنوات.
وخارج معالجة اللغة، امتد تأثير CRF إلى الرؤية الحاسوبية — وأبرز مثال نموذج DeepLab الذي يستخدم CRF لتنقيح تنبؤات على مستوى البكسل وإنتاج حدود حادة ومتماسكة. وفي المعلوماتية الحيوية تُستخدم CRF لنمذجة بنية الجينات والبنية الثانوية للبروتينات.
حتى في عصر ، تبقى فكرة CRF حاضرة. كلما احتجنا إلى مخرجات مهيكلة ومتسقة — لا مجرد تنبؤات مستقلة لكل رمز — يظل مبدأ التسوية الشاملة الذي أرسته هذه الورقة أداة قيّمة.
2001
نشر ورقة CRF في مؤتمر ICML
قدّم Lafferty وMcCallum وPereira الحقول العشوائية الشرطية كحل لمشكلة انحياز الوسم، وأرسوا مبدأ التسوية الشاملة في وسم التسلسلات.
2003
CRF تتصدّر معايير معالجة اللغة
حققت CRF بسمات مصمَّمة يدوياً أفضل النتائج في التعرُّف على الكيانات المسمّاة ووسم أجزاء الكلام والتحليل السطحي. وأصبح CRFsuite وMallet من الأدوات المعيارية في المجال.
2011
CRF تدخل مجال الرؤية الحاسوبية
طُبِّقت CRF الكثيفة على التجزئة الدلالية، ثم أُدمِجت لاحقاً في بنية DeepLab. الفكرة أن وسم كل بكسل يُعامَل كجزء من حقل عشوائي مشروط على الصورة.
2015
ظهور بنية BiLSTM-CRF
جمع Huang وXu وYu بين شبكات LSTM ثنائية الاتجاه وطبقة إخراج CRF، فأسسوا البنية التي هيمنت على وسم التسلسلات العصبي لسنوات بعدها.
2018
ELMo + CRF
أظهر Peters وزملاؤه أن تمثيلات الكلمات السياقية العميقة (ELMo) حين تُغذَّى في بنية BiLSTM-CRF تحقق نتائج غير مسبوقة في عدة مهام لمعالجة اللغة الطبيعية.
نظرة شاملة على النموذج البياني لـ CRF
المرجعLafferty, McCallum, Pereira. Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data. ICML, 2001.
مصطلحات هذه الورقة
- الحقل العشوائي الشرطيConditional Random Field
- نموذج ماركوف المخفيHidden Markov Model
- انحياز الوسمLabel Bias
- دالة السماتFeature Function
- ثابت التقسيمPartition Function
- فيتربيViterbi
- خوارزمية الأمام-الخلفForward-Backward Algorithm
- الانحدار اللوجستي الاحتماليLogistic Regression
- وسم التسلسلاتSequence Labeling
- النموذج البياني غير الموجَّهUndirected Graphical Model