In this section, we apply the framework from Section~\ref{sec:bayes}
and~\ref{sec:active} on synthetic graphs and cascades to validate the Bayesian
approach as well as the effectiveness of the Active Learning heuristics.

We started with using the library PyMC to sample from the posterior distribution
directly. This method was shown to scale poorly with the number of nodes in the
graph, such that graphs of size $\geq 100$ could not be reasonably be learned
quickly. In Section~\ref{sec:appendix}, we show the progressive convergence of
the posterior around the true values of the edge weights of the graph for a
graph of size $4$.

In order to show the effect of the active learning policies, we needed to scale
the experiments to graphs of size $\geq 1000$, which required the use of the
variational inference procedure. A graph of size $1000$ has $1M$ parameters to
be learned ($2M$ in the product-prior in Eq.~\ref{eq:gaussianprior}). The
maximum-likelihood estimator converges to an $l_\infty$-error of $.05$ for most
graphs after having observed at least $100M$ distinct cascade-steps.

We therefore used the Blocks~\cite{blocks} framework, written on top of Theano
for highly efficient SGD routines with minimal memory overhead. By encoding a
cascade step as a tuple of two binary vectors, one for the infected nodes and
one for the susceptible nodes, the variational inference objective can be
written as a sum of two matrix multiplications, which Theano optimizes for
on GPU.

baseline

fair comparison of online learning

graphs/datasets

bullshit
