Possible ways to speed up spatio-temporal GP modeling

With the caveat that I’m not a GP expert, here are some thoughts:

  1. You could resort to a linear combination of the kernels? Perhaps model the log of your data instead of the levels? That’s the usual trick with multiplicative models. I’m not 100% sure if the logic holds in the kernel space.
  2. You could make two separate HSGP approximations, one for the spatial and one for the temporal. Extract their HSGP representations (called phi and sqrt_psd, see 45:56 in the video), multiply each by a set of parameters, then multiply together the results. You’d essentially be doing GP(time) * GP(space) “by hand”
  3. Similar to 2, but with fewer parameters – you could extract those basis features and try to multiplying them together, then defining only a single set of parameters for the resulting product?
  4. Nuclear option: see if anyone has come up with a closed-form for the Matern52 * ExpQuad kernel, and use that directly. My understanding is that you’re technically not allowed to multiply GP kernels, but that it’s almost correct so people do it anyway. Since both kernel functions you’re using are exponential (and popular), it seems at least conceivable that there’s a closed form result, and thus there might be research into a more correct kernel to use?

These are just spitballing. I hope a real expert can weigh in as well.

1 Like