information retrieval אחזור מידע ומנועי חיפוש שיעור 12 מדעי הרוח הדיגיטליים אוניברסיטת בן גוריון יעל נצר
מערכות אחזור ראשונות - 1955 בערך מאגרים של מסמכים משפטיים, פסקי דין. ספריות ניהול מסמכי ארגון
ספריות זה דבר עתיק יומין! 3000 לפנהס, מסופוטמיה, 25000 לוחות חימר, בעיקר עם מידע ארגוני : מצאי ומלאי ומסחר. לצורך הקלה במציאה, תיאורי תוכן בקצות הלוחות. הספריה של אלכסנדריה, הוקמה ב- 300 לפנהס על ידי תלמי ה- I שירש את העיר אלכסנדריה מאלכסנדר הגדול. ספרות יוונית, פילוסופיה ומדע. כל מגילה שנמצאה על ספינה בנמל נלקחה והועתקה, המקור נשאר באלכסנדריה. בשיאה הכילה הספריה יותר מחצי מיליון מגילות, חייב את הספרנים ליצר שיטת קיטלוג. ספרים / מגילות סודרו על המדף בצורה אלפבתית.
ספריות http://www.ifis.cs.tu-bs.de/webfm_send/1579
Meta Data מטה-דטה קטן מהדבר שאותו מתאר מלכתחילה היו בשימוש של ספריות היום בשימוש לתיאור מידע דיגיטלי שימוש בסטנדרטים לפי ההקשר בשימוש מנועי החיפוש העדכניים
כרטיסי קטלוג עם נציגים של המסמך מטה-דטה אמורה לתת אינדיקציה על מהות המסמך אבל: נדרשת שיטת קלסיפיקציה / סיווג טובה מספיק מפורטת מספיק פשוטה כדי שתהיה מובנת מומחים חייבים בקטלוג כל פריט בנפרד: הרבה מאוד עבודה חיפוש בטקסט כל מילה היא מילת מפתח!Full text search: Every word is a keyword
איחזור מידע איתור מסמך או מסמכים המתאימים לצורך הידע של המחפשת מתוך אוסף מסמכים נגיש, זמין.. אחסון מסמכים והנגשתם לפי צורך ידע נקודת המוצא היא מסמך לא מובנה
מערכות אחזור מידע לעומת חיפוש באינטרנט אחזור מידע: עבודת מומחים, תחום ידוע, מבנה קבצים (פסקי דין, פטנטים, מאמרים, ספריות) חיפוש באינטרנט: קישוריות, מילות מפתח, אינטרסים כלכליים, קידום אתרים בסיסי נתונים: מידע מובנה, משמעות ידועה של כל אחד מהשדות, תשובה יחידה לשאילתה
נושאים באחזור מידע ייצוג מידע טקסטואלי (ומידע אחר) שאילתות מה היא שפת שאילתות טובה כיצד מתרגמים צורך ידע לשאילתה בצורה הטובה ביותר רלוונטיות כיצד קובעים רלוונטיות של מסמך לחיפוש כיצד מתמודדים עם אי-בהירות הערכת מערכות מהו מדד טוב ואיך מעריכים
אחזור מידע מסמך - טקסט קוהרנטי (מכיל נושאים הקשורים אחד לשני) אוסף מסמכים - קורפוס (נושאי או כללי) צורך ידע - נושא שעליו המחפשת רוצה לדעת יותר (תלוי במשתמשת! כל אחד יודע דברים אחרים) שאילתה - הייצוג לצורך הידע רלוונטיות - ערך המסמך ביחס לצורך הידע (האם מכיל ערך עבור הצורך). ערך בינארי או מדורג.
נושאים באחזור מידע ייצוג של מסמכים שפת שאילתות /ייצוג של שאילתות פונקציית דירוג המתאימה בין שאילתה לבין מסמכ/ים מנגנון של relevance feedback הערכת מערכות אחזור
מודל של מסמך ספריות: חיפוש במטה-דטה מסמכים
דוגמא לבעיה באחזור מידע נתון לנו אוסף כל יצירות שייקספיר כל יצירות http://www.gutenberg.org/etext/100 שייקספיר (בפרויקט גוטנגברג) פרוייקט בן יהודה http://benyehuda.org/ מבקשים למצוא את המסמכים המכילים את במילים brutus, caesar ולא את calpurnia פתרון ראשון: grepping חיפוש מחרוזת.
מודל שק מילים bag of words BOW התעלמות ממבנה רשימת מונחים terms אוצר מילים vocabulary
Inverted index Posting Brutus Calpurnia Caesar Dictionary 2 4 8 16 32 64 128 1 2 3 5 8 13 21 34 13 16 Postings lists
Query processing: AND בהנתן השאילתא הבאה: Brutus AND Caesar מצא את Brutus במילון שלוף את רשימת ההצבות. מצא את Caesar במילון שלוף את ההצבות מיזוג שתי הרשימות: 2 8 2 4 8 16 32 64 1 2 3 5 8 13 21 128 34 Brutus Caesar
מה נכנס לאינדקס?
Parsing a document מהו פורמט המסמך? pdf/word/excel/html? מהי שפת/שפות המסמך? איזה סוג קידוד משמש לייצוג המידע במסמך?
Complications: Format/language באוסף מסמכים נתון ייתכנו מסמכים בשפות שונות כלומר האינדקס עצמו יכיל יותר משפה אחת. בתוך מסמך אחד ייתכנו מספר שפות דוא"ל בצרפתית שמצורף לו קובץ pdf בגרמנית. מה בכלל נחשב כמסמך? קובץ? הודעת דואר אלקטרוני אחת? דוא"ל עם חמישה קבצים מצורפים? קבוצה של קבצים? (למשל בהמרת ppt ל- html ).
Tokenization Issues in tokenization: Finland s capital Finland? Finlands? Finland s? Hewlett-Packard Hewlett and Packard as two tokens? State-of-the-art: break up hyphenated sequence. co-education? the hold-him-back-and-drag-him-away-maneuver? It s effective to get the user to put in possible hyphens San Francisco: one token or two? How do you decide it is one token?
Normalization יש צורך לנרמל את המונים באינדקס ואת המונחים בשאילתא באותו אופן. We want to match U.S.A. and USA על פי רוב צריך להגדיר קבוצות שקילות למונחים למשל על ידי מחיקת הנקודות (אבל מה עם?(C.A.T אפשרות אחת היא לבצע "הרחבה" לא סימטרית לביטוי בשאילתא: Enter: window Search: window, windows Enter: windows Search: Windows, windows Enter: Windows Search: Windows פתרון לא יעיל
Stop words הרעיון הוא לא להכניס לאינדקס מילים נפוצות מאוד. אינן נושאות משמעות : be the, a, and, to, צורכות מקום רב באינדקס 30%~ מבין 30 המילים הנפוצות. הנטייה בהרבה מקרים היא לא להוציא מילים נפוצות שימוש בשיטות דחיסה מקטינות את הבעייתיות אופטימיזציה טובה של השאילתות מקטינות את המחיר על שימוש במילים נפוצות לעתים יש במילים הללו צורך: Phrase queries: King of Denmark Various song titles, etc.: Let it be, To be or not to be Relational queries: flights to London
Thesauri and soundex Handle synonyms and homonyms Hand-constructed equivalence classes e.g., car = automobile color = colour Rewrite to form equivalence classes Index such equivalences When the document contains automobile, index it under car as well (usually, also vice-versa) Or expand query? When the query contains automobile, look under car as well
Stemming Reduce terms to their roots before indexing Stemming suggest crude affix chopping language dependent e.g., automate(s), automatic, automation all reduced to automat. for example compressed and compression are both accepted as equivalent to compress. for exampl compress and compress ar both accept as equival to compress
Stemming Lexicon Free The stem is not the same as the morphological root (it is not necessarily a lexical item!) In IR the key is to acquire the stems, not to make any real use of morphological structure, hence the term Small performance improvements in practice (if any!!!) with larger documents, less needed Introduces errors: e.g. organization! organ
מציאת המסמכים הרלוונטיים
similarity-based models: f(q,d) = similarity(q,d)
מודל המרחב הוקטורי הרעיון הוא שאנו מייצגים מסמך כוקטור של ביטויים ביטוי term מילה או צירוף כל מילה או צירוף - כלומר כל term הוא מימד בוקטור גודל אוצר המילים, כלומר ה terms קובע את מימד הוקטור
כל מסמך מיוצג כוקטור מימד הוקטור הוא גודל אוצר המילים, כל מילה קוארדינטה שאילתה ומסמך מיוצגים באותו אופן מה הערכים של הוקטור? מספר המופעים של מילה במסמך מספר המסמכים שבהם מילה מופיעה באוסף המסמכים אורך המסמך
Weighting term frequency: tf What is the relative importance of 0 vs. 1 occurrence of a term in a doc 1 vs. 2 occurrences 2 vs. 3 occurrences Unclear: while it seems that more is better, a lot isn t proportionally better than a few
Effect of idf on ranking Does idf have an effect on ranking for one-term queries, like iphone idf has no effect on ranking one term queries idf affects the ranking of documents for queries with at least two terms For the query capricious person, idf weighting makes occurrences of capricious count for much more in the final document ranking than occurrences of person. 40
סיכום ביניים
Comments on Vector Space Models Simple, mathematically based approach. Considers both local (tf) and global (idf) word occurrence frequencies. Provides partial matching and ranked results. Tends to work quite well in practice despite obvious weaknesses. Allows efficient implementation for large document collections.
Problems with Vector Space Model Missing semantic information (e.g. word sense). Missing syntactic information (e.g. phrase structure, word order, proximity information). Assumption of term independence (e.g. ignores synonomy). Lacks the control of a Boolean model (e.g., requiring a term to appear in a document). Given a two-term query A B, may prefer a document containing A frequently but not B, over a document that contains both A and B, but both less frequently.
Practical Implementation Based on the observation that documents containing none of the query keywords do not affect the final ranking Try to identify only those documents that contain at least one query keyword Actual implementation of an inverted index
Step 1: Preprocessing Implement the preprocessing functions: For tokenization For stop word removal For stemming Input: Documents that are read one by one from the collection Output: Tokens to be added to the index No punctuation, no stop-words, stemmed
Step 2: Indexing Build an inverted index, with an entry for each word in the vocabulary Input: Tokens obtained from the preprocessing module Output: An inverted index for fast access
Step 2 (cont d) Many data structures are appropriate for fast access B-trees, skipped lists, hashtables We need: One entry for each word in the vocabulary For each such entry: Keep a list of all the documents where it appears together with the corresponding frequency! TF For each such entry, keep the total number of occurrences in all documents:! IDF
Step 2 (cont d) Index terms df D j, tf j computer database 3 2 D 7, 4 D 1, 3 science 4 D 2, 4 system 1 D 5, 2 Index file lists
Step 2 (cont d) TF and IDF for each token can be computed in one pass Cosine similarity also required document lengths Need a second pass to compute document vector lengths Remember that the length of a document vector is the squareroot of sum of the squares of the weights of its tokens. Remember the weight of a token is: TF * IDF Therefore, must wait until IDF s are known (and therefore until all documents are indexed) before document lengths can be determined. Do a second pass over all documents: keep a list or hashtable with all document id-s, and for each document determine its length.
Step 3: Retrieval Use inverted index (from step 2) to find the limited set of documents that contain at least one of the query words. Incrementally compute cosine similarity of each indexed document as query words are processed one by one. To accumulate a total score for each retrieved document, store retrieved documents in a hashtable, where the document id is the key, and the partial accumulated score is the value. Input: Query and Inverted Index (from Step 2) Output: Similarity values between query and documents
Sec. 6.3 Queries as vectors Key idea 1: Do the same for queries: represent them as vectors in the space Key idea 2: Rank documents according to their proximity to the query in this space proximity = similarity of vectors proximity inverse of distance Recall: We do this because we want to get away from the you re-either-in-or-out Boolean model. Instead: rank more relevant documents higher than less relevant documents
Step 4: Ranking Sort the hashtable including the retrieved documents based on the value of cosine similarity sort {$retrieved{$b} $retrieved{$a}} keys %retrieved Return the documents in descending order of their relevance Input: Similarity values between query and documents Output: Ranked list of documented in reversed order of their relevance
Sec. 6.4 tf-idf weighting has many variants Columns headed n are acronyms for weight schemes. Why is the base of the log in idf immaterial?
Summary vector space ranking Represent the query as a weighted tf-idf vector Represent each document as a weighted tf-idf vector Compute the (cosine) similarity score for the query vector and each document vector Rank documents with respect to the query by score Return the top K (e.g., K = 10) to the user
הערכה Evaluation של מנועי חיפוש
הערכת מערכת איחזור מידע צורך ידע מתורגם לשאילתה Information need אבל רלוונטיות מוכרעת ביחס ל- need information ולא ביחס לשאילתה. כלומר: Information need: I'm looking for information on whether drinking red wine is more effective at reducing your risk of heart attacks than white wine. Query: wine red white heart attack effective הערכת הרלוונטיות היא ביחס לשאלה האם המסמך שהתקבל מתאים לצרכי-הידע ולא האם הוא מכיל את הביטויים בחיפוש.
Difficulties with gauging Relevancy Relevancy, from a human standpoint, is: Subjective: Depends upon a specific user s judgment. Situational: Relates to user s current needs. Cognitive: Depends on human perception and behavior. Dynamic: Changes over time. 61
Unranked retrieval evaluation: Precision and Recall Precision: fraction of retrieved docs that are relevant = P(relevant retrieved) Recall: fraction of relevant docs that are retrieved = P(retrieved relevant) Relevant Retrieved tp fp Not Retrieved fn tn Not Relevant Precision P = tp/(tp + fp) Recall R = tp/(tp + fn)
Precision and Recall in Practice Precision The ability to retrieve top-ranked documents that are mostly relevant. The fraction of the retrieved documents that are relevant. Recall The ability of the search to find all of the relevant items in the corpus. The fraction of the relevant documents that are retrieved. 63
Another View Space of all documents Relevant Relevant + Retrieved Retrieved Not Relevant + Not Retrieved
Why not just use accuracy? How to build a 99.9999% accurate search engine on a low budget. Snoogle.com Search for: 0 matching results found. People doing information retrieval want to find something and have a certain tolerance for junk.
Precision/Recall You can get high recall (but low precision) by retrieving all docs for all queries! Recall is a non-decreasing function of the number of docs retrieved In a good system, precision decreases as either number of docs retrieved or recall increases A fact with strong empirical confirmation
Difficulties in using precision/recall Should average over large corpus/query ensembles Need human relevance assessments People aren t reliable assessors Assessments have to be binary Nuanced assessments? Heavily skewed by corpus/authorship Results may not translate from one domain to another
Trade-offs Returns relevant documents but misses many useful ones too The ideal 1 Precision 0 Recall 1 Returns most relevant documents but includes lot of junk 68
F-Measure F ( ) β 2 + 1 = 2 β PR P + R Harmonic mean of recall and precision ממוצע הרמוני הוא "ההפכי של הממוצע החשבוני של ההפכיים' נוטה להמעיט בערך מספרים גדולים ולהגדיל ערכם של מספרים קטנים Beta controls relative importance of precision and recall Beta = 1, precision and recall equally important Beta = 5, recall five times more important than precision
F 1 and other averages 100 Combined Measures 75 50 Minimum Maximum Arithmetic Geometric Harmonic 25 0 0 25 50 75 100 Precision (Recall fixed at 70%)
https://www.freebase.com/m/017kb5