Sampling from Databases CompSci 590.04 Instructor: - - PowerPoint PPT Presentation

sampling from databases
SMART_READER_LITE
LIVE PREVIEW

Sampling from Databases CompSci 590.04 Instructor: - - PowerPoint PPT Presentation

Sampling from Databases CompSci 590.04 Instructor: AshwinMachanavajjhala Lecture 2 : 590.04 Fall 15 1 Recap Given a set of elements, random sampling


slide-1
SLIDE 1

Sampling ¡from ¡Databases ¡

CompSci ¡590.04 ¡ Instructor: ¡AshwinMachanavajjhala ¡

1 ¡ Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡

slide-2
SLIDE 2

Recap ¡

  • Given ¡a ¡set ¡of ¡elements, ¡random ¡sampling ¡when ¡number ¡of ¡

elements ¡N ¡is ¡known ¡is ¡easy ¡if ¡you ¡have ¡random ¡access ¡to ¡any ¡ arbitrary ¡element ¡

– Pick ¡n ¡indexes ¡at ¡random ¡from ¡1 ¡… ¡N ¡ – Read ¡the ¡corresponding ¡n ¡elements ¡

  • Reservoir ¡Sampling: ¡If ¡N ¡is ¡unknown, ¡or ¡if ¡you ¡are ¡only ¡allowed ¡

sequenMal ¡access ¡to ¡the ¡data ¡

– Read ¡elements ¡one ¡at ¡a ¡Mme. ¡Include ¡tth ¡element ¡into ¡a ¡reservoir ¡of ¡size ¡n ¡ with ¡probability ¡n/t. ¡ ¡ – Need ¡to ¡access ¡at ¡most ¡n(1+ln(N/n)) ¡elements ¡to ¡get ¡a ¡sample ¡of ¡size ¡n ¡ – OpMmal ¡for ¡any ¡reservoir ¡based ¡algorithm ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 2 ¡

slide-3
SLIDE 3

Today’s ¡Class ¡

¡

  • In ¡general, ¡sampling ¡from ¡a ¡database ¡where ¡elements ¡are ¡only ¡

accessed ¡using ¡indexes. ¡

– B+-­‑Trees ¡ ¡ – Nearest ¡neighbor ¡indexes ¡

  • EsMmaMng ¡the ¡number ¡of ¡restaurants ¡in ¡Google ¡Places. ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 3 ¡

slide-4
SLIDE 4

B+ ¡Tree ¡

  • Data ¡values ¡only ¡appear ¡in ¡the ¡leaves ¡
  • Internal ¡nodes ¡only ¡contain ¡keys ¡
  • Each ¡node ¡has ¡between ¡fmax/2 ¡and ¡fmax ¡children ¡

– fmax ¡= ¡maximum ¡fan-­‑out ¡of ¡the ¡tree ¡

  • Root ¡has ¡2 ¡or ¡more ¡children ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 4 ¡

slide-5
SLIDE 5

Problem ¡

  • How ¡to ¡pick ¡an ¡element ¡uniformly ¡at ¡random ¡from ¡the ¡B+ ¡Tree? ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 5 ¡

slide-6
SLIDE 6

A_empt ¡1: ¡Random ¡Path ¡ ¡

Choose ¡a ¡random ¡path ¡

  • Start ¡from ¡the ¡root ¡
  • Choose ¡a ¡child ¡uniformly ¡at ¡random ¡
  • Uniformly ¡sample ¡from ¡the ¡resulMng ¡leaf ¡node ¡
  • Will ¡this ¡result ¡in ¡a ¡random ¡sample? ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 6 ¡

slide-7
SLIDE 7

A_empt ¡1: ¡Random ¡Path ¡ ¡

Choose ¡a ¡random ¡path ¡

  • Start ¡from ¡the ¡root ¡
  • Choose ¡a ¡child ¡uniformly ¡at ¡random ¡
  • Uniformly ¡sample ¡from ¡the ¡resulMng ¡leaf ¡node ¡
  • Will ¡this ¡result ¡in ¡a ¡random ¡sample? ¡

¡

  • NO. ¡ ¡

Elements ¡reachable ¡from ¡ ¡ internal ¡nodes ¡with ¡low ¡ fanout ¡are ¡more ¡likely. ¡ ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 7 ¡

slide-8
SLIDE 8

A_empt ¡2 ¡: ¡Random ¡Path ¡with ¡RejecMon ¡

  • A_empt ¡1 ¡will ¡work ¡if ¡all ¡internal ¡nodes ¡have ¡the ¡same ¡fan-­‑out ¡
  • Choose ¡a ¡random ¡path ¡

– Start ¡from ¡the ¡root ¡ – Choose ¡a ¡child ¡uniformly ¡at ¡random ¡ – Uniformly ¡sample ¡from ¡the ¡resulMng ¡leaf ¡node ¡

  • Accept ¡the ¡sample ¡with ¡probability ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 8 ¡

slide-9
SLIDE 9

A_empt ¡2 ¡: ¡Correctness ¡

  • Any ¡root ¡to ¡leaf ¡path ¡is ¡picked ¡with ¡probability: ¡
  • The ¡probability ¡of ¡including ¡a ¡record ¡ ¡

given ¡the ¡path: ¡ ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 9 ¡

slide-10
SLIDE 10

A_empt ¡2 ¡: ¡Correctness ¡

  • Any ¡root ¡to ¡leaf ¡path ¡is ¡picked ¡with ¡probability: ¡
  • The ¡probability ¡of ¡including ¡a ¡record ¡ ¡

given ¡the ¡path: ¡ ¡

  • The ¡probability ¡of ¡including ¡a ¡record: ¡ ¡

¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 10 ¡

slide-11
SLIDE 11

A_empt ¡3 ¡: ¡Early ¡Abort ¡ ¡

Idea: ¡Perform ¡acceptance/rejecMon ¡test ¡at ¡each ¡node. ¡ ¡

  • Start ¡from ¡the ¡root ¡
  • Choose ¡a ¡child ¡uniformly ¡at ¡random ¡
  • ConMnue ¡the ¡traversal ¡with ¡probability: ¡
  • At ¡the ¡leaf, ¡pick ¡an ¡element ¡uniformly ¡at ¡ ¡

random, ¡and ¡accept ¡it ¡with ¡probability ¡: ¡ Proof ¡of ¡correctness: ¡same ¡as ¡previous ¡algorithm ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 11 ¡

slide-12
SLIDE 12

A_empt ¡4: ¡Batch ¡Sampling ¡

  • Repeatedly ¡sampling ¡n ¡elements ¡will ¡require ¡accessing ¡the ¡

internal ¡nodes ¡many ¡Mmes. ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 12 ¡

slide-13
SLIDE 13

A_empt ¡4: ¡Batch ¡Sampling ¡

  • Repeatedly ¡sampling ¡n ¡elements ¡will ¡require ¡accessing ¡the ¡internal ¡nodes ¡

many ¡Mmes. ¡ ¡

Perform ¡random ¡walks ¡simultaneously: ¡

  • At ¡the ¡root ¡node, ¡assign ¡each ¡of ¡the ¡n ¡samples ¡to ¡one ¡of ¡its ¡

children ¡uniformly ¡at ¡random ¡

– ¡n ¡à ¡(n1, ¡n2, ¡…, ¡nk) ¡

  • At ¡each ¡internal ¡node, ¡

– Divide ¡incoming ¡samples ¡uniformly ¡across ¡children. ¡ ¡

  • Each ¡leaf ¡node ¡receives ¡s ¡samples. ¡Include ¡each ¡sample ¡with ¡

acceptance ¡probability ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 13 ¡

slide-14
SLIDE 14

A_empt ¡4 ¡: ¡Batch ¡Sampling ¡

  • Problem: ¡If ¡we ¡start ¡the ¡algorithm ¡with ¡n, ¡we ¡might ¡end ¡up ¡with ¡

fewer ¡than ¡n ¡samples ¡(due ¡to ¡rejecMon) ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 14 ¡

slide-15
SLIDE 15

A_empt ¡4 ¡: ¡Batch ¡Sampling ¡

  • Problem: ¡If ¡we ¡start ¡the ¡algorithm ¡with ¡n, ¡we ¡might ¡end ¡up ¡with ¡

fewer ¡than ¡n ¡samples ¡(due ¡to ¡rejecMon) ¡

  • SoluMon: ¡Start ¡with ¡a ¡larger ¡set ¡
  • ¡n’ ¡= ¡n/βh-­‑1, ¡where ¡β ¡is ¡the ¡raMo ¡of ¡average ¡fanout ¡and ¡fmax ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 15 ¡

slide-16
SLIDE 16

Summary ¡of ¡B+tree ¡sampling ¡

  • Randomly ¡choosing ¡a ¡path ¡weights ¡elements ¡differently ¡

– Elements ¡in ¡the ¡subtree ¡rooted ¡at ¡nodes ¡with ¡lower ¡fan-­‑out ¡are ¡more ¡likely ¡ to ¡be ¡picked ¡than ¡those ¡under ¡higher ¡fan-­‑out ¡internal ¡nodes ¡

  • Accept/Reject ¡sampling ¡helps ¡remove ¡this ¡bias. ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 16 ¡

slide-17
SLIDE 17

Nearest ¡Neighbor ¡indexes ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 17 ¡

slide-18
SLIDE 18

Problem ¡Statement ¡

Input: ¡ ¡

  • A ¡database ¡D ¡that ¡can’t ¡be ¡accessed ¡directly, ¡and ¡where ¡each ¡

element ¡is ¡associated ¡with ¡a ¡geo ¡locaMon. ¡ ¡ ¡

  • A ¡nearest ¡neighbor ¡index ¡(elements ¡in ¡D ¡near ¡<x, ¡y>) ¡

– AssumpMon: ¡index ¡returns ¡k ¡elements ¡closest ¡to ¡the ¡point ¡<x,y> ¡

¡ Output ¡ ¡

  • EsMmate ¡ ¡

¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 18 ¡

slide-19
SLIDE 19

Problem ¡Statement ¡

Input: ¡ ¡

  • A ¡database ¡D ¡that ¡can’t ¡be ¡accessed ¡directly, ¡and ¡where ¡each ¡element ¡is ¡

associated ¡with ¡a ¡geo ¡locaMon. ¡ ¡ ¡

  • A ¡nearest ¡neighbor ¡index ¡(elements ¡in ¡D ¡near ¡<x, ¡y>) ¡

– AssumpMon: ¡index ¡returns ¡k ¡elements ¡closest ¡to ¡the ¡point ¡<x,y> ¡

Output ¡ ¡

  • EsMmate ¡ ¡

ApplicaMons ¡

  • EsMmate ¡the ¡size ¡of ¡a ¡populaMon ¡in ¡a ¡region ¡
  • EsMmate ¡the ¡size ¡of ¡a ¡compeMng ¡business’ ¡database ¡
  • EsMmate ¡the ¡prevalence ¡of ¡a ¡disease ¡in ¡a ¡region ¡

¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 19 ¡

slide-20
SLIDE 20

A_empt ¡1: ¡Naïve ¡geo ¡sampling ¡

For ¡i ¡= ¡1 ¡to ¡N ¡

  • Pick ¡a ¡random ¡point ¡pi ¡= ¡<x,y> ¡
  • Find ¡element ¡di ¡in ¡D ¡that ¡is ¡closes ¡to ¡pi ¡
  • Return ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 20 ¡

slide-21
SLIDE 21

Problem? ¡

¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 21 ¡

Elements ¡d7 ¡and ¡d8 ¡are ¡much ¡more ¡ likely ¡to ¡be ¡picked ¡than ¡d1 ¡ Voronoi ¡Cell: ¡ ¡ Points ¡for ¡which ¡d4 ¡is ¡ the ¡closest ¡element ¡ ¡

slide-22
SLIDE 22

Voronoi ¡DecomposiMon ¡

¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 22 ¡

Perpendicular ¡ bisector ¡of ¡d4, ¡d3 ¡

slide-23
SLIDE 23

Voronoi ¡DecomposiMon ¡

¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 23 ¡

slide-24
SLIDE 24

Voronoi ¡decomposiMon ¡of ¡ ¡ Restaurants ¡in ¡US ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 24 ¡

slide-25
SLIDE 25

A_empt ¡2: ¡Weighted ¡sampling ¡

For ¡i ¡= ¡1 ¡to ¡N ¡

  • Pick ¡a ¡random ¡point ¡pi ¡= ¡<x,y> ¡
  • Find ¡element ¡di ¡in ¡D ¡that ¡is ¡closes ¡to ¡pi ¡
  • Return ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 25 ¡

slide-26
SLIDE 26

A_empt ¡2: ¡Weighted ¡sampling ¡

For ¡i ¡= ¡1 ¡to ¡N ¡

  • Pick ¡a ¡random ¡point ¡pi ¡= ¡<x,y> ¡
  • Find ¡element ¡di ¡in ¡D ¡that ¡is ¡closes ¡to ¡pi ¡
  • Return ¡ ¡

Problem: ¡ ¡ We ¡need ¡to ¡compute ¡the ¡area ¡of ¡the ¡Voronoi ¡cell. ¡ We ¡do ¡not ¡have ¡access ¡to ¡other ¡elements ¡in ¡the ¡database. ¡ ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 26 ¡

slide-27
SLIDE 27

Using ¡index ¡to ¡esMmate ¡Voronoi ¡cell ¡

  • Find ¡nearest ¡point ¡
  • Compute ¡perpendicular ¡

bisector ¡

  • ¡a0 ¡is ¡a ¡point ¡on ¡the ¡

Voronoi ¡cell. ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 27 ¡

d ¡ e0 ¡ a0 ¡

slide-28
SLIDE 28

Using ¡index ¡to ¡esMmate ¡Voronoi ¡cell ¡

  • Find ¡a ¡point ¡on ¡(a0, ¡b0) ¡

which ¡is ¡just ¡inside ¡the ¡ Voronoi ¡cell. ¡

– Use ¡binary ¡search ¡ – Recursively ¡check ¡ whether ¡mid ¡point ¡is ¡in ¡ the ¡Voronoi ¡cell ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 28 ¡

d ¡ e0 ¡ a0 ¡ b0 ¡ a1 ¡

slide-29
SLIDE 29

Using ¡index ¡to ¡esMmate ¡Voronoi ¡cell ¡

  • Find ¡nearest ¡points ¡to ¡

a1 ¡

– ¡a1 ¡has ¡to ¡be ¡equidistant ¡ to ¡one ¡point ¡other ¡than ¡ e0 ¡and ¡d ¡

  • Next ¡direcMon ¡is ¡

perpendicular ¡to ¡(e1,d) ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 29 ¡

d ¡ e0 ¡ a0 ¡ b0 ¡ a1 ¡ e1 ¡ b1 ¡

slide-30
SLIDE 30

Using ¡index ¡to ¡esMmate ¡Voronoi ¡cell ¡

  • Find ¡nearest ¡points ¡to ¡

a1 ¡

– ¡a1 ¡has ¡to ¡be ¡equidistant ¡ to ¡one ¡point ¡other ¡than ¡ e0 ¡and ¡d ¡

  • Next ¡direcMon ¡is ¡

perpendicular ¡to ¡(e1,d) ¡

  • Find ¡next ¡point ¡… ¡ ¡
  • … ¡and ¡so ¡on ¡… ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 30 ¡

d ¡ e0 ¡ a0 ¡ b0 ¡ a1 ¡ e1 ¡ b1 ¡ a2 ¡ e2 ¡ b2 ¡

slide-31
SLIDE 31

Using ¡index ¡to ¡esMmate ¡Voronoi ¡cell ¡

  • Find ¡nearest ¡points ¡to ¡

a1 ¡

– ¡a1 ¡has ¡to ¡be ¡equidistant ¡ to ¡one ¡point ¡other ¡than ¡ e0 ¡and ¡d ¡

  • Next ¡direcMon ¡is ¡

perpendicular ¡to ¡(e1,d) ¡

  • Find ¡next ¡point ¡… ¡ ¡
  • … ¡and ¡so ¡on ¡… ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 31 ¡

d ¡ e0 ¡ a0 ¡ b0 ¡ a1 ¡ e1 ¡ b1 ¡ a2 ¡ e2 ¡ b2 ¡ a3 ¡ a4 ¡ e3 ¡ e4 ¡

slide-32
SLIDE 32

Number ¡of ¡samples ¡

  • IdenMfying ¡each ¡ai ¡requires ¡a ¡binary ¡search ¡

– If ¡L ¡is ¡the ¡max ¡length ¡of ¡(ai, ¡bi), ¡ ¡ then ¡ai+1 ¡can ¡be ¡computed ¡with ¡ε ¡error ¡in ¡O(log ¡(L/ε)) ¡calls ¡to ¡the ¡index ¡

  • IdenMfying ¡the ¡next ¡direcMon ¡requires ¡another ¡call ¡to ¡the ¡index ¡
  • If ¡number ¡of ¡edges ¡of ¡Voronoi ¡cell ¡= ¡k, ¡ ¡

total ¡number ¡of ¡calls ¡to ¡the ¡index ¡= ¡O(K ¡log(L/ε)) ¡ ¡

  • Average ¡number ¡of ¡edges ¡of ¡a ¡Voronoi ¡cell ¡< ¡6 ¡

– Assuming ¡general ¡posiMon ¡… ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 32 ¡

slide-33
SLIDE 33

Summary ¡

  • Many ¡web ¡services ¡allow ¡access ¡to ¡databases ¡using ¡nearest ¡

neighbor ¡indexes. ¡ ¡

  • Showed ¡a ¡method ¡to ¡sample ¡uniformly ¡from ¡such ¡databases. ¡
  • Next ¡class: ¡Monte ¡Carlo ¡EsMmaMon ¡for ¡#P-­‑hard ¡problems. ¡ ¡ ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 33 ¡

slide-34
SLIDE 34

References ¡

  • F. ¡Olken, ¡“Random ¡Sampling ¡from ¡Databases” ¡, ¡PhD ¡Thesis, ¡U ¡C ¡Berkeley, ¡1993 ¡
  • N. ¡Dalvi, ¡R. ¡Kumar, ¡A. ¡Machanavajjhala, ¡V. ¡Rastogi, ¡“Sampling ¡Hidden ¡Objects ¡using ¡

Nearest ¡Neighbor ¡Oracles”, ¡KDD ¡2011 ¡

Lecture ¡2 ¡: ¡590.04 ¡Fall ¡15 ¡ 34 ¡