53
CS345a: Data Mining Jure Leskovec and Anand Rajaraman Stanford University

CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

CS345a:  Data  Mining  Jure  Leskovec  and  Anand  Rajaraman  Stanford  University  

Page 2: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  TheFind.com    Large  set  of  products  (~6GB  compressed)  

  For  each  product   A=ributes   Related  products  

  Craigslist   About  3  weeks  of  data  (~7.5GB  compressed)  

  Text  of  posts,  plus  category  metadata    e.g.,  match  buyers  and  sellers  

Page 3: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  How  big  is  the  Web?    Technically,  infinite   Much  duplicaOon  (30-­‐40%)    Best  esOmate  of  “unique”  staOc  HTML  pages  comes  from  search  engine  claims   Google  =  8  billion(?),  Yahoo  =  20  billion  

 What  is  the  structure  of  the  Web?  How  is  it  organized?  

1/26/10   3  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 4: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   4  

Page 5: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  In  early  days  of  the  Web  links  were  navigaOonal    Today  many  links  are  transacOonal  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   5  

Directed  graph  

Page 6: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Two  types  of  directed  graphs:   DAG  –  directed  acyclic  graph:  

 Has  no  cycles:  if  u  can  reach  v,    then  v  can  not  reach  u  

  Strongly  connected:   Any  node  can  reach  any  node  via  a  directed  path  

  Any  directed  graph  can  be  expressed  in  terms  of  these  two  types  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   6  

Page 7: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Strongly  connected  component  (SCC)  is  a  set  of  nodes  S  so  that:    Every  pair  of  nodes  in  S  can  reach  each  other    There  is  no  larger  set  containing  S  with  this  property  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   7  

Page 8: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Take  a  large  snapshot  of  the  web  and  try  to  understand  how  it’s  SCCs  “fit”  as  a  DAG.  

  ComputaOonal  issues:    Say  want  to  find  SCC  containing  specific  node  v?   ObservaOon:  

 Out(v)  …  nodes  that  can  be  reachable  from  v  (BFS  out)    SCC  containing  v:    =  Out(v,  G)  ∩  In(v,  G)    =  Out(v,  G)  ∩  Out(v,  G)  

where  G  is  G  with  direcOons  of  all  edge  flipped  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   8  

Page 9: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  There  is  a  giant  SCC      Broder  et  al.,  2000:  

  Giant  weakly  connected  component:    90%  of  the  nodes  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   9  

[Broder  et  al.,  ‘00]  

Page 10: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  250  million  webpages,  1.5  billion  links  [Altavista]  1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   10  

[Broder  et  al.,  ‘00]  

Page 11: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Diameter  (average  directed  shortest  path  length)  is  19  (in  1999)  1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   11  

[Albert  et  al.,  ‘99]  

Page 12: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Average  distance:    75%  of  Ome  there  is  no  directed    path  from  start  to  finish  page  

  Follow  in-­‐links  (directed):  16.12    Follow  out-­‐links  (directed):  16.18   Undirected:  6.83  

  Diameter  of  SCC  (directed):      At  least  28  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   12  

[Broder  et  al.,  ‘00]  

Page 13: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   13  

[Broder  et  al.,  ‘00]  

Page 14: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Take  real  network  plot  a  histogram  of  pk  vs.  k

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   14  

Page 15: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Plot  the  same  data  on  log-­‐log  axis:  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   15  

Page 16: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   16  

1E-­‐25  

1E-­‐23  

1E-­‐21  

1E-­‐19  

1E-­‐17  

1E-­‐15  

1E-­‐13  

1E-­‐11  

1E-­‐09  

1E-­‐07  

1E-­‐05  

0.001  

0.1  0.1   1   10   100   1000   10000   100000  1000000  10000000  100000000  1E+09   1E+10   1E+11  

Power  law:  Y  ~  X-­‐2  

Exponential  Y  ~  e-­‐X  

Page 17: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Power  law  degree  exponent  is  typically  2  <  α  <  3    Web  graph  [Broder  et  al.  00]:  

  αin  =  2.1,  αout  =  2.4    Autonomous  systems  [Faloutsos  et  al.  99]:    α  =  2.4  

  Actor  collaboraOons  [Barabasi-­‐Albert  00]:      α  =  2.3  

  CitaOons  to  papers  [Redner  98]:    α  ≈  3  

  Online  social  networks  [Leskovec  et  al.  07]:    α  ≈  2  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   17  

Page 18: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

Random  network   Scale-­‐free  (power-­‐law)  network  Function  is  scale  free  if:  f(ax) = c f(x)

(Erdos-­‐Renyi  random  graph)  

Degree  distribution  is  Binomial  

Degree  distribution  is  Power-­‐law  

Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   Part  1-­‐18  1/26/10  

Page 19: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

 Web  pages  are  not  equally  “important”   www.joe-­‐schmoe.com  v  www.stanford.edu    

  Since  there  is  big  diversity  in  the    connecOvity  of  the    webgraph  we  can    rank  pages  by    the  link  structure  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   19  

Page 20: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  First  try:    Page  is  more  important  if  it  has  more  links  

  In-­‐coming  links?  Out-­‐going  links?  

  Think  of  in-­‐links  as  votes:    www.stanford.edu  has  23,400  inlinks    www.joe-­‐schmoe.com  has  1  inlink  

  Are  all  in-­‐links  are  equal?    Links  from  important  pages  count  more    Recursive  quesOon!    

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   20  

Page 21: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Each  link’s  vote  is  proporOonal  to  the  importance  of  its  source  page  

  If  page  P  with  importance  x  has  n  out-­‐links,  each  link  gets  x/n  votes  

  Page  P’s  own  importance  is  the  sum  of  the  votes  on  its  in-­‐links  

1/26/10   21  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 22: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

The  web  in  1839  

Yahoo

M’soft Amazon

y  

a   m  

y/2  

y/2  

a/2  

a/2  

m  

y = y /2 + a /2 a = y /2 + m m = a /2

1/26/10   22  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 23: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  3  equaOons,  3  unknowns,  no  constants   No  unique  soluOon   All  soluOons  equivalent  modulo  scale  factor  

  AddiOonal  constraint  forces  uniqueness    y+a+m  =  1  

  y  =  2/5,  a  =  2/5,  m  =  1/5    Gaussian  eliminaOon  method  works  for  small  examples,  but  we  need  a  be=er  method  for  large  web-­‐size  graphs  

1/26/10   23  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 24: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Matrix  M  has  one  row  and  one  column  for  each  web  page  

  Suppose  page  j  has  n  out-­‐links    If  j  →  i,  then  Mij  =  1/n    else  Mij  =  0  

  M  is  a  column  stochasOc  matrix    Columns  sum  to  1  

  Suppose  r  is  a  vector  with  one  entry  per  web  page    ri  is  the  importance  score  of  page  i    Call  it  the  rank  vector    |r|  =  1  

1/26/10   24  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 25: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

Suppose page j links to 3 pages, including i

i

j

M   r   r  

=  i  

1/3

1/26/10   25  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 26: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  The  flow  equaOons  can  be  wri=en    r  =  Mr  

  So  the  rank  vector  is  an  eigenvector  of  the  stochasOc  web  matrix    In  fact,  its  first  or  principal  eigenvector,  with  corresponding  eigenvalue  1  

1/26/10   26  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 27: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

Yahoo

M’soft Amazon

y = y /2 + a /2 a = y /2 + m m = a /2

r  =  Mr  

y ½ ½ 0 y a = ½ 0 1 a m 0 ½ 0 m

1/26/10   27  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Y!   A   MS  

Y!   ½   ½   0  

A   ½   0   1  

MS   0   ½   0  

Page 28: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Simple  iteraOve  scheme  (aka  relaxaOon)    Suppose  there  are  N  web  pages   IniOalize:  r0  =  [1/N,….,1/N]T    Iterate:  rk+1  =  Mrk  

  Stop  when  |rk+1  -­‐  rk|1  <  ε   |x|1  =  ∑1≤i≤N|xi|  is  the  L1  norm      Can  use  any  other  vector  norm  e.g.,  Euclidean  

1/26/10   28  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 29: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Power  iteraOon:    Set  ri=1/n    ri=∑j  Mijrj   And  iterate  

  Example:  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   29  

y a = m

1/3 1/3 1/3

1/3 1/2 1/6

5/12 1/3 1/4

3/8 11/24 1/6

2/5 2/5 1/5

. . .

Y!   A   MS  

Y!   ½   ½   0  

A   ½   0   1  

MS   0   ½   0  

Y!  

A   MS  

Page 30: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Imagine  a  random  web  surfer    At  any  Ome  t,  surfer  is  on  some  page  P    At  Ome  t+1,  the  surfer  follows  an  outlink  from  P  uniformly  at  random  

  Ends  up  on  some  page  Q  linked  from  P    Process  repeats  indefinitely  

  Let  p(t)  be  a  vector  whose  ith  component  is  the  probability  that  the  surfer  is  at  page  i  at  Ome  t    p(t)  is  a  probability  distribuOon  on  pages  

1/26/10   30  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 31: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

 Where  is  the  surfer  at  Ome  t+1?    Follows  a  link  uniformly  at  random    p(t+1)  =  Mp(t)  

  Suppose  the  random  walk  reaches  a  state  such  that  p(t+1)  =  Mp(t)  =  p(t)    Then  p(t)  is  called  a  staOonary  distribuOon  for  the  random  walk  

  Our  rank  vector  r  saOsfies  r  =  Mr    So  it  is  a  staOonary  distribuOon  for  the  random  surfer  

1/26/10   31  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 32: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

 A  central  result  from  the  theory  of  random  walks  (aka  Markov  processes):  

 For  graphs  that  saOsfy  certain  condiOons,  the  staOonary  distribuOon  is  unique  and  eventually  will  be  reached  no  ma=er  what  the  iniOal  probability  distribuOon  at  Ome  t  =  0.  

1/26/10   32  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 33: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Some  pages  are  “dead  ends”    (have  no  out-­‐links)    Such  pages  cause  importance  to  leak  out  

  Spider  traps  (all  out  links  are  within  the  group)    Eventually  spider  traps  absorb  all  importance  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining   33  

Page 34: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  A  group  of  pages  is  a  spider  trap  if  there  are  no  links  from  within  the  group  to  outside  the  group    Random  surfer  gets  trapped  

  Spider  traps  violate  the  condiOons  needed  for  the  random  walk  theorem  

1/26/10   34  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 35: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Power  iteraOon:    Set  ri=1    ri=∑j  Mijrj   And  iterate  

  Example:    y    1  1  ¾  5/8    0    a  =  1  ½  ½  3/8  …  0    m    1  3/2  7/4  2    3  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Y!  

A   MS  Y!   A   MS  

Y!   ½   ½   0  

A   ½   0   0  

MS   0   ½   1  

35  

Page 36: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  The  Google  soluOon  for  spider  traps    At  each  Ome  step,  the  random  surfer  has  two  opOons:   With  probability  β,  follow  a  link  at  random  

 With  probability  1-­‐β,  jump  to  some  page  uniformly  at  random  

  Common  values  for  β  are  in  the  range  0.8  to  0.9    Surfer  will  teleport  out  of  spider  trap  within  a  few  Ome  steps  

1/26/10   36  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 37: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

Yahoo

M’soft Amazon

1/2  

1/2  

0.8*1/2  

0.8*1/2  

0.2*1/3  

0.2*1/3  

0.2*1/3  

y 1/2 a 1/2 m 0

y 1/2 1/2 0

y

0.8* 1/3 1/3 1/3

y

+ 0.2*

1/2 1/2 0 1/2 0 0 0 1/2 1

1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3

y 7/15 7/15 1/15 a 7/15 1/15 1/15 m 1/15 7/15 13/15

0.8   +  0.2  

1/26/10   37  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 38: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

Yahoo

M’soft Amazon

1/2 1/2 0 1/2 0 0 0 1/2 1

1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3

y 7/15 7/15 1/15 a 7/15 1/15 1/15 m 1/15 7/15 13/15

0.8   +  0.2  

y a = m

1 1 1

1.00 0.60 1.40

0.84 0.60 1.56

0.776 0.536 1.688

7/11 5/11 21/11

. . .

1/26/10   38  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 39: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Power  iteraOon:    Set  ri=1    ri=∑j  Mijrj   And  iterate  

  Example:    y    1  1  ¾  5/8    0    a  =  1  ½  ½  3/8  …  0    m    1  ½  ¼  ¼    0  

1/26/10   Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Y!  

A   MS  Y!   A   MS  

Y!   ½   ½   0  

A   ½   0   0  

MS   0   ½   0  

39  

Page 40: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Teleport    Follow  random  teleport  links  with  probability  1.0  from  dead-­‐ends  

 Adjust  matrix  accordingly    Prune  and  propagate    Preprocess  the  graph  to  eliminate  dead-­‐ends     Might  require  mulOple  passes  

  Compute  page  rank  on  reduced  graph   Approximate  values  for  deadends  by  propagaOng  values  from  reduced  graph  

Page 41: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Suppose  there  are  N  pages    Consider  a  page  j,  with  set  of  outlinks  O(j)   We  have  Mij  =  1/|O(j)|  when  j→i  and  Mij  =  0  otherwise  

  The  random  teleport  is  equivalent  to    adding  a  teleport  link  from  j  to  every  other  page  with  probability  (1-­‐β)/N  

  reducing  the  probability  of  following  each  outlink  from  1/|O(j)|  to  β/|O(j)|  

  Equivalent:  tax  each  page  a  fracOon  (1-­‐β)  of  its  score  and  redistribute  evenly    

1/26/10   41  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 42: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Construct  the  N  x N  matrix  A  as  follows   Aij  =  βMij  +  (1-­‐β)/N  

  Verify  that  A  is  a  stochasOc  matrix    The  page  rank  vector  r  is  the  principal  eigenvector  of  this  matrix    saOsfying  r  =  Ar  

  Equivalently,  r  is  the  staOonary  distribuOon  of  the  random  walk  with  teleports  

1/26/10   42  Jure  Leskovec  &  Anand  Rajaraman,  Stanford  CS345a:  Data  Mining  

Page 43: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Key  step  is  matrix-­‐vector  mulOplicaOon    rnew  =  Arold  

  Easy  if  we  have  enough  main  memory  to  hold  A,  rold,  rnew  

  Say  N  =  1  billion  pages   We  need  4  bytes  for  each  entry  (say)    2  billion  entries  for  vectors,  approx  8GB   Matrix  A  has  N2  entries  

  1018  is  a  large  number!  

Page 44: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

r  =  Ar,  where  Aij  =  βMij  +  (1-­‐β)/N  ri  = ∑1≤j≤N  Aij  rj  ri  = ∑1≤j≤N  [βMij  +  (1-­‐β)/N]  rj          =  β ∑1≤j≤N  Mij  rj  +  (1-­‐β)/N  ∑1≤j≤N  rj          =  β ∑1≤j≤N  Mij  rj  +  (1-­‐β)/N,  since  |r|  =  1  r  =  βMr  +  [(1-­‐β)/N]N  where  [x]N  is  an  N-­‐vector  with  all  entries  x

Page 45: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  We  can  rearrange  the  page  rank  equaOon:    r  =  βMr  +  [(1-­‐β)/N]N    [(1-­‐β)/N]N  is  an  N-­‐vector  with  all  entries  (1-­‐β)/N  

  M  is  a  sparse  matrix!    10  links  per  node,  approx  10N  entries  

  So  in  each  iteraOon,  we  need  to:    Compute  rnew  =  βMrold  

  Add  a  constant  value  (1-­‐β)/N  to  each  entry  in  rnew  

Page 46: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Encode  sparse  matrix  using  only  nonzero  entries    Space  proporOonal  roughly  to  number  of  links    say  10N,  or  4*10*1  billion  =  40GB    sOll  won’t  fit  in  memory,  but  will  fit  on  disk  

0   3   1, 5, 7 1   5   17, 64, 113, 117, 245 2   2   13, 23

source node degree destination nodes

Page 47: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Assume  we  have  enough  RAM  to  fit  rnew,  plus  some  working  memory    Store  rold  and  matrix  M  on  disk  

Basic  Algorithm:    IniOalize:  rold  =  [1/N]N    Iterate:  

  Update:  Perform  a  sequenOal  scan  of  M  and  rold  to  update  rnew  

  Write  out  rnew  to  disk  as  rold  for  next  iteraOon    Every  few  iteraOons,  compute  |rnew-­‐rold|  and  stop  if  it  is  

below  threshold    Need  to  read  in  both  vectors  into  memory  

Page 48: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

0   3   1, 5, 6 1   4   17, 64, 113, 117 2   2   13, 23

src degree destination 0 1 2 3 4 5 6

0 1 2 3 4 5 6

rnew rold

Initialize all entries of rnew to (1-β)/N For each page p (out-degree n):

Read into memory: p, n, dest1,…,destn, rold(p) for j = 1..n: rnew(destj) += β*rold(p)/n

Page 49: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  In  each  iteraOon,  we  have  to:    Read  rold  and  M  

 Write  rnew  back  to  disk    IO  Cost  =  2|r|  +  |M|  

 What  if  we  had  enough  memory  to  fit  both  rnew  and  rold?  

 What  if  we  could  not  even  fit  rnew  in  memory?    10  billion  pages  

Page 50: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

0   4   0, 1, 3, 5 1   2   0, 5 2   2   3, 4

src degree destination 0 1

2 3

4 5

0 1 2 3 4 5

rnew rold

Page 51: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Similar  to  nested-­‐loop  join  in  databases    Break  rnew  into  k  blocks  that  fit  in  memory  

  Scan  M  and  rold  once  for  each  block    k  scans  of  M  and  rold    k(|M|  +  |r|)  +  |r|  =  k|M|  +  (k+1)|r|  

  Can  we  do  be=er?    Hint:  M  is  much  bigger  than  r  (approx  10-­‐20x),  so  we  must  avoid  reading  it  k  Omes  per  iteraOon  

Page 52: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

0   4   0, 1 1   3   0 2   2   1

src degree destination

0 1

2 3

4 5

0 1 2 3 4 5

rnew

rold

0   4   5 1   3   5 2   2   4

0   4   3 2   2   3

Page 53: CS345a:(Data(Mining( Jure(Leskovec(and(Anand(Rajaraman(1/26/10 Jure,Leskovec,&,Anand,Rajaraman,,Stanford,CS345a:,DataMining, 16 1EO25 1E23 1E21 1E19 1E17(1EO15 1E13 1E11 1E09 1E07(1EO05

  Break  M  into  stripes    Each  stripe  contains  only  desOnaOon  nodes  in  the  corresponding  block  of  rnew  

  Some  addiOonal  overhead  per  stripe    But  usually  worth  it  

  Cost  per  iteraOon    |M|(1+ε)  +  (k+1)|r|