Feature extractors for sequences and graphs
The Conv1dTwoLayer kernel in xGPR can also be set up as a feature
extractor or “static layer”. A static_layer is a feature extractor
applied to the input data that
converts it to a form that an xGPR model with a Linear, RBF or
Matern kernel can use as input. These are called
static_layers because they do not contain any tunable
hyperparameters, so they can be applied to all of the training
data once before the start of training. When making
predictions for new datapoints, the static_layer must of
course be applied to the new datapoints as well. To learn
how to do use static layers, see the Advanced tutorials.
Kernel Name |
Description |
|---|---|
FastConv1d |
Performs random-feature convolutions across
input sequences to build a sequence profile
for each datapoint, then uses an RBF (or
potentially Linear or Matern) kernel to
compare the sequence profile of each
datapoint.
|
FastConv1d is a way to compare
sequences and time series that is analogous to a three-layer
convolutional neural network. In the first (static) layer, random
feature convolutions are applied followed by global max pooling;
this essentially measures what is the “best match” for a given
random filter in the sequence of interest and thereby creates a
“sequence profile”. In the second and third layer, an RBF
(or potentially other kernels, although we’ve only really used
RBF) kernel compares the sequence profile of training datapoints.
If using these kernels, choose an RBF kernel when initializing
the xGPRegression model (for FastConv1d). (You could also use
Linear or Matern or some other in principle, but we’ve never found that to be
terribly useful.) You can also concatenate the output of two FastConv1d
extractors and input these to an RBF or MiniARD kernel (the MiniARD
kernel would then have two separate lengthscales, one for each section of
the input), or alternatively concatenate the output of FastConv1d with
some other representation of the input.
Using the output of a FastConv1d feature extractor as input to an RBF
kernel is equivalent to using the Conv1dTwoLayer kernel. Why would you
prefer the static layer? There are some situations where it can be more
convenient. For example, if you are supplying pairs of sequences as input,
or if the sequence for each datapoint has some associated non-sequence
features, you could concatenate those to the output of the FastConv1d
feature extractor.
For each feature extractor, you can supply additional arguments to control what kind of features it generates. More details are below.