SlideShare a Scribd company logo
1
Rank adjustment strategies for
Dynamic PageRank
Subhajit Sahu1
, Kishore Kothapalli1
, Dip Sankar Banerjee2
1
International Institute of Information Technology, Hyderabad
2
Indian Institute of Technology, Jodhpur
Abstract — To avoid calculating ranks of vertices in a dynamic graph from scratch
for every snapshot, the ones computed in the previous snapshot of the graph can be
used, with adjustment. Four different rank adjustment strategies for dynamic
PageRank are studied here. These include zero-fill, 1/N-fill, scaled zero-fill, and
scaled 1/N-fill. Results indicate that the scaled 1/N-fill strategy requires the least
number of iterations, on average. As long as the graph has no affected dead ends
(including dead ends in the previous snapshot), unaffected vertices can be skipped
with this adjustment strategy.
Index terms — PageRank algorithm, Dynamic graph, Rank adjustment, Initial ranks.
1. Introduction
Most graphs are dynamic, with new edges and vertices being added, or
removed, all the time. Time-evolving ranks of vertices in such a graph can be
obtained by performing a fresh (static) PageRank computation at every time
step. Another approach is to feed the rank of each vertex in the previous time
step as initial ranks to the PageRank algorithm [1]. This approach is called
incremental/dynamic PageRank.
In order to speed up convergence of the algorithm, these initial ranks can be
adjusted before performing PageRank computation. As long as updates to
the graph are small with respect to the size of the graph, dynamic PageRank
mostly wins over static PageRank.
2
2. Method
There are a number of strategies to set up the initial rank vector for the
PageRank algorithm on the updated graph, using the ranks from the old
graph. If a graph update does not end up adding any new vertices, then it is
simply a matter of running PageRank upon the updated graph with the
previous ranks, as the initial ranks. If however, some new vertices have been
added, and/or some old vertices have been removed, one of the following
strategies may be used to adjust the initial ranks: zero-fill, 1/N-fill, scaled
zero-fill, or scaled 1/N-fill. The zero-fill strategy is the simplest, and consists
of simply filling the ranks of new vertices with 0 (i.e. rnew = 0 for new
vertices). The 1/N-fill strategy is similar, ranks of new vertices are filled with
1/Nnew (i.e. rnew = 1/Nnew for new vertices). The scaled zero-fill strategy
extends zero-fill, and additionally scales ranks of old vertices with a factor of
Nold/Nnew (i.e. rnew = rold × Nold/Nnew for old vertices, and rnew= 1/Nnew for new
vertices). Finally, the scaled 1/N-fill strategy is a combination of scaling old
vertices, and 1/N-fill (i.e. rnew = rold × Nold/Nnew for old vertices, and rnew =
1/Nnew for new vertices). Here, Nold is the total number of vertices, and rold is
the rank of a given vertex in the old graph. On the other hand, Nnew is the
total number of vertices, and rnew is the rank of a given vertex in the updated
graph. A simplified view of these strategies is shown in figure 1.1.
Figure 1.1: Zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill strategies.
For static PageRank computation of a graph, the initial ranks of all vertices
are set to 1/N, where N is the total number of vertices in the graph.
Therefore, the sum of all initial ranks equals 1, as it should for a probability
3
(rank) vector. It is important to note however that this is not an essential
condition, rather, it likely helps with faster convergence. This can be shown
with the following example. Consider a graph with only one vertex A that
links to itself (a self loop). The rank of vertex A after the nth
iteration would
be equal to rA = β + βα + βα2
+ … + βαn
× rA0. Here, α is damping factor
(usually 0.85), β = (1 - α), and rA0 is the initial rank of vertex A. For a large
value of n, βαn
× rA0 tends to zero, and the rank of vertex A can be
approximated with the geometric progression (GP) formula as rA = β/(1 - α) =
1. Thus, rank of vertex A is always 1, independent of its initial rank. This
extends to other graphs, where the sum of ranks of vertices always equals 1,
regardless of the initial ranks (with sufficient iterations). This property is
essential for the correctness of 1/N-fill, and scaled zero-fill strategies (their
initial ranks do not sum to 1).
With scaled rank adjustment strategies, unlike unscaled ones, PageRank
computation on unaffected vertices can be skipped, as long as the graph has
no affected dead ends (including dead ends in the old graph). Scaling is
necessary, because even though the importance of unaffected vertices does
not change, the final rank vector is a probabilistic vector and must sum to 1.
Here, affected vertices are those which are either changed vertices, or are
reachable from changed vertices. Changed vertices are those which have an
edge added or removed between it and another (changed) vertex.
The necessity for the absence of affected new/old dead ends (vertices
without out-links), as mentioned above, can be seen with the following
example. Consider a graph with 2 vertices, A and B, without any edges.
Here, the ranks of A and B would be rA = 0.5 and rB = 0.5. For the updated
graph, a self-loop is added to vertex B. Thus, the affected vertex B is no
longer a dead end. If the algorithm ignores the fact that vertex B was a dead
end in the old graph, it would simply scale the rank of vertex A (which has
no effect since no new vertices were added), and end up with its rank as rA =
0.5, implying that the rank of vertex B would be rB = 0.5. This however is
incorrect as the newly added self loop to vertex B would actually increase its
rank (and decrease vertex B’s rank due to a reduced common teleport
contribution c0). In fact, the true ranks of the vertices would be rA = β/(1 + β)
= 0.13, and rB = 0.87 (when damping factor α = 0.85 and β = 1 - α). Thus, the
dead ends for both the updated and the old graph must be considered for
the affected check. Note however that this constraint only applies to the
PageRank algorithm with teleport-based dead end handling strategy.
4
3. Experimental setup
An experiment is conducted with each rank adjustment strategy on various
temporal graphs, updating each graph with multiple batch sizes (103
, 104
, ...),
until the entire graph is processed. For each batch size, static PageRank is
computed, along with incremental PageRank based on each of the four rank
adjustment strategies, without skipping unaffected vertices. This is done in
order to get an estimate of the convergence rate of each rank adjustment
strategy, independent of the number of skipped vertices (which can differ
based on the dead end handling strategy used).
Each rank adjustment strategy is performed using a common adjustment
function that adds a value, then multiplies a value to old ranks, and sets a
value for new ranks. After ranks are adjusted, they are set as initial ranks for
PageRank computation, which is then run on all vertices (no vertices are
skipped). The PageRank algorithm used is the standard power-iteration
(pull) based that optionally accepts initial ranks [2]. The rank of a vertex in
an iteration is calculated as c0 + αΣrn/dn, where c0 is the common teleport
contribution, α is the damping factor (0.85), rn is the previous rank of vertex
with an incoming edge, dn is the out-degree of the incoming-edge vertex,
and N is the total number of vertices in the graph. The common teleport
contribution c0, calculated as (1-α)/N + αΣrn/N, includes the contribution due
to a teleport from any vertex in the graph due to the damping factor (1-α)/N,
and teleport from dangling vertices (with no outgoing edges) in the graph
αΣrn/N. This is because a random surfer jumps to a random page upon
visiting a page with no links, in order to avoid the rank-sink effect [1].
All seven graphs (temporal) used in this experiment are stored in a plain text
file in “u, v, t” format, where u is the source vertex, v is the destination vertex,
and t is the UNIX epoch time in seconds. These include: CollegeMsg,
email-Eu-core-temporal, sx-mathoverflow, sx-askubuntu, sx-superuser,
wiki-talk-temporal, and sx-stackoverflow. All of them are obtained from the
Stanford Large Network Dataset Collection [3]. If initial ranks are not
provided, they are set to 1/N. Error check is done using L1 norm with static
PageRank (without initial ranks). The experiment is implemented in C++, and
compiled using GCC 9 with optimization level 3 (-O3). The system used is a
Dell PowerEdge R740 Rack server with two Intel Xeon Silver 4116 CPUs @
2.10GHz, 128GB DIMM DDR4 Synchronous Registered (Buffered) 2666
MHz (8x16GB) DRAM, and running CentOS Linux release 7.9.2009 (Core).
The iterations taken with each test case is measured. 500 is the maximum
5
iterations allowed. Statistics of each test case is printed to standard output
(stdout), and redirected to a log file, which is then processed with a script to
generate a CSV file, with each row representing the details of a single test
case. This CSV file is imported into Google Sheets, and necessary tables are
set up with the help of the FILTER function to create the charts.
4. Results
It is observed that 1/N-fill and scaled zero-fill strategies tend to require more
iterations for convergence for all graphs, with the 1/N-fill strategy usually
performing the worst. For small temporal graphs, such as CollegeMsg and
email-Eu-core-temporal, the two strategies are almost always slower than
static PageRank, as shown in figure 4.1. This is possibly because the sum of
ranks with both the strategies does not sum up to 1. For larger graphs this is
usually not the case for smaller batch sizes, as shown in figure 4.2. However,
for large batch sizes, static PageRank is able to beat all of the rank
adjustment strategies, as shown in figure 4.3. This is expected, since beyond
a certain batch size, computing PageRank from scratch is going to be faster
than dynamic PageRank [1].
Figure 4.1: Iterations taken for static PageRank, along with incremental PageRank
computation with each of the rank adjustment strategies: zero-fill, 1/N-fill, scaled
zero-fill, and scaled 1/N-fill. This is done on the email-Eu-core-temporal graph, with
a batch size of 104
.
6
Figure 4.2: Iterations taken for static PageRank, along with incremental PageRank
computation with each of the rank adjustment strategies: zero-fill, 1/N-fill, scaled
zero-fill, and scaled 1/N-fill. This is done on the wiki-talk-temporal graph, with a
batch size of 104
.
Figure 4.3: Geometric mean of iterations taken on the wiki-talk-temporal graph, for
static PageRank, along with incremental PageRank computation with each of the
rank adjustment strategies: zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill. This
is done with batch sizes ranging from 103
to 106
. With each batch size, edges are
added to the graph in steps, until the entire graph is processed. The figure for
arithmetic mean of iterations is similar.
7
On average, on all graphs, the scaled 1/N-fill strategy seems to perform the
best, as shown in figures 4.4 and 4.5. Based on GM-RATIO comparison [4],
the relative iterations between zero-fill, 1/N-fill, scaled zero-fill, and scaled
1/N-fill is 1.00 : 1.07 : 1.10 : 0.93 for all batch sizes. Hence, 1/N-fill is 3%
faster (1.03x) than scaled zero-fill, zero-fill is 7% faster (1.07x) than 1/N-fill,
and scaled 1/N-fill is 7% faster (1.08x) than zero-fill. The comparison of
relative iterations for specific batch sizes is shown in figure 4.5. Here,
GM-RATIO is obtained by taking the geometric mean (GM) of iterations taken
at different stages of the graph, on each graph, with each batch size. Then,
GM is taken for each batch size, across all graphs. Finally, GM is taken for all
batch sizes, and a ratio is obtained relative to the zero-fill strategy. Based on
AM-RATIO comparison [4], the relative iterations between zero-fill, 1/N-fill,
scaled zero-fill, and scaled 1/N-fill is 1.00 : 1.03 : 1.07 : 0.92 (all batch
sizes). Hence, 1/N-fill is 4% faster (1.04x) than scaled zero-fill, zero-fill is 3%
faster (1.03x) than 1/N-fill, and scaled 1/N-fill is 8% faster (1.09x) than
zero-fill. AM-RATIO is obtained in a process similar to that of GM-RATIO,
except that arithmetic mean (AM) is used instead of GM.
Figure 4.4: Geometric mean of iterations taken on all the seven temporal graphs, for
static PageRank, along with incremental PageRank computation with each of the
rank adjustment strategies: zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill. This
is done with batch sizes ranging from 103
to 107
. Since batch size is limited by the
total number of temporal edges of a graph, for large batch sizes only large graphs
are considered. The figure for arithmetic mean of iterations is similar.
8
Figure 4.5: Relative GM iterations taken on all the seven temporal graphs, for static
PageRank, along with incremental PageRank computation with each of the rank
adjustment strategies: zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill. This is
done with batch sizes ranging from 103
to 107
. The figure for relative AM iterations is
similar.
5. Conclusion
Among the four studied rank adjustment strategies for dynamic PageRank,
scaled 1/N-fill appears to be the best. Also note that with the scaled 1/N-fill
strategy (also scaled zero-fill, but it is slower), it is possible to skip
PageRank computation on unaffected vertices, as long as the graph has no
affected dead ends (including dead ends in the old graph). The scaled
1/N-fill rank adjustment strategy, which is commonly used for dynamic
PageRank [5], is thus the way to go. The link to source code, along with data
sheets and charts, for rank adjustment strategies [6] on dynamic (temporal)
graphs is included in references.
References
[1] A. Langville and C. Meyer, “Deeper Inside PageRank,” Internet Math.,
vol. 1, no. 3, pp. 335–380, Jan. 2004, doi:
9
10.1080/15427951.2004.10129091.
[2] J. J. Whang, A. Lenharth, I. S. Dhillon, and K. Pingali, “Scalable
Data-Driven PageRank: Algorithms, System Issues, and Lessons
Learned,” in Euro-Par 2015: Parallel Processing, vol. 9233, J. L. Träff, S.
Hunold, and F. Versaci, Eds. Berlin, Heidelberg: Springer Berlin
Heidelberg, 2015, pp. 438–450.
[3] J. Leskovec and A. Krevl, “SNAP Datasets: Stanford Large Network
Dataset Collection,” Jun. 2014.
[4] S. Sahu, K. Kothapalli, and D. S. Banerjee, “Adjusting PageRank
parameters and Comparing results,” 2021.
[5] P. Desikan, N. Pathak, J. Srivastava, and V. Kumar, “Incremental page
rank computation on evolving graphs,” in Special interest tracks and
posters of the 14th international conference on World Wide Web  -
WWW ’05, New York, New York, USA, May 2005, p. 1094, doi:
10.1145/1062745.1062885.
[6] S. Sahu, “puzzlef/pagerank-dynamic-adjust-ranks: Comparing strategies
to update ranks for dynamic PageRank (pull, CSR).”
https://github.com/puzzlef/pagerank-dynamic-adjust-ranks (accessed
Aug. 31, 2021).

More Related Content

What's hot

Time Series Analysis - 2 | Time Series in R | ARIMA Model Forecasting | Data ...
Time Series Analysis - 2 | Time Series in R | ARIMA Model Forecasting | Data ...Time Series Analysis - 2 | Time Series in R | ARIMA Model Forecasting | Data ...
Time Series Analysis - 2 | Time Series in R | ARIMA Model Forecasting | Data ...
Simplilearn
 
Time Series - Auto Regressive Models
Time Series - Auto Regressive ModelsTime Series - Auto Regressive Models
Time Series - Auto Regressive Models
Bhaskar T
 
Signal Processing Assignment Help
Signal Processing Assignment HelpSignal Processing Assignment Help
Signal Processing Assignment Help
Matlab Assignment Experts
 
Meeting w3 chapter 2 part 1
Meeting w3   chapter 2 part 1Meeting w3   chapter 2 part 1
Meeting w3 chapter 2 part 1Hattori Sidek
 
Isen 614 project presentation
Isen 614 project presentationIsen 614 project presentation
Isen 614 project presentation
Vanshaj Handoo
 
Project time series ppt
Project time series pptProject time series ppt
Project time series pptamar patil
 
R nonlinear least square
R   nonlinear least squareR   nonlinear least square
R nonlinear least square
Learnbay Datascience
 
Fourier Transform Assignment Help
Fourier Transform Assignment HelpFourier Transform Assignment Help
Fourier Transform Assignment Help
Matlab Assignment Experts
 
types of facility layout algorithm
types of facility layout algorithmtypes of facility layout algorithm
types of facility layout algorithm
AsIf Fisa
 
Time series forecasting
Time series forecastingTime series forecasting
Time series forecasting
Firas Kastantin
 
Byungchul Yea (Project)
Byungchul Yea (Project)Byungchul Yea (Project)
Byungchul Yea (Project)Byung Chul Yea
 
A Comparative study of locality Preserving Projection & Principle Component A...
A Comparative study of locality Preserving Projection & Principle Component A...A Comparative study of locality Preserving Projection & Principle Component A...
A Comparative study of locality Preserving Projection & Principle Component A...
RAHUL WAGAJ
 
Using the Componentwise Metropolis-Hastings Algorithm to Sample from the Join...
Using the Componentwise Metropolis-Hastings Algorithm to Sample from the Join...Using the Componentwise Metropolis-Hastings Algorithm to Sample from the Join...
Using the Componentwise Metropolis-Hastings Algorithm to Sample from the Join...
Thomas Templin
 
Lesson 4 ar-ma
Lesson 4 ar-maLesson 4 ar-ma
Lesson 4 ar-ma
ankit_ppt
 
Time series Analysis
Time series AnalysisTime series Analysis
Time series Analysis
Mahak Vijayvargiya
 
Isen 614 project report
Isen 614 project reportIsen 614 project report
Isen 614 project report
Vanshaj Handoo
 
Modern Control System (BE)
Modern Control System (BE)Modern Control System (BE)
Modern Control System (BE)
PRABHAHARAN429
 
BPstudy sklearn 20180925
BPstudy sklearn 20180925BPstudy sklearn 20180925
BPstudy sklearn 20180925
Shintaro Fukushima
 
Keeping the Same Rule
Keeping the Same RuleKeeping the Same Rule
Keeping the Same Rule
Mohammed Awad
 

What's hot (20)

Time Series Analysis - 2 | Time Series in R | ARIMA Model Forecasting | Data ...
Time Series Analysis - 2 | Time Series in R | ARIMA Model Forecasting | Data ...Time Series Analysis - 2 | Time Series in R | ARIMA Model Forecasting | Data ...
Time Series Analysis - 2 | Time Series in R | ARIMA Model Forecasting | Data ...
 
Time Series - Auto Regressive Models
Time Series - Auto Regressive ModelsTime Series - Auto Regressive Models
Time Series - Auto Regressive Models
 
AR model
AR modelAR model
AR model
 
Signal Processing Assignment Help
Signal Processing Assignment HelpSignal Processing Assignment Help
Signal Processing Assignment Help
 
Meeting w3 chapter 2 part 1
Meeting w3   chapter 2 part 1Meeting w3   chapter 2 part 1
Meeting w3 chapter 2 part 1
 
Isen 614 project presentation
Isen 614 project presentationIsen 614 project presentation
Isen 614 project presentation
 
Project time series ppt
Project time series pptProject time series ppt
Project time series ppt
 
R nonlinear least square
R   nonlinear least squareR   nonlinear least square
R nonlinear least square
 
Fourier Transform Assignment Help
Fourier Transform Assignment HelpFourier Transform Assignment Help
Fourier Transform Assignment Help
 
types of facility layout algorithm
types of facility layout algorithmtypes of facility layout algorithm
types of facility layout algorithm
 
Time series forecasting
Time series forecastingTime series forecasting
Time series forecasting
 
Byungchul Yea (Project)
Byungchul Yea (Project)Byungchul Yea (Project)
Byungchul Yea (Project)
 
A Comparative study of locality Preserving Projection & Principle Component A...
A Comparative study of locality Preserving Projection & Principle Component A...A Comparative study of locality Preserving Projection & Principle Component A...
A Comparative study of locality Preserving Projection & Principle Component A...
 
Using the Componentwise Metropolis-Hastings Algorithm to Sample from the Join...
Using the Componentwise Metropolis-Hastings Algorithm to Sample from the Join...Using the Componentwise Metropolis-Hastings Algorithm to Sample from the Join...
Using the Componentwise Metropolis-Hastings Algorithm to Sample from the Join...
 
Lesson 4 ar-ma
Lesson 4 ar-maLesson 4 ar-ma
Lesson 4 ar-ma
 
Time series Analysis
Time series AnalysisTime series Analysis
Time series Analysis
 
Isen 614 project report
Isen 614 project reportIsen 614 project report
Isen 614 project report
 
Modern Control System (BE)
Modern Control System (BE)Modern Control System (BE)
Modern Control System (BE)
 
BPstudy sklearn 20180925
BPstudy sklearn 20180925BPstudy sklearn 20180925
BPstudy sklearn 20180925
 
Keeping the Same Rule
Keeping the Same RuleKeeping the Same Rule
Keeping the Same Rule
 

Similar to Rank adjustment strategies for Dynamic PageRank : REPORT

Algorithmic optimizations for Dynamic Monolithic PageRank (from STICD) : SHOR...
Algorithmic optimizations for Dynamic Monolithic PageRank (from STICD) : SHOR...Algorithmic optimizations for Dynamic Monolithic PageRank (from STICD) : SHOR...
Algorithmic optimizations for Dynamic Monolithic PageRank (from STICD) : SHOR...
Subhajit Sahu
 
Algorithmic optimizations for Dynamic Levelwise PageRank (from STICD) : SHORT...
Algorithmic optimizations for Dynamic Levelwise PageRank (from STICD) : SHORT...Algorithmic optimizations for Dynamic Levelwise PageRank (from STICD) : SHORT...
Algorithmic optimizations for Dynamic Levelwise PageRank (from STICD) : SHORT...
Subhajit Sahu
 
Adjusting OpenMP PageRank : SHORT REPORT / NOTES
Adjusting OpenMP PageRank : SHORT REPORT / NOTESAdjusting OpenMP PageRank : SHORT REPORT / NOTES
Adjusting OpenMP PageRank : SHORT REPORT / NOTES
Subhajit Sahu
 
PHYS 221Lab 1 - Acceleration Due to GravityPlease work in g.docx
PHYS 221Lab 1 - Acceleration Due to GravityPlease work in g.docxPHYS 221Lab 1 - Acceleration Due to GravityPlease work in g.docx
PHYS 221Lab 1 - Acceleration Due to GravityPlease work in g.docx
mattjtoni51554
 
Ann a Algorithms notes
Ann a Algorithms notesAnn a Algorithms notes
Ann a Algorithms notes
Prof. Neeta Awasthy
 
Effect of stepwise adjustment of Damping factor upon PageRank : REPORT
Effect of stepwise adjustment of Damping factor upon PageRank : REPORTEffect of stepwise adjustment of Damping factor upon PageRank : REPORT
Effect of stepwise adjustment of Damping factor upon PageRank : REPORT
Subhajit Sahu
 
CSCI 2033 Elementary Computational Linear Algebra(Spring 20.docx
CSCI 2033 Elementary Computational Linear Algebra(Spring 20.docxCSCI 2033 Elementary Computational Linear Algebra(Spring 20.docx
CSCI 2033 Elementary Computational Linear Algebra(Spring 20.docx
mydrynan
 
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
Subhajit Sahu
 
Lec5 Pagerank
Lec5 PagerankLec5 Pagerank
Lec5 Pagerank
mobius.cn
 
Lec5 pagerank
Lec5 pagerankLec5 pagerank
Lec5 pagerank
Carlos
 
Pagerank (from Google)
Pagerank (from Google)Pagerank (from Google)
Pagerank (from Google)Sri Prasanna
 
Gauss Elimination (without pivot).pptx
Gauss Elimination (without pivot).pptxGauss Elimination (without pivot).pptx
Gauss Elimination (without pivot).pptx
Saloni Singhal
 
Alpine Spark Implementation - Technical
Alpine Spark Implementation - TechnicalAlpine Spark Implementation - Technical
Alpine Spark Implementation - Technical
alpinedatalabs
 
Multinomial Logistic Regression with Apache Spark
Multinomial Logistic Regression with Apache SparkMultinomial Logistic Regression with Apache Spark
Multinomial Logistic Regression with Apache Spark
DB Tsai
 
Simplex algorithm
Simplex algorithmSimplex algorithm
Simplex algorithm
Khwaja Bilal Hassan
 
Simplex Algorithm
Simplex AlgorithmSimplex Algorithm
Simplex Algorithm
Aizaz Ahmad
 
Improvement of shortest path algorithms using subgraphs heuristics
Improvement of shortest path algorithms using subgraphs heuristicsImprovement of shortest path algorithms using subgraphs heuristics
Improvement of shortest path algorithms using subgraphs heuristics
Mahdi Atawneh
 
PowerLyra@EuroSys2015
PowerLyra@EuroSys2015PowerLyra@EuroSys2015
PowerLyra@EuroSys2015
realstolz
 
working with python
working with pythonworking with python
working with python
bhavesh lande
 

Similar to Rank adjustment strategies for Dynamic PageRank : REPORT (20)

Algorithmic optimizations for Dynamic Monolithic PageRank (from STICD) : SHOR...
Algorithmic optimizations for Dynamic Monolithic PageRank (from STICD) : SHOR...Algorithmic optimizations for Dynamic Monolithic PageRank (from STICD) : SHOR...
Algorithmic optimizations for Dynamic Monolithic PageRank (from STICD) : SHOR...
 
Algorithmic optimizations for Dynamic Levelwise PageRank (from STICD) : SHORT...
Algorithmic optimizations for Dynamic Levelwise PageRank (from STICD) : SHORT...Algorithmic optimizations for Dynamic Levelwise PageRank (from STICD) : SHORT...
Algorithmic optimizations for Dynamic Levelwise PageRank (from STICD) : SHORT...
 
Adjusting OpenMP PageRank : SHORT REPORT / NOTES
Adjusting OpenMP PageRank : SHORT REPORT / NOTESAdjusting OpenMP PageRank : SHORT REPORT / NOTES
Adjusting OpenMP PageRank : SHORT REPORT / NOTES
 
PHYS 221Lab 1 - Acceleration Due to GravityPlease work in g.docx
PHYS 221Lab 1 - Acceleration Due to GravityPlease work in g.docxPHYS 221Lab 1 - Acceleration Due to GravityPlease work in g.docx
PHYS 221Lab 1 - Acceleration Due to GravityPlease work in g.docx
 
Ann a Algorithms notes
Ann a Algorithms notesAnn a Algorithms notes
Ann a Algorithms notes
 
Effect of stepwise adjustment of Damping factor upon PageRank : REPORT
Effect of stepwise adjustment of Damping factor upon PageRank : REPORTEffect of stepwise adjustment of Damping factor upon PageRank : REPORT
Effect of stepwise adjustment of Damping factor upon PageRank : REPORT
 
CSCI 2033 Elementary Computational Linear Algebra(Spring 20.docx
CSCI 2033 Elementary Computational Linear Algebra(Spring 20.docxCSCI 2033 Elementary Computational Linear Algebra(Spring 20.docx
CSCI 2033 Elementary Computational Linear Algebra(Spring 20.docx
 
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
 
Lec5 Pagerank
Lec5 PagerankLec5 Pagerank
Lec5 Pagerank
 
Lec5 Pagerank
Lec5 PagerankLec5 Pagerank
Lec5 Pagerank
 
Lec5 pagerank
Lec5 pagerankLec5 pagerank
Lec5 pagerank
 
Pagerank (from Google)
Pagerank (from Google)Pagerank (from Google)
Pagerank (from Google)
 
Gauss Elimination (without pivot).pptx
Gauss Elimination (without pivot).pptxGauss Elimination (without pivot).pptx
Gauss Elimination (without pivot).pptx
 
Alpine Spark Implementation - Technical
Alpine Spark Implementation - TechnicalAlpine Spark Implementation - Technical
Alpine Spark Implementation - Technical
 
Multinomial Logistic Regression with Apache Spark
Multinomial Logistic Regression with Apache SparkMultinomial Logistic Regression with Apache Spark
Multinomial Logistic Regression with Apache Spark
 
Simplex algorithm
Simplex algorithmSimplex algorithm
Simplex algorithm
 
Simplex Algorithm
Simplex AlgorithmSimplex Algorithm
Simplex Algorithm
 
Improvement of shortest path algorithms using subgraphs heuristics
Improvement of shortest path algorithms using subgraphs heuristicsImprovement of shortest path algorithms using subgraphs heuristics
Improvement of shortest path algorithms using subgraphs heuristics
 
PowerLyra@EuroSys2015
PowerLyra@EuroSys2015PowerLyra@EuroSys2015
PowerLyra@EuroSys2015
 
working with python
working with pythonworking with python
working with python
 

More from Subhajit Sahu

About TrueTime, Spanner, Clock synchronization, CAP theorem, Two-phase lockin...
About TrueTime, Spanner, Clock synchronization, CAP theorem, Two-phase lockin...About TrueTime, Spanner, Clock synchronization, CAP theorem, Two-phase lockin...
About TrueTime, Spanner, Clock synchronization, CAP theorem, Two-phase lockin...
Subhajit Sahu
 
Adjusting Bitset for graph : SHORT REPORT / NOTES
Adjusting Bitset for graph : SHORT REPORT / NOTESAdjusting Bitset for graph : SHORT REPORT / NOTES
Adjusting Bitset for graph : SHORT REPORT / NOTES
Subhajit Sahu
 
Adjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTESAdjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTES
Subhajit Sahu
 
Experiments with Primitive operations : SHORT REPORT / NOTES
Experiments with Primitive operations : SHORT REPORT / NOTESExperiments with Primitive operations : SHORT REPORT / NOTES
Experiments with Primitive operations : SHORT REPORT / NOTES
Subhajit Sahu
 
PageRank Experiments : SHORT REPORT / NOTES
PageRank Experiments : SHORT REPORT / NOTESPageRank Experiments : SHORT REPORT / NOTES
PageRank Experiments : SHORT REPORT / NOTES
Subhajit Sahu
 
word2vec, node2vec, graph2vec, X2vec: Towards a Theory of Vector Embeddings o...
word2vec, node2vec, graph2vec, X2vec: Towards a Theory of Vector Embeddings o...word2vec, node2vec, graph2vec, X2vec: Towards a Theory of Vector Embeddings o...
word2vec, node2vec, graph2vec, X2vec: Towards a Theory of Vector Embeddings o...
Subhajit Sahu
 
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTESDyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
Subhajit Sahu
 
Shared memory Parallelism (NOTES)
Shared memory Parallelism (NOTES)Shared memory Parallelism (NOTES)
Shared memory Parallelism (NOTES)
Subhajit Sahu
 
A Dynamic Algorithm for Local Community Detection in Graphs : NOTES
A Dynamic Algorithm for Local Community Detection in Graphs : NOTESA Dynamic Algorithm for Local Community Detection in Graphs : NOTES
A Dynamic Algorithm for Local Community Detection in Graphs : NOTES
Subhajit Sahu
 
Scalable Static and Dynamic Community Detection Using Grappolo : NOTES
Scalable Static and Dynamic Community Detection Using Grappolo : NOTESScalable Static and Dynamic Community Detection Using Grappolo : NOTES
Scalable Static and Dynamic Community Detection Using Grappolo : NOTES
Subhajit Sahu
 
Application Areas of Community Detection: A Review : NOTES
Application Areas of Community Detection: A Review : NOTESApplication Areas of Community Detection: A Review : NOTES
Application Areas of Community Detection: A Review : NOTES
Subhajit Sahu
 
Community Detection on the GPU : NOTES
Community Detection on the GPU : NOTESCommunity Detection on the GPU : NOTES
Community Detection on the GPU : NOTES
Subhajit Sahu
 
Survey for extra-child-process package : NOTES
Survey for extra-child-process package : NOTESSurvey for extra-child-process package : NOTES
Survey for extra-child-process package : NOTES
Subhajit Sahu
 
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTER
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTERDynamic Batch Parallel Algorithms for Updating PageRank : POSTER
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTER
Subhajit Sahu
 
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...
Subhajit Sahu
 
Fast Incremental Community Detection on Dynamic Graphs : NOTES
Fast Incremental Community Detection on Dynamic Graphs : NOTESFast Incremental Community Detection on Dynamic Graphs : NOTES
Fast Incremental Community Detection on Dynamic Graphs : NOTES
Subhajit Sahu
 
Can you fix farming by going back 8000 years : NOTES
Can you fix farming by going back 8000 years : NOTESCan you fix farming by going back 8000 years : NOTES
Can you fix farming by going back 8000 years : NOTES
Subhajit Sahu
 
HITS algorithm : NOTES
HITS algorithm : NOTESHITS algorithm : NOTES
HITS algorithm : NOTES
Subhajit Sahu
 
Basic Computer Architecture and the Case for GPUs : NOTES
Basic Computer Architecture and the Case for GPUs : NOTESBasic Computer Architecture and the Case for GPUs : NOTES
Basic Computer Architecture and the Case for GPUs : NOTES
Subhajit Sahu
 
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDES
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDESDynamic Batch Parallel Algorithms for Updating Pagerank : SLIDES
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDES
Subhajit Sahu
 

More from Subhajit Sahu (20)

About TrueTime, Spanner, Clock synchronization, CAP theorem, Two-phase lockin...
About TrueTime, Spanner, Clock synchronization, CAP theorem, Two-phase lockin...About TrueTime, Spanner, Clock synchronization, CAP theorem, Two-phase lockin...
About TrueTime, Spanner, Clock synchronization, CAP theorem, Two-phase lockin...
 
Adjusting Bitset for graph : SHORT REPORT / NOTES
Adjusting Bitset for graph : SHORT REPORT / NOTESAdjusting Bitset for graph : SHORT REPORT / NOTES
Adjusting Bitset for graph : SHORT REPORT / NOTES
 
Adjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTESAdjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTES
 
Experiments with Primitive operations : SHORT REPORT / NOTES
Experiments with Primitive operations : SHORT REPORT / NOTESExperiments with Primitive operations : SHORT REPORT / NOTES
Experiments with Primitive operations : SHORT REPORT / NOTES
 
PageRank Experiments : SHORT REPORT / NOTES
PageRank Experiments : SHORT REPORT / NOTESPageRank Experiments : SHORT REPORT / NOTES
PageRank Experiments : SHORT REPORT / NOTES
 
word2vec, node2vec, graph2vec, X2vec: Towards a Theory of Vector Embeddings o...
word2vec, node2vec, graph2vec, X2vec: Towards a Theory of Vector Embeddings o...word2vec, node2vec, graph2vec, X2vec: Towards a Theory of Vector Embeddings o...
word2vec, node2vec, graph2vec, X2vec: Towards a Theory of Vector Embeddings o...
 
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTESDyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
 
Shared memory Parallelism (NOTES)
Shared memory Parallelism (NOTES)Shared memory Parallelism (NOTES)
Shared memory Parallelism (NOTES)
 
A Dynamic Algorithm for Local Community Detection in Graphs : NOTES
A Dynamic Algorithm for Local Community Detection in Graphs : NOTESA Dynamic Algorithm for Local Community Detection in Graphs : NOTES
A Dynamic Algorithm for Local Community Detection in Graphs : NOTES
 
Scalable Static and Dynamic Community Detection Using Grappolo : NOTES
Scalable Static and Dynamic Community Detection Using Grappolo : NOTESScalable Static and Dynamic Community Detection Using Grappolo : NOTES
Scalable Static and Dynamic Community Detection Using Grappolo : NOTES
 
Application Areas of Community Detection: A Review : NOTES
Application Areas of Community Detection: A Review : NOTESApplication Areas of Community Detection: A Review : NOTES
Application Areas of Community Detection: A Review : NOTES
 
Community Detection on the GPU : NOTES
Community Detection on the GPU : NOTESCommunity Detection on the GPU : NOTES
Community Detection on the GPU : NOTES
 
Survey for extra-child-process package : NOTES
Survey for extra-child-process package : NOTESSurvey for extra-child-process package : NOTES
Survey for extra-child-process package : NOTES
 
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTER
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTERDynamic Batch Parallel Algorithms for Updating PageRank : POSTER
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTER
 
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...
 
Fast Incremental Community Detection on Dynamic Graphs : NOTES
Fast Incremental Community Detection on Dynamic Graphs : NOTESFast Incremental Community Detection on Dynamic Graphs : NOTES
Fast Incremental Community Detection on Dynamic Graphs : NOTES
 
Can you fix farming by going back 8000 years : NOTES
Can you fix farming by going back 8000 years : NOTESCan you fix farming by going back 8000 years : NOTES
Can you fix farming by going back 8000 years : NOTES
 
HITS algorithm : NOTES
HITS algorithm : NOTESHITS algorithm : NOTES
HITS algorithm : NOTES
 
Basic Computer Architecture and the Case for GPUs : NOTES
Basic Computer Architecture and the Case for GPUs : NOTESBasic Computer Architecture and the Case for GPUs : NOTES
Basic Computer Architecture and the Case for GPUs : NOTES
 
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDES
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDESDynamic Batch Parallel Algorithms for Updating Pagerank : SLIDES
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDES
 

Recently uploaded

Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 

Recently uploaded (20)

Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 

Rank adjustment strategies for Dynamic PageRank : REPORT

  • 1. 1 Rank adjustment strategies for Dynamic PageRank Subhajit Sahu1 , Kishore Kothapalli1 , Dip Sankar Banerjee2 1 International Institute of Information Technology, Hyderabad 2 Indian Institute of Technology, Jodhpur Abstract — To avoid calculating ranks of vertices in a dynamic graph from scratch for every snapshot, the ones computed in the previous snapshot of the graph can be used, with adjustment. Four different rank adjustment strategies for dynamic PageRank are studied here. These include zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill. Results indicate that the scaled 1/N-fill strategy requires the least number of iterations, on average. As long as the graph has no affected dead ends (including dead ends in the previous snapshot), unaffected vertices can be skipped with this adjustment strategy. Index terms — PageRank algorithm, Dynamic graph, Rank adjustment, Initial ranks. 1. Introduction Most graphs are dynamic, with new edges and vertices being added, or removed, all the time. Time-evolving ranks of vertices in such a graph can be obtained by performing a fresh (static) PageRank computation at every time step. Another approach is to feed the rank of each vertex in the previous time step as initial ranks to the PageRank algorithm [1]. This approach is called incremental/dynamic PageRank. In order to speed up convergence of the algorithm, these initial ranks can be adjusted before performing PageRank computation. As long as updates to the graph are small with respect to the size of the graph, dynamic PageRank mostly wins over static PageRank.
  • 2. 2 2. Method There are a number of strategies to set up the initial rank vector for the PageRank algorithm on the updated graph, using the ranks from the old graph. If a graph update does not end up adding any new vertices, then it is simply a matter of running PageRank upon the updated graph with the previous ranks, as the initial ranks. If however, some new vertices have been added, and/or some old vertices have been removed, one of the following strategies may be used to adjust the initial ranks: zero-fill, 1/N-fill, scaled zero-fill, or scaled 1/N-fill. The zero-fill strategy is the simplest, and consists of simply filling the ranks of new vertices with 0 (i.e. rnew = 0 for new vertices). The 1/N-fill strategy is similar, ranks of new vertices are filled with 1/Nnew (i.e. rnew = 1/Nnew for new vertices). The scaled zero-fill strategy extends zero-fill, and additionally scales ranks of old vertices with a factor of Nold/Nnew (i.e. rnew = rold × Nold/Nnew for old vertices, and rnew= 1/Nnew for new vertices). Finally, the scaled 1/N-fill strategy is a combination of scaling old vertices, and 1/N-fill (i.e. rnew = rold × Nold/Nnew for old vertices, and rnew = 1/Nnew for new vertices). Here, Nold is the total number of vertices, and rold is the rank of a given vertex in the old graph. On the other hand, Nnew is the total number of vertices, and rnew is the rank of a given vertex in the updated graph. A simplified view of these strategies is shown in figure 1.1. Figure 1.1: Zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill strategies. For static PageRank computation of a graph, the initial ranks of all vertices are set to 1/N, where N is the total number of vertices in the graph. Therefore, the sum of all initial ranks equals 1, as it should for a probability
  • 3. 3 (rank) vector. It is important to note however that this is not an essential condition, rather, it likely helps with faster convergence. This can be shown with the following example. Consider a graph with only one vertex A that links to itself (a self loop). The rank of vertex A after the nth iteration would be equal to rA = β + βα + βα2 + … + βαn × rA0. Here, α is damping factor (usually 0.85), β = (1 - α), and rA0 is the initial rank of vertex A. For a large value of n, βαn × rA0 tends to zero, and the rank of vertex A can be approximated with the geometric progression (GP) formula as rA = β/(1 - α) = 1. Thus, rank of vertex A is always 1, independent of its initial rank. This extends to other graphs, where the sum of ranks of vertices always equals 1, regardless of the initial ranks (with sufficient iterations). This property is essential for the correctness of 1/N-fill, and scaled zero-fill strategies (their initial ranks do not sum to 1). With scaled rank adjustment strategies, unlike unscaled ones, PageRank computation on unaffected vertices can be skipped, as long as the graph has no affected dead ends (including dead ends in the old graph). Scaling is necessary, because even though the importance of unaffected vertices does not change, the final rank vector is a probabilistic vector and must sum to 1. Here, affected vertices are those which are either changed vertices, or are reachable from changed vertices. Changed vertices are those which have an edge added or removed between it and another (changed) vertex. The necessity for the absence of affected new/old dead ends (vertices without out-links), as mentioned above, can be seen with the following example. Consider a graph with 2 vertices, A and B, without any edges. Here, the ranks of A and B would be rA = 0.5 and rB = 0.5. For the updated graph, a self-loop is added to vertex B. Thus, the affected vertex B is no longer a dead end. If the algorithm ignores the fact that vertex B was a dead end in the old graph, it would simply scale the rank of vertex A (which has no effect since no new vertices were added), and end up with its rank as rA = 0.5, implying that the rank of vertex B would be rB = 0.5. This however is incorrect as the newly added self loop to vertex B would actually increase its rank (and decrease vertex B’s rank due to a reduced common teleport contribution c0). In fact, the true ranks of the vertices would be rA = β/(1 + β) = 0.13, and rB = 0.87 (when damping factor α = 0.85 and β = 1 - α). Thus, the dead ends for both the updated and the old graph must be considered for the affected check. Note however that this constraint only applies to the PageRank algorithm with teleport-based dead end handling strategy.
  • 4. 4 3. Experimental setup An experiment is conducted with each rank adjustment strategy on various temporal graphs, updating each graph with multiple batch sizes (103 , 104 , ...), until the entire graph is processed. For each batch size, static PageRank is computed, along with incremental PageRank based on each of the four rank adjustment strategies, without skipping unaffected vertices. This is done in order to get an estimate of the convergence rate of each rank adjustment strategy, independent of the number of skipped vertices (which can differ based on the dead end handling strategy used). Each rank adjustment strategy is performed using a common adjustment function that adds a value, then multiplies a value to old ranks, and sets a value for new ranks. After ranks are adjusted, they are set as initial ranks for PageRank computation, which is then run on all vertices (no vertices are skipped). The PageRank algorithm used is the standard power-iteration (pull) based that optionally accepts initial ranks [2]. The rank of a vertex in an iteration is calculated as c0 + αΣrn/dn, where c0 is the common teleport contribution, α is the damping factor (0.85), rn is the previous rank of vertex with an incoming edge, dn is the out-degree of the incoming-edge vertex, and N is the total number of vertices in the graph. The common teleport contribution c0, calculated as (1-α)/N + αΣrn/N, includes the contribution due to a teleport from any vertex in the graph due to the damping factor (1-α)/N, and teleport from dangling vertices (with no outgoing edges) in the graph αΣrn/N. This is because a random surfer jumps to a random page upon visiting a page with no links, in order to avoid the rank-sink effect [1]. All seven graphs (temporal) used in this experiment are stored in a plain text file in “u, v, t” format, where u is the source vertex, v is the destination vertex, and t is the UNIX epoch time in seconds. These include: CollegeMsg, email-Eu-core-temporal, sx-mathoverflow, sx-askubuntu, sx-superuser, wiki-talk-temporal, and sx-stackoverflow. All of them are obtained from the Stanford Large Network Dataset Collection [3]. If initial ranks are not provided, they are set to 1/N. Error check is done using L1 norm with static PageRank (without initial ranks). The experiment is implemented in C++, and compiled using GCC 9 with optimization level 3 (-O3). The system used is a Dell PowerEdge R740 Rack server with two Intel Xeon Silver 4116 CPUs @ 2.10GHz, 128GB DIMM DDR4 Synchronous Registered (Buffered) 2666 MHz (8x16GB) DRAM, and running CentOS Linux release 7.9.2009 (Core). The iterations taken with each test case is measured. 500 is the maximum
  • 5. 5 iterations allowed. Statistics of each test case is printed to standard output (stdout), and redirected to a log file, which is then processed with a script to generate a CSV file, with each row representing the details of a single test case. This CSV file is imported into Google Sheets, and necessary tables are set up with the help of the FILTER function to create the charts. 4. Results It is observed that 1/N-fill and scaled zero-fill strategies tend to require more iterations for convergence for all graphs, with the 1/N-fill strategy usually performing the worst. For small temporal graphs, such as CollegeMsg and email-Eu-core-temporal, the two strategies are almost always slower than static PageRank, as shown in figure 4.1. This is possibly because the sum of ranks with both the strategies does not sum up to 1. For larger graphs this is usually not the case for smaller batch sizes, as shown in figure 4.2. However, for large batch sizes, static PageRank is able to beat all of the rank adjustment strategies, as shown in figure 4.3. This is expected, since beyond a certain batch size, computing PageRank from scratch is going to be faster than dynamic PageRank [1]. Figure 4.1: Iterations taken for static PageRank, along with incremental PageRank computation with each of the rank adjustment strategies: zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill. This is done on the email-Eu-core-temporal graph, with a batch size of 104 .
  • 6. 6 Figure 4.2: Iterations taken for static PageRank, along with incremental PageRank computation with each of the rank adjustment strategies: zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill. This is done on the wiki-talk-temporal graph, with a batch size of 104 . Figure 4.3: Geometric mean of iterations taken on the wiki-talk-temporal graph, for static PageRank, along with incremental PageRank computation with each of the rank adjustment strategies: zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill. This is done with batch sizes ranging from 103 to 106 . With each batch size, edges are added to the graph in steps, until the entire graph is processed. The figure for arithmetic mean of iterations is similar.
  • 7. 7 On average, on all graphs, the scaled 1/N-fill strategy seems to perform the best, as shown in figures 4.4 and 4.5. Based on GM-RATIO comparison [4], the relative iterations between zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill is 1.00 : 1.07 : 1.10 : 0.93 for all batch sizes. Hence, 1/N-fill is 3% faster (1.03x) than scaled zero-fill, zero-fill is 7% faster (1.07x) than 1/N-fill, and scaled 1/N-fill is 7% faster (1.08x) than zero-fill. The comparison of relative iterations for specific batch sizes is shown in figure 4.5. Here, GM-RATIO is obtained by taking the geometric mean (GM) of iterations taken at different stages of the graph, on each graph, with each batch size. Then, GM is taken for each batch size, across all graphs. Finally, GM is taken for all batch sizes, and a ratio is obtained relative to the zero-fill strategy. Based on AM-RATIO comparison [4], the relative iterations between zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill is 1.00 : 1.03 : 1.07 : 0.92 (all batch sizes). Hence, 1/N-fill is 4% faster (1.04x) than scaled zero-fill, zero-fill is 3% faster (1.03x) than 1/N-fill, and scaled 1/N-fill is 8% faster (1.09x) than zero-fill. AM-RATIO is obtained in a process similar to that of GM-RATIO, except that arithmetic mean (AM) is used instead of GM. Figure 4.4: Geometric mean of iterations taken on all the seven temporal graphs, for static PageRank, along with incremental PageRank computation with each of the rank adjustment strategies: zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill. This is done with batch sizes ranging from 103 to 107 . Since batch size is limited by the total number of temporal edges of a graph, for large batch sizes only large graphs are considered. The figure for arithmetic mean of iterations is similar.
  • 8. 8 Figure 4.5: Relative GM iterations taken on all the seven temporal graphs, for static PageRank, along with incremental PageRank computation with each of the rank adjustment strategies: zero-fill, 1/N-fill, scaled zero-fill, and scaled 1/N-fill. This is done with batch sizes ranging from 103 to 107 . The figure for relative AM iterations is similar. 5. Conclusion Among the four studied rank adjustment strategies for dynamic PageRank, scaled 1/N-fill appears to be the best. Also note that with the scaled 1/N-fill strategy (also scaled zero-fill, but it is slower), it is possible to skip PageRank computation on unaffected vertices, as long as the graph has no affected dead ends (including dead ends in the old graph). The scaled 1/N-fill rank adjustment strategy, which is commonly used for dynamic PageRank [5], is thus the way to go. The link to source code, along with data sheets and charts, for rank adjustment strategies [6] on dynamic (temporal) graphs is included in references. References [1] A. Langville and C. Meyer, “Deeper Inside PageRank,” Internet Math., vol. 1, no. 3, pp. 335–380, Jan. 2004, doi:
  • 9. 9 10.1080/15427951.2004.10129091. [2] J. J. Whang, A. Lenharth, I. S. Dhillon, and K. Pingali, “Scalable Data-Driven PageRank: Algorithms, System Issues, and Lessons Learned,” in Euro-Par 2015: Parallel Processing, vol. 9233, J. L. Träff, S. Hunold, and F. Versaci, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2015, pp. 438–450. [3] J. Leskovec and A. Krevl, “SNAP Datasets: Stanford Large Network Dataset Collection,” Jun. 2014. [4] S. Sahu, K. Kothapalli, and D. S. Banerjee, “Adjusting PageRank parameters and Comparing results,” 2021. [5] P. Desikan, N. Pathak, J. Srivastava, and V. Kumar, “Incremental page rank computation on evolving graphs,” in Special interest tracks and posters of the 14th international conference on World Wide Web  - WWW ’05, New York, New York, USA, May 2005, p. 1094, doi: 10.1145/1062745.1062885. [6] S. Sahu, “puzzlef/pagerank-dynamic-adjust-ranks: Comparing strategies to update ranks for dynamic PageRank (pull, CSR).” https://github.com/puzzlef/pagerank-dynamic-adjust-ranks (accessed Aug. 31, 2021).