Semantic Search
يرتّب البحث الدلالي المستندات والصور بحسب معنى الاستعلام لا كلماته المطابقة حرفيًا، مستخدمًا التضمينات والبحث عن أقرب الجيران ومعيدات الترتيب.
يرتّب البحث الدلالي المستندات أو الصور أو العناصر الأخرى بحسب مدى تطابق معناها مع معنى الاستعلام، بدلًا من ترتيبها وفق الكلمات المشتركة بينهما. فقد يعيد البحث عن "قطتي جائعة" صفحةً بعنوان "جدول تغذية قطة صغيرة جديدة" رغم عدم اشتراكهما في أي كلمة. تنفذ الأنظمة الحديثة ذلك باستخدام التضمينات: إذ يحوّل مشفّر عصبي الاستعلامات والعناصر إلى متجهات تتقارب عندما تتشابه معانيها، ويعثر البحث المتجهي على أقرب العناصر. واتجه بحث الويب إلى هذا النهج عام 2019، حين بدأت Google تطبيق BERT لفهم استعلامات البحث، وهو تغيير قالت إنه أثّر في عملية بحث واحدة من كل عشر عمليات بحث باللغة الإنجليزية في الولايات المتحدة.
آلية عمل البحث الدلالي#
تعتمد معظم أنظمة البحث الدلالي على مُرمِّز ثنائي لاسترجاع النتائج، ثم تنقّح النتائج باستخدام نموذج لإعادة الترتيب. ينشئ المُرمِّز الثنائي تضمينًا لكل مستند مرة واحدة مسبقًا، وتُخزَّن المتجهات في قاعدة بيانات متجهية. وعند الاستعلام، يُنشأ تضمين للاستعلام وحده، ويعيد فهرس تقريبي لأقرب الجيران أفضل العناصر المرشحة بحسب التشابه بجيب التمام. أصبح هذا النهج عمليًا للتعامل مع الجمل بفضل Sentence-BERT (2019): استغرق العثور على الزوج الأكثر تشابهًا من بين 10,000 جملة نحو 65 ساعة باستخدام مُرمِّز تقاطعي من نوع BERT، ونحو 5 ثوانٍ باستخدام تضمينات الجمل الخاصة به. ثم أظهر الاسترجاع الكثيف للمقاطع (2020) أن التضمينات المتعلَّمة تفوقت على ترتيب النتائج القائم على الكلمات المفتاحية باستخدام BM25 بفارق يتراوح بين 9 و19 نقطة في دقة استرجاع أفضل 20 مقطعًا ضمن مهام الإجابة عن الأسئلة ذات النطاق المفتوح. وأخيرًا، يقرأ نموذج إعادة الترتيب المعتمد على مُرمِّز تقاطعي الاستعلام وكل عنصر من العناصر المرشحة معًا ليعيد ترتيب القائمة القصيرة بدقة أكبر.
يقارن هذا المثال بين تداخل الكلمات وتشابه التضمينات باستخدام مكتبة Sentence Transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
documents = [
"How to reset a forgotten account password",
"Feeding schedule for a new kitten",
"Quarterly sales report for the retail division",
"Best hiking trails near Denver",
]
query = "my cat is hungry"
# Keyword search: documents sharing at least one word with the query
query_words = set(query.lower().split())
print("Keyword matches:", [d for d in documents if query_words & set(d.lower().split())])
# Semantic search: rank documents by cosine similarity of their embeddings
doc_embeddings = model.encode(documents)
query_embedding = model.encode(query)
scores = model.similarity(query_embedding, doc_embeddings)[0]
best = int(scores.argmax())
print(f"Semantic match: {documents[best]!r} (cosine {scores[best]:.2f})")تعيد مطابقة الكلمات المفتاحية قائمة فارغة، إذ لا يحتوي أي مستند على "my" أو "cat" أو "is" أو "hungry". ويعيد البحث الدلالي جدول تغذية القطة الصغيرة بتشابه جيبي قدره 0.56، وهو المستند الأقرب من حيث المعنى.
البحث الدلالي مقارنةً بالمصطلحات ذات الصلة#
- البحث بالكلمات المفتاحية: يرتّب المستندات حسب المطابقة الدقيقة للمصطلحات باستخدام صيغ مثل BM25. ويتعامل مع الأسماء وأرقام القطع والكلمات النادرة التي قد تطمسها التضمينات، لكنه يفوّت المرادفات وإعادة الصياغة.
- البحث الهجين: ينفذ استرجاع الكلمات المفتاحية والاسترجاع الدلالي معًا ويدمج النتائج، وهو إعداد شائع في أنظمة البحث الإنتاجية وأنظمة RAG.
- التقسيم الدلالي: مهمة مختلفة في الرؤية الحاسوبية تضع تسمية فئة لكل بكسل في الصورة، ولا تشترك مع البحث الدلالي إلا في كلمة "دلالي".
- التخزين المؤقت الدلالي: يطبّق مطابقة المعنى نفسها على طلبات LLM، ويعيد استخدام إجابة مخزنة عندما يحمل موجّه جديد المعنى نفسه لموجّه سابق.
تطبيقات عملية#
- التوليد المعزز بالاسترجاع (RAG): يعثر على المقاطع التي يحتاج إليها النموذج اللغوي حتى عندما تختلف صياغة المستخدم عن صياغة الوثائق.
- البحث عن براءات الاختراع: يكشف التقنية السابقة التي تصف الاختراع نفسه بمصطلحات مختلفة.
- البحث عن منتجات التجزئة: يطابق استعلامًا مثل "أحذية للتنقل في يوم ممطر" مع أحذية رياضية مقاومة للماء لا تستخدم قوائمها تلك الكلمات مطلقًا.
- أنظمة التوصية: تقترح مقالات أو منتجات تقع تضميناتها بالقرب من العناصر التي اختارها المستخدم بالفعل.
البحث عن الصور بحسب معناها#
تضمّن النماذج المدرّبة باستخدام التعلّم التقابلي على أزواج الصور والتعليقات التوضيحية، مثل CLIP، النصوص والصور في فضاء واحد، بحيث يستطيع استعلام نصي ترتيب صور لا تحمل وسومًا أو تعليقات توضيحية. وقد بُني حل البحث الدلالي عن الصور من Ultralytics بهذه الطريقة: إذ يضمّن الصنف VisualAISearch كل صورة في مجلد باستخدام CLIP مرة واحدة، ويضمّن كل استعلام نصي في الفضاء نفسه، ثم يعيد ما يصل إلى 30 صورة يتجاوز تشابهها الجيبي مع الاستعلام عتبة محددة، مرتبةً من الأكثر تشابهًا إلى الأقل. وهكذا يعثر استعلام مثل "كلب يجلس على مقعد" على الصور المطابقة في مجموعة غير موسومة.










