📖 قصة "الإبرة في كومة القش"
تخيل حالك يا بطل ماشي في مدينة ضخمة، ودخلت على أكبر مكتبة في العالم. المكتبة هاي فيها مليارات
الكتب، بس المشكلة إنها "فوضى":
• ما في أرفف! الكتب كلها مرمية فوق بعض في نص الصالة.
• ما في أمين مكتبة! يساعدك تلاقي كتابك.
• ما في فهرس! يدلك وين تروح.
وأنت هسا مطلوب منك تلاقي "وصفة عمل الكبسة" من بين هالكتب كلها!
لو بدك تستخدم الأصلوب التقليدي (قواعد البيانات/DB)، لازم يكون عندنا جدول فيه خانة "اسم
الوصفة" واسم "الكتاب". بس الكتب اللي قدامك هي نصوص حرة، ما حدا حطها بجداول.
هون ظهرت حاجتنا لعلم اسمه **Information Retrieval (IR)**.
هذا العلم انخلق عشان يكون هو "أمين المكتبة الذكي" اللي بيقدر يقرأ مليارات النصوص بلمحة عين، ويفهم
سؤالك البشري البسيط، ويركض بسرعة وسط هالمكتبة عشان يسحب لك الكتاب اللي فعلاً بيحتوي على الوصفة اللي
بتدور عليها.
من غير الـ IR:
غوغل (Google) ما كان موجود، إيميلك كان رح يضل فوضى والبحث فيه مستحيل، وحتى ملفاتك الشخصية على
الكمبيوتر كنت رح تضيع بينهم للأبد.
إحنا بنسمي هذا العصر عصر الـ Information Overload (تضخم المعلومات)،
والـ IR هو "البوصلة" الوحيدة اللي بتخلينا ننجو من هالغرق!
Why this course?
- Managing Data is one of the primary uses of computers
ببساطة، الحواسيب انخلقت عشان وظيفة أساسية: "إدارة البيانات". من يومها وهي أداة
بتخزن وبترتب المعلومات عشان نقدر نرجعلها ونستفيد منها.
- Most of textual data is NOT contained in structured databases
أغلب البيانات اللي بنستخدمها كل يوم (زي الإيميلات والـ PDF) مش مخزنة بانتظام جوا "جداول". هي نصوص فوضوية ومفتوحة.
✓ No use of structured queries
بما إن هالمعلومات مش بجدول، إنسى إنك تقدر تستخدم لغات زي SQL عشان تسأل عنها. ما فيك تحكي "Select" من
نص مكتوب بشكل فوضوي، وهاض هو التحدي التقني الكبير.
- How do we address this?
طيب وكيف بدنا نحل هالمعضلة؟ كيف بدنا نلاقي معلومة جوا نصوص مالها آخر وغير
منظمة؟
Information
Retrieval
الحل هو "استرجاع المعلومات". هاض العلم هو اللي بيعلمنا الطرق والخوارزميات اللي بتفهم النصوص
وبتقدر تطلع لنا المعلومة الصح منها وبسرعة خرافية.
Information Retrieval Definition
Information retrieval (IR) is finding material (usually documents) of an
unstructured nature (usually text) that satisfies an information need from within large collections
(usually stored on computers).
التعريف باختصار: هو عملية البحث عن "مواد" (غالباً مستندات نصية) طبيعتها غير منظمة (يعني مش
جداول)، عشان تلبي حاجة المستخدم للمعلومة من بين مجموعات ضخمة جداً مخزنة على الحواسيب.
Why Information Retrieval?
- An essential tool to deal with information overload
الـ IR هو أداة ضرورية جداً عشان نقدر نتعامل مع "تضخم المعلومات" (Information Overload) اللي صار في
عصرنا. بدون هالأجهزة، رح نضيع في بحر البيانات وما رح نقدر نوصل للي بدنا إياه.
Unstructured Data
- Information Retrieval (IR) mainly studies unstructured data.
ركز معي يا صديقي؛ علم الـ IR تخصصه هو دراسة "البيانات غير المنظمة" (Unstructured
Data).
- Text in Web pages or emails; e-books, text documents..
زي النصوص الموجودة في صفحات الويب، الإيميلات، الكتب الإلكترونية، وغيرها من
المستندات النصية.
📌 وهاي البيانات بتتميز بـ:
- No primary key and attributes as in RDBMS
إنها ما إلها "مفتاح أساسي" (Primary Key) أو صفات محددة مسبقاً زي ما هو موجود في قواعد البيانات
التقليدية (RDBMS).
- Semantic meaning unknown: NLP systems try to find the meaning in the
unstructured text.
المعنى "الدلالي" للنصوص بكون غير معروف للكمبيوتر بشكل مباشر، وعشان هيك بنحتاج لأنظمة الـ NLP عشان
تحاول تستخرج المعنى وتفهم إيش المكتوب.
Information Retrieval: Challenges
- Data is unstructured
أول مطب بيواجهنا هو إن البيانات "غير منظمة".
- Need to guess what is relevant documents
بما إنها نصوص فوضوية، السيستم مضطر "يتحزر" (Guess) إيش هي المستندات اللي فعلاً إلها علاقة بطلبك.
- Query is unstructured
مش بس البيانات، حتى "سؤالك" (Query) بيكون غير منظم؛ يعني بتكتب كلمات بسيطة وممكن
تكون غامضة.
- Need to guess user intent
والسيستم هون لازم يحاول يحزر "نيتك" (Intent) وإيش قصدك الحقيقي من وراء الكلمات اللي كتبتها.
- But computers don't guess!
وهون "المشكلة الكبيرة": الكمبيوتر بطبعه ما بيعرف يحزر! هو جهاز منطقي بيفهم (1 و 0)
وبس.
Inferring relevance and intent from data, query is the science of Information Retrieval
جوهر علم الـ IR هو "الاستنتاج الذكي"؛ يعني كيف نخلي الكمبيوتر "يستنتج" الصلة والقصد من بين البيانات
الفوضويين. هاض هو السحر الحقيقي في هالمادة! ✨
The IR Problem
Users of modern IR systems have information needs of varying complexity
الناس اللي بتستخدم أنظمة الـ IR (زي غوغل) عندهم حاجات للمعلومات متفاوتة في
التعقيد؛ يعني في حدا ببحث عن "طقس اليوم" (بسيط) وفي حدا ببحث عن مواضيع علمية معقدة.
- An
example of complex information need is as follows:
Find all documents that address the role of the Federal Government in financing the operation of the
National Railroad Transportation Corporation (AMTRAK)
تخيل لو حدا طلب هاض الطلب المعقد: "بدي كل المستندات اللي بتناقش دور الحكومة في تمويل شركة القطارات
الوطنية". جملة طويلة ومعقدة، صح؟
Full description is not necessarily a good query
هاض الوصف الطويل "اللي ببال المستخدم" مش شرط يكون "سؤال بحث" (Query) ناجح. لو
حطيته زي ما هو بالسيستم ممكن يضيع وما يعرف يلاقيلك المعلومات الصح.
Translate information need into a query (Keywords)
عشان هيك، المستخدم لازم "يترجم" حاجته هاي لـ Query مختصر (Keywords) بيلخص الموضوع،
وبسهولة بيقدر السيستم يدور عليها.
The key goal: Retrieve relevant information
بمجرد ما صار عنا Query، هدف السيستم إنه يرجعلنا المعلومات "المفيدة" أو "ذات الصلة"
(Relevant) إلك.
Ranking the results
والأهم من هيك، السيستم لازم "يرتب" (Rank) هاي النتائج حسب درجة صلتها؛ يعني الأكثر أهمية بطلعلك أول
واحد.
الهدف الذهبي
(The Golden Goal):
نرجع كل شي "إله دخل" (Relevant)، وفي نفس الوقت نطلع أقل قدر ممكن من الشغلات اللي "مالها دخل".
The notion of relevance is of central importance in IR
مفهوم الـ Relevance هو "العمود الفقري" لكل علم استرجاع المعلومات.
NO IR system
can provide perfect answers to all users all the time.
خلينا نكون صريحين: ما في أي نظام IR بالعالم بيقدر يعطي "أجوبة مثالية" لكل الناس في كل الأوقات. هاض
شي شبه مستحيل تقنياً! 🤷♂️
Comparison: DB vs IR
هاض الجدول بيلخص لك الفرق بين طريقة البحث التقليدية في قواعد البيانات (زي SQL) وبين استرجاع المعلومات
(زي غوغل). ركز فيهم لأنهم بوضحوا لك ليش مادتنا "غير شكل"!
| Information Retrieval (IR) |
Data Retrieval (DB) |
وجه المقارنة (Comparison) |
|
Unstructured Data (Text documents) |
Structured Data in DBMS |
Searching Content |
|
الفكرة: في الـ DB بندور
ببيانات منظمة ومرتبة، أما في الـ IR بندور في نصوص فوضوية
(Unstructured).
|
| Any
type of text documents |
Tables
|
Data object |
|
الفكرة: الـ DB بتتعامل مع
جداول، الـ IR بتفتح أي ملف نصي وبتتعامل معه.
|
|
Partial match, best match |
Exact
Match |
Matching of results |
|
الفكرة: في الـ DB لازم
المعلومة تكون نسخة طبق الأصل (Exact)، في الـ IR ممكن نلاقي "أفضل
نتيجة" أو نتائج جزئية.
|
|
Relevance |
Matching |
Items wanted |
|
الفكرة: في الـ DB بدنا
"مطابقة"، في الـ IR بدنا شي "إله صلة" (Relevance).
|
|
Simple keyword queries (NL) |
SQL
|
Query language |
|
الفكرة: في الـ DB لازم
نكتب كود SQL، في الـ IR بنكتب بأي لغة بشرية عادية.
|
|
Incomplete expressed in NL |
Complete |
Query specification |
|
الفكرة: في الـ DB لازم
نحدد كل الطلب بشكل كامل، في الـ IR الطلب بكون ناقص والسيستم
بيفهمه من اللغة.
|
|
Probabilistic |
Deterministic |
Model |
|
الفكرة: الـ DB حتمية (يا
صح يا خطأ)، أما الـ IR احتمالية (بناءً على التوقع).
|
Example: Search in Libraries
First Application
of IR: Libraries
External Attributes (بيانات خارجية)
Title: Operating System Concepts, 9th Edition
Author(s): Abraham Silberschatz, Peter B. Galvin, Greg Gagne
Release date: December 2012
Publisher(s): Wiley
ISBN: 9781118063330
Search by external attributes = Search in DB (Not IR)
لما تيجي تدور على كتاب باستخدام "بياناته الخارجية" (زي اسمه، المؤلف، التاريخ، أو
الرقم التسلسلي ISBN)، هاض بنسميه بحث في قواعد البيانات (DB Search). ليش؟ لأنها بيانات منظمة
وموجودة في جداول.
Internal Attributes (المضمون الداخلي) - Content
<Content: <Text
Keywords (Keyterms): e.g. process, thread, memory management
Search by internal attributes: IR (search by content)
أما لما تبحث جوا "مضمون" الكتاب نفسه (Content).. يعني تدور على كلمات زي "Process"
أو "Thread" موجودة جوا الصفحات، هاض هو الـ IR الحقيقي. إحنا هون بندور في "النصوص الفوضوية"
اللي جوا المستند، مش في معلومات الغلاف!
Typical IR Task
شو المعطيات اللي
بتكون بين إيدينا؟
✓ A corpus of textual natural-language documents.
أول شي، بكون عنا "Corpus" (يعني مجموعة ضخمة) من المستندات النصية المكتوبة بلغة
بشرية عادية.
✓ A user query in the form of a textual string.
وثاني شي، سؤال أو طلب من المستخدم (Query) بكون عبارة عن جملة نصية.
وشو المطلوب
نلاقي؟
✓ A ranked set of documents that are relevant to the query.
المطلوب هو نطلع مجموعة "مرتبة" (Ranked) من المستندات اللي إلها صلة (Relevant) بسؤال المستخدم.
ركز على كلمة مرتبة؛ لأن الترتيب هو أهم شي!
Types of documents
- Documents may be web pages, emails, books, scholarly papers, PDF, power point,
forum postings, tweets, or other multimedia files, ...etc.
المستندات هاي ممكن تكون أي شي يخطر ببالك: صفحات ويب، إيميلات، كتب، أبحاث علمية، ملفات PDF، عروض
باوربوينت، بوستات في المنتديات، أو حتى تغريدات وتغريدات.. أي ملف نصي أو متعدد الوسائط ممكن نطبق عليه
الـ IR.
IR System Diagram
هاض المخطط بيشرح لك "دورة حياة" عملية
البحث بشكل احترافي وواضح:
Document corpus 📚
↓
IR System
(The Retrieval Engine)
→
↓
Ranked
Documents
🏆
(98%)
Document #A
1.
(85%)
Document #B
2.
(72%)
Document #C
3.
**كيف نفهم هاض
المخطط؟**
- المدخلات (من فوق وعلى اليسار): السيستم بياخد حاوية البيانات الضخمة (Corpus) وبياخد سؤالك
(Query).
- المحرك (في النص): هاض هو "الصندوق الأخضر" الذكي اللي بيعمل الشغل الثقيل والبحث.
- المخرجات (تحت): بطلع لك قائمة مرتبة، بحيث الأفضل والأنسب إلك بكون هو الأول بالترتيب.
Relevance
- Relevance is a subjective judgment and may include:
كلمة "Relevance" (الصلة) مش كلمة سهلة، هي عبارة عن "حكم شخصي" (Subjective)؛
يعني بتعتمد على رأي الشخص، وممكن تشمل عدة شغلات:
- Being on the proper subject.
يكون الموضوع اللي بالمستند هو نفسه اللي بتدور عليه بالضبط.
- Being timely (recent information).
تكون المعلومة "طازة" وجديدة (Timely)؛ لأن معلومة قديمة ممكن ما تفيدك بشي.
- Being authoritative (from a trusted source).
تكون المعلومة من مصدر موثوق وقوي (Authoritative)، مش أي كلام من أي مكان.
- Satisfying the goals of the user and his/her intended use of the information
(information need).
وبالأخير، إنها فعلياً "تشبع" حاجة المستخدم وتحقق هدفه اللي بباله (Information Need).
Keyword Search
- Simplest notion of relevance: Verbatim match
أبسط فكرة للـ Relevance هي إنك لما تبحث عن جملة، السيستم يروح يدور عليها "بالحرف"
(Verbatim) جوا المستند. لو لقاها زي ما هي، بكون المستند "Relevant".
- Slightly less strict: Frequency & Bag of words
في فكرة ثانية "أقل تشدد"، وهي إن الكلمات اللي بسؤالك تظهر "بكثرة" (Frequently) جوا
المستند، وبأي ترتيب كان.. هاض اللي بنسميه "Bag of Words" (يعني كيس حاطين فيه كلمات فوضوية). السيستم
هون ما بهمه الترتيب، المهم التكرار!
Problems with Keywords
البحث بالكلمات المفتاحية (Keyword Search)
مش دائماً بكون دقيق، وبرغم بساطته، بوقعنا في مطبين كبار:
- May not retrieve relevant documents that include synonymous terms.
أول مشكلة: هاض السيستم غبي شوي بالمعاني؛ يعني لو دورت بكلمة، وممكن يكون في مستند
"مهم جداً" بس مستخدم كلمة تانية بتعطي نفس المعنى (Synonyms)، السيستم ما راح يطلعه!
🔹 "restaurant"
vs. "café"
🔹 "PRC"
(China) vs. "China"
(لو بحثت عن "مطعم" ممكن ما يطلعلك
"كافيه"، مع إنه الاثنين مفيدين إلك!)
- May retrieve irrelevant documents that include ambiguous terms.
المشكلة الثانية هي الغموض (Ambiguity)؛ يعني في كلمات إلها أكثر من معنى،
فالسيستم ممكن يطلعلك شغلات "ما إلها علاقة" بطلبك بسبب تكرار الكلمة.
🔸 bat (baseball vs. mammal)
🔸 Apple (company vs. fruit)
🔸 bit (unit of data vs. act of eating)
(لو دورت على
كلمة "Apple" إنت قصدك شركة الآيفون، السيستم ممكن يعبي لك الصفحة صور "تفاح" حقيقي! 🍎)
Intelligent IR
عشان نسمي نظام الـ IR إنه "ذكي"
(Intelligent)، لازم يتجاوز مجرد البحث عن كلمات، ولازم يسوي هالشغلات:
1. Taking into account the meaning of the words used.
إنه يفهم "معنى" الكلمات (Meaning) مش بس حروفها. يعني لو بحثت عن "علاج"، يفهم إن
"دواء" إلها علاقة بالموضوع.
2. Taking into account the order of words in the query.
إنه يهتم بـ "ترتيب" الكلمات (Order)؛ لأن الترتيب بغير المعنى تماماً (زي الفرق بين
"بيت الكلب" و "كلب البيت").
3. Adapting to the user based on direct or indirect feedback.
إنه "يتأقلم" مع المستخدم (Adapting)؛ يعني يتعلم من حركاتك. السيستم بيفهم إن هاض هو
ذوقك وبصير يطلع لك شغلات بتشبهها.
4. Taking into account the authority of the source.
وأخيراً، إنه يهتم بـ "قوة وموثوقية" المصدر (Authority). السيستم الذكي بيعطيك
معلومة من مصدر رسمي قبل البوستات العشوائية.
Some core concepts of IR
في علم الـ IR، عنا ثلاثة أعمدة أساسية
لازم تفهمهم عشان تعرف كيف السيستم بيشتغل من جوا:
1. Query Representation:
إنه كيف "نُعبر" عن سؤالك (Query) بطريقة الكمبيوتر يفهمها. وهون بنحاول نسكر
فجوتين:
✅ Bridge lexical gap:
يعني نسكر الفجوة اللغوية؛ زي إنه يفهم إن "System" و "Systems" هم تقريباً نفس الإشي (مفرد وجمع).
✅ Bridge
semantic gap: يعني نسكر فجوة المعنى؛ زي إنه يفهم إن "Car" و "Automobile" بيحكوا عن نفس
الإشي.
2. Document Representation:
إنه كيف "نُعبر" عن المستندات (Documents) المخزنة عندنا. السيستم بيعمل
شغلتين:
✅ Internal
representation: بيعمل قائمة بـ "الكلمات" وكل كلمة وين موجودة في أي مستند.
✅ Document
structure: بيعرف يقسم المستند لأجزاء (Fields)؛ زي العنوان (Title) وموضوع النص (Body).
هاض بيساعدنا بالبحث الدقيق.
3. Retrieval Model:
هاض هو "المخ" أو "الخوارزمية" اللي بتقرر: مين هو المستند **الأكثر صلة (Most
Relevant)** بسؤالك؟ هو اللي بيعمل الحسابات والترتيب النهائي.
IR Applications
استرجاع المعلومات مش بس "غوغل"، هاض العلم
داخل في كل حياتنا الرقمية. ركز بهالأمثلة لأنها بتفرجينا قوة المادة:
🔹 Web Search
أشهر تطبيق بنستخدمه كل ثانية، زي Google, Bing, Yahoo، اللي بيفتشوا بمليارات
الصفحات.
🔹 Intelligent PDAs (Personal Digital Assistants)
المساعدات الشخصية الذكية زي Siri و Alexa و Cortana.. كيف بيفهموا كلامك وبلاقوا لك المعلومة؟ هاض هو
IR.
🔹 Information Extraction
لما السيستم يقرأ نص طويل "فوضوي" ويطلع منه بيانات منظمة (زي جدول أرباح)؛ يعني
بيعمل تحليل عميق للكلام.
🔹 Question-Answering
مش بس يعطيك لينكات، لا، السيستم هون "بيجاوبك" مباشرة؛ زي لما تسأل غوغل "كم الساعة في لندن" ويعطيك
الرقم فوراً.
🔹 Multimedia Information Retrieval
البحث بالصور والفيديوهات؛ كيف السيستم بيعرف إنه هاض فيديو "بطريق" مش "غزال"؟ عن
طريق استخراج خصائص الصورة والبحث عنها.
🔹 Information Recommendation
نظام التوصية، زي أمازون لما يقولك "الناس اللي اشتروا هاض المنتج، اشتروا كمان هاض". السيستم هون
بيتحزر شو رح تحبه بناءً على ذوق الناس اللي زيك.
🔹 Online advertising
الإعلانات اللي بتطلع لك وأنت بتفتش؛
السيستم (زي Google Ads) بيوصلك للإعلان الصح اللي إنت مهتم فيه "بالضبط" في اللحظة المناسبة.