Introduction to
Information Retrieval
Introducing Information Retrieval
and Web Search
Information Retrieval
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).
These days we frequently think first of web search,
but there are many other cases:
E-mail search
Searching your laptop
Corporate knowledge bases
Legal information retrieval
2
Unstructured (text) vs. structured (database)
data in the mid-nineties
3
Unstructured (text) vs. structured (database)
data today
4
Sec. 1.1
Basic assumptions of Information Retrieval
Collection: A set of documents
Assume it is a static collection for the moment
Goal: Retrieve documents with information
that is relevant to the users information need
and helps the user complete a task
5
The classic search model
User task Get rid of mice in a
politically correct way
Misconception?
Info need
Info about removing mice
without killing them
Misformulation?
Query Searc
how trap mice alive
h
Search
engine
Query Results
Collection
refinement
Sec. 1.1
How good are the retrieved docs?
Precision : Fraction of retrieved docs that are
relevant to the users information need
Recall : Fraction of relevant docs in collection
that are retrieved
More precise definitions and measurements to
follow later
7
Introduction to
Information Retrieval
Term-document incidence matrices
Sec. 1.1
Unstructured data in 1620
Which plays of Shakespeare contain the words
Brutus AND Caesar but NOT Calpurnia?
One could grep all of Shakespeares plays for
Brutus and Caesar, then strip out lines containing
Calpurnia?
Why is that not the answer?
Slow (for large corpora)
NOT Calpurnia is non-trivial
Other operations (e.g., find the word Romans near
countrymen) not feasible
Ranked retrieval (best documents to return)
Later lectures
9
Sec. 1.1
Term-document incidence matrices
Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth
Antony 1 1 0 0 0 1
Brutus 1 1 0 1 0 0
Caesar 1 1 0 1 1 1
Calpurnia 0 1 0 0 0 0
Cleopatra 1 0 0 0 0 0
mercy 1 0 1 1 1 1
worser 1 0 1 1 1 0
Brutus AND Caesar BUT NOT 1 if play contains
Calpurnia word, 0 otherwise
Sec. 1.1
Incidence vectors
So we have a 0/1 vector for each term.
To answer query: take the vectors for Brutus,
Caesar and Calpurnia (complemented)
bitwise AND.
110100 AND
110111 AND Antony
Antony and Cleopatra
1
Julius Caesar
1
The Tempest
0
Hamlet
0
Othello
0
Macbeth
1
101111 =
Brutus 1 1 0 1 0 0
Caesar 1 1 0 1 1 1
Calpurnia 0 1 0 0 0 0
100100
Cleopatra 1 0 0 0 0 0
mercy 1 0 1 1 1 1
worser 1 0 1 1 1 0
11
Sec. 1.1
Answers to query
Antony and Cleopatra, Act III, Scene ii
Agrippa [Aside to DOMITIUS ENOBARBUS]: Why, Enobarbus,
When Antony found Julius Caesar dead,
He cried almost to roaring; and he wept
When at Philippi he found Brutus slain.
Hamlet, Act III, Scene ii
Lord Polonius: I did enact Julius Caesar I was killed i the
Capitol; Brutus killed me.
12
Sec. 1.1
Bigger collections
Consider N = 1 million documents, each with
about 1000 words.
Avg 6 bytes/word including
spaces/punctuation
6GB of data in the documents.
Say there are M = 500K distinct terms among
these.
13
Sec. 1.1
Cant build the matrix
500K x 1M matrix has half-a-trillion 0s and 1s.
But it has no more than one billion 1s. Why?
matrix is extremely sparse.
Whats a better representation?
We only record the 1 positions.
14
Introduction to
Information Retrieval
The Inverted Index
The key data structure underlying
modern IR
Sec. 1.2
Inverted index
For each term t, we must store a list of all
documents that contain t.
Identify each doc by a docID, a document serial
number
Can
Brutus we used fixed-size
1 2 arrays
4 11 for
31 this?
45 173 174
Caesar 1 2 4 5 6 16 57 132
Calpurnia 2 31 54 101
What happens if the word Caesar
is added to document 14?
16
Sec. 1.2
Inverted index
We need variable-size postings lists
On disk, a continuous run of postings is normal
and best
Posting
In memory, can use linked lists or variable length
arrays
Some tradeoffs in 1size/ease
2 4 11 31 45 173 174
Brutus
of insertion
Caesar 1 2 4 5 6 16 57 132
Calpurnia 2 31 54 101
Dictionary Postings
Sorted by docID (more later on why).
17
Sec. 1.2
Inverted index construction
Documents to Friends, Romans, countrymen.
be indexed
Tokenizer
Token stream Friends Romans Countrymen
Linguistic modules
Modified tokens friend roman countryman
Indexer friend 2 4
roman 1 2
Inverted index
countryman 13 16
Initial stages of text processing
Tokenization
Cut character sequence into word tokens
Deal with Johns, a state-of-the-art solution
Normalization
Map text and query term to same form
You want U.S.A. and USA to match
Stemming
We may wish different forms of a root to match
authorize, authorization
Stop words
We may omit very common words (or not)
the, a, to, of
Sec. 1.2
Indexer steps: Token sequence
Sequence of (Modified token, Document ID) pairs.
Doc 1 Doc 2
I did enact Julius So let it be with
Caesar I was killed Caesar. The noble
i the Capitol; Brutus hath told you
Brutus killed me. Caesar was ambitious
Sec. 1.2
Indexer steps: Sort
Sort by terms
And then docID
Core indexing step
Sec. 1.2
Indexer steps: Dictionary & Postings
Multiple term entries
in a single document
are merged.
Split into Dictionary
and Postings
Doc. frequency
information is added.
Why frequency?
Will discuss later.
Sec. 1.2
Where do we pay in storage?
Lists of
docIDs
Terms
and
counts
IR system
implementation
How do we
index efficiently?
How much
storage do we
need?
Pointers 23