boostcampaitech4lv23recsys2 / level2_movierecommendation_recsys-level2-recsys-12

[Boostcamp AI Tech 4기] Movie Recommendation 대회 - Team RAYN

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🎦 Movie Recommendation

📘 Wrap-Up Report

📢 Competition Introduction

여러분들께서는 사용자의 영화 시청 이력 데이터를 바탕으로 사용자가 다음에 시청할 영화 및 좋아할 영화를 예측하게 됩니다.

이 문제는 timestamp를 고려한 사용자의 순차적인 이력을 고려하고 implicit feedback을 고려한다는 점에서,
시중의 여러 강의에서 사용되는 1-5점 평점 (explicit feedback) 기반의 행렬을 사용한 협업 필터링 문제와 차별화됩니다.

대회에 대한 더 자세한 내용은 대회 개요 에서 확인할 수 있습니다!

💧 Team Members

Naver Boostcamp AI Tech 4기 Recsys 12조, Recommendation is All You Need

강태훈 권준혁 김다은 류지수 유영서
  • 강태훈 : Template 구조 선정, ADMM-SLIM 모델 구현, AutoEncoder 계열 모델 성능 비교
  • 권준혁 : S3rec, SASrec 모델 개선, 튜닝 시 sweep 사용
  • 김다은 : MultiVAE 모델 구현, MultiVAE & MultiDAE 모델 RecBole 적용
  • 류지수 : EASE, EASER 모델 구현, EASE RecBole 적용
  • 유영서 : RecBole 환경 구축, RecVAE 모델 구현, Voting 구현

🎅 How we work?

팀원 간의 원활한 소통을 위해, 다양한 협업 도구를 사용하였습니다!

Slack Notion W&B Github

저희 팀의 협업 방식에 대하여 더 궁금하시다면, Team RAYN의 협업 방식 에서 확인할 수 있습니다!

📚 Project Outline

다양한 모델을 실험한 후, Top10을 보다 효과적으로 앙상블 하기 위해 고안안 voting 알고리즘에 Top15를 넣어준 후, 최종 Top10을 선발합니다.

🛒 Model Result

모델 실험 결과는 다음과 같습니다.

Model EASER EASE S3Rec RecVAE MultiVAE MultiDAE ADMMSLIM
public Recall@10 0.1612 0.1600 0.1000 0.1367 0.1366 0.1346 0.1321
private Recall@10 0.1603 0.1600 0.0877 0.1362 0.1375 0.1365 0.1317

🎴 Voting Strategy

여러 모델을 실험한 결과, EASE 모델이 다른 모델과의 성능 차이가 많이 나는 점을 확인하였습니다.
이로 인하여 앙상블 과정에서 문제점이 도출되었습니다.

두 모델을 Hard Voting 하려는 경우, 두 모델의 성능 차이로 인하여 앙상블 결과의 성능이 저하되는 문제가 있었으며,
두 모델에 가중치를 다르게 부여할 경우, 가중치가 높은 모델의 Top10만 그대로 선발되는 문제가 있었습니다.

앙상블에서의 문제점을 해결하기 위해, Top11~15의 데이터를 추가적으로 사용하여 Top10을 선발하는 voting 알고리즘을 구현하였습니다.

새로운 voting 알고리즘은 크게 두 종류로 나뉘어집니다.
첫번째는, Top11~15의 정보를 이용하여 Top10 간의 변별력을 부여하여 새로운 Top10을 선발하는 방식이며,
두번째는, Top11~15에만 존재하는 item이 새로운 Top10에 선발될 수 있는 가능성을 제공하는 방식입니다.

Voting Strategy에 대한 더 자세한 내용은 앙상블 전략 에서 확인할 수 있습니다!

🌱 To see more

저희 Project에 대한 더 자세한 정보를 알고싶으시다면, Project Wiki 를 확인하세요!

💯 Competition Result

리더보드 Recall@10 순위
public 0.1644 7등
private 0.1626 6등

최종 순위: 6등

About

[Boostcamp AI Tech 4기] Movie Recommendation 대회 - Team RAYN


Languages

Language:Jupyter Notebook 90.8%Language:Python 9.2%