Generic Entity Resolution Identifying RealWorld Entities in Large






















![Brute Force Algorithm • Input R: – r 1 = [a: 1, b: 2] Brute Force Algorithm • Input R: – r 1 = [a: 1, b: 2]](https://slidetodoc.com/presentation_image/8f40fafb41f2c97b0f0c6c8648e7bc46/image-23.jpg)































































![ER in the Info. Lab • Generic ER [VLDB J. 09] • Distributed ER ER in the Info. Lab • Generic ER [VLDB J. 09] • Distributed ER](https://slidetodoc.com/presentation_image/8f40fafb41f2c97b0f0c6c8648e7bc46/image-87.jpg)
- Slides: 87
Generic Entity Resolution: Identifying Real-World Entities in Large Data Sets Steven Whang Stanford University Work with: Hector Garcia-Molina, David Menestrina, Omar Benjelloun, Qi Su, Jennifer Widom, Tyson Condie, Nicolas Pombourcq, Tait Larson, Johnson Gong, Makoto Tachibana, Sutthipong Thavisomboon, Georgia Koutrika, Martin Theobald
Entity Resolution e 2 e 1 N: a A: b CC#: c Ph: e N: a Exp: d Ph: e 2
Applications • comparison shopping e 1 • mailing lists • classified ads N: a A: b • customer files CC#: c Ph: e e 2 • counter-terrorism N: a Exp: d Ph: e 3
Outline • Why is ER challenging? • How is ER done? • Some ER work at Stanford – Generic ER – Distributed ER – Iterative Blocking 4
Challenges (1) • No keys! • Value matching – “Kaddafi”, “Qaddafi”, “Kaddaffi”. . . • Record matching Nm: Tom Ad: 123 Main St Ph: (650) 555 -1212 Ph: (650) 777 -7777 Nm: Thomas Ad: 132 Main St Ph: (650) 555 -1212 5
Challenges (2) • Merging records Nm: Tom Ad: 123 Main St Ph: (650) 555 -1212 Ph: (650) 777 -7777 Nm: Thomas Ad: 132 Main St Ph: (650) 555 -1212 Zp: 94305 Nm: Tom Nm: Thomas Ad: 123 Main St Ph: (650) 555 -1212 Ph: (650) 777 -7777 Zp: 94305 6
Challenges (3) • Chaining Nm: Tom Ad: 123 Main BD: Jan 1, 85 Wk: IBM Oc: lawyer Nm: Thomas Ad: 123 Maim Oc: lawyer Nm: Tom Wk: IBM Oc: laywer Sal: 500 K Nm: Tom Ad: 123 Main BD: Jan 1, 85 Wk: IBM Oc: lawyer Sal: 500 K 7
Challenges (4) • Un-merging Nm: Tom Ad: 123 Main BD: Jan 1, 85 Wk: IBM Oc: lawyer Sal: 500 K too young to make 500 K at IBM!! 8
Challenges (5) • Confidences in data (0. 8) Nm: Tom (0. 9) Ad: 123 Main St (1. 0) Ph: (650) 555 -1212 (0. 6) Ph: (650) 777 -7777 (0. 8) • In value matching, match rules, merge: conf = ? 9
Taxonomy • Pairwise snaps vs. clustering • De-duplication vs. fidelity enhancement • Schema differences • Relationships • Exact vs. approximate • Generic vs application specific • Confidences 10
Schema Differences Name: Tom Address: 123 Main St Ph: (650) 555 -1212 Ph: (650) 777 -7777 First. Name: Tom Street. Name: Main St Street. Number: 123 Tel: (650) 777 -7777 11
Pair-Wise Snaps vs. Clustering r 1 r 2 s 7 r 5 r 2 s 9 r 3 r 4 r 1 r 8 s 10 s 8 r 7 r 3 r 9 r 10 r 4 r 5 r 6 12
De-Duplication vs. Fidelity Enhancement B R S S N 13
Relationships authors same? ? papers a 1 p 1 a 2 p 2 a 3 p 5 a 4 p 7 a 5 14
Exact vs Approximate ER cameras CDs ER resolved cameras ER resolved CDs ER resolved books products books . . . 15
Generic vs Application Specific • Match function M(r, s) • Merge function <r, s> => t 16
Taxonomy • Pairwise snaps vs. clustering • De-duplication vs. fidelity enhancement • Schema differences • Relationships • Exact vs. approximate • Generic vs application specific • Confidences 17
Outline • Why is ER challenging? • How is ER done? • Some ER work at Stanford – Generic ER – Distributed ER – Iterative Blocking 18
Taxonomy • Pairwise snaps vs. clustering • De-duplication vs. fidelity enhancement • Schema differences No • Relationships No • Exact vs. approximate • Generic vs application specific • Confidences No 19
Model r 1 Nm: Tom r 2 Ad: 123 Main BD: Jan 1, 85 Wk: IBM Nm: Thomas Ad: 123 Maim Oc: lawyer M(r 1, r 2) Nm: Tom Ad: 123 Main BD: Jan 1, 85 Wk: IBM Oc: lawyer r 4: <r 1, r 2> r 3 Nm: Tom Wk: IBM Oc: laywer Sal: 500 K M(r 4, r 3) Nm: Tom Ad: 123 Main BD: Jan 1, 85 Wk: IBM Oc: lawyer Sal: 500 K <r 4, r 3> 20
Correct Answer r 1 r 2 s 7 s 9 r 3 r 4 ER(R) = All derivable records. . . s 10 Minus “dominated” records s 8 r 5 r 6 21
Question • What is best sequence of match, merge calls that give us right answer? 22
Brute Force Algorithm • Input R: – r 1 = [a: 1, b: 2] – r 2 = [a: 1, c: 4, e: 5] – r 3 = [b: 2, c: 4, f: 6] – r 4 = [a: 7, e: 5, f: 6] 23
Brute Force Algorithm • Input R: • Match all pairs: – r 1 = [a: 1, b: 2] – r 2 = [a: 1, c: 4, e: 5] – r 3 = [b: 2, c: 4, f: 6] – r 4 = [a: 7, e: 5, f: 6] – r 12 = [a: 1, b: 2, c: 4, e: 5] 24
Brute Force Algorithm • Match all pairs: • Repeat: – r 1 = [a: 1, b: 2] – r 2 = [a: 1, c: 4, e: 5] – r 3 = [b: 2, c: 4, f: 6] – r 4 = [a: 7, e: 5, f: 6] – r 12 = [a: 1, b: 2, c: 4, e: 5] – r 123 = [a: 1, b: 2, c: 4, e: 5, f: 6] 25
Question # 1 Can we avoid comparisons? 26
Question # 2 Can we delete r 1, r 2? 27
ICAR Properties • Idempotence: – M(r 1, r 1) = true; <r 1, r 1> = r 1 • Commutativity: – M(r 1, r 2) = M(r 2, r 1) – <r 1, r 2> = <r 2, r 1> • Associativity – <r 1, <r 2, r 3>> = <<r 1, r 2>, r 3> 28
More Properties • Representativity – If <r 1, r 2> = r 3, then for any r 4 such that M(r 1, r 4) is true we also have M(r 3, r 4) = true. r 4 r 1 r 3 r 2 29
ICAR Properties Efficiency • Commutativity • Idempotence • Associativity • Representativity • Can discard records • ER result independent of processing order 30
Swoosh Algorithms • R-Swoosh • Merges records as soon as they match • Optimal in terms of record comparisons • F-Swoosh • Remembers values seen for each feature • Avoids redundant value comparisons 31
R-Swoosh R r 1 r 2 r 3 R’ M(r 1, r 2)=true M(r 12, r 3)=true r 4 32
R-Swoosh R r 2 r 3 r 4 R’ r 1 M(r 1, r 2)=true M(r 12, r 3)=true 33
R-Swoosh R r 12 r 3 r 4 R’ M(r 1, r 2)=true M(r 12, r 3)=true 34
R-Swoosh R r 3 r 4 R’ r 12 M(r 1, r 2)=true M(r 12, r 3)=true 35
R-Swoosh R r 123 r 4 R’ M(r 1, r 2)=true M(r 12, r 3)=true 36
R-Swoosh R r 4 R’ r 123 M(r 1, r 2)=true M(r 12, r 3)=true 37
R-Swoosh R R’ r 123 r 4 M(r 1, r 2)=true M(r 12, r 3)=true 38
Scalability R-Swoosh G-Swoosh F-Swoosh 39
If ICAR Properties Do Not Hold? r 12: [Joe Sr. , 123 Main, Ph: 123, DL: X] r 23: [Joe Jr. , 123 Main, Ph: 123, DL: Y] r 1: [Joe Sr. , 123 Main, DL: X] r 3: [Joe Jr. , 123 Main, DL: Y] r 2: [Joe, 123 Main, Ph: 123] 40
If ICAR Properties Do Not Hold? r 12: [Joe Sr. , 123 Main, Ph: 123, DL: X] r 23: [Joe Jr. , 123 Main, Ph: 123, DL: Y] r 1: [Joe Sr. , 123 Main, DL: X] r 3: [Joe Jr. , 123 Main, DL: Y] r 2: [Joe, 123 Main, Ph: 123] Full Answer: ER(R) = {r 12, r 23, r 1, r 2, r 3} Minus Dominated: ER(R) = {r 12, r 23} 41
If ICAR Properties Do Not Hold? r 12: [Joe Sr. , 123 Main, Ph: 123, DL: X] r 23: [Joe Jr. , 123 Main, Ph: 123, DL: Y] r 1: [Joe Sr. , 123 Main, DL: X] r 3: [Joe Jr. , 123 Main, DL: Y] r 2: [Joe, 123 Main, Ph: 123] Full Answer: ER(R) = {r 12, r 23, r 1, r 2, r 3} Minus Dominated: ER(R) = {r 12, r 23} R-Swoosh Yields: ER(R) = {r 12, r 3} or {r 1, r 23} 42
Swoosh Without ICAR Properties G-Swoosh in R-Swoosh in G-Swoosh 43
Generic ER Summary • Entity resolution is critical • Generic approach yields reusable techniques • Efficient resolution is important 44
Outline • Why is ER challenging? • How is ER done? • Some ER work at Stanford – Generic ER – Distributed ER – Iterative Blocking 45
Partition Input Data R 1 r 2 R'1 R 2 r 3 r 4 R'2 R 3 R'3 r 5 r 6 46
Partition Input Data R 1 R'1 r 2 R 2 R'2 <r 3, r 4> R 3 R'3 r 5 r 6 47
Partition Input Data R 1 R'1 r 2 R 2 R'2 <r 3, r 4> R 3 R'3 r 5 r 6 ? 48
Partition Input Data R 1 r 4 r 2 r 5 r 3 r 6 R'1 R 2 r 1 r 4 r 2 r 5 r 3 r 6 R'2 R 3 R'3 r 1 r 4 r 2 r 5 r 3 r 6 49
Partition Input Data R 1 R'1 r 1 <r 3, r 4> <r 2, r 5> r 6 R 2 R'2 r 1 <r 3, r 4> <r 2, r 5> r 6 R 3 R'3 r 1 <r 3, r 4> <r 2, r 5> r 6 50
Partition Input Data R 1 R'1 R 2 r 1 <r 3, r 4> <r 2, r 5> r 6 R'2 R 3 r 1 <r 3, r 4> <r 2, r 5> r 6 R'3 r 1 <r 3, r 4> <r 2, r 5> r 6 Redundant work! 51
Scope and Responsible • scope(r) – Returns list of processors that receive r • resp(pk, ri, rj) – true if processor pk should perform comparison of ri and rj Coverage property: For any pair of matching records r, r', there exists at least one processor Pk such that Pk ∈ scope(r)∩scope(r') and resp(Pk, r, r') = true. 52
D-Swoosh R 1 r 3 r 4 r 6 R'1 R 2 r 1 r 2 r 4 r 5 R'2 R 3 R'3 r 2 r 3 r 5 r 6 53
D-Swoosh R 1 r 3 r 4 r 6 R'1 R 2 r 1 r 2 r 4 r 5 R'2 R 3 R'3 r 2 r 3 r 5 r 6 54
D-Swoosh R 1 R'1 R 2 r 1 r 3 r 4 r 6 r 1 r 2 r 4 r 5 R'2 R 3 R'3 r 2 r 3 r 5 r 6 -(r 4) -(r 3) 55
D-Swoosh R 1 R'1 r 3 r 4 r 6 R 2 r 1 r 2 r 5 R'2 R 3 R'3 r 2 r 5 r 6 +(<r 3, r 4>) 56
D-Swoosh R 1 r 6 R'1 R 2 r 1 r 2 r 5 <r 3, r 4> R'2 R 3 R'3 r 2 r 5 r 6 <r 3, r 4> 57
Defining scope and resp • What are good scope and resp functions? • How do different functions compare and scale? • How can we exploit semantic knowledge? 58
Full Replication p 1 p 2 p 3 r 1 r 2 r 3 r 4 r 5 r 6 59
Majority p 1 p 2 r 1 r 2 r 3 r 4 r 6 r 4 r 5 p 3 r 2 r 3 r 5 r 6 60
Grid B 1 B 2 B 1 p 1 B 2 p 3 B 3 p 4 p 5 B 3 p 6 61
Experimental Results Runtime (seconds) Full Replication Majority Grid number of processors 62
Distributed ER Summary • Entity Resolution is fundamentally expensive • Reduce processing time by: – Distributing data – Eliminating redundant work • ER benefits greatly from distributed computing 63
Outline • Why is ER challenging? • How is ER done? • Some ER work at Stanford – Generic ER – Distributed ER – Iterative Blocking 64
Entity Resolution Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo 65
Entity Resolution Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo {12345, 94305} jdoe@yahoo r 12 John Doe r 12 r 1 r 2 r 3 66
Entity Resolution Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 r 12 John Doe {12345, 94305} r 123 {John Doe, J. Foe} {12345, 94305} jdoe@yahoo r 123 r 12 r 1 r 2 r 3 67
Entity Resolution Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 r 12 John Doe {12345, 94305} r 123 {John Doe, J. Foe} {12345, 94305} jdoe@yahoo r 123 r 12 r 1 r 2 r 3 ER Solution: {r 123} 68
Blocking Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo r 123 Partition by Block#1 Block#2 zip r 12 r 2 , r 3 r 1 r 2 r 3 69
Blocking Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo r 123 Partition by Block#1 Block#2 zip r 1 1 st char last name r 1 , r 2 r 12 r 2 , r 3 r 1 r 2 r 3 70
Blocking Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo r 123 Partition by Block#1 Block#2 zip r 1 1 st char last name r 12 r 2 , r 3 r 1 r 2 r 3 71
Blocking Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo r 123 Partition by Block#1 Block#2 zip r 1 1 st char last name r 12 r 2 , r 3 r 1 r 2 r 3 Blocking Solution: {r 12, r 3} 72
Iterative Blocking Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo r 123 Partition by Block#1 Block#2 zip r 1 1 st char last name r 1 , r 2 r 12 r 2 , r 3 r 1 r 2 r 3 73
Iterative Blocking Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo r 123 Partition by Block#1 Block#2 zip r 1 1 st char last name r 12 r 2 , r 3 r 1 r 2 r 3 74
Iterative Blocking Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo r 123 Partition by Block#1 Block#2 zip r 1 , r 12 1 st char last name r 12 r 2 , r 3, r 12 r 3 r 1 r 2 r 3 75
Iterative Blocking Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo r 123 Partition by Block#1 Block#2 zip r 12 1 st char last name r 123 r 1 r 2 r 3 76
Iterative Blocking Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo r 123 Partition by Block#1 Block#2 zip r 123 1 st char last name r 123 r 12 r 1 r 2 r 3 77
Iterative Blocking Record Name Zip Email r 1 John Doe 12345 jdoe@yahoo r 2 John Doe 94305 r 3 J. Foe 94305 jdoe@yahoo r 123 Partition by Block#1 Block#2 zip r 123 1 st char last name r 123 r 12 r 1 r 2 r 3 Iterative Blocking Solution: {r 123} 78
Overview • Model • Algorithms • Experimental Results 79
Iterative Blocking Model • Result is the fixed-point state of applying a “core” ER algorithm on blocks and redistributing new records • Can plug in any core ER algorithm that partitions records 80
In-memory Algorithm (Lego) • Maintains “maximal records” for efficient block updates • Maintains a queue of blocks to process 81
Disk-based Algorithm (Duplo) • Reads into memory and processes “N blocks at a time” using segments • Maintains a queue of segments to process • Updates segments by scanning a merge log on disk • Uses timestamps to avoid a full scan for each segment read 82
Accuracy Iterative Blocking 83
Performance Exhaustive Solution Iterative Blocking 84
Scalability Iterative Blocking (merge log in memory) 85
Iterative Blocking Summary • Proposed model & efficient algorithms (inmemory, disk) for iterative blocking • Showed that iterative blocking can be more accurate and scalable than simple blocking 86
ER in the Info. Lab • Generic ER [VLDB J. 09] • Distributed ER [ICDCS 07] • Iterative Blocking [SIGMOD 09] • Negative Rules [VLDB J. 09] • Confidences [VLDB Clean. DB 06] • Evolving Rules • Joint ER • ER Measures • ER in Probabilistic Databases • Privacy and Information Leakage 87























































































