Tractable Instances of Bilinear Maximization: Implementing LinUCB on Ellipsoids