Video Recommendation Dataset
收藏🎥 Video Recommendation Algorithm Assignment
🎯 Objective
设计一个推荐算法,根据用户偏好和互动模式推荐视频。该算法通过利用用户交互数据和视频元数据,提供个性化的视频推荐。
📊 Dataset
数据集可以通过以下API获取,这些API提供用户交互和视频元数据的信息:
APIs
-
获取所有已查看的帖子 (METHOD: GET):
https://api.socialverseapp.com/posts/view?page=1&page_size=1000&resonance_algorithm=resonance_algorithm_cjsvervb7dbhss8bdrj89s44jfjdbsjd0xnjkbvuire8zcjwerui3njfbvsujc5if
-
获取所有已点赞的帖子 (METHOD: GET):
https://api.socialverseapp.com/posts/like?page=1&page_size=1000&resonance_algorithm=resonance_algorithm_cjsvervb7dbhss8bdrj89s44jfjdbsjd0xnjkbvuire8zcjwerui3njfbvsujc5if
-
获取所有受启发的帖子 (METHOD: GET):
https://api.socialverseapp.com/posts/inspire?page=1&page_size=1000&resonance_algorithm=resonance_algorithm_cjsvervb7dbhss8bdrj89s44jfjdbsjd0xnjkbvuire8zcjwerui3njfbvsujc5if
-
获取所有已评级的帖子 (METHOD: GET):
https://api.socialverseapp.com/posts/rating?page=1&page_size=1000&resonance_algorithm=resonance_algorithm_cjsvervb7dbhss8bdrj89s44jfjdbsjd0xnjkbvuire8zcjwerui3njfbvsujc5if
-
获取所有帖子 (需要Header*) (METHOD: GET):
https://api.socialverseapp.com/posts/summary/get?page=1&page_size=1000
-
获取所有用户 (需要Header*) (METHOD: GET):
https://api.socialverseapp.com/users/get_all?page=1&page_size=1000
Authorization
在API请求中传递Flic-Token作为Header进行授权:
json
"Flic-Token": "flic_6e2d8d25dc29a4ddd382c2383a903cf4a688d1a117f6eb43b35a1e7fadbb84b8"
Requirements
- 个性化: 推荐算法应根据用户历史和互动模式进行个性化推荐。
- 冷启动问题处理: 包含一种机制,为没有先前交互历史的新用户推荐视频(提示:可以使用用户情绪)。
🛠️ Specific Tasks
1. 数据预处理
- 使用提供的API检索和预处理视频元数据和用户交互数据。
- 处理缺失值,规范化数据,并根据需要创建派生特征以供推荐模型使用。
2. 算法开发
- 使用以下方法开发推荐算法:
- 基于内容的过滤: 推荐与用户已查看或点赞的视频相似的视频。
- 协同过滤: 利用相似用户的偏好来增强推荐。
- 混合模型: 结合基于内容和协同过滤以提高准确性。
- 说明模型选择并描述其如何满足项目目标。
3. 评估指标
- 实施指标以衡量推荐质量,例如:
- 平均绝对误差 (MAE):
- 均方根误差 (RMSE):
- 总结结果和从指标评估中获得的见解。
4. 文档
- 提供清晰、逐步的文档,包括方法、模型架构和开发过程中做出的关键决策。
- 创建3个API端点,提供
username、category_id和mood。 - 端点应如下所示(在单个API调用中返回推荐给用户的10个帖子):
http://localhost:port_no/feed?username=your_username&category_id=category_id_user_want_to_see&mood=user_current_moodhttp://localhost:port_no/feed?username=your_username&category_id=category_id_user_want_to_seehttp://localhost:port_no/feed?username=your_username




