استرجاع المعلومات2022متوسط11 دقيقة قراءة

Contriever: استرجاع كثيف للمعلومات بدون إشراف عبر التعلّم التبايُني

Contriever: Unsupervised Dense Information Retrieval with Contrastive Learning

Izacard, G. · Caron, M. · Hosseini, L. · Riedel, S. · Bojanowski, P. · Joulin, A. · Grave, E. — TMLR

المشكلة

نماذج العصبية حقّقت نتائج ممتازة على معايير تقييم مثل MS MARCO، لكن بشرط واحد: وجود بيانات مُعنونة بشرياً وبأحجام كبيرة. المشكلة تظهر عند الانتقال إلى مجال جديد لا تتوفر فيه بيانات مُعنونة — كالطب أو القانون أو المالية — حيث كان النموذج العصبي ينهار، وتتفوق عليه خوارزمية البسيطة التي تعتمد فقط على عدّ تكرار الكلمات. عملياً، كانت قدرات الاسترجاع العصبي محبوسة خلف تكلفة التعنون البشري. أضف إلى ذلك أن بيانات الاسترجاع المُعنونة تكاد تنحصر بالإنجليزية، ما جعل الاسترجاع الكثيف متعدد اللغات غير قابل للتطبيق فعلياً.

الإسهام

قدّم الباحثون Contriever: نموذج استرجاع كثيف يُدرَّب بالكامل بدون إشراف بشري عبر التعلّم التبايُني. البنية عبارة عن مُرمِّز ثنائي مُهيَّأ من BERT، يُدرَّب بإطار على بيانات ويكيبيديا وCCNet. الفكرة بسيطة: اقتصاص مقطعين عشوائيين من المستند نفسه واعتبارهما زوجاً إيجابياً — بدون أي تعنون بشري. على معيار BEIR، تفوّق Contriever غير المُشرَف على BM25 في 11 من 15 مجموعة بيانات بمقياس الاستدعاء@100. وحين يُستخدم كمرحلة تدريب مسبق قبل على MS MARCO، يُحقق أفضل النتائج بين نماذج . ومع إعادة الترتيب بمُرمِّز متقاطع يُسجّل أفضل أداء على 8 مجموعات من BEIR. النسخة متعددة اللغات mContriever تُمكّن من — حتى بين أنظمة كتابة مختلفة كاستعلامات عربية ومستندات إنجليزية.

الأثر

أثبت Contriever أن الاسترجاع الكثيف لا يحتاج بيانات مُعنونة ليُجاري BM25 أو يتفوّق عليه، وكسر بذلك افتراضاً راسخاً بأن الاسترجاع العصبي يستلزم إشرافاً بشرياً. أصبح النموذج العمود الفقري للاسترجاع في Atlas (نموذج لغوي مُعزَّز بالاسترجاع) وألهم فكرة HyDE (تضمينات المستندات الافتراضية). وصفة التبايُني — اقتصاص عشوائي مع MoCo على نصوص خام — أسّست معياراً جديداً لبناء نماذج استرجاع كثيف من الصفر، وأثّرت في كل نظام استرجاع لاحق سواء كان بدون إشراف أو بإشراف جزئي.

تخيّل أنك وصلت إلى مدينة جديدة وتريد مطعماً يناسب ذوقك. الطريقة التقليدية أن تبحث في القوائم عن الكلمات نفسها التي تبحث عنها — مثلاً «نودلز حارة». هذا ما يفعله BM25: سريع وموثوق، لكن لو كتبت القائمة «رامن ناري» بدل «نودلز حارة» فلن يجده أبداً.

Contriever يعمل بطريقة مختلفة تماماً. يتجوّل في المدينة ويتذوّق الأطباق ويبني خريطة نكهات داخلية: طبقان من المطبخ نفسه يقعان قريبين على الخريطة، وأطباق من مطابخ مختلفة تبتعد عن بعضها. بعد تجوال كافٍ — دون أن يُخبره أحد ما الجيد وما الرديء — يصبح قادراً على ربط رغبتك بالمطبخ المناسب حتى لو لم تتشارك الكلمات حرفاً واحداً.

المشكلة: الاسترجاع الكثيف يحتاج بيانات مُعنونة، وBM25 لا يحتاج

بحلول 2021، كان (DPR) قد أثبت أن المُرمِّزات الثنائية العصبية قادرة على التفوّق بفارق كبير على البحث بالكلمات المفتاحية — لكن بشرط واحد: وجود مجموعات تدريب مُشرَف عليها كبيرة مثل NaturalQuestions أو MS MARCO. لحظة الانتقال إلى مجال جديد — أدبيات طبية، تقارير مالية، مستندات قانونية — حيث لا توجد أزواج استعلام-مستند مُعنونة، كان النموذج العصبي ينهار تماماً. خوارزمية BM25 البسيطة، التي لا تفعل أكثر من عدّ تكرار كلمات الاستعلام في المستند مع ترجيحها بمعكوس تواتر المستند، كانت تتغلّب على كل نموذج استرجاع كثيف مُشرَف في سيناريوهات .

جوهر المشكلة أن نماذج مثل DPR تبني الخاص بها من أزواج إيجابية عنونها البشر: «هذا السؤال يتوافق مع هذه الفقرة.» بدون تلك التعليقات، لا يملك النموذج أي إشارة تُرشده لتنظيم فضائه المتجهي. في المقابل، BM25 لا يحتاج أي تدريب — هو صيغة رياضية ثابتة تُطبَّق مباشرة على النص الخام.

هذا خلق فجوة محرجة: أقوى نموذج استرجاع — كثيفة مع بحث الجار الأقرب التقريبي — كان أيضاً الأكثر هشاشة حين تغيب التعليقات البشرية. السؤال الذي يطرحه Contriever: هل نستطيع تدريب فضاء نفسه بدون أي تعليقات بشرية، مستخدمين فقط البنية الطبيعية للنص الخام؟

افتح في المختبر
قارن بين طريقة BM25 (المتناثر) والمسترجع الكثيف في إيجاد المستندات. BM25 يبحث عن تطابق حرفي في الكلمات، أما النموذج الكثيف فيبحث عن تطابق في المعنى — لكنه يحتاج إشارة تدريب.
تستيقظ التجربة عند وصولك…

البنية: مُرمِّز ثنائي مشترك مع تجميع بالمتوسط

يعتمد Contriever على بنية المُرمِّز الثنائي. الفكرة مباشرة: واحد (BERT-base) يُعالج الاستعلامات والمستندات كلاً على حدة. كل نص يمرّ عبر المُرمِّز، ثم نحسب المخرج بأخذ متوسط الحالات الخفية في الطبقة الأخيرة على جميع الرموز. النتيجة متجه كثيف واحد يُمثّل النص بأكمله.

لحساب مدى صلة الاستعلام qq بالمستند dd، نأخذ بين متجهيهما. النقطة الجوهرية هنا أن Contriever يستخدم المُرمِّز نفسه للاستعلامات والمستندات، بخلاف DPR الذي يستخدم مُرمِّزين منفصلين. وجد الباحثون أن مشاركة الأوزان تُعزّز متانة النموذج في سيناريوهات النقل الصِّفري والتعلّم بأمثلة قليلة، لأن النموذج يتعلّم فضاء تضمين واحد موحّد بدل فضاءين قد لا يكونا متوافقين.

ولأن المستندات تُرمَّز باستقلال عن الاستعلامات، يمكن ترميز المجموعة بالكامل مرة واحدة وتخزينها مسبقاً. عند وصول استعلام جديد، يتحوّل الاسترجاع إلى عملية بحث سريعة عن أقصى حاصل ضرب داخلي (MIPS)، تُنفَّذ بمكتبات مثل FAISS.

s(q,d)=fθ(q),  fθ(d)s(q, d) = \langle f_\theta(q),\; f_\theta(d) \rangle
درجة الصلة — حاصل الضرب النقطي لتمثيلات المُرمِّز المشتركالمُرمِّز نفسه fθf_\theta يُحوّل الاستعلام qq والمستند dd إلى متجهات كثيفة. حاصل الضرب النقطي يقيس التشابه بينهما: قيمة عالية تعني ارتباطاً دلالياً قوياً، وقيمة منخفضة تعني غياب العلاقة. كل متجه يُنتَج بتجميع المتوسط على مخرجات الطبقة الأخيرة من المُحوِّل.
افتح في المختبر
خط أنابيب المُرمِّز الثنائي المشترك: الاستعلام والمستند يمرّان عبر مُرمِّز BERT نفسه، ثم تجميع بالمتوسط، ثم حاصل الضرب النقطي لحساب درجة الصلة.
تستيقظ التجربة عند وصولك…

إشارة التدريب: التعلّم التبايُني من نص خام

الحدس الأساسي بسيط: كل مستند فريد بطريقة ما. مقتطفان من المستند نفسه يُفترض أن يكونا أقرب لبعضهما من مقتطفات من مستندات مختلفة. هذا هو كل ما يحتاجه Contriever كإشارة إشراف — لا تعليقات بشرية، ولا أحكام صلة.

يتعلّم النموذج عبر التمييز: نُعطيه استعلام qq، وعليه أن يُحدّد المفتاح الإيجابي الصحيح k+k^+ (الآتي من المستند نفسه) من بين KK مفتاح سلبي (من مستندات أخرى). هذه المهمة تُصاغ رسمياً بـدالة خسارة InfoNCE، المستعارة أصلاً من في مجال الرؤية الحاسوبية.

L(q,k+)=logexp(s(q,k+)/τ)exp(s(q,k+)/τ)+i=1Kexp(s(q,ki)/τ)\mathcal{L}(q, k^+) = -\log \frac{\exp\bigl(s(q, k^+)/\tau\bigr)} {\exp\bigl(s(q, k^+)/\tau\bigr) + \sum_{i=1}^{K} \exp\bigl(s(q, k_i)/\tau\bigr)}
دالة خسارة InfoNCE التبايُنيةالخسارة ترفع درجة الزوج الإيجابي s(q,k+)s(q, k^+) وتخفض درجات الأزواج السلبية KK في آنٍ واحد. معامل الحرارة τ\tau يتحكّم بحدّة التمييز: كلما صغر τ\tau زاد انتقاء النموذج. عملياً، هذه عملية تصنيف softmax على K+1K+1 مرشحاً — كأننا نسأل النموذج: «أيّ مفتاح جاء من المستند نفسه الذي جاء منه الاستعلام؟»

بناء الأزواج: الاقتصاص العشوائي يتفوّق على مهمة كلوز العكسية

طريقة بناء الأزواج الإيجابية من مستند واحد هي أهمّ قرار تصميمي في هذا العمل. الأعمال السابقة استخدمت مهمة كلوز العكسية (ICT): تُسحب جملة عشوائية من المستند وتُعامل كـ«استعلام»، والنص المتبقي يصبح «المفتاح». النتيجة أن الاستعلام والمفتاح لا يتشاركان أي كلمة — تداخل صفري.

Contriever يتّبع طريقة مختلفة: الاقتصاص العشوائي المستقل. نأخذ مقطعين عشوائيين من المستند، كلٌّ منهما بشكل مستقل. قد يتداخل المقطعان جزئياً أو كلياً أو لا يتداخلان إطلاقاً. هذه الاستراتيجية نفسها التي نجحت مع SimCLR وMoCo في الرؤية الحاسوبية، لكنها هنا مُكيَّفة للنصوص.

لماذا يعمل الاقتصاص أفضل؟ لسببين. أولاً، التداخل الجزئي بين المنظورين يدفع النموذج لتعلّم ما يُشبه المطابقة المعجمية — يكتشف أن الكلمات المشتركة إشارة على الصلة، تماماً كما يفعل BM25 بطبيعته. ثانياً، الاقتصاص يُنتج توزيعات متماثلة بين الاستعلامات والمفاتيح (كلاهما مقاطع عشوائية بالطول نفسه تقريباً)، وهذا التماثل يُساعد على استقرار التدريب. في المقابل، ICT تُولّد عدم تماثل واضح: الاستعلام جملة واحدة بينما المفتاح فقرة كاملة ناقص تلك الجملة.

يُضيف الباحثون أيضاً حذف كلمات عشوائي (10% من ) فوق الاقتصاص. الهدف أن يتعلّم النموذج ألّا يعتمد بشكل مفرط على التطابق الحرفي، وأن يبني تمثيلات أمتن وأعمّ.

افتح في المختبر
قارن طريقة ICT والاقتصاص العشوائي في بناء أزواج إيجابية من المستند نفسه. لاحظ التداخل (المُظلَّل) في الاقتصاص وغيابه في ICT.
تستيقظ التجربة عند وصولك…

توسيع عدد السلبيات: طابور MoCo الزخمي

التعلّم التبايُني يستفيد بشكل كبير من زيادة عدد الأمثلة السلبية. المشكلة أنه مع السلبيات داخل الدفعة، يتساوى عدد السلبيات مع ، وهذا يعني أنك تحتاج ذاكرة GPU ضخمة لتحصل على عدد كافٍ. Contriever يحلّ هذه المشكلة بإطار MoCo () الذي يفصل عدد السلبيات عن حجم الدفعة.

الفكرة أن MoCo يحتفظ بشبكتين: مُرمِّز استعلامات θq\theta_q يُحدَّث بـ كالمعتاد، ومُرمِّز مفاتيح θk\theta_k يتغيّر ببطء عبر متوسط متحرك أُسّي من مُرمِّز الاستعلامات. المفاتيح التي يحسبها مُرمِّز المفاتيح تُخزَّن في طابور: في كل خطوة تُزال المفاتيح الأقدم ويُضاف مفاتيح جديدة. بهذه الآلية يحصل Contriever على 131,072 سلبية — أكثر بكثير ممّا يمكن لأي حجم دفعة أن يدعمه.

تحديث البطيء يضمن أن التمثيلات المُخزَّنة في الطابور تبقى متسقة. لولا ذلك، لكانت التمثيلات القديمة محسوبة بنسخة مختلفة جداً من النموذج، ما يُنتج مُضوَّشة تُربك التدريب.

θkmθk+(1m)θq\theta_k \leftarrow m\,\theta_k + (1-m)\,\theta_q
تحديث الزخم في MoCo لمُرمِّز المفاتيحفي كل خطوة تدريبية، تُدفع معاملات مُرمِّز المفاتيح θk\theta_k قليلاً نحو معاملات مُرمِّز الاستعلامات θq\theta_q بمقدار الزخم mm (قيمته 0.9995). حين يكون mm قريباً من 1، يتطوّر مُرمِّز المفاتيح ببطء شديد فتبقى محتويات الطابور متسقة. هذا يتجنّب مشكلة تقادم التمثيلات حين تتغيّر الشبكة بسرعة.
افتح في المختبر
شاهد كيف يُوفّر طابور MoCo عدداً كبيراً من السلبيات دون الحاجة لزيادة حجم الدفعة. المُرمِّز الزخمي يتغيّر ببطء ليحافظ على اتساق الطابور.
تستيقظ التجربة عند وصولك…

النتائج: Contriever غير المُشرَف يُجاري BM25

النتيجة الأبرز: على BEIR الذي يضمّ 15 مجموعة بيانات استرجاع متنوعة، يتفوّق Contriever غير المُشرَف بالكامل على BM25 في 11 من 15 مجموعة بمقياس @100. هذا الرقم لافت لأن Contriever لم يرَ في حياته زوج استعلام-مستند مُعنون واحد — كل ما تعلّمه جاء من اقتصاص عشوائي لنصوص خام.

على مجموعة NaturalQuestions مثلاً، يُحقّق Contriever استدعاء@100 بنسبة 82.1% مقابل 78.3% لـBM25. وعلى TriviaQA يتعادلان عند 83.2%. كما يتفوّق Contriever على جميع نماذج الاسترجاع الكثيف غير المُشرَف السابقة (ICT وREALM وSimCSE) بفوارق واسعة.

حين يُستخدم Contriever كمرحلة تدريب مسبق قبل الضبط الدقيق على MS MARCO، يُحقّق أعلى متوسط استدعاء@100 (67.1) بين جميع طرق المُرمِّز الثنائي على BEIR، متفوّقاً على DPR (48.3) وANCE (60.1) وTAS-B (65.0) وSplade v2 (64.8). ومع إعادة الترتيب بـ، يصل إلى أفضل النتائج على 8 من 15 مجموعة في BEIR.

في إعداد التعلّم بأمثلة قليلة (بضع مئات إلى بضعة آلاف)، يمنح التدريب المسبق التبايُني Contriever تفوّقاً كبيراً: يتغلّب حتى على BERT المضبوط على MS MARCO الكبيرة كخطوة وسيطة.

افتح في المختبر
الاستدعاء@100 على معيار BEIR: مقارنة Contriever (غير مُشرَف) مع BM25 عبر 15 مجموعة بيانات. Contriever يتفوّق في 11 منها.
تستيقظ التجربة عند وصولك…

تعدد اللغات: استرجاع عبر اللغات بدون بيانات متوازية

بيانات الاسترجاع المُعنونة تكاد تنحصر بالإنجليزية. بالنسبة للغات محدودة الموارد، الاسترجاع الكثيف المُشرَف ليس خياراً متاحاً عملياً. هنا بالتحديد تبرز قيمة التدريب المسبق بدون إشراف.

درّب الباحثون mContriever، وهي نسخة متعددة اللغات مُهيَّأة من mBERT ومُدرَّبة بـالتعلّم التبايُني على بيانات CCNet من 29 لغة. على معيار Mr. TyDi (11 لغة)، يتفوّق mContriever غير المُشرَف على BM25 في الاستدعاء@100. وبعد الضبط الدقيق على بيانات MS MARCO الإنجليزية فقط، يُحقّق أفضل استدعاء@100 مع تحسينات عبر جميع اللغات — بما فيها لغات لم يرها أثناء الضبط على MS MARCO.

الأمر الأكثر إثارة أن mContriever يُتيح الاسترجاع عبر اللغات: تُعطيه استعلاماً بالعربية أو اليابانية أو الكورية، فيسترجع مستندات ذات صلة من مجموعة ويكيبيديا الإنجليزية. هذا مستحيل جوهرياً مع BM25 أو أي طريقة مطابقة نصّية، لأن الاستعلام والمستند لا يتشاركان حرفاً واحداً. على معيار MKQA، يتفوّق mContriever المضبوط على MS MARCO الإنجليزي حتى على مسترجع CORA المُصمَّم خصيصاً للعمل عبر اللغات مع تعزيز بالترجمة.

دراسات الاستبعاد: ما يُحدث فرقاً وما لا يُحدث

يتضمّن البحث دقيقة تعزل أثر كل خيار تصميمي على حدة. أبرز ما توصّلت إليه:

الاقتصاص مقابل ICT: الاقتصاص العشوائي (متوسط nDCG@10: 32.2) يتفوّق بوضوح على مهمة كلوز العكسية (25.9) عند الاستخدام بدون ضبط دقيق. وحين نُضيف حذف الكلمات العشوائي (33.8) يتحسّن الأداء أكثر.

عدد السلبيات: تكبير طابور MoCo من 2,048 إلى 131,072 يُحسّن الأداء بشكل مستمر، خاصة في الإعداد غير المُشرَف. مزيد من السلبيات يعني مسائل تمييز أصعب للنموذج، ما يدفعه لبناء تمثيلات أجود.

بيانات التدريب: ويكيبيديا وحدها تُعطي نتائج جيدة على مهام شبيهة بويكيبيديا (FEVER)، بينما CCNet وحدها تتميّز في مجالات متنوعة (FiQA، Quora). خلط المصدرين بنسبة 50/50 يُعطي أفضل أداء إجمالي.

MoCo مقابل السلبيات داخل الدفعة: الأداء متقارب بين الطريقتين، لكن MoCo يتفوّق عملياً لأنه يتوسّع إلى أعداد سلبيات أكبر بكثير دون الحاجة لأحجام دفعات ضخمة.

أثر التدريب المسبق التبايُني: عند الضبط الدقيق على MS MARCO، يتفوّق Contriever (متوسط nDCG@10: 46.5) بوضوح على BERT المضبوط بالوصفة نفسها (42.0)، ما يُؤكّد أن المرحلة التبايُنية تُضيف قيمة حقيقية لجودة التضمينات.

الشيفرة: Contriever بلغة PyTorch

المُرمِّز الثنائي Contriever مع تجميع المتوسط وخسارة InfoNCEpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import torch
import torch.nn.functional as F
from transformers import AutoModel, AutoTokenizer

# ── المُرمِّز مع تجميع بالمتوسط ──────────────────────
class Contriever(torch.nn.Module):
    def __init__(self, model_name="bert-base-uncased"):
        super().__init__()
        self.encoder = AutoModel.from_pretrained(model_name)

    def forward(self, input_ids, attention_mask):
        # تمرير عبر BERT والحصول على حالات الطبقة الأخيرة
        out = self.encoder(input_ids=input_ids,
                           attention_mask=attention_mask)
        hidden = out.last_hidden_state          # (B, L, D)
        # تجميع بالمتوسط على الرموز غير المحشوّة
        mask = attention_mask.unsqueeze(-1)      # (B, L, 1)
        pooled = (hidden * mask).sum(1) / mask.sum(1)
        return pooled                            # (B, D)


# ── دالة خسارة InfoNCE التبايُنية ──────────────────────
def info_nce_loss(queries, keys, temperature=0.05):
    """queries, keys: (B, D) — أزواج إيجابية بالفهرس نفسه"""
    # مصفوفة التشابه: (B, B)
    logits = torch.mm(queries, keys.T) / temperature
    labels = torch.arange(len(queries), device=queries.device)
    return F.cross_entropy(logits, labels)

الخط الزمني: من الاسترجاع المتناثر إلى الكثيف غير المُشرَف

  1. 2009

    BM25

    المعيار الذهبي للاسترجاع بدون إشراف. نظام ترجيح يعتمد على تواتر المصطلحات ولا يحتاج أي تدريب. ظلّ مهيمناً لأكثر من عقد كامل.

  2. 2019

    Sentence-BERT

    كيّف BERT لإنتاج تضمينات جمل باستخدام شبكات سيامية مُدرَّبة على بيانات استدلال لغوي مُشرَف. جعل حساب تشابه الجمل بالمتجهات الكثيفة عملياً وقابلاً للتطبيق.

  3. 2020

    DPR (الاسترجاع الكثيف للفقرات)

    أول مسترجع بمُرمِّز ثنائي يتغلّب على BM25 في الأسئلة المفتوحة. لكنه احتاج مجموعات بيانات مُشرَف عليها كبيرة مع سلبيات صعبة مولَّدة من BM25.

  4. 2020

    SimCLR / MoCo (الرؤية الحاسوبية)

    أُطُر تعلّم تبايُني للصور. SimCLR اعتمد على سلبيات كثيرة داخل الدفعة، وMoCo استخدم طابوراً زخمياً. كلاهما أثبت أن السمات المُتعلَّمة بدون إشراف قادرة على منافسة تلك المُتعلَّمة بإشراف.

  5. 2022

    Contriever (هذه الورقة)

    دمج MoCo مع الاقتصاص العشوائي للنصوص لتدريب مسترجع كثيف بصفر تعليقات بشرية. جارى BM25 بدون إشراف، وسجّل أفضل النتائج مع الضبط الدقيق.

  6. 2022

    Atlas

    نموذج لغوي مُعزَّز بالاسترجاع يعتمد على Contriever كمحرك استرجاع. أثبت أن التعلّم بأمثلة قليلة مقروناً بالاسترجاع ينافس نماذج أكبر منه بكثير.

  7. 2023

    HyDE

    استخدم نموذجاً لغوياً كبيراً لتوليد مستند افتراضي يُطابق الاستعلام، ثم استرجع عبر Contriever. استرجاع صِفري دون أي تدريب خاصّ بالمهمة.

المرجعIzacard, Caron, Hosseini, Riedel, Bojanowski, Joulin, Grave. Unsupervised Dense Information Retrieval with Contrastive Learning. Transactions on Machine Learning Research (TMLR), 2022.

مصطلحات هذه الورقة