KV Cache Optimization via Tensor Product Attention