<!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>Deep Residual Time-Series Forecasting: Application to Blood Glucose Prediction</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Harry Rubin-Falcone</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ian Fox</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jenna Wiens</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>Improved forecasting of blood glucose could aid in the management of diabetes. Recently proposed neural network architectures that use stacked fully connected layers with residual backcasting have achieved state-of-the-art performance on benchmark timeseries forecasting tasks. Though promising, previous work ignores opportunities for additional supervision, and the use of fully connected layers fails to account for the temporal nature of the signal. Here, we propose a new architecture that builds on previous work by learning to forecast gradually in stages or blocks. Our updates include replacing the fully connected block structure with a recurrent neural network and adding additional losses to provide auxiliary supervision. In addition, we leverage important context in the form of additional input signals. Applied to the task of glucose forecasting, we find that each of these modifications offers an improvement in performance. On the task of predicting blood glucose values 30 minutes into the future, our proposed approach achieves a mean rMSE of 18.2 mg/dL, versus 21.2 mg/dL achieved by the baseline. These improvements get us closer to predictions that are reliable enough to be used in CGMs or insulin pumps to manage diabetes.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Accurate blood glucose forecasting would improve diabetes
treatment by enabling proactive treatment [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. To this end, there has been
significant interest in developing time-series forecasting methods for
predicting blood glucose levels, using a large variety of statistical
and machine learning methods [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. This has inspired the OhioT1DM
challenge [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], where participants are tasked with accurately
forecasting blood glucose values in individuals with type 1 diabetes. As our
entry to this competition, we build on recent work in time-series
forecasting that focuses on iterative residual prediction, specifically
Neural Basis Expansion for Interpretable Time-Series Forecasting, or
NBEATS [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. This work uses a neural network architecture consisting
of network blocks that output both a forecast and a backcast (i.e., a
reconstruction of the block’s input). The backcast is subtracted from
the block’s input forming a residual which then serves as input to
the following block. At the final layer, the forecasts from each block
are combined to form the final prediction. The iterative and residual
nature of this architecture aims to encourage gradual signal
reconstruction and forecasting. We build upon this idea in several ways
(Figure 1):
      </p>
      <p>
        We replace the fully connected architecture in each block with a
recurrent neural network (RNN) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. We hypothesize that this
will allow the model to more accurately capture important
temporal relationships within the input/output.
Loss:
      </p>
      <p>Glucose Additional Var. Forecast</p>
      <p>Example
Block 1</p>
      <p>b1
Block 2
Block 3
Block i</p>
      <p>LSTM
Fully Connected
Split Output
bi
fi
Reconstruction Loss</p>
      <p>Forecast Loss</p>
      <p>Magnitude Loss</p>
      <p>We include additional variables as input to the model (e.g., bolus
insulin data), which we hypothesize will provide valuable context.
However, due to the sparse nature of some of these variables, we
backcast only on our primary variable of interest: blood glucose.
We include additional loss terms that act as auxiliary
supervision. We hypothesize that these terms will further encourage the
model’s blocks to gradually learn accurate components of the
signal (i.e., backcasts and forecasts) that sum to the correct signal.</p>
      <p>Additionally, we study the effects of pre-training with related
datasets. Applied to the task of glucose forecasting, these
modifications lead to notable improvements over baseline.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Methods</title>
      <p>
        Given the strong performance of deep residual forecasting across a
range of tasks [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], we build on recent work in this area, tailoring the
approach to the task of forecasting blood glucose.
2.1
      </p>
    </sec>
    <sec id="sec-3">
      <title>Problem Setting and Notation</title>
      <p>We focus on the task of univariate time-series forecasting in which
we aim to predict future values of a single variable, but assume
we have access to additional inputs. Let X = [x(1); :::; x(d)]
represent a multivariate time series where d is the number of
variables. For each variable i: x(i) 2 RT is a sequence of length T .
For our problem, x(1) corresponds to glucose measurements and
X0 = [x(2); :::; x(d)] represents other variables of interest (e.g.,
bolus insulin). Given X, we aim to predict the next h glucose
measurements y = x(T1+)1; x(1)</p>
      <p>T +2; :::; x(T1+)h.
2.2</p>
    </sec>
    <sec id="sec-4">
      <title>Proposed Approach</title>
      <p>
        We build on a recent univariate time-series forecasting architecture,
N-BEATS [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which consists of a series of n blocks, each composed
of a series of fully-connected layers. The ith block takes as input
some vector xi 2 RT, where for the first block, x1 is the original
input. Each block’s output (xi) 2 Rh’ produces a forecast fi 2 Rh
and a backcast bi 2 RT. The backcast is subtracted from the
current block’s input before being input to the next block (i.e.,
xi+1 = xi bi). The output of the network is the sum of forecasts
across all blocks: y^ = Pn
      </p>
      <p>
        i=1 fi. The residual nature of the prediction
means that each block learns only what the previous block could
not. Thus, the model learns to gradually reconstruct the signal, while
predicting components of the forecast. We build on this idea by
identifying several opportunities for improvement. Our modification
are as follows:
Accounting for Temporal Structure. We account for the temporal
nature of the input sequence by using a bidirectional LSTM network
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] within each block, in lieu of the fully connected layers. Although
using fully connected networks results in a faster training time,
we hypothesized that an LSTM would be better able to capture
block-level time-varying patterns by enforcing a sequential prior on
the signal. The final LSTM hidden state is used as input to an output
layer that produces a sequence of length T + h that is then split into
the backcast and forecast signal.
      </p>
      <sec id="sec-4-1">
        <title>Including Additional Input Variables. We include auxiliary</title>
        <p>variables as input at each block. This provides important context
when backcasting and forecasting the main signal of interest.
However, rather than simply augmenting the dimensionality of
the signal throughout, we backcast/forecast only the primary
signal, i.e., each block’s input is [xi(1)1 bi 1; X0] (Figure 1).
Backcasting/forecasting was not performed on additional variables
due to their sparse nature. We hypothesized that learning to
backcast/forecast abrupt carbohydrate and bolus inputs would increase
the difficulty of the overall task and decrease performance on the
main task.</p>
      </sec>
      <sec id="sec-4-2">
        <title>Auxiliary Tasks and Supervision. In addition to training based</title>
        <p>on the loss of the final forecast prediction, M SE(y; y^) =
h1 Pih=1(yi y^i)2, we include additional losses with the goal of
improving the quality of intermediate representations. We add three
auxiliary tasks to our model (shown in Figure 1):</p>
        <p>Per-block reconstruction loss (Lr): We hypothesized that
explicitly supervising the backcasts could improve their accuracy, and
supervising at the block level could improve the intermediate
reconstructions. To do this, we add an MSE loss, M SE(xi(1); bi)
after each block’s output. Each block’s loss is weighted
proportional to its position in the network, encouraging the network to
gradually construct a backcast. The final loss Lr is scaled by the
sum of the weights of each block, and summed over n blocks:
Lr =</p>
        <p>i=1 i M SE(xi(1); bi)
Pn</p>
        <p>Pn
i=1 i
Per-block forecast loss (Lf ): To encourage each block to
contribute towards an accurate forecast, we calculate the loss on the
running forecast after each block. We apply a similar per-block
scaling term as in the backcast, but increase the weight using
cubic values in order to emphasize the network’s later predictions.
Let f 0i denote the sum of all forecasts up to the ith block, ie
fi0 = Pik=1 fk. The total forecast loss Lf is:</p>
        <p>Lf =</p>
        <p>Pn
i=1 i
3</p>
        <p>M SE(fi0; y)
Pn
i=1 i3
Per-block magnitude loss (Lm): Intuitively, deep residual
forecasting aims to incrementally learn parts of a signal. To ensure
that each block contributes to the backcast, we penalize blocks by
the inverse of their output size (measured using an L1 norm) and
scale this penalty by the inverse of their position in the stack, so
earlier blocks are encouraged to output larger values. We apply
this loss to only the backcast. We do not penalize low-magnitude
forecasts because it is possible that a block could account for part
of the input signal that is associated with a zero-value forecast.
The complete magnitude loss is:</p>
        <p>Lm =</p>
        <p>Pn 1 1
i=1 i jbij
Pn 1
i=1 i
Loss is calculated as a weighted sum of these three losses:
L = Lf +</p>
        <p>Lr +</p>
        <p>Lm;
where , 2 R+are hyperparameters. Note that the final forecast is
included as a part of Lf .
2.3</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Ensembling</title>
      <p>
        We ensemble models that use different input lengths. As others have
shown, this allows us to account for trends at different time scales
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. We train a model for each of 6 different input lengths. We use T
= 12, 18, 24, 30, 36, and 42 time steps. These values were selected
as multiples of the shortest input length, h = 6. Shorter backcast
windows (i.e., T &lt; 12) were not found to be beneficial. When
ensembling the predictions, we output the median.
3
      </p>
    </sec>
    <sec id="sec-6">
      <title>Experimental Set Up</title>
      <p>
        Datasets. We evaluate the proposed approach using the 2020
OhioT1DM dataset [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. This dataset consists of CGM, insulin pump,
and other variables (i.e., sleep data, activity levels) for six
individuals. We explored using all variables in the dataset, but found only
glucose (CGM and finger stick), bolus dose, carbohydrate input, and
time of day to be helpful. Each individual has approximately 10,000
samples for training and 2,500 for testing, recorded at 5-minute
intervals, where the test data temporally follow the training data.
We use the first 80% of each individual’s specified training set
for training and the remaining 20% for early-stopping validation,
holding out the test data. Beyond the 2020 OhioT1DM dataset,
we had access to Tidepool data, a large repository of CGM and
insulin pump data for approximately 100 participants with a total 15
million time steps [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. We used these data and data from the 2018
OhioT1DM challenge [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] during pre-training and model selection.
Preprocessing. Bolus dose and carbohydrate input are less
frequently recorded compared to CGM. Thus, to be used as input to
the model, we align and resample these additional data to length
T . In addition, we encode time using sine and cosine embeddings
over 24-hour periods. Approximately 15% of all time-steps were
missing for CGM. We replace missing values with a value of zero
and include an additional variable that indicates missingness. In
this way, the model can learn to handle missing values differently
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This results in a model input of X 2 RT 7 (CGM, finger
stick glucose, bolus values, carbohydrate inputs, sine and cosine of
time, and missingness indicators for CGM values). Time steps with
missing glucose values are ignored during all loss calculations and
forecast evaluations.
      </p>
      <sec id="sec-6-1">
        <title>Baseline Architecture Implementation. Our baseline is based on</title>
        <p>
          N-BEATS and uses hyperparameters similar to those reported by
Oreshkin et al.: 10 blocks with 4 layers each, with 512 hidden units
output by each layer, with a ReLU activation function between each
layer [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Though Oreshkin et al. originally used 30 blocks, we
found 10 blocks worked better and thus report performance against
this stronger baseline.
        </p>
      </sec>
      <sec id="sec-6-2">
        <title>Proposed Architecture Implementation. To learn the model</title>
        <p>
          parameters of our proposed approach, we use Adam [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] with a
learning rate of 0.0002 (selected to maximize learning speed while
maintaining reasonable convergence behavior), and a batchsize of
512. We run the optimization algorithm for up to 300 epochs, or
until validation performance does not improve for 20 iterations.
        </p>
        <p>To reduce the chance of overfitting to the 2020 data, we tune all
hyperparameters, excluding and , on the six subjects from the
previous competition. We performed a grid search to select the number
of blocks (range: 5-10, best: 7) and number of hidden LSTM units
(range: 50-300, best: 300), optimizing for rMSE of the final time
step of the prediction on the held out data. Including more hidden
units could perhaps have further improved performance, but we were
limited by memory constraints.</p>
        <p>During tuning, we measured the added value of including each
auxiliary variable (e.g., sleep data), including only those variables
that improved performance for the final evaluation. We tuned the
block-weighting terms for our auxiliary loss functions, considering
inverse, constant, and linear relationships for Lr, and powers of 2
and 3 for Lf . We tuned the auxiliary loss function weights , and
using the validation data for the new subjects. We performed a grid
search over [:1; :15; :25; :3; :5; 1; 2; 4] for and 10e5 times those
values for , selecting = :3 and = 10e4. Grid search analyses
were tuned with a subset of backcast lengths (3f and 6f ) across all
patients, for efficiency.</p>
        <p>For both the 30 and 60 minute prediction horizons, we train using
loss for the full window (i.e., h = 6 for the 30 minute analyses and
h = 12 for the hour prediction), but report results using the last time
step only (as dictated by the competition).</p>
        <p>
          Pre-training. As mentioned above, we pre-train on the 2018
OhioT1DM and Tidepool data. Pooling these datasets together,
we train a single model. The weights of this model are used to
initialize the weights of a ‘global’ model trained on the 2020
OhioT1DM training set. This ‘global’ model is then fine-tuned to
each participant from the 2020 OhioT1DM dataset, resulting in six
participant-specific models. Baseline analyses do not use the large
pooled dataset for pre-training, but start from a single global model
(trained from random initialization) and then fine-tune.
Code. All of our experiments were implemented in Python/PyTorch
[
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. The final initialization models and all code used in our analyses
is publicly available 2.
3.1
        </p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Evaluation</title>
      <p>We report results for models trained to predict 12 time steps (one
hour horizon) and six time steps (30 minute horizon), reporting
outcomes on only the final time step. We evaluate using the square root
of the mean squared error (rMSE), and mean absolute error (MAE),
defined as M AE(y; y’) = jy ny0j for n samples. Metrics are applied
directly to the raw CGM values with no preprocessing.</p>
      <p>To examine the effect of each architecture modification, we
perform an ablation study where we add each modification to the
architecture incrementally (i.e., first RNN blocks only, then RNN blocks
with added variables, then RNN blocks with added variables and
additional loss terms, then the full architecture with pre-training). We
also experiment with each modification made in isolation.</p>
      <p>
        Finally, beyond the evaluation dictated by the competition, we
also calculate outcomes for the most crucial forecasting windows:
those that represent the beginning of a hyper- or hypoglycemic event.
These correspond to predictions for which the most recent time step
is in the euglycemic range (blood glucose from 70-180 mg/dL),
but the participant becomes hypoglycemic (&lt; 70 mg/dL) or
hyperglycemic (&gt; 180 mg/dL) within the prediction horizon. We also
examine the distribution of predictions vs. actual measurements in
terms of the corresponding would-be treatment recommendations
with a Clarke Error Grid Analysis [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
4
      </p>
    </sec>
    <sec id="sec-8">
      <title>Results and Discussion</title>
      <p>
        Overall, the proposed approach leads to average rMSEs of 18.2 and
31.7 on the 30 and 60 minute horizons, respectively, and average
2 https://gitlab.eecs.umich.edu/mld3/deep-residual-time-series-forecasting
MAEs of 12.8 and 23.6 for those horizons (Table 1). These values
are comparable to the results achieved in the 2018 challenge (i.e.,
18.9 to 21.7 for 30 minute rMSE) [
        <xref ref-type="bibr" rid="ref1 ref13">1, 13</xref>
        ].
      </p>
      <p>Based on our ablation study, each of our modifications improves
performance over baseline, although to varying degrees (Figure 2).
For the 30 minute horizon, mean rMSE across participants is 21.2 for
the baseline model (BL). Adding the RNN block structure
(bidirectional LSTM) and additional variables (+AV) improves performance
to 20.1 and then 18.94, respectively. Adding the additional loss
functions (+LOSSES) results in a slightly improved mean performance
of 18.87, and pre-training on the Tidepool and 2018 OhioT1DM
datasets (+PT) further improves performance to 18.2. We observed
similar trends for the 60 minute horizon, and for MAE.</p>
      <p>While all of our modifications reduce rMSE, one of the largest
improvements in performance comes from replacing the fully
connected layers of N-BEATS with recurrent layers (improves
performance from 21.2 to 20.1). These recurrent layers directly model each
time step as a function of the previous, allowing for more accurate
temporal representations. Compared to the baseline, the proposed
approach leads to more faithful predictions and fewer extreme
failures (Figure 3). Even without pre-training, the modified architecture
eliminates the extreme failures observed in the baseline case
(highlighted in Figure 3).</p>
      <p>Additional variables are significantly more impactful when added
to the RNN-based block structure (a 30 minute rMSE improvement
from 20.1 to 18.9), when compared to adding them in isolation (an
improvement from 21.2 to 21.0). Despite the poor performance when
used in the original baseline architecture, we chose to include these
variables in our updated RNN-based model. The RNN block
structure has multiple input channels, which allows for the direct use of
the variables. In contrast, the fully connected layers require a flat
input, which removes much of the timing information. This illustrates
the importance of the ordering of decision making in model
architecture development. Although such decisions are easy when an
exhaustive search of combinations is performed, this is not always feasible,
so these decisions often must be made sequentially. If we had
selected additional variables based on the performance of the baseline
model alone, we may not have opted to use them, and would have
lost the large benefit that they provide when used in tandem with the
RNN block structure.</p>
      <p>To test our hypothesis regarding the efficacy of backcasting on
blood glucose values only (and not additional variables), we ran a
post-hoc analysis with a model using residual backcasting for all
input variables. As expected, we found that this decreased performance
(30 minute rMSE = 19.2 vs. 18.9).</p>
      <p>In contrast to the other modifications, the additional loss terms
offer only slight improvements over the baseline. During model
selection, this modification offered substantially more improvement on
the OhioT1DM 2018 dataset (decreasing rMSE of the RNN + added
variables model from 19.6 to 18.9). Yet even with additional tuning,
this modification is only minimally helpful on the 2020 dataset,
suggesting that the method may not be universally beneficial. In an
ablation analysis, a model using only (Lf ) performs best (rMSE = 18.82)
on the 2020 data. However, in contrast, the added variables seem to
help more for the 2020 data than for the 2018 data. This suggests
that perhaps the losses serve a regularizing effect when insufficient
information is present in the additional variables, as we observed in
the 2018 validation data.</p>
      <p>Pre-training improves the performance of both the modified and
baseline architectures, although it offers the most improvement for
the baseline (improving performance from 21.2 to 19.8 when
applied alone). This suggests that pre-training becomes less crucial
once other improvements are made. Running an analysis using our
proposed architecture and no pretraining over 4 random seeds results
in similar performance across seeds (30-minute rMSEs were 18.87,
18.82, 18.95, and 18.89), indicating fairly robust performance over
different random initializations. Further, pre-training improves
performance significantly over all random initialization, demonstrating
the benefit of pre-training beyond chance.</p>
      <p>In our event-specific evaluation (includes only prediction windows
where a hyperglycemic or hypoglycemic event occur), the mean
rMSE is significantly higher compared to the holistic evaluation (for
our proposed approach 30 minute horizon: 27.9 vs. 18.2). This is
expected, since such events are difficult to anticipate. Specifically, the
proposed approach achieves a higher rMSE for hyperglycemic events
(30.5) than hypoglycemic (23.8). Interestingly, while our model
performs better than the baseline for all events on average (our model:
27.9 vs baseline: 31.0) and for hyperglycemic events (30.5 vs 34.2),
the two models perform comparably in the hypoglycemic range (23.8
vs 23.6). This could be due to the relative rarity of hypoglycemic
events (for example, there were 322 in the test data, vs 868
hyperbe recommended based on our proposed approach’s predictions vs what
treatments should be given based on the actual value. 99% of predictions fall
within regions A and B, which indicate appropriate treatment
recommendations. (b) Proportion of predictions in each region of the grid for our proposed
approach and the baseline model.
glycemic events), or it could be a reflection of the MSE loss function
over-emphasizing large values, which is unaccounted for in our
approach.</p>
      <p>
        In our Clarke Error Grid Analysis [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], we find that 99% of
predictions fall in regions A and B (regions that would not lead to
inappropriate treatment; i.e. an unnecessary bolus or rescue
carbohydrates), with 90% in region A (predictions within 20% of the actual
value) and 9% in region B (predictions that are more than 20% from
the actual value but that would not lead to inappropriate treatment),
indicating generally strong performance (Figure 4). The proportion
of points in regions A and B is slightly lower (97%) for our
baseline model. Only 3 points (0.02%) fall into region C (points that
would lead to unnecessary treatment, specifically predicting high
CGM when it would actually be lower, which could lead to an
inappropriate bolus and hypoglycemia), and 1% fall into region D (points
that miss hyperglycemia or hypoglycemia). Reassuringly, no points
fall into region E (regions that would treat hyperglycemia as
hypoglycemia or vice versa).
5
      </p>
    </sec>
    <sec id="sec-9">
      <title>Conclusion</title>
      <p>We find deep residual forecasting to be effective when applied to the
task of predicting blood glucose values. Augmenting a previously
proposed architecture with RNNs in place of fully connected stacks,
additional variables, and self-supervising loss functions all lead to
improvements when applied to the task of blood glucose forecasting.
Beyond blood glucose forecasting, we hypothesize that many of the
proposed changes could be beneficial when applied to other
forecasting tasks.</p>
    </sec>
    <sec id="sec-10">
      <title>ACKNOWLEDGEMENTS</title>
      <p>This work was supported by JDRF (award no.
1-SRA-2019-824-SB). In particular, this award provided access to the Tidepool dataset
that was used in pre-training the models. The views and
conclusions in this document are those of the authors and should not be
interpreted as necessarily representing the official policies, either
expressed or implied of JDRF.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Herrero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Zhu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Georgiou</surname>
          </string-name>
          , '
          <article-title>Dilated recurrent neural network for short-time prediction of glucose concentration</article-title>
          .',
          <string-name>
            <surname>KDH</surname>
          </string-name>
          , (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>W.L.</given-names>
            <surname>Clarke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Cox</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.A.</given-names>
            <surname>Gonder-Frederick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Carter</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.L.</given-names>
            <surname>Pohl</surname>
          </string-name>
          , '
          <article-title>Evaluating clinical accuracy of systems for self-monitoring of blood glucose</article-title>
          .',
          <source>Diabetes Care</source>
          ,
          <volume>10</volume>
          , (
          <year>1987</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>F.A.</given-names>
            <surname>Gers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Schmidhuber</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Cummins</surname>
          </string-name>
          , '
          <article-title>Learning to forget: continual prediction with LSTM</article-title>
          .',
          <source>9th International Conference on Artificial Neural Networks</source>
          ,
          <fpage>850</fpage>
          -
          <lpage>855</lpage>
          , (
          <year>1999</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.P.</given-names>
            <surname>Kingma</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Ba</surname>
          </string-name>
          , '
          <article-title>Adam: A method for stochastic optimization</article-title>
          .', International Conference for Learning Representations, (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Z.C.</given-names>
            <surname>Lipton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.C.</given-names>
            <surname>Kale</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Wetzel</surname>
          </string-name>
          , '
          <article-title>Modeling missing data in clinical time series with rnns</article-title>
          .',
          <source>Proceedings of Machine Learning for Healthcare</source>
          , (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Marling</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Bunescu</surname>
          </string-name>
          , '
          <article-title>The OhioT1DM dataset for blood glucose level prediction:</article-title>
          <source>Update</source>
          <year>2020</year>
          .', (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A.</given-names>
            <surname>Neinstein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Look</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Arbiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Quirk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>McCanne</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Sun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Blum</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Adi</surname>
          </string-name>
          , '
          <article-title>A case study in open source innovation: developing the tidepool platform for interoperability in type 1 diabetes management</article-title>
          .',
          <source>Journal of the American Medical Informatics Association</source>
          ,
          <volume>23</volume>
          , (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>B.N</given-names>
            <surname>Oreshkin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Carpov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Chapados</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bengio</surname>
          </string-name>
          , 'N-BEATS:
          <article-title>Neural basis expansion analysis for interpretable time series forecasting'</article-title>
          , ICLR, (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Oviedo</surname>
          </string-name>
          , J. Veh´ı, R. Calm, and
          <string-name>
            <given-names>J.</given-names>
            <surname>Armengol</surname>
          </string-name>
          , '
          <article-title>A review of personalized blood glucose prediction strategies for T1DM patients</article-title>
          .', Numerical Methods in Biomedical Engineering, (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Paszke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gross</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chintala</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Chanan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>DeVito</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Desmaison</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Antiga</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Lerer</surname>
          </string-name>
          , '
          <article-title>Automatic differentiation in PyTorch</article-title>
          .', NeurIPS, (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Reifman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rajaraman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gribok</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.K.</given-names>
            <surname>Ward</surname>
          </string-name>
          , '
          <article-title>Predictive monitoring for improved management of glucose levels</article-title>
          .',
          <string-name>
            <given-names>J Diabetes</given-names>
            <surname>Sci</surname>
          </string-name>
          <string-name>
            <surname>Technol</surname>
          </string-name>
          , (
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>R.J.</given-names>
            <surname>Williams</surname>
          </string-name>
          and
          <string-name>
            <given-names>G.E.</given-names>
            <surname>Hinton</surname>
          </string-name>
          , '
          <article-title>Learning representations by backpropagating errors</article-title>
          .',
          <source>Nature</source>
          ,
          <volume>323</volume>
          ,
          <fpage>533</fpage>
          -
          <lpage>536</lpage>
          , (
          <year>1986</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>T.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Herrero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Chen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Georgiou</surname>
          </string-name>
          , '
          <article-title>Predictive monitoring for improved management of glucose levels</article-title>
          .',
          <string-name>
            <surname>KDH</surname>
          </string-name>
          , (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>