which recommendation algorithm would be suitable for this use case?

I am working on the user-user based collaborative filtering recommendation system where i want to generate list of products for each category customers who has viewed maximum products.

currently i am taking both implicit and explicit data for the recommendation system. What features should we include for the matrix factorization and the best algorithm for use case. Should we categorize the products for each user before matrix factorization. Can i get the final results like customer_id,category_customers,product_id.

customer_id | customer | product_id 01 | A | 101 02 | A | 102 03 | B | 103

Am I heading in the right direction? Would really appreciate some help on what direction to follow.