Я должен рекомендовать видео пользователям. У меня есть файл csv, содержащий userId, videoId, productId. Под идентификатором продукта присутствует много похожих видео. Нравиться:
идентификатор пользователя, идентификатор видео, идентификатор продукта
1 2 1
1 3 1
1 5 2
2 7 2
2 8 1
2 2 1
для большей ясности я снова факторизую это:
отношения пользователя и видео:
идентификатор пользователя
1 2
1 3
1 5
2 7
2 8
2 2
рассмотрим пользователя и видео: как мы видим, пользователь 1 похож на пользователя 2 на основе видеоидентификатора 2, поэтому я рекомендую пользователю 1 посмотреть видео 7 и 8. просто :)
Но суть в том, что фактический продукт и видеоданные выглядят следующим образом:
идентификатор продукта
2 1
3 1
5 2
7 2
8 1
2 1
4 1
6 1
видео 4 и 6 также подпадают под productid 1. Подумайте, если пользователь 1 придет и увидит videoid 2, мне придется рекомендовать 7,8 (на основе похожего пользователя) и 4,6 (на основе похожего видео для того же продукта, но отсутствует в фактическом csv).
Мой вопрос:
мне нужно факторизовать csv.
какой лучший алгоритм для этого.
3. после получения видео результатов, как их ранжировать