التعلم الذاتي الإشراف2018متوسط11 دقيقة قراءة
تعلُّم التمثيلات عبر الترميز التنبُّئي التبايُني
Representation Learning with Contrastive Predictive Coding
van den Oord, A. · Li, Y. · Vinyals, O. — arXiv
المشكلة
حتى عام 2018 كان تعلُّم التمثيلات بدون إشراف محصوراً في مسارين: إما نماذج توليدية تُعيد بناء المدخلات بكسلاً ببكسل — وهي مُكلِفة حسابياً وتُنفق معظم طاقتها على تفاصيل دقيقة لا تهمّ — أو مقاربات تمييزية لا تعمل إلا على نوع واحد من البيانات. لم يكن هناك إطار موحَّد يستطيع استخلاص سمات عالية المستوى من بيانات خام متنوعة — صوت أو صور أو نصوص أو ملاحظات في بيئة تعلُّم معزَّز — بهدف تدريبي واحد ومبنيّ على أسس نظرية، دون الحاجة إلى أي تسميات بشرية.
الإسهام
يُقدِّم CPC إطاراً يتعلّم التمثيلات عبر التنبؤ بالمستقبل في . يضغط الملاحظات الخام إلى تضمينات، ويُلخِّص نموذج ذاتي الانحدار التضمينات السابقة في متجه سياقي، ثم يستخدم مُتنبِّئ خطّي هذا السياق لتمييز المستقبل الحقيقي من بين عينات سلبية، بالاعتماد على دالة خسارة جديدة تُسمى InfoNCE. أُثبت رياضياً أن InfoNCE تُمثِّل حدّاً أدنى بين السياق والمستقبل، وبالتالي فإن تعظيمها يُجبر التمثيل على التقاط البنية البطيئة عالية المستوى التي تجعل المستقبل قابلاً للتنبؤ. الإطار نفسه يعمل على الصوت والصور والنصوص والتعلُّم المعزَّز.
الأثر
قدّم CPC دالة التي أصبحت الركيزة الأساسية الحديث. كلٌّ من SimCLR وMoCo وwav2vec 2.0 وCLIP ينحدر مباشرةً من هذه الفكرة. أثبت CPC أن التنبؤ بالمستقبل في الفضاء الكامن — بدلاً من إعادة بناء المدخلات الخام — يُنتج تمثيلات قابلة للنقل عبر المهام وأنواع البيانات المختلفة. وقد أشعل CPC ثورة التعلُّم ذاتي الإشراف التي جعلت واسع النطاق بدون تسميات ليس ممكناً فحسب، بل هو النهج السائد اليوم.
تخيّل أنك في حفل موسيقي وعيناك مغمضتان. بعد سماع أول جمل اللحن، تستطيع تخمين النغمات القادمة — ليس بدقة مثالية، لكن بما يكفي لتفرِّق بين التكملة الحقيقية ومقطع عشوائي من أغنية مختلفة.
لا تحتاج لإعادة بناء الموجة الصوتية الدقيقة للنغمة التالية، ولا تحتاج أن تكون موسيقياً. يكفيك أن تميِّز «ما يأتي فعلاً بعد ذلك» عن «ما لا ينتمي أصلاً». هذا التباين — بين المستقبل الحقيقي والدخيل العشوائي — هو كل ما يحتاجه من إشارة.
يعمل CPC بالطريقة ذاتها: يستمع إلى الماضي، ويبني ملخصاً مضغوطاً، ثم يتعلّم اختيار المستقبل الحقيقي من بين طابور من المرشحين — والمهارة التي يكتسبها من هذه العملية تتحوّل إلى فهم عميق لبنية البيانات.
المشكلة: النماذج التوليدية تُهدر طاقتها على الضجيج
قبل ظهور CPC، كان النهج السائد في التعلُّم بدون إشراف هو : درِّب نموذجاً على إعادة بناء مدخلاته (مثل المُرمِّز الذاتي العميق) أو على التنبؤ بكل بكسل أو عيّنة صوتية. المشكلة أن الجزء الأكبر من المعلومات في الإشارات الخام — سطوع كل بكسل بالتحديد، الشكل الموجي الدقيق للصوت — ليس سوى ضجيج عالي التردد لا يحمل أي دلالة عن المعنى الحقيقي.
نموذج يحاول إعادة بناء صورة وجه بدقة سيُنفق معظم سعته على نمذجة ملمس البشرة والإضاءة، لا على تعلُّم أن ما أمامه هو وجه أصلاً. ونموذج الكلام الذي يُعيد بناء الموجات الصوتية سيُنفق سعته على صدى الغرفة بدلاً من التعرُّف على الأصوات اللغوية.
ما نريده فعلاً هو البنية عالية المستوى البطيئة التغيُّر: اللحن الذي يمتد عبر مقطع صوتي، هوية الكائن عبر رُقَع الصورة، الموضوع عبر فقرة نصية. هذه البنية هي ما يجعل المهام اللاحقة — من واسترجاع واستدلال — ممكنة.
الفكرة: تنبَّأ بالمستقبل في الفضاء الكامن
الفكرة المحورية في CPC بسيطة: غيِّر ماذا تتنبأ به وكيف تُقيِّم التنبؤ:
ماذا تتنبأ: لا تتنبأ ببكسلات خام أو أشكال موجية. بدلاً من ذلك، تنبَّأ بـ مضغوط للمستقبل — تضمين يلتقط المحتوى عالي المستوى ويتخلص من الضجيج.
كيف تُقيِّم: لا تُقارن تنبؤك بالحقيقة بكسلاً ببكسل. بدلاً من ذلك، حوِّلها إلى مسألة تصنيف: هل تستطيع اختيار تضمين المستقبل الحقيقي من بين مجموعة عشوائية؟
هذا المزيج فعّال جداً. النموذج مُجبَر على التقاط البنية المشتركة البطيئة التغيُّر بين الماضي والمستقبل (أي تعظيم المعلومات المتبادلة) مع تجاهل الضجيج الذي لا يمكن التنبؤ به. ولأن التنبؤ يحدث في فضاء التضمين، فهو سريع ويعمل مع أي نوع من البيانات — صوت وصور ونصوص و.
البنية: ثلاث قطع بسيطة
يتكوّن CPC من ثلاث قطع تعمل معاً — تخيّلها كميكروفون وراوٍ ومحقِّق:
1. المُرمِّز — الميكروفون. يضغط كل ملاحظة خام (إطار صوتي، رُقعة صورة، كلمة) إلى تضمين كامن . يُزيل هذا الضغط الضجيج عالي التردد ويحتفظ بالمحتوى المفيد فقط. في الكلام يكون المُرمِّز شبكة التفافية بخطوات متدرجة تعمل مباشرة على صوت خام بتردد 16 كيلوهرتز؛ وفي الصور يكون ResNet؛ وفي النصوص يكون جدول بحث .
2. — الراوي. يقرأ تسلسل التضمينات حتى الخطوة الزمنية الحالية ويُنتج واحد يُلخِّص كل ما شوهد حتى الآن. قد يكون هذا النموذج أو أو شبكة التفافية مُقنَّعة — أي بنية تلتقط الترتيب الزمني. متجه السياق هو «القصة الجارية» للنموذج عن كل ما حدث.
3. المُتنبِّئات الخطية — المحقِّقون. لكل خطوة مستقبلية (واحد، اثنان، ثلاثة، …) تحويل خطي منفصل يتنبأ بالشكل المتوقع لتضمين المستقبل. كل مُتنبِّئ يتخصص في «مسافة نظر أمامي» مختلفة.
InfoNCE: دالة الخسارة التبايُنية التي أشعلت الثورة
السؤال الجوهري: كيف تُدرِّب هذا النظام بدون أي تسميات بشرية؟ الجواب هو دالة خسارة مصمَّمة بذكاء تُسمى InfoNCE ( المعلوماتي).
الإعداد يشبه طابور تعرُّف في مركز شرطة: عند كل خطوة زمنية ولكل خطوة مستقبلية ، اجمع مجموعة من تضمين. واحد فقط منها هو المستقبل الحقيقي (العيّنة الإيجابية)؛ والبقية تضمينات عشوائية مسحوبة من البيانات (العيّنات السلبية). على النموذج أن يُحدِّد أيها الحقيقي مستخدماً فقط متجه السياق .
دالة التقييم هي بسيط يقيس مدى التوافق: . كلما ارتفعت الدرجة دلّ ذلك على أن «هذا المرشح يبدو كالمستقبل الحقيقي بالنظر إلى سياقي».
يمكنك قراءة هذه الصيغة على أنها مُصنِّف على المرشحين: الخسارة هي حيث «الصنف الصحيح» هو المستقبل الحقيقي. إذا ميّز النموذج العيّنة الإيجابية من السلبيات بشكل مثالي، تصل الخسارة إلى حدّها الأدنى . أما إذا خمّن عشوائياً فالخسارة تبلغ .
الجزء الأجمل هو الضمان النظري: تقليل InfoNCE يُكافئ تعظيم حدّ أدنى لـالمعلومات المتبادلة بين و: . كلما أضفت عيّنات سلبية أكثر ضاق الحدّ — وأُجبر النموذج على التقاط مزيد من المعلومات المشتركة.
لماذا تهمّنا المعلومات المتبادلة
المعلومات المتبادلة تقيس إلى أيّ حدّ يُقلِّل السياق من حالة عدم اليقين حول المستقبل . تعظيمها يُجبر النموذج على ترميز المعلومات المشتركة تحديداً بين الماضي والمستقبل — أي الأنماط البنيوية البطيئة — وتجاهل المعلومات الخاصة بكل خطوة زمنية — أي الضجيج.
فكِّر فيها كـمصفاة للأهمية: اللحن مشترك بين المقطع الأول والثاني من المقطوعة (معلومات متبادلة عالية)، لكن ضجيج التسجيل في كل لحظة مستقل تماماً (معلومات متبادلة منخفضة). النموذج يتعلّم تمثيل اللحن والتخلص من الضجيج — ليس لأننا طلبنا منه ذلك، بل لأن هذا هو السبيل الوحيد لحلّ المهمة التبايُنية.
لهذا يلتقط CPC متعددة الأغراض: البنية المشتركة عبر الزمن هي بالضبط ما تحتاجه المهام اللاحقة — هوية الصوت اللغوي في الكلام، هوية الكائن في الصور، تماسك الموضوع في النصوص.
حيلة نسبة الكثافة: لماذا يتجنب CPC النمذجة التوليدية
هنا يأتي خيار تصميمي حاسم: CPC لا يُنمذج التوزيع الشرطي الكامل ولا التوزيع الهامشي . إنما يُنمذج نسبتهما فقط:
هذه هي : تُخبرك بمقدار زيادة احتمال ملاحظة مستقبلية عندما تعرف السياق مقارنةً باحتمالها العام بدون سياق. يتعلّم CPC هذه النسبة مباشرة عبر التبايُنية، فيتجاوز الحاجة لأي نموذج توليدي.
لماذا هذا الأسلوب ذكي؟ لأن نمذجة في فضاءات عالية الأبعاد (بكسلات، صوت) صعبة للغاية وتُهدر السعة على الضجيج. لكن النسبة تلتقط فقط الترابط بين السياق والمستقبل — أي المعلومات المتبادلة بالذات. إنها الطريق المختصر من البيانات الخام إلى الفهم عالي المستوى.
CPC بالشيفرة
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def info_nce_loss(context, positive, negatives):
"""
context: (d,) — ملخص الماضي (متجه السياق)
positive: (d,) — تضمين المستقبل الحقيقي
negatives: (N-1, d) — تضمينات عشوائية من خطوات زمنية أخرى
يُعيد: قيمة خسارة عددية (أقل = أفضل في تمييز المستقبل الحقيقي)
"""
# قيِّم كل مرشح: الضرب النقطي يقيس التوافق
pos_score = context @ positive # عدد
neg_scores = negatives @ context # (N-1,)
# رصّ كل الدرجات: الإيجابي أولاً ثم السلبيات
all_scores = np.concatenate([[pos_score], neg_scores])
# Softmax → احتمال كل مرشح أن يكون «المستقبل الحقيقي»
logits = all_scores - all_scores.max() # استقرار عددي
log_softmax = logits - np.log(np.exp(logits).sum())
# الإنتروبيا التقاطعية: نريد أن يحصل الأول (الإيجابي) على كل الاحتمال
loss = -log_softmax[0]
return loss
# هذه إنتروبيا تقاطعية والعيّنة الإيجابية هي الصنف الصحيح.
# تقليلها = تعظيم المعلومات المتبادلة بين السياق والمستقبل.
# كلٌّ من SimCLR وMoCo وwav2vec 2.0 يستخدم تنويعات على هذه الخسارة بالذات.إطار واحد، أربعة مجالات
أقوى ما تدّعيه الورقة هو الشمولية: الهدف التنبُّئي التبايُني نفسه يعمل عبر أنواع بيانات مختلفة جذرياً. المُرمِّز يتغير من مجال لآخر، لكن دالة الخسارة ونمط البنية يبقيان كما هما:
الصوت (LibriSpeech): المُرمِّز شبكة التفافية من 5 طبقات بخطوات متدرجة تعمل على موجات صوتية خام بتردد 16 كيلوهرتز، وتُنتج متجه سمات كل 10 مللي ثانية. النموذج ذاتي الانحدار هو GRU. رغم أن النموذج لم يرَ تسميات صوتية قط، تحقق التمثيلات دقة 64.6% في تصنيف الفونيمات بمسبار خطي بسيط — وهي نتيجة تُضاهي الأساليب الخاضعة للإشراف.
الرؤية (ImageNet): تُقسَم الصور إلى شبكة 7×7 من الرُّقَع المتداخلة. كل رُقعة يُرمِّزها ResNet-v2-101. شبكة التفافية مُقنَّعة (مثل PixelCNN) تعمل كنموذج ذاتي الانحدار وتتنبأ بالرُّقَع من الأعلى إلى الأسفل عموداً بعمود. يحقق CPC دقة 48.7% في top-1 بمُصنِّف خطي على التمثيلات المجمَّدة.
النصوص (BookCorpus): الجملة هي الوحدة الأساسية. شبكة التفافية أحادية البعد تُرمِّز الكلمات إلى تضمين جملة؛ وGRU يُلخِّص الجمل السابقة في سياق. ثم يتنبأ النموذج بتضمينات الجمل المستقبلية.
التعلُّم المعزَّز (DeepMind Lab): يُضاف CPC كخسارة مساعدة لوكيل A3C في مهام تنقل ثلاثية الأبعاد. يُحسِّن كفاءة استخدام العيّنات ويُسرِّع التعلم، خاصة في البيئات المعقدة بصرياً.
النتائج: تمثيلات قابلة للنقل
المعيار الذهبي لتقييم التمثيلات غير الخاضعة للإشراف هو : جمِّد المُرمِّز المُتعلَّم ثم درِّب فقط مُصنِّفاً خطياً فوقه. إذا استطاعت طبقة خطية بسيطة التصنيف بجودة عالية، فهذا يعني أن التمثيلات نظّمت البيانات بالفعل في عناقيد قابلة للفصل الخطي — ما يُثبت أن المُرمِّز تعلّم بنية ذات معنى وليس مجرد أنماط محفوظة.
في تصنيف الفونيمات على LibriSpeech، تحقق تمثيلات CPC دقة 64.6% — وهي نتيجة تنافس الأساليب الخاضعة للإشراف الكامل وتتفوق بفارق كبير على خطوط الأساس العشوائية أو MFCC. على ImageNet بمُصنِّف خطي على سمات ResNet-v2 المجمَّدة، يصل CPC إلى دقة 48.7% في top-1. وفي مجال النصوص، تُظهر تمثيلات مستوى الجملة أداءً قوياً في تصنيف المشاعر وكشف نوع السؤال.
لعلّ الأكثر دلالة هو أن تمثيلات CPC تُرمِّز مستويات متعددة من البنية في آنٍ واحد. في مجال الكلام مثلاً، التمثيل ذاته الذي يتنبأ بالصوت المستقبلي يلتقط أيضاً هوية الفونيم وهوية المتحدث — وهما مهمتان متعامدتان — في فضاءات فرعية قابلة للفصل الخطي. النموذج لم يُدرَّب على أيٍّ من هاتين المهمتين، ومع ذلك كلتاهما مقروءة من التضمين نفسه.
لماذا غيّر CPC كل شيء
2013
Word2Vec
أظهر أن التنبؤ بالكلمات السياقية عبر هدف تبايُني يعتمد أخذ العيّنات السلبية يُنتج تضمينات كلمية قوية. يُعدّ الأب الروحي لخسارة InfoNCE.
2018
CPC — الترميز التنبُّئي التبايُني
خسارة InfoNCE + التنبؤ في الفضاء الكامن + الشمولية عبر الصوت والرؤية والنصوص والتعلُّم المعزَّز. الورقة التأسيسية للتعلم التبايُني الحديث.
2020
SimCLR — التعلُّم التبايُني البسيط
استبدل التنبؤ الزمني بأزواج مبنية على التعزيز البياني. استخدم InfoNCE مع معامل حرارة. أظهر أن الدفعات الأكبر (= عيّنات سلبية أكثر) والتعزيزات القوية هي مفتاح الأداء.
2020
MoCo — التباين بالزخم
حلّ مشكلة «الحاجة إلى دفعات ضخمة» عبر طابور من العيّنات السلبية يُحدَّث بالزخم. جعل التعلم التبايُني قابلاً للتوسُّع دون ذاكرة GPU عملاقة.
2020
wav2vec 2.0
الوريث المباشر لـ CPC في مجال الكلام. جمع بين الخسارة التبايُنية والتنبؤ المُقنَّع ووحدة تكميم. حقق أداءً في تمييز الكلام يقترب من مستوى البشر بعشر دقائق فقط من البيانات المُعنونة.
2021
CLIP
وسّع التعلم التبايُني ليشمل أزواج الصورة والنص. تطبيق InfoNCE على دفعات الصورة-النص أنتج أكثر التمثيلات البصرية قابلية للنقل على الإطلاق.
يمثّل CPC الجسر بين حدس Word2Vec — «تنبَّأ بجيرانك لتتعلّم المعنى» — وبين النموذج الحديث في التعلُّم ذاتي الإشراف حيث مُرمِّز واحد مُدرَّب مسبقاً بدون تسميات يُشغِّل كل شيء، من التعرُّف على الكلام إلى البحث في الصور إلى الفهم متعدد الوسائط.
المرجعvan den Oord, Li, Vinyals. Representation Learning with Contrastive Predictive Coding. arXiv, 2018.
مصطلحات هذه الورقة
- خسارة InfoNCEInfoNCE Loss
- الترميز التنبُّئي التبايُني (CPC)Contrastive Predictive Coding (CPC)
- نسبة الكثافةDensity Ratio
- المعلومات المتبادلةMutual Information
- التعلم التبايُنيContrastive Learning
- التعيين السلبيNegative Sampling
- المسبار الخطيLinear Probe
- النموذج التوليدي التراجعيAutoregressive Model