Multi-Task Gaussian Process Implementation Details: What paper should I check? #2616
-
Hi, I am now working on Bayesian optimization using multi-task Gaussian process (MTGP). BoTorch says here that it uses MTGP regression from this paper. I read through this paper and I think this paper discusses the MTGP for the Kronecker structure, meaning that every data point must be evaluated at every task. So the questions are:
I highly appreciate any feedback:) |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
That is indeed the case.
Those lines just define the index kernel (aka the cross-task covariance aka the "coregionalization matrix"), the actual evaluation and generation of the full covariance matrix happens here" https://github.com/pytorch/botorch/blob/7cfff9c3ce6a83eb976f744a2fcc736b4e7f91e5/botorch/models/multitask.py#L308-L312 This medium post explains the basic ICM setup: https://medium.com/@ruglioni07/multi-task-gaussian-processes-04d3ea2878fb. The model is in fact the same whether or not there is a "block design" of evaluating every task at every input location - so the answer to your first question is "yes" - it just so happens that in case of a block design the resulting covariance can be expressed as a Kronecker product, which affords some computational benefits (for some shameless self-promotion plug, take a look at this paper that discusses how some of these benefits can be realized even if the full covariance matrix is just some submatrix of a full Kronecker product: https://arxiv.org/abs/2410.09239)
This is simply a Hadamard product of two covariance matrices that are already of the full (across tasks and data point) size. Basically, |
Beta Was this translation helpful? Give feedback.
That is indeed the case.
Those lines just define the index kernel (aka the cross-task covariance aka the "coregionalization matrix"), the actual evaluation and generation of the full covariance matrix happens here" https://github.com/pytorch/botorch/blob/7cfff9c3ce6a83eb976f744a2fcc736b4e7f91e5/botorch/models/multitask.py#L308-L312
This medium post explains th…