The thing that I was trained to do when I was a librarian, which I never see in recommendation engines, is to ask the question "what did you like about this book?", or "why did you like this book?", or any number of related questions that get to what you really want. Understandably, an algorithmic approach usually assumes the book is a single unit that is liked (or not) by others, and can thus be linked to other things people like on a fancy graph. This is useful because you don't need a granular understanding or human-level comprehension of the books. But, it tends to make for more generic, less interesting recommendations.
Sometimes the answers people give to these questions are really interesting: "there was one scene that really reminded me of a canoe trip I took with my dad" not just "the user wants [books with canoes]". At present, you need to be human to actually understand that it's not the canoe that matters, it's something else, and the right recommendation may be a book that appears completely different on the surface.