<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Tunable Streaming Graph Embeddings at Scale</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Serafeim Papadias</string-name>
          <email>s.papadias@tu-berlin.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Technische Universita ̈ t Berlin supervised by Prof. Volker Markl</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2020</year>
      </pub-date>
      <abstract>
        <p>An increasing number of real-world applications require machine learning tasks over large-scale streaming graphs, where nodes and edges are continuously being added or deleted. Graph embeddings have been widely used for solving such tasks by capturing the graph structure and features into a low-dimensional latent space. However, current approaches have one or more of the following disadvantages: (i) they are designed for either static or dynamic graphs and thus, need retraining after each graph change or periodically updating the embeddings after each snapshot arrival, (ii) they fail to scale to today's size of graphs composed of billions of nodes, or (iii) yet the ones devised for streaming graphs perform redundant retraining computations by mandating continuous embedding updates even if the accuracy is not improved. The goal of this thesis is to overcome the abovementioned problems by devising tunable streaming methods that can scale to massive graphs. We envision an end-to-end ML streaming system that achieves that goal and provides users with abstractions to easily de ne their own streaming embedding algorithms.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>Graphs are omnipresent in various domains such as
social media, transportation, nance, IoT, and biological
networks. Typically, real-world graphs are inherently dynamic,
entailing continuous additions and deletions of vertices and
edges. The frequency of these graph updates lies on a
spectrum. In dynamic graphs, updates appear in batches as
graph snapshots and are applied periodically. In streaming
graphs, updates arrive spontaneously and are incorporated
on-the- y. For instance, social networks that model
friendships between users are highly dynamic, while citations
networks modelling relations among scholars in academic
networks are less dynamic. Many real-world applications, such
as news recommendation or crime detection, can be
modeled as machine learning (ML) tasks over streaming graphs.</p>
      <p>Characteristic tasks include vertex classi cation, link
prediction, link reconstruction, topic modeling, and, community,
anomaly, fraud, and outlier detection.</p>
      <p>A very popular and e ective technique for solving such
ML tasks are graph node embeddings (a.k.a network
representation learning). Given a graph G = (V; E) with n nodes,
a graph embedding maps each node v 2 G to a compact
feature vector in a lower k dimentional space (k n), which
captures graph structure and properties in the vicinity of
v. These vectors are derived by optimizing objective
functions preserving geometric relationships among graph nodes.
Computing embeddings is a crucial problem by itself, as they
serve as inputs to downstream ML tasks mentioned above.</p>
      <p>
        The frequency of updating the embedding vectors plays a
signi cant role on runtime performance and accuracy, and
should be driven by the subsequent ML task. For example,
critical downstream applications, such as anomaly detection,
should instantly react to graph changes for capturing all
anomalies; hence, their input embeddings must constantly
remain up-to-date for producing accurate results. For the
above scenario, static embedding methods, such as [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], are
unsuitable, as they need to retrain embeddings from scratch
after each graph change. Dynamic techniques, such as [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
are not su cient either, as they update embeddings
periodically after each snapshot arrival; hence, fall short of
discovering anomalies appearing during the idle period between
two graph snapshots. Even though streaming algorithms [
        <xref ref-type="bibr" rid="ref10 ref7">7,
10</xref>
        ] re ne the embedding vectors after every graph update,
this can be potentially unecessary as graph structure may
not be substantially altered to a ect the accuracy of the
downstream ML task. Thus, anomaly detection and
similar continuous ML tasks dictate exible streaming solutions
that are tunable: they can adjust the frequency with which
the embeddings are being updated.
      </p>
      <p>
        Nowadays, real-world graphs not only dictate (tunable)
streaming algorithms due to their ever-changing nature, but
also scalable solutions because of their massive size.
However, the majority of existing embedding techniques, either
the ones concerning static graphs [
        <xref ref-type="bibr" rid="ref11 ref12 ref3 ref9">3, 9, 11, 12</xref>
        ] or the ones
designed for dynamic graphs [
        <xref ref-type="bibr" rid="ref10 ref6 ref7">6, 7, 10</xref>
        ], are centralized; hence,
they do not scale on massive graphs. Ideally, scalability
should be achieved through the distribution of processing
on clusters of commodity machines; thus, avoiding
solutions that utilize expensive servers machines with several
terabytes of main memory or una ordable GPUs. Few
available scalable graph embeddings systems [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] exist; however,
they are unable to operate on evolving graphs. Thus, there
is a lack of solutions that can both achieve scalability and
conduct streaming graph embedding processing.
      </p>
      <p>
        As ML and graph embeddings in particular become more
and more popular there is a need for systems facilitating
the development of such algorithms by hiding the system
complexity from the users. For instance, how the system
distributes the processing of de ned algorithms should be
agnostic to the users. There are few systems with this goal:
they provide primitives for distributed random walk
computation on static graphs [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] or for graph neural network
computation [
        <xref ref-type="bibr" rid="ref14 ref15">14, 15</xref>
        ]. However, no such comprehensive
system for (tunable) streaming graph embeddings exists.
      </p>
      <p>In this thesis, we strive to: (i) devise tunable streaming
methods that generate embeddings incrementally by
adjusting the frequency of vector updates, (ii) build a scalable
solution which processes streaming embedding algorithms
in a distributed manner, and (iii) provide abstractions that
ideally incorporate distinct classes of streaming embedding
methods. Our goal is to synthesize these solutions into
Kaixis1, a novel end-to-end system, capable of bridging the
gap between streaming and distributed embedding methods.</p>
    </sec>
    <sec id="sec-2">
      <title>RELATED WORK</title>
      <p>
        Representation learning on graphs received huge attention
from researchers in the past few years. There are three main
categories of graph embeddings based on: (a) random-walks,
(b) matrix-factorization, and (c) deep learning. In what
follows, we focus on the rst category as the other two incur
extremely high costs rendering them unsuitable for
streaming scenarios, i.e., deep learning-based train directly on the
whole graph and factorization-based su er from expensive
matrix operations [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. We mainly review random walk-based
(dynamic) network embedding algorithms and systems.
      </p>
      <p>
        Walk-based Algorithms. Embedding methods based
on random walks mainly consist of two phases: the
random walking that explores, samples and captures certain
properties of the graph, and the training that subsequently
ingests the produced random walks and trains embedding
vectors e.g., using the well-known Skip-Gram [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] model.
Depending on the random walk type, di erent properties
are captured. Speci cally, DeepWalk [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] performs
truncated random walks to preserve rst-order proximities in
a graph, whereas node2vec [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] deploys biased second-order
walks capturing second-order proximities. LINE [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
optimizes an objective function that preserves both rst-order
and second-order proximities while deriving the embedding
vectors. GraRep [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] captures higher-order proximities in the
nal embedding vectors. GraphCSC [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] deploys
centralitybased walks capable of learning embeddings that preserve
graph characteristics, such as degree and betweenness, and
nally aggregates them into one vector. Nevertheless, all
the techniques above are designed for static graphs; hence,
are unable to adapt in streaming scenarios that we focus on.
      </p>
      <p>
        Interestingly enough, only [
        <xref ref-type="bibr" rid="ref10 ref7">7, 10</xref>
        ] address the problem of
streaming graph embeddings. In [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], a rather ad-hoc in
uence propagation model is used for locating nodes whose
embedding vector is in uenced by a graph change (either
addition or deletion). Also, a vertex stream is assumed, i.e.,
each new node arrives along with its complete adjacency list,
which is a limitation. In [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], a method that incrementally
1From the turkish word Kayikci; the owner of a shing boat.
Stateful Walker
      </p>
      <p>Random Walker</p>
      <p>Training Monitor
Walk Storage</p>
      <p>Embedding Trainer
Embedding Primitives</p>
      <p>Graph ML Library</p>
      <p>QoS &amp; Results
Task Trainer
maintains rst and second-order random walks in a
streaming graph is proposed; however, it is centralized and lacks of
theoretical guarantees of correctness.</p>
      <p>Walk-based embedding algorithms fall short mainly in two
crucial aspects. First, they incur computational costs
proportional to the number of deployed walks; rendering them
insu cient for massive graphs, especially the widespread
centralized solutions. Instead, massively-parallel and ideally
cost-e ective solutions, such as distributing tasks into
clusters of commodity machines, are required. Secondly, there is
no well-established streaming walk-based technique, which
has robust theoretical analysis. In contrast, we aim for
(tunable) streaming and distributed walk-based embeddings that
are also theoretically established.</p>
      <p>
        Walk-based Systems. KnightKing [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] is a distributed
system speci c for computing random walks on static graphs.
It o ers a walker-centric computation model, which is able
to express various walk algorithms. Its extreme e ciency
is attributed to the rejection sampling it utilizes, especially
when computing cumbersome higher-order walks. However,
KnightKing is incapable of computing streaming random
walks, as it requires the whole graph in advance. Except
for academia, industry has also shown huge interest on
scalable systems for the graph neural networks (GNNs) [
        <xref ref-type="bibr" rid="ref14 ref15">14, 15</xref>
        ],
which are relevant to graph embeddings. Aligraph [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
provides primitive operators that abstract common concepts
among GNN algorithms, facilitating users in implementing
and deploying them. AGL [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] builts upon k-hop
neighborhoods2 and utilizes MapReduce and Parameters Servers to
speed up GNN training; a relatively straightforward task
due to the linear nature of GNNs. As far as we know,
there is no comprehensive system that provides primitives
for streaming embedding algorithms.
3.
      </p>
    </sec>
    <sec id="sec-3">
      <title>KAIXIS ARCHITECTURE</title>
      <p>In this section we introduce Kaixis, our envisioned
endto-end system for computing streaming random walk-based
graph embeddings on the y and at scale. Figure 1 shows the
system architecture consisting of seven main components: a
Graph ML Library, the Embedding Primitives, a Stateful
Walker, an Embedding Trainer, a Task Trainer, a Training
Monitor, and the Results and QoS module.</p>
      <p>The input of the system consists of continuous ML tasks,
such as anomaly detection, along with a graph stream source
and certain user-de ned requirements (e.g., accuracy &gt; 70%).
Kaixis perpetually computes tunable streaming graph
embedding vectors, which are subsequently forwarded as inputs
2For vertex v, the set of vertices reachable from v within at
most k steps.
to high stakes ML tasks. The output of the system
consists of (i) real-time results for the high-stakes tasks, and
(ii) quality of service (QoS) metrics, as depicted in Figure 1.
Kaixis addresses two types of users: end-users and
developers. End-users interact with the system through the Graph
ML Library for specifying their ML task and QoS
requirements. Developers use the exible Embedding Primitives
for de ning tunable streaming embedding algorithms. In a
nutshell, after users submit their queries, Kaixis follows
concrete steps. Namely, the Stateful Walker constantly explores
the evolving graph and keeps the stored random walks
upto-date. Subsequently, the Embedding Trainer updates the
existing embedding vectors on-the- y, based on the walks
received from the Stateful Walker. Then, the Task Trainer
uses the embeddings to produce query results. The Training
Monitor has the power to switch on and o either of the
Embedding and Task Trainer. It selectively enables retraining
of existing embeddings and/or ML task models only when
needed to avoid excessive computation. In the following, we
detail each component.</p>
      <p>Graph ML Library. End-users interact with Kaixis via
this library, which is a collection of possibly pre-con gured
algorithmic operators directly invoked without necessitating
hyper-parameter tuning. These operators solve tasks, such
as link prediction, anomaly detection, fraud detection,
outlier detection, graph reconstruction and vertex classi cation.
Embedding Primitives. Developers interact with Kaixis
through the Embedding Primitives, which enable them to
easily implement, integrate and deploy streaming
embedding methods, without having to worry about how the
distribution is handled by Kaixis. Additionally, any optimized
implementation of a primitive, also speeds up every method
that utilizes this primitive. Hence, Embedding Primitives
unify optimizations of distinct embedding methods.
Stateful Walker. Random walks are core concepts of
graph embeddings. A Stateful Walker in Kaixis, consists
of two parts: the Random Walker and the Walk Storage.
The former constantly explores the ingested graph stream
and produces new random walks for newly appearing nodes
or updates walks attributed to already existing nodes. The
Walk Storage unit is responsible for e ciently storing the
latest random walk corpus.</p>
      <p>Embedding Trainer. As shown in Figure 1, the random
walks produced (either newly formed or new parts of
modied ones) are forwarded to the Embedding Trainer to re ne
and output the latest embedding vectors by conducting
incremental training. In doing so, the trainer hosts a variety
of training algorithms in its artillery e.g., online Skip-Gram
and Stochastic Gradient Descent models.</p>
      <p>Task Trainer. The user's selected ML application e.g.,
anomaly detection, has to be executed in a continuous way.
We thus opt for online ML algorithms where the training of
the model is performed in an online fashion similarly with
the serving part. Kaixis deploys the Task Trainer to update
on-the- y the model of the speci ed ML task and nally
output the prediction results.</p>
      <p>Training Monitor. Both Embedding and Task Trainer
perform online training. However, it is important to note
that performing blindly online training, i.e., updating the
model after every single change in the streaming graph may
lead to unnecessary excessive computation and thus,
degrade the system's performance. Speci cally, the frequency
of Task Trainer should be large enough to satisfy the
userde ned requirements. The frequency of Embedding Trainer
should be driven by the downstream (possibly critical) ML
tasks, such that the embeddings are kept up-to-date. Thus,
the embedding training is not everlasting but tuned in
realtime by the Training Monitor. For instance, if the user wants
to detect outliers in an evolving graph, the embedding
vectors should be updated just as frequently as it is necessary
for capturing all outliers instantly. In other words, if an
update in the embedding vector does not yield any change in
the prediction results, it should not be performed to avoid
unnecessary computation.</p>
      <p>Results &amp; QoS. This component serves as a reporting
unit gathering results and QoS metrics of the ML task from
the Task Trainer. QoS consist of accuracy metrics, e.g., area
under the curve (AUC) and micro-F1 score, and performance
measurements, such as throughput and execution time.
4.</p>
    </sec>
    <sec id="sec-4">
      <title>THE RESEARCH ROAD AHEAD</title>
      <p>Our goal is to serve dynamic applications that can
leverage graph embeddings used for retrieving information from
an evolving graph. In essence, Kaixis extracts embeddings
from a graph stream in a tunable way and feeds them to
downstream ML tasks. The system can operate at the nest
granularity, i.e., always derive the latest vectors and train
the latest ML model of a task. However, its profound goal
is actually to avoid excessive training and instead strive for
continuously adjusting retraining frequency by monitoring
the QoS metrics.
4.1</p>
    </sec>
    <sec id="sec-5">
      <title>Research Challenges</title>
      <p>
        Realizing Kaixis is far from straightforward. Below, we
highlight ve research challenges:
(1) Streaming Random Walks. Maintenance of random
walks on evolving graphs should not compute all walks from
scratch after a graph update, but only revise the already
kept walk corpus. Most importantly, the re ned walk corpus
at time t + 1 should be statistically equivalent to the corpus
at time t. Equivalently, the updated walk corpus at time
t + 1 should have the same probability of being produced
as a corpus derived from scratch by totally recalculating
all the walks. Di erent policies can be used for updating
walks [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], but clearly much remains to be done; both on
the theoretical side for coming up with sound policies and
on the performance side via distribution.
(2) Scalable Random Walks. The huge magnitute and
the high dynamicity of nowadays graph data renders
centralized random walk calculation highly insu cient. Yang
et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] crafted a whole system solely dedicated to
distributed random walks computation. Adapting their ideas
to streaming graphs is far from trivial. One cannot a ord
to store the entire graph stream in a streaming setting. In
addition, one should carefully distribute the graph
on-they to facilitate the walk calculation by cluster nodes, while
avoiding excessive communication. Network communication
is too costly, therefore acute streaming graph partitioning
should ensure extremely scalable streaming random walks.
(3) Walk Storage Sharing. In graph node embeddings,
numerous random walks are created for each single vertex,
resulting in walk sets with overlapping parts. Since Kaixis
needs to maintain a random walk corpus, e ective techniques
that store overlapping walk parts only once are crucial. The
real challenge, is to come up with compression schemes for
succinct representation of the whole walk corpus. Ideally,
the compression should be lossless and enable processing of
walks in their compressed form without the need for
deserialization. Finally, the streaming setting increases the
complexity of the problem, as it dictates the possibility of
updating the walks while in compressed form.
(4) Monitoring. The Training Monitor is the brain of
our conceived system: It tunes the frequency of retraining
performed by either the Embedding Trainer or the Task
Trainer. A number of research questions arise, such as:
(i) when should the Training Monitor trigger the Embedding
and Task Trainers, e.g., periodically or based on a certain
reasonable mechanism, (ii) what is the impact of a trainer
that is disabled to the nal ML task result, and (iii) how each
speci c ML task chosen a ects the monitor's decisions, i.e.,
high stakes ML tasks would di er from non-critical ones.
Clearly, the monitor's behaviour is driven by downstream
ML tasks.
(5) Primitives. To facilitate users implementing,
integrating and deploying streaming embedding methods, Kaixis
should o er primitives that hide the implementation details
of how distribution is handled. Designing such primitives
is challenging as it implies breaking various embedding
algorithms down to \atoms". In Kaixis, primitives are
executed as extremely performant streaming and distributed
random walk-based operations. These abstractions o er the
potential for transparent optimizations, i.e., optimizations
to a primitive used by many algorithms, end up optimizing
them all in one shot.
4.2
      </p>
    </sec>
    <sec id="sec-6">
      <title>Research Plan</title>
      <p>To conclude, we present our research strategy for tackling
the aforementioned challenges and realizing Kaixis.</p>
      <p>Streaming and Scalable Random Walks. The rst
step is to design the Stateful Walker for calculating
streaming random walks using streaming graph partitioning and
distribution. To assist our goal we plan to use an e cient
and succinct walk storage representation. Finally, we plan
to establish the Stateful Walker theoretically by: (i) proving
the statistical equivalence of walk update policies, and (ii)
deriving complexity bounds for procedures updating walks.</p>
      <p>
        Monitored Embedding Training. On the one hand,
we plan to investigate relevant online training algorithms
proposed in the literature (e.g. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]) and thoroughly evaluate
them to decide which ones to incorporate in the Embedding
Trainer's artillery. On the other hand, we plan to design
the Training Monitor such that it con gures frequency of
retraining/updating embeddings, driven by the importance
of the downstream ML tasks; for high stakes tasks, this
frequency is larger. To achieve scalability, both the Embedding
Trainer and the Training Monitor should be carefully
conjured to operate in a fully distributed manner, also aiming
on minimizing communication between them.
      </p>
      <p>Powerful Primitives. Our perpetual goal along this
endeavour is to conjure expressive primitive abstractions that
facilitate users. Finally, we strive for devising e ective
optimizations for each primitive, as various methods enclosing
such a primitive will bene t simultaneously.</p>
      <p>Acknowledgments. The author would like to thank
Prof. Volker Markl and Dr. Zoi Kaoudi for their pristine
guidance, as well as Dr. Eleni Tzirita Zacharatou for her
invaluable feedback. This work was funded by the German
Ministry for Education and Research as BIFOLD - Berlin
Institute for the Foundations of Learning and Data (ref.
01IS18025A and ref. 01IS18037A).
5.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Cao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Lu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Q.</given-names>
            <surname>Xu</surname>
          </string-name>
          .
          <article-title>GraRep: Learning Graph Representations with Global Structural Information</article-title>
          . In CIKM, pages
          <volume>891</volume>
          {
          <fpage>900</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>H.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Yin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q. V. H.</given-names>
            <surname>Nguyen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Peng</surname>
          </string-name>
          , and
          <string-name>
            <given-names>X.</given-names>
            <surname>Li</surname>
          </string-name>
          .
          <article-title>Exploiting Centrality Information with Graph Convolutions for Network Representation Learning</article-title>
          .
          <source>In ICDE</source>
          , pages
          <volume>590</volume>
          {
          <fpage>601</fpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Grover</surname>
          </string-name>
          and
          <string-name>
            <surname>J. Leskovec.</surname>
          </string-name>
          <article-title>Node2vec: Scalable Feature Learning for Networks</article-title>
          .
          <source>In KDD, page</source>
          <volume>855</volume>
          {
          <fpage>864</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>N.</given-names>
            <surname>Kaji</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Kobayashi</surname>
          </string-name>
          .
          <article-title>Incremental Skip-gram Model with Negative Sampling</article-title>
          .
          <source>In EMNLP</source>
          , pages
          <volume>363</volume>
          {
          <fpage>371</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Lerer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Shen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Lacroix</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Wehrstedt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bose</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Peysakhovich. PyTorch-BigGraph</surname>
          </string-name>
          :
          <article-title>A Large-scale Graph Embedding System</article-title>
          . In SysML, page
          <volume>285</volume>
          {
          <fpage>296</fpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Dani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Liu</surname>
          </string-name>
          .
          <article-title>Attributed Network Embedding for Learning in a Dynamic Environment</article-title>
          . In CIKM, page
          <volume>387</volume>
          {
          <fpage>396</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>X.</given-names>
            <surname>Liu</surname>
          </string-name>
          , P.-C. Hsieh,
          <string-name>
            <surname>N. Du eld</surname>
          </string-name>
          , R. Chen,
          <string-name>
            <given-names>M.</given-names>
            <surname>Xie</surname>
          </string-name>
          , and
          <string-name>
            <given-names>X.</given-names>
            <surname>Wen</surname>
          </string-name>
          .
          <article-title>Real-Time Streaming Graph Embedding Through Local Actions</article-title>
          . In WWW, page
          <volume>285</volume>
          {
          <fpage>293</fpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mikolov</surname>
          </string-name>
          , I. Sutskever,
          <string-name>
            <given-names>K.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. S.</given-names>
            <surname>Corrado</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Dean</surname>
          </string-name>
          .
          <article-title>Distributed Representations of Words and Phrases and their Compositionality</article-title>
          .
          <source>In NIPS</source>
          , pages
          <volume>3111</volume>
          {
          <fpage>3119</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>B.</given-names>
            <surname>Perozzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Al-Rfou</surname>
          </string-name>
          , and
          <string-name>
            <surname>S. Skiena.</surname>
          </string-name>
          <article-title>DeepWalk: Online Learning of Social Representations</article-title>
          . In KDD, page
          <volume>701</volume>
          {
          <fpage>710</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>H. P.</given-names>
            <surname>Sajjad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Docherty</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Tyshetskiy</surname>
          </string-name>
          .
          <article-title>E cient Representation Learning Using Random Walks for Dynamic Graphs</article-title>
          . CoRR, abs/
          <year>1901</year>
          .01346,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Qu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , J. Yan, and
          <string-name>
            <given-names>Q.</given-names>
            <surname>Mei</surname>
          </string-name>
          . LINE:
          <string-name>
            <surname>Large-Scale Information Network Embedding. In</surname>
            <given-names>WWW</given-names>
          </string-name>
          , page
          <volume>1067</volume>
          {
          <fpage>1077</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Cui</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Zhu</surname>
          </string-name>
          .
          <article-title>Structural Deep Network Embedding</article-title>
          . In KDD, page
          <volume>1225</volume>
          {
          <fpage>1234</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>K.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Ma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bai</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Jiang. KnightKing: A Fast Distributed Graph Random Walk Engine. In</surname>
          </string-name>
          <string-name>
            <surname>SOSP</surname>
          </string-name>
          , page
          <volume>524</volume>
          {
          <fpage>537</fpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Song</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Ge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhou</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Qi</surname>
          </string-name>
          .
          <article-title>AGL: a Scalable System for Industrial-purpose Graph Machine Learning</article-title>
          . arXiv preprint arXiv:
          <year>2003</year>
          .02454,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>R.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Ai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and J.</given-names>
            <surname>Zhou. AliGraph: A Comprehensive Graph Neural Network Platform. VLDB</surname>
          </string-name>
          ,
          <volume>12</volume>
          (
          <issue>12</issue>
          ):
          <year>2094</year>
          {
          <fpage>2105</fpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>