Content-based recommendation algorithm