Загугли "рекомендательные системы" - найдёшь и разные курсы/лекции по теории и доклады с практикой реализации в конкретных продуктах.
Тема достаточно большая и есть очень много разных подходов.
какие данные собирать чтобы собственно такой алгоритм реализовать?
Ну собственно от выбора алгоритма будет различаться и требуемый набор данных.
Ну или наоборот - от того, какие данные ты уже собрал будет определяться, какой алгоритм будет легче реализовать.