Decide First
Yesterday I finished the first layer of the recommender along with building it for scale. Today, I worked on the design decisions for personalization, which is Layer 2 of the recommender.
For personalization, I want to make the recommendations match what a user likes, not just which shows share the same people. That is the hard part, and I did not want to run into the hard parts later in the build.
In plain terms: the app learns from the shows a user rates, and rating a show also counts as watching it. The personalization sits on top of the list it already built and re-orders it for the user, instead of creating a second engine. This personalization should also be able to tell the user why it recommended a show, because that is the whole point of TVLens.
This will be the one aspect of the recommender I am going to have the hardest time with because I will want to get it perfect.
For a more in-depth explanation, read this ADR.