GRADES: Gradient Descent for Similarity Caching