Basic Usage#

There are two design choices for GPQR:

  1. Quantile representation (direct vs. center-gap)

  2. Correlation structure (independent vs. correlated)

Quantile representation

Quantiles can be represented either directly or by a center-gap representation.

In direct representation, each \(i\)-th quantile function \(Q_{\tau_i}(x)\) with quantile level \(\tau_i\) is directly modeled by GP output \(f_i(x)\):

\[Q_{\tau_i}(x) = f_i(x)\]

This method is more flexible but can suffer from quantile crossing.

In center-gap representation, GP outputs model the central quantile \(Q_{\tau_0}(x)\) and the gaps between adjacent quantiles \(\Delta Q_i(x) > 0\):

\[\begin{split}Q_{\tau_0}(x) = f_0(x), \quad Q_{\tau_i}(x) = \begin{cases} Q_{\tau_0}(x) + \sum^i_{j=1} \Delta Q_j(x), \quad & i > 0 \\ Q_{\tau_0}(x) - \sum^i_{j=1} \Delta Q_{-j}(x), \quad & i < 0 \end{cases}\end{split}\]

where \(\Delta Q_j(x) = \log \left(1 + \exp f_j(x) \right)\). This structure prevents quantile crossing.

Correlation structure

Correlation structure defines how GP outputs \(f_i(x)\) are correlated with each other.

Correlation between \(f_i(x)\) is determined by their relation to latent independent GPs \(g_j(x)\). Independent \(f_i(x)\) can be implemented by using IndependentMultitaskVariationalStrategy, which is

\[f_i(x) = g_i(x).\]

Correlated \(f_i(x)\) can be implemented by using LMCVariationalStrategy, which is

\[f_i(x) = \sum_j a_{ij} g_j(x),\]

where \(a_{ij}\) is a learnable coefficient matrix.

For direct representation, uncorrelated GP output means that \(Q_{\tau_i}(x)\) are independent.

For center-gap representation, \(Q_{\tau_i}(x)\) are always correlated by the additive structure. Here, correlation between \(f_i(x)\) dictates correlation between gaps \(\Delta Q_i(x)\).