<!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>
      <journal-title-group>
        <journal-title>Barcelona, Spain
* Corresponding author.
$ manospits@iit.demokritos.gr (M. Pitsikalis);
alevizos.elias@iit.demokritos.gr (E. Alevizos); ngiatrakos@tuc.gr
(N. Giatrakos); a.artikis@iit.demokritos.gr (A. Artikis)
 https://manospits.github.io/ (M. Pitsikalis);
http://users.softnet.tuc.gr/~ngiatrakos/ (N. Giatrakos);
https://users.iit.demokritos.gr/~a.artikis/ (A. Artikis)</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Towards Run-Time Adaptation of Complex Event Forecasting</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Manolis Pitsikalis</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Elias Alevizos</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nikos Giatrakos</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alexander Artikis</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>NCSR Demokritos</institution>
          ,
          <addr-line>Athens</addr-line>
          ,
          <country country="GR">Greece</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Technical University of Crete</institution>
          ,
          <addr-line>Chania</addr-line>
          ,
          <country country="GR">Greece</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>The American College of Greece</institution>
          ,
          <addr-line>Athens</addr-line>
          ,
          <country country="GR">Greece</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>University of Piraeus</institution>
          ,
          <country country="GR">Greece</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2025</year>
      </pub-date>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0003</lpage>
      <abstract>
        <p>Complex Event Forecasting (CEF) is a process whereby complex events of interest are forecast over a stream of simple events. CEF facilitates proactive measures by anticipating the occurrence of complex events. This proactive property, makes CEF a crucial task in many domains; for instance, in maritime situational awareness, forecasting the arrival of vessels at ports allows for better resource management, and higher operational eficiency. However, our world's dynamic and evolving conditions necessitate the use of adaptive methods. For example, maritime vessels adapt their routes based on weather or human-caused factors. CEF systems typically rely on probabilistic models, trained on historical data. This renders such CEF systems inherently susceptible to data evolutions that can invalidate their underlying models. To address this problem, we propose RTCEF, a novel framework for Run-Time Adaptation of CEF, based on a distributed, service-oriented architecture. We evaluate RTCEF on a real-world maritime use-case and our reproducible results show that our proposed approach has significant benefits in terms of forecasting performance without sacrificing eficiency.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;complex event forecasting</kwd>
        <kwd>run-time adaptation</kwd>
        <kwd>distributed architecture</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Complex Event Forecasting (CEF) is akin to Complex Event
Recognition (CER) [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ], but with a forward-looking
perspective. Both tasks operate on a stream of simple events,
while their output consists of Complex Events (CEs). For
example, in maritime situational awareness [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], the stream
of simple events would contain positional messages of
vessels, while the output stream would contain maritime CEs
such as fishing activities. The diference between CER and
CEF is that, in the former, elements of the output stream
refer to CE detections, while in CEF, elements of the output
stream refer to the probability of a CE happening in the
future. Consequently, CER enables reactive responses upon
CE detections, while CEF supports proactive measures by
anticipating future CEs. This proactive property renders
CEF systems highly desirable. CER and CEF applications
span diverse domains, such as maritime situational
awareness [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ] whereby CEs such as (illegal) fishing or vessel
rendezvous are detected or forecast over a stream of
maritime data; credit card fraud management [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ] whereby
frauds are detected or forecast over a stream of transaction
data; and so on.
      </p>
      <p>
        CEF operates over constantly evolving conditions.
Moreover, CEF systems rely on probabilistic models trained on
historical data [
        <xref ref-type="bibr" rid="ref7 ref8 ref9">7, 8, 9</xref>
        ]. This renders CEF systems inherently
susceptible to evolutions in the input that can invalidate
their underlying models. Additionally, as with the majority
of trainable models, CEF models have hyperparameters that
require fine tuning for optimal performance. Wayeb [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], a
state-of-the-art CEF engine, is no exception to the above.
      </p>
      <p>To address the above challenges we propose RTCEF an
open-source framework for Run-Time Adaptation of CEF
over constantly evolving data streams. RTCEF adopts a
distributed architecture comprising targeted services to
efectively (a) enable run-time update of CEF models with little
to no downtime, (b) ensure that transition between models
does not cause loss of ongoing forecasts. In other words,
RTCEF supports continuous adaptation to dynamic changes
in the input stream with little to no efect on eficiency.
Furthermore, RTCEF provides a trend-based policy which acts
as a decision making mechanism to distinguish whether
hyperparameter optimisation or CEF model retraining
without changing hyperparameters is the best way to maintain
accurate forecasts. We evaluate RTCEF on maritime
situational awareness using real-world maritime data, and our
results demonstrate that RTCEF has significant benefits for
CEF over constantly evolving conditions.</p>
      <p>The remainder of this paper is organised as follows. In
Section 2 we present the necessary background. Next, in
Section 3 we introduce offCEFand RTCEF, while in Section 4
we present our experimental setting, and analyse our results.
In Section 5 we mention works related to ours. Finally, in
Section 6, we summarise and discuss future directions.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Background</title>
      <p>
        CEF is a task that allows forecasting CEs of interest, such as
ifshing activities or vessel rendezvous, over an input stream
of simple events; e.g., timestamped position messages of
maritime vessels. Forecasts involve the occurrence of a
CE in the future accompanied by a degree of certainty [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
This behaviour is usually derived from stochastic models
that project into the future evolutions of the input that can
cause a detection of a CE. For the task of CEF, we utilise
Wayeb, a CEF engine introduced in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], which employs
symbolic automata as its computational model. The user
submits a query/pattern to Wayeb which is then compiled
into a symbolic, streaming automaton. This automaton
may be used to perform event recognition, i.e., to detect
instances of pattern satisfaction upon a stream of input
events. Whenever the automaton reaches a final state, a
complex event is reported as having occurred. In order
vessel ID
      </p>
      <p>speed
timestamp
start
5
1
&gt;
0
to perform forecasting, Wayeb constructs a probabilistic
model of the compiled automaton, by using part(s) of a
stream for training. The model allows us to infer, at any
given moment, the possible paths that the automaton may
follow in the future. By searching among the possible future
paths, we can estimate when the automaton is expected
to reach a final state and thus report a CE. The output of
Wayeb thus consists of two streams: a) one reporting the
detected events, and b) one reporting the forecasts of events
expected to occur in the future.</p>
      <p>
        Wayeb has clear, compositional semantics for the
patterns expressed in its language and can support most of the
common operators [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Wayeb’s patterns are expressed as
Symbolic Regular Expressions (SRE s), where terminal
expressions are Boolean expressions, i.e., logical formulae that
use the standard Boolean connectives of conjunction ‘∧’,
disjunction ‘∨’ and negation ‘¬’ on predicates [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Wayeb
SRE s are defined using the grammar below:
 ::= 1 + 2 (union) | 1 · 2 (concatenation)
| 1* (Kleene-star)| !1 (complement)
|  (Boolean expression)
1, 2 are regular expressions, and  is a Boolean
expression. The semantics of the above operators are detailed
in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Evaluation of SRE s on a stream of events requires
ifrst their compilation into symbolic automata. Transitions
in symbolic automata are labeled with Boolean expressions.
For a symbolic automaton to move to another state, it first
applies the Boolean expressions of its current state’s
outgoing transitions to the element last read from the stream. If an
expression is satisfied, then the corresponding transition is
triggered and the automaton moves to that transition’s
target state. For example, in maritime situational awareness,
a domain expert could use Wayeb’s language to specify a
pattern  := ( &gt; 10) · ( &gt; 10) for identifying
speed violations in specific areas where the maximum
allowed speed is 10 . This pattern is satisfied when there
are two consecutive events where a vessel’s speed exceeds
the threshold. The compiled automaton corresponding to 
is illustrated in Figure 1. For an input stream consisting of
the events in Table 1, the automaton would run as follows.
For the first three input events, the automaton remains in
state 0. After the fourth event, it moves to state 1 and after
the fifth event it reaches its final state, state 2, triggering
also a CE detection for  at timestamp = 5.
      </p>
      <p>
        To perform CEF, Wayeb needs a probabilistic description
for a symbolic automaton derived from a SRE . For this
purpose, Wayeb employs Prediction Sufix Trees (PSTs) [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ]–
...
...
      </p>
      <p>
        a form of Variable-order Markov Models. Variable-order
Markov Models, compared to fixed-order Markov models,
capture longer-term dependencies as in practice they
allow for higher order () values than the latter. Each node
in a PST contains a “context” and a distribution that
indicates the probability of encountering a symbol, conditioned
on the context. Figure 3 (top left) shows an example of a
PST. Each “symbol” of a PST corresponds to a predicate
of the automaton for which we want to build a
probabilistic model. For example, the predicate (&gt;10) may be
such a “symbol” for the pattern . The same predicate but
negated i.e., ¬(&gt;10) may be another such “symbol”.
Learning a PST from data is an incremental process that
adds new nodes corresponding to symbols only when
necessary [
        <xref ref-type="bibr" rid="ref11 ref5 ref6">11, 6, 5</xref>
        ]. The learning process involves two key
hyperparameters. First, the pMin ∈ [
        <xref ref-type="bibr" rid="ref1">0, 1</xref>
        ] hyper-parameter
which corresponds to a threshold determining which
symbols are deemed to be “too rare” to be taken under
consideration by the learning algorithm (symbols with a probability
of appearance less than pMin are discarded). Second, the 
hyperparameter is a symbol distribution smoothing
parameter.
      </p>
      <p>
        With the resulting PST, for every state  of an automaton
and the last  (order of the PST) symbols of the input stream,
we can calculate the waiting-time distribution (), that
is, the probability of reaching a final state in  transitions
from a state . Recall that a CE is detected whenever an
automaton reaches a final state. Figure 3 (middle and bottom
left) shows an example of an automaton and the
waitingtime distributions learnt from a training dataset. Wayeb
then performs CEF as follows. Given the current state 
of an automaton, using , we compute the probability of
reaching a final state (  ) within the next  transitions
(or, equivalently, input events). If  exceeds a confidence
threshold  fc ∈ [
        <xref ref-type="bibr" rid="ref1">0, 1</xref>
        ], Wayeb emits a “positive” forecast
(denoting that the CE is expected to occur), otherwise a
“negative forecast” (no CE is expected) is emitted.
      </p>
      <p>A forecast for a CE is characterised as a True Positive
(TP ) if a positive forecast (i.e., the CE will occur in the
future) was emitted and the CE indeed occurred or,
respectively, as a False Positive (FP ) if the CE did not occur. A
forecast for a CE is characterised as a True Negative (TN )
if a negative forecast is emitted (i.e., the CE will not occur
in the future) and the CE does not occur or, respectively,
as a False Negative (FN ) if the CE does occur. Note that a
forecast cannot be evaluated as TP , FP , TN or FN upon
its emission. It can be evaluated as such after the next 
input events have arrived, at which point we can know
whether the forecast event did occur or not. Since Wayeb
performs both CEF and CER, forecasts are evaluated
on-thelfy. Using these classifications of forecasts the performance
of CEF may be quantified through Matthew’s Correlation
Coeficient ( MCC ), which is defined as follows:
  =√︀Precision × Recall × Specificity ×</p>
      <p>
        √
− FDR × FNR × FPR × FOMR
NPV
(1)
where NPV = TNT+NFN , Specificity = TNT+NFP , FDR =
1 − Precision, FNR = 1 − Recall, FPR = 1 − Specificity
and FOMR = 1− NPV . Precision and Recall are defined as
usual. Therefore, MCC ∈ [
        <xref ref-type="bibr" rid="ref1">− 1, 1</xref>
        ] estimates the agreement,
in which case MCC = 1, (or disagreement, where resp.
MCC = − 1) between the emitted forecasts and
observations. In contrast to F1-Score, which takes into account only
positive instances, MCC takes into account both positive
and negative instances. Since Wayeb produces both positive
and negative forecasts MCC is a fitting choice.
      </p>
      <p>Given the above, the hyperparameters required for
training Wayeb models, i.e., PSTs, are the following. The
maximum order  of the PST, along with the symbol
retaining probability threshold pMin, the symbol distribution
smoothing parameter  and the confidence threshold  fc .
The naive way to train a Wayeb PST is to manually fix the
values of these hyperparameters and then select a training
dataset from which a PST may be extracted. This process
can be performed ofline and Wayeb may then employ the
learnt PST for online event forecasting. As we explain below,
this is not the proper way to go.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Run-Time CEF Adaptation</title>
      <p>We first present offCEF, a baseline framework for
hyperparameter optimisation of CEF under the stationarity
assumption, i.e., assuming that there are no evolutions in the input
that might invalidate the CEF model. Subsequently, we
present RTCEF, which addresses all challenges of run-time
CEF.</p>
      <sec id="sec-3-1">
        <title>3.1. CEF Under the Stationarity Assumption</title>
        <p>Under the stationarity assumption, a single PST, produced
through training on some historical, static dataset, will
sufifce for future input. Consequently, in this setting, we may
use a framework for ofline hyperparameter optimisation,
hereafter offCEF. The aim of offCEF is the identification
of an optimal configuration  that yields the best
performance for Wayeb, quantified by the MCC score (see
Equation (1)). A configuration  is defined as follows:
 = [,  fc , pMin,  ]
e
u
l
a
v
)
x
(
a
next micro-benchmark</p>
        <p>
          x
(c) The acquisition function
chooses next
microbenchmark  of high
uncertainty.
(d) A GPR concludes after
a number of BO
microbenchmarks.
where ,  fc , pMin and  are Wayeb’s hyperparameters
(see Section 2) with their domain empirically set as:
 ∈ [
          <xref ref-type="bibr" rid="ref1 ref5">1, 5</xref>
          ]
pMin ∈ [0.0001, 0.01]
Given the infinite parameter combinations, exhaustive
search is computationally prohibitive. Furthermore, due
to Wayeb’s complexity, performance for a given parameter
set cannot be known beforehand. Consequently, to find
the optimal configuration  we employ Bayesian
optimisation (BO) [
          <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
          ] i.e., a stochastic method for optimising
expensive-to-evaluate objective functions that are complex
or cannot be described by analytic formulae. In our work,
the objective function is defined as  () = MCC , where
MCC  denotes the MCC score of Wayeb given
configuration .
        </p>
        <p>
          The goal of BO is to find the vector of Wayeb’s
hyperparameters that maximises CEF performance, using a minimal
set of Wayeb training-test runs, termed ‘micro-benchmarks’,
as training samples. Unlike other optimisation methods [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]
BO does not require a high number of micro-benchmarks
or an analytical formula [
          <xref ref-type="bibr" rid="ref12 ref13 ref6">12, 13, 6</xref>
          ]. BO employs a
probabilistic model—called surrogate model—to approximate the
unknown objective function, in our case CEF performance
quantified by MCC , and iteratively refines this model. We
employ a Gaussian Process Regressor (GPR) as the surrogate
model. Initial beliefs about the objective function must be
formulated before observing any data. In BO, priors are
often specified for the mean and covariance functions of the
Gaussian Process model. For example, a prior belief might
suggest that the function is smooth and lies within a certain
range of values. Priors are represented as:
 () ∼
        </p>
        <p>GP( 0(), 0(, ′))
where  0() and 0(, ′) are the prior mean and covariance
(kernel) functions, respectively.</p>
        <p>Every time we observe a new micro-benchmark and
collect CEF performance metrics by training and testing Wayeb
given a configuration , we acquire a new training sample
(, MCC ), to fit on the GPR, thereby updating our
posterior belief in light of new evidence. The posterior
distribution represents our updated knowledge about Wayeb’s
performance and after observing  new training samples,
denoted by Data, the posterior is given by:
 () | Data ∼</p>
        <p>
          GP( (), (, ′))
 () and (, ′) being the posterior mean and
covariance functions updated through Bayesian inference [
          <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
          ].
        </p>
        <p>For selecting training samples, we start by randomly
picking points from the input parameter domain, and then
execute the respective micro-benchmarks and observe Wayeb’s
Input
stream
Datasets</p>
        <p>Data
collection
Collector</p>
        <p>Model Factory
Complex event forecasting</p>
        <p>Wayeb
Models</p>
        <p>Reports
Commands</p>
        <p>Scores</p>
        <p>Controller
Optimisation and re-training
Output
stream
Change
Detector
Instructs
Metrics
monitoring
MCC scores. We call this initial set of configurations
, paired with MCCc scores, . Subsequently, using
Bayesian inference, the first posteriors are calculated and
the expected result is illustrated by comparing the prior in
Figure 2a against the posterior in Figure 2b.</p>
        <p>After , the next micro-benchmarks are selected
using an acquisition function (). The acquisition function
guides the selection of the next evaluation point by
quantifying the utility of sampling a particular point  in the
input space i.e., the domain of Wayeb’s configurations. ()
balances exploration and exploitation. Exploration involves
sampling  configurations in the input space that are not
yet well-explored or that have high uncertainty associated
with them, while exploitation involves sampling  points
that are likely to yield the best objective function values
exploiting the current knowledge. For instance, in the plot
of Figure 2c the acquisition function chooses the point in the
input domain with the highest uncertainty. Diferent
acquisition functions introduce stochasticity in the BO process
by incorporating uncertainty estimates from the
probabilistic model. BO concludes either when a micro-benchmark
budget is depleted or when the value of  () converges.
Figure 2d illustrates a GPR with minimal uncertainty around
its mean values, after the microbenchmark budget has been
depleted.</p>
        <p>Figure 3 illustrates the architecture of offCEF,
comprising a Model Factory alongside a Controller. The Model
Factory includes a Wayeb Server that utilises historical training
and validation datasets to construct and evaluate PSTs. The
Controller, includes the BO optimiser which is executed
ofline on a historical dataset. The Controller initialises BO
by providing a set of configurations i.e.,  vectors to the
Model Factory, which, respectively, conducts the prescribed
micro-benchmarks, saves temporarily the candidate PSTs,
and sends reports to the Controller. The Controller will use
these reports for updating the GPR surrogate model of BO.</p>
        <p>offCEF deploys the PST that is expected to maximise
MCC based on the hyperparameter combination value
vector  calculated by BO. On the other hand, offCEF
suffers from several disadvantages: (i) it drives its decisions
by attributing equal importance to cumulative performance
metric statistics, while in a streaming setup we often need
to take into consideration only a sliding window of recent
measurements and defy obsolete ones; (ii) it cannot optimise
CEF hyperparameters at run-time which is a crucial
limitation, since fluctuations in the input’s statistical properties
in streaming settings is the norm rather than an infrequent
situation; (iii) it cannot distinguish whether the
hyperparameters for training PSTs should be adjusted through BO or
if it is only the Wayeb’s PST that should be retrained,
without changing hyperparameters. RTCEF, presented below,
addresses these issues.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. CEF Over Evolving Data Streams</title>
        <p>We propose RTCEF, which is built with three major goals
in mind. First, it updates at run-time PSTs according to
input data evolutions; second, it performs CEF without
disruptions, i.e., PST updating does not cause delays on CEF;
and third, it does not overuse resources for producing new
PSTs. The architecture of RTCEF consists of five main
services, acting as Kafka producers and consumers, running
synergistically to ensure undisrupted CEF and dynamic PST
retraining or hyperparameter optimisation. Figure 4
illustrates these services and the communication links between
them. Synchronisation of the various services is denoted by
dotted arrows in Figure 4. Below we describe in detail the
services comprising our framework.</p>
        <p>Change Detector. In order to determine whether the MCC
score of Wayeb has deteriorated, the quality of its forecasts
must be monitored. This task is handled by the Change
Detector service (right of Figure 4) which consumes MCC
scores from the ‘Reports’ topic and, produces ‘retrain’ or
‘optimise’ instructions as indicated in Algorithm 1. Essentially,
a retrain instruction requests a new PST for Wayeb
without changing training hyperparameters. An optimisation
instruction, requests a new PST, produced through
hyperparameter optimisation. Note that while hyperparameter
optimisation will provide the best possible hyperparameters,
it can be a costly procedure. On the other hand, retraining
on an updated dataset is a cheaper process.</p>
        <p>The decision process of Algorithm 1 is summarised in
Figure 5, while an illustrative execution of Algorithm 1 for
maritime situational awareness is presented in Figure 6.
We describe Algorithm 1 following the example execution
of Figure 6. The Change Detector continuously consumes
MCC scores from Wayeb and retains the  most recent
MCC scores to evaluate the performance trend. In the
example of Figure 6, Wayeb begins with a PST, referred
to as PST0 , created using configuration 0 . The Change
Detector records the MCC Score at 0, however at this point
no decision is made since fewer than  = 3 scores have been
collected. Once the Change Detector has at least  scores, it
computes the first degree polynomial () =  +  (a
trend line) so that  and  minimise the following squared
error:</p>
        <p>=
 = ∑︁[︀ ( ) −  ]︀ 2</p>
        <p>=0
for  =  and  = score− + , where  is an increasing
integer denoting the ID of the current score (lines 9, 10). If
the slope () of () is negative, indicating decrease in
performance, and less than a max _slope ∈ R− parameter
(line 11) then a ‘retrain’ instruction is produced (lines
1517). In the example, by week 2, the Change Detector has
MCC scores for 0, 1, 2. Using these points, the Change
Detector computes the trend line 2 with a slope  2 =
− 0.04 which is steeper than max _slope = − 0.02. To
remedy this behaviour, the Change Detector issues a retrain
instruction. As a result, a new PST, referred to as PST2 ,
is created using the same configuration as PST 0 , i.e., 0 .
This occurs because retraining updates the PST without
optimise
retrain
no op
MCCi &lt;
min_score
grace &gt; 0</p>
        <p>NO (ai, bi) = computeTrend(</p>
        <p>[MCCi-k,.., MCCi])
YES
ai &lt; max_slope
NO
modifying Wayeb’s hyperparameters.</p>
        <p>Intuitively, forecasting performance deterioration i.e.,
 &lt; max _slope, shortly after a new PST deployment,
indicates that the new PST failed and hyperparameter
optimisation should thus be performed. We place each newly
deployed PST in a grace period (lines 14,17). A grace
period starts after a PST is deployed, and ends after grace_n
performance reports. If the performance of a PST under
a grace period deteriorates ( &lt; max _slope) then a
hyperparameter optimisation instruction is produced (lines
12,13). If on the other hand,  &lt; max _slope is satisfied
after grace_n reports, then a ‘retrain’ instruction is produced
for which a new “grace” period begins. In the example of</p>
        <sec id="sec-3-2-1">
          <title>Algorithm 1 Change Detector service</title>
          <p>Require: , grace_n, _, min_score
1: scores ← []
2: grace ← − 1
3: while True do
4: score ← consume(Reports)
5: scores .update(score, k)
6: pit _cond ← score &lt; min_score
7: slope_cond ← False
8: if grace ≥ 0 then grace ← grace − 1
9: if len(||)&gt; 2 then
10: (, ) ← ift_trend( scores )
11: slope_cond ←  &lt; max _slope
12: if (slope_cond and grace ≥ 0) or pit _cond then
13: send(“instructions”, “optimise”)
14: grace ← grace_n ◁ New grace period
15: else if slope_cond then
16: send(“instructions”, “retrain”)
17: grace ← grace_n ◁ New grace period
Figure 5 a grace period begins at week 2 and will last for
grace_n = 4 reports, i.e., until 5. While PST2 shows
improvement at 3, at 4 performance drops again. The
performance drop is also confirmed by the slope of -0.05
computed by the Change Detector using the MCC scores from
2 to 4. Since the slope  4 is again below max _slope,
but this time a grace period is active, the Change Detector
issues a hyperparameter optimisation instruction instead of
retraining. Consequently, a new PST4 is produced through
hyperparameter optimisation, resulting in an updated
conifguration 4 , and a new grace period starting at 4.
Finally, to avoid pitfalls whereby the score drops suddenly
very low, we employ an additional condition: if the score of
a report is lower than a threshold min_score (line 6) then
the Change Detector asks directly for ‘optimisation’ and
omits a ‘retrain’ instruction.</p>
          <p>Wayeb. The CEF part of RTCEF (top of Figure 4) contains
Wayeb. In addition to reading timestamped simple events
from the input stream and producing an output stream of
CE forecasts, Wayeb produces a stream of CEF forecasting
performance reports and continuously monitors the
‘Models’ topic, which contains updated PSTs. When a new PST is
made available in the Models topic, Wayeb replaces its PST
with the latest available version. Recall that, to produce a
CE forecast, Wayeb will utilise both the automaton
corresponding to the symbolic regular expression defining a CE
and the PST. The automaton retains information about the
current state () as well as the next states that can lead to an
accepting run, while the PST is used for producing the next
symbol probabilities and therefore the waiting-time
distribution for state  (). Notably, the process of replacing
the PST with a new version can be executed in linear time
with respect to the number of runs and in practice happens
in negligible time.</p>
          <p>Collector. Training datasets evolve over time. Therefore,
the data collection part of RTCEF (left of Figure 4) includes
the Collector service, a data processing module organising
and storing subsets of the input stream that may be used
for retraining or hyperparameter optimisation. Therefore,
the Collector service consumes the input stream (see ‘Data
collection’ in Figure 4), in parallel to Wayeb, and stores
subsets of it in time buckets. The Collector gathers data in
a sliding window manner, emitting a new dataset version to
the ‘Datasets’ topic as soon as the last bucket in the range is
full. Old buckets that no longer serve a purpose for training,
are deleted for space economy.</p>
          <p>Controller. The Controller service, based on the
instructions of the Change Detector, initialises hyperparameter
optimisation procedures, during which it also serves as the
Bayesian optimiser, or retraining procedures, where it
supplies Wayeb configurations. When optimisation is required,
the Controller initiates the following three phases.</p>
          <p>
            Initialisation phase: The Controller sets up the Bayesian
optimiser. Similar to [
            <xref ref-type="bibr" rid="ref15">15</xref>
            ], we leverage micro-benchmarks
from previous runs. Using the retain_percentage ∈
[
            <xref ref-type="bibr" rid="ref1">0, 1</xref>
            ] parameter, we uniformly keep ⌊retain_percentage *
all _samples ⌋ observations from the last executed BO
run, where all _samples is the total number of
microbenchmarks. This allows us to accelerate optimisation, and
retain useful information from previous runs.
          </p>
          <p>Step phase: The Controller issues ‘train &amp; test’ commands
along with the hyperparameters suggested by the
acquisition function—in our case the acquisition function is a
combination of lower confidence bound, expected
improvement, and probability of improvement. After each ‘train
&amp; test’ command the Controller awaits the corresponding
performance report i.e., the value of the f (c) objective
function. Upon receiving the performance report, the optimiser
is updated with the new sample and the hyperparameters
for the next step are suggested. The step phase ends when
all micro-benchmarks are completed or if convergence is
achieved.</p>
          <p>Finalisation phase: Once optimisation concludes and the
best hyperparameters are acquired, the Controller sends
a finalisation message containing the ID of the best PST.
Additionally, the Controller updates the previously best
hyperparameters with the newly acquired ones, ensuring
availability of the latter for subsequent ‘retrain’ instructions.
Model Factory. Similar to offCEF the primary function
of the Model Factory service is to train, test and send
upto-date PST to Wayeb. To do this, it will assemble and use
the latest dataset version produced by the Collector. Upon
receiving a ‘train’ command, the Model Factory trains a PST
on the latest dataset and shares this new PST version with
Wayeb.</p>
          <p>For PST production through hyperparameter
optimisation, upon receiving an ‘initialisation’ message, the Model
Factory ‘locks’ the most recent assembled dataset so that
the same dataset is used throughout the optimisation
procedure. Next, during the ‘step’ phase, the Model Factory
trains, saves and tests candidate PSTs on the locked dataset
and reports MCC scores to the Controller. Finally, when
the BO ‘finalisation’ message, including the ID of the best
performing PST, is received, the Model Factory sends the
best PST to Wayeb. It is only at this point, that Wayeb will
stop momentarily for PST replacement.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Experimental Evaluation</title>
      <p>We evaluate our framework on maritime situational
awareness, where maritime CEs of interest are forecast over real
vessel position streams.</p>
      <sec id="sec-4-1">
        <title>4.1. Experimental Setup</title>
        <p>
          We use a real-world, publicly available, maritime dataset
containing 18M spatio-temporal positional AIS (Automatic
RTCEF offCEF
RTCEF offCEF
Identification System) messages transmitted between
October 1st 2016 and 31st March 2016 (6 months), from 5K
vessels sailing in the Atlantic Ocean around the port of
Brest, France [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. AIS allows the transmission of
information such as the current speed, heading and coordinates
of vessels, as well as, ancillary static information such as
destination and ship type. We evaluate RTCEF on a
maritime pattern, which expresses the arrival of a vessel at the
main port of Brest [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. This pattern is derived after
discussions with domain experts from a large, European maritime
service provider [
          <xref ref-type="bibr" rid="ref17 ref4">4, 17</xref>
          ]:
port := (¬InPort (Brest ))* · (¬InPort (Brest )) ·
(¬InPort (Brest )) · (InPort (Brest ))
(2)
InPort (Brest ) is true when a vessel is within 5 km from
the port of Brest. Recall that ‘¬’, ‘* ’ and ‘· ’ correspond to
negation, iteration (Kleene star) and sequence respectively
(see Section 2). Consequently, port is satisfied if a sequence
of at least three events occur. At least two require the vessel
to be away from the port—thus limiting false positives from
noisy entrances—, while the last denotes that the vessel has
entered the port. This CE is important for port management
and logistics reasons. We also perform experiments for a
        </p>
        <sec id="sec-4-1-1">
          <title>CE named fish defined as follows:</title>
          <p>
            fish := (¬InArea(Fishing))* · (¬InArea(Fishing)) ·
(¬InArea(Fishing)) ·
(InArea(Fishing) ∧ ¬SpeedRange(Fishing))* ·
(InArea(Fishing) ∧ SpeedRange(Fishing))
(3)
InArea(Fishing ) is true when a vessel is within a fishing
area, while speedRange is a predicate satisfied when the
vessel has fishing speed [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ]. Therefore, fish is satisfied when
initially a vessel is outside a fishing area, then the vessel
enters the fishing area and; at some point while it is within
the fishing area, it has fishing speed. Monitoring (illegal)
ifshing is important for environmental and sustainability
reasons.
          </p>
          <p>
            To cross validate our approach, we create 6 datasets
MD ,  ∈ [
            <xref ref-type="bibr" rid="ref5">0, 5</xref>
            ] by shifting the starting month in a cyclic
manner:
          </p>
          <p>MD  = ⃦⃦ ==50month(+) mod 6
where ‖ denotes the operation of concatenating two datasets,
and monthk corresponds to month  of the original dataset.</p>
          <p>We perform ofline hyperparameter optimisation with
offCEF on the first four weeks of each dataset MD  and use
the resulting model, hyperparameters and micro-benchmark
samples for initialisation. To showcase, the benefit of RTCEF,
we additionally perform CEF with static models yielded by
offCEF (see Section 3.1): i.e., for each MD  we adopt the
stationarity assumption and perform CEF using the
corresponding initial model of each dataset. In what follows, the
experiments that utilise the run-time optimisation
framework are labelled with ‘RTCEF’ while experiments that are
performed only with ofline optimised static models are
labelled with ‘offCEF’.</p>
          <p>offCEF and RTCEF are implemented in Python 3.9.18,
while the Kafka version was 3.5.2. Messages are formatted
in JSON, and serialised/deserialised using Apache AVRO
format. For BO, we use the scikit-optimize library 0.9.0.
The experiments are conducted on a server running Debian
12 with an AMD EPYC 7543 32-Core Processor and 400G
of RAM. Each service of RTCEF runs on its own dedicated
core. Our framework is open-source and our experiments
are reproducible1.</p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Experimental Results</title>
        <p>
          Figure 7 shows the evolution of MCC over time for
port (see Definition (2)), along with the score
improvements when using RTCEF as opposed to offCEF for the
MD 0/2/3/5 datasets respectively. For MD 0—the dataset in
its original order—RTCEF drammatically improves MCC
up to ∼ 300% following retraining and hyperparameter
optimisation procedures in weeks 5 and 6, respectively. A
similar pattern is observed on the MD 5 dataset. On dataset
MD 2, although improvement is not as prominent as with
MD 0/3/5, on average RTCEF improves MCC (see Figure 8
top-left). On the MD 3 case, results show that the initial
PST, generated by offCEF underperforms on weeks 16 to
19. However, this behaviour is immediately cured when
the Change Detector requests hyperparameter optimisation
in the first running week (see orange dot on week 16 of
Figure 7 - MD 3)—this is due to the score being less than
min_score (see Algorithm 1). We attribute the low scores
1Execution scripts in https://github.com/manospits/rtcef/tree/main/
scripts
of the initial model of the MD 3 dataset on the lack of
vessels passing through the monitoring area on that period
(see Figure 8 bottom-left). Figure 8 top-left, shows that the
average MCC for each dataset MD  ( ∈ [
          <xref ref-type="bibr" rid="ref5">0, 5</xref>
          ]) when
using RTCEF is consistently higher than that achieved via a
single model trained only on the first four weeks of each
dataset (offCEF). In Figure 8 (top-right) we report results
concerning the fish CE. For the fish pattern (see
Definition (3)) there are no data evolutions in the input that afect
CEF performance, therefore in this case, the results show
that when data evolutions that afect model performance at
run-time are not present, the use of RTCEF does not afect
forecasting performance.
        </p>
        <p>Concerning processing eficiency, interruptions in CEF
are minimal as retraining or optimisation procedures take
place in parallel to CEF, thus eficiency and throughput of
CEF remain unafected. However, when a new PST request
arises, new PST versions arrive with some delay. Recall,
that until a new PST is available, Wayeb consumes the input
stream, in parallel to the PST update procedures, with the
already deployed PST. Figure 8 (bottom-right) shows the
mean percentage of time spent every four weeks for
production of PSTs (we denote this value as MPPT) involving
the port pattern. The results show that every four weeks,
on average less than 0.2 % of time is spent for PST
production (roughly 80 minutes in a period of four weeks) for all
datasets MD . Consequently, RTCEF spends minimal time
every four weeks for PST production, thus ensuring minimal
delays and a resource-friendly behaviour as optimisation or
retraining procedures are not overperformed.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Related Work</title>
      <p>
        The problem addressed in this paper pertains to concept
drift, i.e., evolutions in the data that invalidate the deployed
model [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Our work is the first that tackles this problem
specifically for CEF. For example, the work of Stavropoulos
et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] allows for ofline CEF optimisation but does not
allow run-time adaptation on dynamically evolving data
streams, while concerning CEF optimisation itself,
compared to our framework, it ofers only a very restricted
set of functionalities. EasyFlinkCEP [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], similar to RTCEF,
uses BO to optimise the parallelism of FlinkCEP programs
but lacks support for forecasting, focusing only on
systemoriented metrics (e.g., throughput). Herodotou et al. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]
ofer a comprehensive survey of machine learning-based
techniques, including BO, for tuning the performance of
Big Data management systems. Existing CER optimisation
techniques focus on enhancing throughput i.e., the number
of tuples processed per unit of time [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] while others focus
on reducing processing latency and eficiently managing
memory utilisation [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. These approaches typically adapt
traditional query optimisation techniques such as early
predicate evaluation and query rewriting to suit the context of
CER. Giatrakos et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] discuss techniques for executing
parallel CER eficiently in geo-distributed settings. Notably,
none of the above address run-time CEF adaptation.
      </p>
      <p>
        Forecasting covers several areas such as time-series
forecasting [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], general sequence prediction [
        <xref ref-type="bibr" rid="ref10 ref23">23, 10</xref>
        ], event
sequence prediction and point-of-interest
recommendations [
        <xref ref-type="bibr" rid="ref24 ref25">24, 25</xref>
        ]. However, such methods primarily focus on
input event forecasting rather than CEF. Process mining,
closely related to CEF [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], involves learning processes from
activity logs and predicting process completions [
        <xref ref-type="bibr" rid="ref27 ref28">27, 28</xref>
        ].
However, process mining often overlooks CE patterns. CEF
aims to address such challenges, as outlined in various
conceptual frameworks [
        <xref ref-type="bibr" rid="ref29 ref30 ref31">29, 30, 31</xref>
        ]. In our work specifically, we
address these challenges by utilising Wayeb, a CEF engine
that employs high-order Markov models [
        <xref ref-type="bibr" rid="ref5 ref9">5, 9</xref>
        ].
Furthermore, none of existing proposals (e.g., [
        <xref ref-type="bibr" rid="ref32 ref7 ref8">7, 8, 32</xref>
        ]) automate
run-time adaptation in resource-friendly way.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. Summary and Further Work</title>
      <p>We presented, RTCEF, a novel framework for run-time
optimisation of CEF. RTCEF involves several services running
synergistically for undisrupted run-time CEF and improved
performance via lossless dynamic model updating. We
evaluated our approach on maritime situational awareness
usecase involving real-world data and our experimental results
show that there is a clear benefit using our framework as
opposed to performing CEF with a single model in ‘ofline’
fashion. We release publicly our framework in an
opensource fashion.</p>
      <p>For future work, we plan to investigate additional data
collection, and retrain vs optimisation policies. Furthermore,
we aim to integrate parallel BO. Finally, we want to evaluate
our framework on additional problems such as run-time
CER query optimisation.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>This work was supported by the CREXDATA project, which
received funding from the European Union’s Horizon
Europe Programme, under grant agreement No 101092749.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>N.</given-names>
            <surname>Giatrakos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Alevizos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Artikis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Deligiannakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. N.</given-names>
            <surname>Garofalakis</surname>
          </string-name>
          ,
          <article-title>Complex event recognition in the big data era: a survey</article-title>
          ,
          <source>VLDB J</source>
          .
          <volume>29</volume>
          (
          <year>2020</year>
          )
          <fpage>313</fpage>
          -
          <lpage>352</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Margara</surname>
          </string-name>
          , G. Cugola,
          <article-title>Processing flows of information: from data stream to complex event processing</article-title>
          ,
          <source>in: DEBS</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Artikis</surname>
          </string-name>
          , D. Zissis (Eds.), Guide to Maritime Informatics, Springer,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Pitsikalis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Artikis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Dreo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Camossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.-L.</given-names>
            <surname>Jousselme</surname>
          </string-name>
          ,
          <article-title>Composite event recognition for maritime monitoring</article-title>
          ,
          <source>in: DEBS</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>E.</given-names>
            <surname>Alevizos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Artikis</surname>
          </string-name>
          , G. Paliouras,
          <article-title>Complex event forecasting with prediction sufix trees</article-title>
          ,
          <source>VLDB J</source>
          .
          <volume>31</volume>
          (
          <year>2022</year>
          )
          <fpage>157</fpage>
          -
          <lpage>180</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>V.</given-names>
            <surname>Stavropoulos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Alevizos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Giatrakos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Artikis</surname>
          </string-name>
          ,
          <article-title>Optimizing complex event forecasting</article-title>
          ,
          <source>in: DEBS</source>
          ,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Pandey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Nepal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <article-title>A test-bed for the evaluation of business process prediction techniques</article-title>
          ,
          <source>in: CollaborateCom</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>V.</given-names>
            <surname>Muthusamy</surname>
          </string-name>
          , H. Liu,
          <string-name>
            <given-names>H.</given-names>
            <surname>Jacobsen</surname>
          </string-name>
          , Predictive publish/subscribe matching,
          <source>in: DEBS</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>E.</given-names>
            <surname>Alevizos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Artikis</surname>
          </string-name>
          , G. Paliouras,
          <article-title>Wayeb: a tool for complex event forecasting</article-title>
          ,
          <source>in: LPAR</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>D.</given-names>
            <surname>Ron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Singer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Tishby</surname>
          </string-name>
          ,
          <article-title>The power of amnesia: Learning probabilistic automata with variable memory length</article-title>
          ,
          <source>Machine Learning</source>
          <volume>25</volume>
          (
          <year>1996</year>
          )
          <fpage>117</fpage>
          -
          <lpage>149</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>D.</given-names>
            <surname>Ron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Singer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Tishby</surname>
          </string-name>
          ,
          <article-title>The power of amnesia</article-title>
          , in: NIPS,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>E.</given-names>
            <surname>Brochu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. M.</given-names>
            <surname>Cora</surname>
          </string-name>
          , N. de Freitas,
          <article-title>A tutorial on bayesian optimization of expensive cost functions, with application to active user modeling and hierarchical reinforcement learning</article-title>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>P. I.</given-names>
            <surname>Frazier</surname>
          </string-name>
          , A tutorial on bayesian optimization,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>L.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Shami</surname>
          </string-name>
          ,
          <article-title>On hyperparameter optimization of machine learning algorithms: Theory and practice</article-title>
          ,
          <source>Neurocomputing</source>
          <volume>415</volume>
          (
          <year>2020</year>
          )
          <fpage>295</fpage>
          -
          <lpage>316</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Feurer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Springenberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Hutter</surname>
          </string-name>
          ,
          <article-title>Initializing bayesian hyperparameter optimization via metalearning</article-title>
          ,
          <source>AAAI</source>
          <volume>29</volume>
          (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>C.</given-names>
            <surname>Ray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Dréo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Camossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.-L.</given-names>
            <surname>Jousselme</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Iphar</surname>
          </string-name>
          ,
          <article-title>Heterogeneous integrated dataset for maritime intelligence, surveillance, and reconnaissance</article-title>
          ,
          <source>Data in Brief</source>
          <volume>25</volume>
          (
          <year>2019</year>
          )
          <fpage>104141</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>K.</given-names>
            <surname>Patroumpas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Artikis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Katzouris</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Vodas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Theodoridis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Pelekis</surname>
          </string-name>
          ,
          <article-title>Event recognition for maritime surveillance</article-title>
          ,
          <source>in: EDBT</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Gama</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Zliobaite</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bifet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pechenizkiy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bouchachia</surname>
          </string-name>
          ,
          <article-title>A survey on concept drift adaptation</article-title>
          ,
          <source>ACM Comput. Surv</source>
          .
          <volume>46</volume>
          (
          <year>2014</year>
          )
          <volume>189</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>189</lpage>
          :
          <fpage>38</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>N.</given-names>
            <surname>Giatrakos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Kougioumtzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kontaxakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Deligiannakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kotidis</surname>
          </string-name>
          , Easyflinkcep:
          <article-title>Big event data analytics for everyone</article-title>
          ,
          <source>in: CIKM</source>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>H.</given-names>
            <surname>Herodotou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Lu</surname>
          </string-name>
          ,
          <article-title>A survey on automatic parameter tuning for big data processing systems</article-title>
          ,
          <source>ACM Comput. Surv</source>
          .
          <volume>53</volume>
          (
          <year>2020</year>
          )
          <volume>43</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>43</lpage>
          :
          <fpage>37</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>I.</given-names>
            <surname>Flouris</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Giatrakos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Deligiannakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. N.</given-names>
            <surname>Garofalakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kamp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mock</surname>
          </string-name>
          ,
          <article-title>Issues in complex event processing: Status and prospects in the big data era</article-title>
          ,
          <source>J. Syst. Softw</source>
          .
          <volume>127</volume>
          (
          <year>2017</year>
          )
          <fpage>217</fpage>
          -
          <lpage>236</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Montgomery</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. L.</given-names>
            <surname>Jennings</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kulahci</surname>
          </string-name>
          ,
          <article-title>Introduction to time series analysis and forecasting</article-title>
          , John Wiley &amp; Sons,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>R.</given-names>
            <surname>Begleiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>El-Yaniv</surname>
          </string-name>
          , G. Yona,
          <article-title>On prediction using variable order markov models</article-title>
          ,
          <source>J. Artif. Intell. Res</source>
          .
          <volume>22</volume>
          (
          <year>2004</year>
          )
          <fpage>385</fpage>
          -
          <lpage>421</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Ding</surname>
          </string-name>
          , T. Liu,
          <article-title>Constructing narrative event evolutionary graph for script event prediction</article-title>
          ,
          <source>in: IJCAI</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>B.</given-names>
            <surname>Chang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Park</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Park</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kang</surname>
          </string-name>
          ,
          <article-title>Contentaware hierarchical point-of-interest embedding model for successive POI recommendation</article-title>
          , in: IJCAI,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>W.</given-names>
            <surname>Van Der Aalst</surname>
          </string-name>
          ,
          <article-title>Process mining: discovery, conformance and enhancement of business processes</article-title>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>A. E.</given-names>
            <surname>Márquez-Chamorro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Resinas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ruiz-Cortés</surname>
          </string-name>
          ,
          <article-title>Predictive monitoring of business processes: A survey</article-title>
          ,
          <source>IEEE Trans. Services Computing</source>
          <volume>11</volume>
          (
          <year>2018</year>
          )
          <fpage>962</fpage>
          -
          <lpage>977</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>C. D. Francescomarino</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Ghidini</surname>
            ,
            <given-names>F. M.</given-names>
          </string-name>
          <string-name>
            <surname>Maggi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Milani</surname>
          </string-name>
          ,
          <article-title>Predictive process monitoring methods: Which one suits me best?</article-title>
          ,
          <source>in: BPM</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>L. J.</given-names>
            <surname>Fülöp</surname>
          </string-name>
          , Á. Beszédes, G. Toth,
          <string-name>
            <given-names>H.</given-names>
            <surname>Demeter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Vidács</surname>
          </string-name>
          , L. Farkas,
          <article-title>Predictive complex event processing: a conceptual framework for combining complex event processing and predictive analytics</article-title>
          ,
          <source>in: BCI</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Engel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Etzion</surname>
          </string-name>
          ,
          <article-title>Towards proactive event-driven computing</article-title>
          ,
          <source>in: DEBS</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>M.</given-names>
            <surname>Christ</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Krumeich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. W.</given-names>
            <surname>Kempa-Liehr</surname>
          </string-name>
          ,
          <article-title>Integrating predictive analytics into complex event processing by using conditional density estimations</article-title>
          ,
          <source>in: EDOC Workshops</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Ge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. X.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <article-title>Data stream event prediction based on timing knowledge and state transitions</article-title>
          ,
          <source>Proc. VLDB Endow</source>
          .
          <volume>13</volume>
          (
          <year>2020</year>
          )
          <fpage>1779</fpage>
          -
          <lpage>1792</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>