78
Big Data Analytics CSCI 4030

Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

  • Upload
    others

  • View
    72

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Big Data Analytics CSCI 4030

Page 2: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

High dim data

Locality sensitive hashing

Clustering

Dimensionality

reduction

Graph data

PageRank, SimRank

Network Analysis

Spam Detection

Infinite data

Filtering data

streams

Web advertising

Queries on streams

Machine learning

SVM

Decision Trees

Perceptron, kNN

Apps

Recommender systems

Association Rules

Duplicate document detection

Big Data Analytics CSCI 40302

Page 3: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

3Big Data Analytics CSCI 4030

[Hays and Efros, SIGGRAPH 2007]

Page 4: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

4Big Data Analytics CSCI 4030

[Hays and Efros, SIGGRAPH 2007]

Page 5: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

10 nearest neighbors from a collection of 20,000 imagesBig Data Analytics CSCI 4030 5

[Hays and Efros, SIGGRAPH 2007]

Page 6: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

10 nearest neighbors from a collection of 2 million imagesBig Data Analytics CSCI 4030

6

[Hays and Efros, SIGGRAPH 2007]

Page 7: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Many problems can be expressed as finding “similar” sets: Find near-neighbors in high-dimensional space

Examples: Pages with similar words For duplicate detection (Mirror Pages, Plagiarism)

Customers who purchased similar products Online Purchases (Amazon)

Images with similar features Users who visited similar websites

Big Data Analytics CSCI 40307

Page 8: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Given: High dimensional data points 𝒙𝟏, 𝒙𝟐, … For example: Image is a long vector of pixel colors

1 2 10 2 10 1 0

→ [1 2 1 0 2 1 0 1 0]

And some distance function 𝒅(𝒙𝟏, 𝒙𝟐) Which quantifies the “distance” between 𝒙𝟏 and 𝒙𝟐

Goal: Find all pairs of data points (𝒙𝒊, 𝒙𝒋) that are

within some distance threshold 𝒅 𝒙𝒊, 𝒙𝒋 ≤ 𝒔 Note: Naïve solution would take 𝑶 𝑵𝟐

where 𝑵 is the number of data points

MAGIC: This can be done in 𝑶 𝑵 !! How?Big Data Analytics CSCI 4030 8

Page 9: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Big Data Analytics CSCI 40309

Today’s lecture: Find pairs of similar docsMain idea: Candidates-- Pass 1: Take documents and hash them to buckets such that documents that are similar hash to the same bucket-- Pass 2: Only compare documents that are candidates (i.e., they hashed to a same bucket)Benefits: Instead of O(N2) comparisons, we need O(N) comparisons to find similar documents

Page 10: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,
Page 11: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Goal: Find near-neighbors in high-dim. space We formally define “near neighbors” as

points that are a “small distance” apart For each application, we first need to define

what “distance” means Today: Jaccard distance/similarity The Jaccard similarity of two sets is the size of their

intersection divided by the size of their union:sim(C1, C2) = |C1C2|/|C1C2|

Jaccard distance: d(C1, C2) = 1 - |C1C2|/|C1C2|

11Big Data Analytics CSCI 4030

3 in intersection

8 in union

Jaccard similarity= 3/8

Jaccard distance = 5/8

Page 12: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Goal: Given a large number (𝑵 in the millions or billions) of documents, find “near duplicate” pairs

Applications: Mirror websites, or approximate mirrors Don’t want to show both in search results

Similar news articles at many news sites Cluster articles by “same story”

Problems: Many small pieces of one document can appear

out of order in another

Too many documents to compare all pairs

Documents are so large or so many that they cannot fit in main memory

Big Data Analytics CSCI 4030 12

Page 13: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

1. Shingling: Convert documents to sets

2. Min-Hashing: Convert large sets to short signatures, while preserving similarity

3. Locality-Sensitive Hashing: Focus on pairs of signatures likely to be from similar documents

Candidate pairs!

Big Data Analytics CSCI 4030 13

Page 14: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

14

Document

The set

of strings

of length k

that appear

in the doc-

ument

Signatures:

short integer

vectors that

represent the

sets, and

reflect their

similarity

Locality-

Sensitive

Hashing

Candidate

pairs:

those pairs

of signatures

that we need

to test for

similarity

Big Data Analytics CSCI 4030

Page 15: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Step 1: Shingling: Convert documents to sets

Docu-ment

The setof stringsof length kthat appearin the doc-ument

Page 16: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Step 1: Convert documents to sets

Simple approaches:

Document = set of words appearing in document

Document = set of “important” words (eliminate stop words: “and”, “a”, “the”, “to”, “you” and so on)

Don’t work well for this application. Why?

Big Data Analytics CSCI 4030 16

Page 17: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Step 1: Convert documents to sets

Simple approaches: Document = set of words appearing in document

Document = set of “important” words (eliminate stop words: “and”, “a”, “the”, “to”, “you” and so on)

Don’t work well for this application. Why?

Additiotinally need to account for ordering of words! Solution: Shingles!

Big Data Analytics CSCI 4030 17

Page 18: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

A k-shingle (or k-gram) for a document is a sequence of k tokens that appears in the doc

Tokens can be characters, words or something else, depending on the application

Assume tokens = characters for examples

Example: k=2; document D1 = abcab

Set of 2-shingles: S(D1) = {ab, bc, ca}

Option: Shingles as a bag (multiset), count ab

twice: S’(D1) = {ab, bc, ca, ab}

Big Data Analytics CSCI 4030 18

Page 19: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

To compress long shingles, we can hash (or simply map) them to (say) 4 bytes

Represent a document by the set of hash values of its k-shingles

Idea: Rare (or none) collisions of shingles

Example: k=2; document D1= abcab

Set of 2-shingles: S(D1) = {ab, bc, ca}Hash the singles: h(D1) = {1, 5, 7}

Big Data Analytics CSCI 403019

Page 20: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Document D1 is a set of its k-shingles C1=S(D1) Equivalently, each document is a

0/1 vector in the space of k-shingles

Each unique shingle is a dimension

Vectors are very sparse

A natural similarity measure is the Jaccard similarity:

sim(D1, D2) = |C1C2|/|C1C2|

Big Data Analytics CSCI 403020

Page 21: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Documents that have lots of shingles in common have similar text, even if the text appears in different order

Caveat: You must pick k large enough, or most documents will have most shingles

k = 5 is OK for short documents

k = 10 is better for long documents

Big Data Analytics CSCI 403021

Page 22: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Suppose we need to find near-duplicate documents among 𝑵 = 𝟏 million documents

Naïvely, we would have to compute pairwise Jaccard similarities for every pair of docs

𝑵(𝑵 − 𝟏)/𝟐 ≈ 5*1011 comparisons

At 105 secs/day and 106 comparisons/sec, it would take 5 days

For 𝑵 = 𝟏𝟎 million, it takes more than a year…

Big Data Analytics CSCI 403022

Page 23: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Step 2: Minhashing: Convert large sets to short signatures, while preserving similarity

Docu-ment

The setof stringsof length kthat appearin the doc-ument

Signatures:short integervectors thatrepresent thesets, andreflect theirsimilarity

Page 24: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Many similarity problems can be formalized as finding subsets that have significant intersection

Encode sets using 0/1 (bit, boolean) vectors

One dimension per element in the universal set

Interpret set intersection as bitwise AND, and set union as bitwise OR

Example: C1 = 10111; C2 = 10011

Size of intersection = 3; size of union = 4,

Jaccard similarity (not distance) = 3/4

Distance: d(C1,C2) = 1 – (Jaccard similarity) = 1/4

Big Data Analytics CSCI 4030 24

Page 25: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Rows = elements (shingles) Columns = sets (documents) 1 in row e and column s if and only

if e is a member of s

Column similarity is the Jaccard similarity of the corresponding sets (rows with value 1)

Typical matrix is sparse! Each document is a column: Example: sim(C1 ,C2) = ?

Size of intersection = 3; size of union = 6, Jaccard similarity (not distance) = 3/6

d(C1,C2) = 1 – (Jaccard similarity) = 3/6

25

Big Data Analytics CSCI 4030

0101

0111

1001

1000

1010

1011

0111

Documents

Shin

gle

s

Page 26: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

So far:

Documents Sets of shingles

Represent sets as boolean vectors in a matrix

Next goal: Find similar columns while computing small signatures

Similarity of columns == similarity of signatures

Big Data Analytics CSCI 403026

Page 27: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Next Goal: Find similar columns, Small signatures Approach:

1) Signatures of columns: small summaries of columns

2) Examine pairs of signatures to find similar columns

Essential: Similarities of signatures and columns are related

3) Optional: Check that columns with similar signatures are really similar

Warnings:

Comparing all pairs may take too much time: Job for LSH

These methods can produce false negatives, and even false positives (if the optional check is not made)

Big Data Analytics CSCI 403027

Page 28: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Key idea: “hash” each column C to a small signature h(C), such that:

(1) h(C) is small enough that the signature fits in RAM

(2) sim(C1, C2) is the same as the “similarity” of signatures h(C1) and h(C2)

Goal: Find a hash function h(·) such that:

If sim(C1,C2) is high, then with high prob. h(C1) = h(C2)

If sim(C1,C2) is low, then with high prob. h(C1) ≠ h(C2)

Hash docs into buckets. Expect that “most” pairs of near duplicate docs hash into the same bucket!

Big Data Analytics CSCI 403028

Page 29: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Goal: Find a hash function h(·) such that:

if sim(C1,C2) is high, then with high prob. h(C1) = h(C2)

if sim(C1,C2) is low, then with high prob. h(C1) ≠ h(C2)

Clearly, the hash function depends on the similarity metric:

Not all similarity metrics have a suitable hash function

There is a suitable hash function for the Jaccard similarity: It is called Min-Hashing

Big Data Analytics CSCI 403029

Page 30: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

30

Imagine the rows of the boolean matrix permuted under random permutation

Define a “hash” function h(C) = the index of the first (in the permuted order ) row in which column C has value 1:

Use several (e.g., 100) independent hash functions (that is, permutations) to create a signature of a column

Big Data Analytics CSCI 4030

Page 31: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

31

3

4

7

2

6

1

5

Signature matrix M

1212

5

7

6

3

1

2

4

1412

4

5

1

6

7

3

2

2121

Big Data Analytics CSCI 4030

2nd element of the permutation

is the first to map to a 1

4th element of the permutation

is the first to map to a 1

0101

0101

1010

1010

1010

1001

0101

Input matrix (Shingles x Documents) Permutation

Page 32: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Choose a random permutation Claim: Pr[h(C1) = h(C2)] = sim(C1, C2)

= |C1C2|/|C1C2|

Big Data Analytics CSCI 403032

01

10

00

11

00

00

Page 33: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

33

We know: Pr[h(C1) = h(C2)] = sim(C1, C2) Now generalize to multiple hash functions

The similarity of two signatures is the fraction of the hash functions in which they agree

Note: Because of the Min-Hash property, the similarity of columns is “almost the same” as the expected similarity of their signatures

Big Data Analytics CSCI 4030

Page 34: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

34Big Data Analytics CSCI 4030

Similarities:1-3 2-4 1-2 3-4

Col/Col 0.75 0.75 0 0Sig/Sig 0.67 1.00 0 0

Signature matrix M

1212

5

7

6

3

1

2

4

1412

4

5

1

6

7

3

2

2121

0101

0101

1010

1010

1010

1001

0101

Input matrix (Shingles x Documents)

3

4

7

2

6

1

5

Permutation

Page 35: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Pick K=100 random permutations of the rows Think of sig(C) as a column vector sig(C)[i] = according to the i-th permutation, the

index of the first row that has a 1 in column C

Note: The sketch (signature) of document C is small ~𝟏𝟎𝟎 bytes!

We achieved our goal! We “compressed” long bit vectors into short signatures

Big Data Analytics CSCI 4030 35

Page 36: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Step 3: Locality-Sensitive Hashing:Focus on pairs of signatures likely to be from similar documents

Docu-ment

The setof stringsof length kthat appearin the doc-ument

Signatures:short integervectors thatrepresent thesets, andreflect theirsimilarity

Locality-SensitiveHashing

Candidatepairs:those pairsof signaturesthat we needto test forsimilarity

Page 37: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Goal: Find documents with Jaccard similarity at least s (for some similarity threshold, e.g., s=0.8)

LSH – General idea: Use a function f(x,y) that tells whether x and y is a candidate pair: a pair of elements whose similarity must be evaluated

For Min-Hash matrices:

Hash columns of signature matrix M to many buckets

Each pair of documents that hashes into the same bucket is a candidate pair

37Big Data Analytics CSCI 4030

1212

1412

2121

Page 38: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Pick a similarity threshold s (0 < s < 1)

Columns x and y of M are a candidate pair if their signatures agree on at least fraction s of their rows: M (i, x) = M (i, y) for at least frac. s values of i

We expect documents x and y to have the same (Jaccard) similarity as their signatures

Big Data Analytics CSCI 403038

1212

1412

2121

Page 39: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Big idea: Hash columns of signature matrix M several times

Arrange that (only) similar columns are likely to hash to the same bucket, with high probability

Candidate pairs are those that hash to the same bucket

Big Data Analytics CSCI 403039

1212

1412

2121

Page 40: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Big Data Analytics CSCI 4030 40

Signature matrix M

r rowsper band

b bands

Onesignature

1212

1412

2121

Page 41: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Divide matrix M into b bands of r rows

For each band, hash its portion of each column to a hash table with k buckets

Make k as large as possible

Candidate column pairs are those that hash to the same bucket for ≥ 1 band

Tune b and r to catch most similar pairs, but few non-similar pairs

41Big Data Analytics CSCI 4030

Page 42: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Matrix M

r rows b bands

BucketsColumns 2 and 6

are probably identical

(candidate pair)

Columns 6 and 7 are

probably different.

Big Data Analytics CSCI 403042

Page 43: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

There are enough buckets that columns are unlikely to hash to the same bucket unless they are identical in a particular band

Hereafter, we assume that “same bucket” means “identical in that band”

Assumption needed only to simplify analysis, not for correctness of algorithm

43Big Data Analytics CSCI 4030

Page 44: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Assume the following case: Suppose 100,000 columns of M (100k docs) Signatures of 100 integers (rows) Therefore, signatures take 40Mb Choose b = 20 bands of r = 5 integers/band

Goal: Find pairs of documents that are at least s = 0.8 similar

Big Data Analytics CSCI 403044

1212

1412

2121

Page 45: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Find pairs of s=0.8 similarity, set b=20, r=5 Assume: sim(C1, C2) = 0.8 Since sim(C1, C2) s, we want C1, C2 to be a candidate

pair: We want them to hash to at least 1 common bucket(at least one band is identical)

Probability C1, C2 identical in one particular band: (0.8)5 = 0.328

Probability C1, C2 are not similar in all of the 20 bands: (1-0.328)20 = 0.00035 i.e., about 1/3000th of the 80%-similar column pairs

are false negatives (we miss them)

We would find 99.965% pairs of truly similar documents

45Big Data Analytics CSCI 4030

1212

1412

2121

Page 46: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Find pairs of s=0.8 similarity, set b=20, r=5 Assume: sim(C1, C2) = 0.3 Since sim(C1, C2) < s we want C1, C2 to hash to NO

common buckets (all bands should be different) Probability C1, C2 identical in one particular

band: (0.3)5 = 0.00243 Probability C1, C2 identical in at least 1 of 20

bands: 1 - (1 - 0.00243)20 = 0.0474 In other words, approximately 4.74% pairs of docs

with similarity 0.3% end up becoming candidate pairs They are false positives since we will have to examine them

(they are candidate pairs) but then it will turn out their similarity is below threshold s

Big Data Analytics CSCI 403046

1212

1412

2121

Page 47: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Pick:

The number of Min-Hashes (rows of M)

The number of bands b, and

The number of rows r per band

to balance false positives/negatives

Example: If we had only 15 bands of 5 rows, the number of false positives would go down, but the number of false negatives would go up

47Big Data Analytics CSCI 4030

1212

1412

2121

Page 48: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Columns C1 and C2 have similarity t Pick any band (r rows)

Prob. that all rows in band equal = tr

Prob. that some row in band unequal = 1 - tr

Prob. that no band identical = (1 - tr)b

Prob. that at least 1 band identical = 1 - (1 - tr)b

48Big Data Analytics CSCI 4030

Page 49: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Similarity threshold s Prob. that at least 1 band is identical:

Big Data Analytics CSCI 4030 49

s 1-(1-sr)b

.2 .006

.3 .047

.4 .186

.5 .470

.6 .802

.7 .975

.8 .9996

Page 50: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Picking r and b to get the best S-curve

50 hash-functions (r=5, b=10)

Big Data Analytics CSCI 403050

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Blue area: False Negative rateGreen area: False Positive rate

Similarity

Pro

b. s

har

ing

a b

uck

et

Page 51: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Tune M, b, r to get almost all pairs with similar signatures, but eliminate most pairs that do not have similar signatures

Check in main memory that candidate pairsreally do have similar signatures

Optional: In another pass through data, check that the remaining candidate pairs really represent similar documents

51Big Data Analytics CSCI 4030

Page 52: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Shingling: Convert documents to sets

We used hashing to assign each shingle an ID

Min-Hashing: Convert large sets to short signatures, while preserving similarity

We used similarity preserving hashing to generate signatures with property Pr[h(C1) = h(C2)] = sim(C1, C2)

We used hashing to get around generating random permutations

Locality-Sensitive Hashing: Focus on pairs of signatures likely to be from similar documents

We used hashing to find candidate pairs of similarity s

Big Data Analytics CSCI 403052

Page 53: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

There are two sets S and T in the figure below. What is their Jaccard similarity?

Big Data Analytics CSCI 403053

Page 54: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

We see two sets S and T in the figure below. What is their Jaccard similarity?

Ans: There are three elements in their intersection and a total of eight elements that appear in S or T or both. Therefore, sim(S,T) = 3/7

Big Data Analytics CSCI 403054

Page 55: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Assume we use k = 9 shingles. Is there some lexicographical similarity in the sentences:

“The plane was ready for touch down”

“The quarterback scored a touchdown”

How about if we eliminate white spaces?

Big Data Analytics CSCI 403055

Page 56: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Assume we use k = 9 shingles. Is there some lexicographical similarity in the sentences:

“The plane was ready for touch down”

“The quarterback scored a touchdown”

How about if we eliminate white spaces?

Ans:

If we retain the blanks, then the first sentence has shingles “touch dow” and “ouch down”, while the second has “touchdown” .

If we eliminated the blanks, then both would have “touchdown”.

Big Data Analytics CSCI 403056

Page 57: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Our corpus of documents is emails. Assume we choose k = 1 shingles. How is going to affect emails similarity?

What would be your recommendation for k if corpus of documents is emails?

Big Data Analytics CSCI 403057

Page 58: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Our corpus of documents is emails. Assume we choose k = 1 shingles. How is going to affect emails similarity?

What would be your recommendation for k if corpus of documents is emails?

Ans: This is an extreme case. If we use k = 1, most of the email

documents will have most of the common characters, so almost all emails will have high similarity.

Thus, if our corpus of documents is emails, picking k = 5 should be fine. Then there would be 275= 14,348,907 possible shingles assuming are 27 characters. Since typical email is smaller that should work well.

Big Data Analytics CSCI 403058

Page 59: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

The matrix representing four sets 𝑆1, … , 𝑆4 is presented below. Suppose we pick the permutation of rows beadc. What is the value of minhash function h(𝑆𝑖)?

Big Data Analytics CSCI 403059

Page 60: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

The matrix representing four sets 𝑆1, … , 𝑆4 is presented below. Suppose we pick the permutation of rows beadc. What is the value of minhashfunction h(𝑆𝑖)?

Ans: In this matrix, we read off the values of h by scanning from the top until we come to a 1. Thus, we see that h(𝑆1) = a, h(𝑆2) = c, h(𝑆3) = b and h(𝑆4) = a.

Therefore, the answer is h(𝑆𝑖) = a, c, b, a.Big Data Analytics CSCI 4030

60

Page 61: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

The matrix representing four sets 𝑆1, … , 𝑆4 is presented below. Suppose, we pick the permutation ℎ1 = x + 1 mod 5 and 3x + 1 mod 5.

Compute hash functions for the matrix.

Big Data Analytics CSCI 403061

Page 62: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

The matrix representing four sets 𝑆1, … , 𝑆4 is presented below. Suppose, we pick the permutation ℎ1 = x + 1 mod 5 and ℎ2= 3x + 1 mod 5.

Compute hash functions for the matrix.

Ans:

Big Data Analytics CSCI 403062

Page 63: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Compute the signature matrix with single pass over two permutations established by the hash functions in the previous task.

Big Data Analytics CSCI 403063

Page 64: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Initially, this matrix consists of all ∞’s

First we consider row 0 of the matrix. We see that the values of ℎ1 0 and ℎ2 0 are both 1. The row numbered 0 has 1’s in the columns for sets 𝑆1and 𝑆4, so only these columns of the signature matrix can change. As 1 is less than ∞ signature matrix is:

Big Data Analytics CSCI 403064

Page 65: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Current signature matrix

Next we consider row 1 of the matrix. This row has 1 only in 𝑆3 and its hash values are ℎ1 1 = 2 and ℎ2 1 = 4. The new signature matrix is:

Big Data Analytics CSCI 403065

Page 66: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Current signature matrix

Next we consider row 2 of the matrix. This row has 1 in 𝑆2 and 𝑆4 and its hash values are ℎ1 2 = 3 and ℎ2 2 = 2. Note that for 𝑆4 of the signature matrix, [1,1] are each less than [3,2]. The new signature matrix is:

Big Data Analytics CSCI 403066

Page 67: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Current signature matrix

Next we consider row 3 of the matrix. This row has 1 in 𝑆1 and 𝑆3 and its hash values are ℎ1 2 = 4 and ℎ2 2 = 0. Note that 0 < 1 for 𝑆1 and 0 < 4 for 𝑆3. The new signature matrix is:

Big Data Analytics CSCI 403067

Page 68: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Current signature matrix

Finally we consider row 4 of the matrix. This row has 1 in 𝑆3 and its hash values are ℎ1 2 = 0 and ℎ2 2 = 3. Note that 0 < 2 for 𝑆3. The updated final signature matrix is:

Big Data Analytics CSCI 403068

Page 69: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Estimate the Jaccard similarities of the underlying sets 𝑆1 and 𝑆4 from the signature matrix.

What is the actual Jaccard similarity between 𝑆1 and 𝑆4?

Big Data Analytics CSCI 403069

Page 70: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Estimate the Jaccard similarities of the underlying sets 𝑆1 and 𝑆4 from the signature matrix.

What is the actual Jaccard similarity between 𝑆1 and 𝑆4?

Ans

The estimated Jaccard similarity is 1

The actual Jaccard similarity is 2/3

Big Data Analytics CSCI 403070

Page 71: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Evaluate the S-curve 1−(1−𝑠𝑟)𝑏 for s = 0.5, . . . , 0.8, for the following values of r and b: r = 3 and b = 10. You can write a script to calculate it.

Big Data Analytics CSCI 403071

Page 72: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Evaluate the S-curve 1−(1−𝑠𝑟)𝑏 for s = 0.5, . . . , 0.8, for the following values of r and b: r = 3 and b = 10. You can write a script to calculate it.

Ans:

Big Data Analytics CSCI 403072

Page 73: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

The Jaccard similarity of sets is the ratio of the size of the intersection of the sets to the size of the union.

This measure of similarity is suitable for many applications, including textual similarity of documents and similarity of buying habits of customers.

Big Data Analytics CSCI 403073

Page 74: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

A k-shingle is any k characters that appear consecutively in a document.

If we represent a document by its set of k-shingles, then the Jaccard similarity of the shingle sets measures the textual similarity of documents.

Sometimes, it is useful to hash shingles to bit strings of shorter length, and use sets of hash values to represent documents.

Big Data Analytics CSCI 403074

Page 75: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

A minhash function on sets is based on a permutation of the universal set.

Given any such permutation, the minhash value for a set is that element of the set that appears first in the permuted order.

Big Data Analytics CSCI 403075

Page 76: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

It is not really possible to generate random permutations.

Thus, it is normal to simulate a permutation by

picking a random hash function and

taking the minhash value for a set to be the least hash value of any of the set’s members..

Big Data Analytics CSCI 403076

Page 77: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Locality sensitive hashing technique allows us to avoid computing the similarity of every pair of sets or their minhash signatures.

If we are given signatures for the sets, we may divide them into bands, and only measure the similarity of a pair of sets if they are identical in at least one band.

By choosing the size of bands appropriately, we can eliminate from consideration most of the pairs that do not meet our threshold of similarity.

Big Data Analytics CSCI 403077

Page 78: Big Data Analytics CSCI 4030data.science.uoit.ca/wp-content/uploads/2016/01/BDA_03...High dim data Locality sensitive hashing Clustering Dimensional ity reduction Graph data PageRank,

Finish Quiz unless you did over the lecture.

Review slides!

Read Chapter 3 from course book.

You can find electronic version of the book on Blackboard.

Big Data Analytics CSCI 403078