DKT 대회 회고

Keep (잘한점)

  • Public Score와 Private Score 모두 2등으로 순위가 많이 바뀐 대회에서 robust한 모델 구축에 성공했습니다.
  • 완벽하진 못했지만 Git Branch 전략을 효과적으로 사용했습니다.
  • Boosting 기반, Sequential 기반 그리고 Graph 기반 다양한 모델을 시도 했습니다.
  • 모델 고도화 시간을 충분히 확보하여 순위를 올릴 수 있었습니다.

Problem(실수)

  • 유사한 Riiid 대회에서 수행한 딥러닝 전략들을 이용해 가시적인 성과를 내지 못했습니다.
  • 서로의 코드를 잘 이해해보자는 목표로 pair를 이루어 진행했는데 효과가 크지 못했습니다.
  • Git 이슈와 프로젝트 기반 개인 상황 공유를 시도했으나 끝에 가서는 조금 흐지부지 됐습니다.

Try (계획)

  • 추천 외부 대회가 있어 온전히 대회에 집중하지 못했습니다.
  • 논리적인 접근이 조금 부족했습니다.
  • 성과를 위해 너무 마음을 급하게 먹어 모델링에 온전히 몰입하지 못했습니다.
  • 딥러닝 모델을 low-level부터 구현해보지 못했습니다.

개인 Wrap up 리포트

  • 이번 프로젝트에서 나의 목표는 무엇이었는가?
  1. 협업 방식의 개선으로 6명의 인원이 효율적으로 프로젝트를 수행하며 팀의 모든 과정을 공유하고 싶습니다.
  2. 프로젝트를 수행하면서 데이터 엔지니어가 필요한 능력을 개발하고 싶습니다.
  3. 대회의 목적에 맞게 높은 순위를 기록하고 싶습니다.
  • 나는 내 학습목표를 달성하기 위해 무엇을 어떻게 했는가?

6명의 인원이 효율적으로 협업을 진행하기 위해 팀 내 Git flow branch 전략, Git project와 issue 를 기반으로 한 적극적인 공유, 2명이 짝을 이루어 하나의 실험 진행, 3~5일 단위로 실험 인수인계 등을 했습니다. 이를 통해 팀으로 같이 성장할 수 있는 협업을 경험했습니다. 저는 Git 관리를 통해 팀원 간 실험 내용을 확인할 수 있도록 진행했습니다.

부스팅 모델에서 Feature Engineering을 통해 평가 지표 점수를 올리는 일을 했습니다. 이 과정에서 XG, Cat, LGBM 모델의 성능 개선을 방법을 학습할 수 있었습니다.

높은 순위를 향해 많은 실험을 하였으며 최종적으로 1등을 달성하지는 못했지만 Public, Private 2등을 달성하며 순위 변동이 많이 발생했던 이번 대회에서 Robust한 모델을 개발했습니다.

  • 나는 어떤 방식으로 모델을 개선했는가?

부스팅 모델에 필요한 Feature Engineering을 진행했습니다. 유저와 아이템의 수준을 평가하기 위한 ELO Rating Feature, time 을 기준으로 한 문제 풀이 시간 Feature 생성 등 모델 성능 개선을 중점으로 실험했습니다.

그래프 모델에서 그래프에 사용되는 Feature를 새로 만든 지표들을 넣어보며 개선하려고 시도를 했습니다.

  • 전과 비교해서, 내가 새롭게 시도한 변화는 무엇이고, 어떤 효과가 있었는가?

Git을 활용한 적극적인 공유를 통해서 같이 성장하고 협업하고자 했습니다. Git flow branch 전략, Git Projects의 칸반 보드를 통한 일정 관리, Git Issues 기반 작업 진행을 진행하며 각자 팀원의 실험과 결과를 편하게 확인하는 것이 목표였습니다.이전보다 수월하게 Git을 사용해서 협업을 이루었고, 이를 통해서 실험 인수인계도 수월하게 진행할 수 있었습니다. 이러한 협업 전략이 Public, Private 2위의 결과를 얻을 수 있는 배경이 되었습니다.

  • 마주한 한계는 무엇이며, 아쉬웠던 점은 무엇인가?

Validation과 리더보드의 Public 점수의 차이를 보고 public, private의 편향이 있을 수 있다는 생각을 했지만 validation 점수가 잘나왔던 실험을 믿지 못했던 점이 아쉬움으로 남습니다.

또한, 라이브러리가 아닌 논문을 바탕으로 공유된 코드를 이번 대회에 맞게 적용해서 돌렸지만, 아쉽게도 좋은 성능을 달성하지 못 한 점이 아쉬움으로 남습니다.

  • 한계/교훈을 바탕으로 다음 프로젝트에서 스스로 새롭게 시도해볼 것은 무엇일까?

새로운 논문을 바탕으로 논문을 구현하거나 구현된 Git을 참고하여 다음 프로젝트에 적용해보고 그 모델의 성능을 대회 SOTA 수준으로 개선하는 것이 목표입니다.

 

개인 회고

대회를 마치기 2주 동안은 블로그에 정리하는 과정을 소홀히했다.

노션에 정리하거나 git을 사용하는 과정을 중시하다보니 블로그까지 신경을 쓰지 못한 점이 아쉬움으로 남는다.

현재 Moive Recommendation 대회가 앞으로 약 4주간 예정되어있다.또한 최종 프로젝트 역시 다가오고있다.

앞으로 예정되어있는 일들이 있는 거에 감사하며 다음 단계로 나아가기위해 했던 시도들을 정리하자.

 

대회 결과 및 참고 링크

대회 결과 

리더보드 auroc 순위
Public 0.8362 2위
Private 0.8549 최종 2위

git repository : https://github.com/SeongJaeBae/DKT-Project_BoostCamp

랩업 리포트 : https://scythe-belly-899.notion.site/2e827889040240cfad79c4879bc6c3ad

+ Recent posts