1 of 42

CS255 Fundamentals of Information Retrieval

Lecture 6

Vector Space Model

Krishnendu Ghosh

Department of Computer Science & Engineering

Indian Institute of Information Technology Dharwad

2 of 42

Ranked Retrieval

  • Thus far, our queries have all been Boolean.
    • Documents either match or don’t.
  • Good for expert users with precise understanding of their needs and the collection.
    • Also good for applications: Applications can easily consume 1000s of results.
  • Not good for the majority of users.
    • Most users incapable of writing Boolean queries (or they are, but they think it’s too much work).
    • Most users don’t want to wade through 1000s of results.
      • This is particularly true of web search.

3 of 42

Problem with Boolean Search: feast or famine

  • Boolean queries often result in either too few (=0) or too many (1000s) results.
  • Query 1: “standard user dlink 650” → 200,000 hits
  • Query 2: “standard user dlink 650 no card found”: 0 hits
  • It takes a lot of skill to come up with a query that produces a manageable number of hits.
  • AND gives too few; OR gives too many

4 of 42

Ranked Retrieval Models

  • Rather than a set of documents satisfying a query expression, in ranked retrieval, the system returns an ordering over the (top) documents in the collection for a query
  • Free text queries: Rather than a query language of operators and expressions, the user’s query is just one or more words in a human language
  • In principle, there are two separate choices here, but in practice, ranked retrieval has normally been associated with free text queries and vice versa

5 of 42

feast or famine: not a problem in Ranked Retrieval

  • When a system produces a ranked result set, large result sets are not an issue
  • Indeed, the size of the result set is not an issue
  • We just show the top k ( ≈ 10) results
  • We don’t overwhelm the user

  • Premise: the ranking algorithm works

6 of 42

Scoring as the basis of Ranked Retrieval

  • We wish to return in order the documents most likely to be useful to the searcher
  • How can we rank-order the documents in the collection with respect to a query?
  • Assign a score – say in [0, 1] – to each document
  • This score measures how well document and query “match”.

7 of 42

Query-Document Matching Scores

  • We need a way of assigning a score to a query/document pair
  • Let’s start with a one-term query
  • If the query term does not occur in the document: score should be 0
  • The more frequent the query term in the document, the higher the score
  • We will look at a number of alternatives for this.

8 of 42

Jaccard Coefficient

  • A common measure of overlap of two sets A and B
  • jaccard(A,B) = |A ∩ B| / |A ∪ B|
  • jaccard(A,A) = 1
  • jaccard(A,B) = 0 if A ∩ B = 0
  • A and B don’t have to be the same size.
  • Always assigns a number between 0 and 1.

9 of 42

Jaccard Coefficient: Scoring example

  • What is the query-document match score that the Jaccard coefficient computes for each of the two documents below?
  • Query: ides of march
  • Document 1: caesar died in march
  • Document 2: the long march

10 of 42

Issue with Jaccard coefficients

  • It doesn’t consider term frequency (how many times a term occurs in a document)
  • Rare terms in a collection are more informative than frequent terms. Jaccard doesn’t consider this information
  • We need a more sophisticated way of normalizing for length

11 of 42

Recall: Binary Term-Document Incidence Matrix

Each document is represented by a binary vector ∈ {0,1}|V|

12 of 42

Term-Document Count Matrices

  • Consider the number of occurrences of a term in a document:
    • Each document is a count vector in ℕ^v: a column below

13 of 42

Bag of Words Model

  • Vector representation doesn’t consider the ordering of words in a document
  • John is quicker than Mary and Mary is quicker than John have the same vectors
  • This is called the bag of words model.
  • In a sense, this is a step back: The positional index was able to distinguish these two documents.

14 of 42

Term Frequency tf

  • The term frequency tf(t,d) of term t in document d is defined as the number of times that t occurs in d.
    • Note: Frequency means count in IR
  • We want to use tf when computing query-document match scores. But how?
  • Raw term frequency is not what we want:
    • A document with 10 occurrences of the term is more relevant than a document with 1 occurrence of the term.
    • But not 10 times more relevant.
  • Relevance does not increase proportionally with term frequency.

15 of 42

Log-Frequency Weighting

  • The log frequency weight of term t in d is

  • 0 → 0, 1 → 1, 2 → 1.3, 10 → 2, 1000 → 4, etc.
  • Score for a document-query pair: sum over terms t in both q and d:

score

  • The score is 0 if none of the query terms is present in the document.

16 of 42

Rare terms are more informative

  • Rare terms are more informative than frequent terms
    • Recall stop words
  • Consider a term in the query that is rare in the collection (e.g., arachnocentric)
  • A document containing this term is very likely to be relevant to the query arachnocentric
  • → We want a high weight for rare terms like arachnocentric

17 of 42

Collection vs. Document Frequency

  • Collection frequency of t is the number of occurrences of t in the collection
  • Document frequency of t is the number of documents in which t occurs
  • Example:

  • Which word is for better search (gets higher weight)

Word

Collection Frequency

Document Frequency

Insurance

10440

3997

Try

10422

8760

18 of 42

idf Weight

  • dft is the document frequency of t: the number of documents that contain t
  • dft is an inverse measure of the informativeness of t
  • dft ≤ N
  • We define the idf (inverse document frequency) of t by

  • We use log (N/dft) instead of N/dft to “dampen” the effect of idf.

19 of 42

idf Weight, suppose N = 1 million

There is one idf value for each term t in a collection.

term

dft

idft

calpurnia

1

6

animal

100

4

sunday

1,000

3

fly

10,000

2

under

100,000

1

the

1,000,000

0

20 of 42

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.

21 of 42

tf-idf Weighting

  • The tf-idf weight of a term is the product of its tf weight and its idf weight.

  • Best known weighting scheme in information retrieval
    • Note: the “-” in tf-idf is a hyphen, not a minus sign!
    • Alternative names: tf.idf, tf x idf
  • Increases with the number of occurrences within a document
  • Increases with the rarity of the term in the collection

22 of 42

Score for a Document given a Query

There are many variants

  • How “tf” is computed (with/without logs)
  • Whether the terms in the query are also weighted

score(q.d)=

23 of 42

Binary → Count → Weight Matrix

Each document is now represented by a real-valued vector of tf-idf weights ∈ R|V|

24 of 42

Documents as Vectors

  • So we have a |V|-dimensional vector space
  • Terms are axes of the space
  • Documents are points or vectors in this space
  • Very high-dimensional: tens of millions of dimensions when you apply this to a web search engine
  • These are very sparse vectors - most entries are zero.

25 of 42

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

26 of 42

Formalizing Vector Space Proximity

  • First cut: distance between two points
    • ( = distance between the end points of the two vectors)
  • Euclidean distance?
  • Euclidean distance is a bad idea . . .
  • . . . because Euclidean distance is large for vectors of different lengths.

27 of 42

Why Distance is a Bad Idea

The Euclidean distance between q and d2 is large even though the distribution of terms in the query q and the distribution of terms in the document d2 are very similar.

28 of 42

Use Angle instead of Distance

  • Thought experiment: take a document d and append it to itself. Call this document d′.
  • “Semantically” d and d′ have the same content
  • The Euclidean distance between the two documents can be quite large
  • The angle between the two documents is 0, corresponding to maximal similarity.

  • Key idea: Rank documents according to angle with query.

29 of 42

from Angles to Cosines

  • The following two notions are equivalent.
    • Rank documents in decreasing order of the angle between query and document
    • Rank documents in increasing order of cosine(query,document)
  • Cosine is a monotonically decreasing function for the interval [0 degree, 180 degree]

30 of 42

Length Normalization

  • A vector can be (length-) normalized by dividing each of its components by its length – for this we use the L2 norm:

  • Dividing a vector by its L2 norm makes it a unit (length) vector (on surface of unit hypersphere)
  • Effect on the two documents d and d′ (d appended to itself) from earlier slide: they have identical vectors after length-normalization.
    • Long and short documents now have comparable weights

31 of 42

Cosine Similarity

  • qi is the weight of term i in the query
  • di is the weight of term i in the document
  • cos(q,d) is the cosine similarity of q and d … or,
  • equivalently, the cosine of the angle between q and d

32 of 42

Cosine Similarity Illustrated

33 of 42

Cosine Similarity amongst 3 Documents

How similar are the novels?

SaS: Sense and Sensibility

PaP: Pride and Prejudice

WH: Wuthering Heights?

term

SaS

PaP

WH

affection

115

58

20

jealous

10

7

11

gossip

2

0

6

wuthering

0

0

38

34 of 42

Cosine Similarity amongst 3 Documents

Log frequency weighting

dot(SaS,PaP) ≈ 12.1

dot(SaS,WH) ≈ 13.4

dot(PaP,WH) ≈ 10.1

After length normalization

cos(SaS,PaP) ≈ 0.94

cos(SaS,WH) ≈ 0.79

cos(PaP,WH) ≈ 0.69

term

SaS

PaP

WH

affection

3.06

2.76

2.30

jealous

2.00

1.85

2.04

gossip

1.30

0

1.78

wuthering

0

0

2.58

term

SaS

PaP

WH

affection

0.789

0.832

0.524

jealous

0.515

0.555

0.465

gossip

0.335

0

0.405

wuthering

0

0

0.588

35 of 42

Computing Cosine Similarity

D1=(1,2,2)

D2=(2,1,2)

36 of 42

Cosine Similarity: Term-at-a-Time Algorithm

37 of 42

Computing Cosine Similarity

Algorithm can be adapted to scoring document-at-a-time (DAAT)

Storing wt,d in each posting could be expensive

…because we’d have to store a floating point number

For tf-idf scoring, it suffices to store tft,d in the posting and idft in the head of the postings list

Extracting the top K items can be done with a priority queue (e.g., a heap)

38 of 42

Variants of TF-IDF

39 of 42

Weighting in Queries vs Documents

Many search engines allow for different weightings for queries vs. documents

SMART Notation: denotes the combination in use in an engine, with the notation ddd.qqq, using the acronyms from the previous table

A very standard weighting scheme is: lnc.ltc

Document: logarithmic tf (l as first character), no idf and cosine normalization

Query: logarithmic tf (l in leftmost column), idf (t in second column), cosine normalization …

40 of 42

Calculating TF-IDF: lnc.ltc

Document: car insurance auto insurance

Query: best car insurance

Doc length =

Score = 0+0+0.27+0.53 = 0.8

41 of 42

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

Code

Code 2

42 of 42

Thank You