[competition] 2022 관광데이터 AI 경진대회 후기

ivor·2022년 11월 2일
0

AI

목록 보기
2/2

2022 관광데이터 AI 경진대회

22.09.19~22.10.31 진행되었던 '2022 관광데이터 AI 경진대회'가 마무리되었다.

부스트캠프 활동 중 대회나 프로젝트에서 많은 것을 배웠던 기억 때문에 참가를 결정했다. 이번 대회는 A-to-Z를 혼자만의 힘으로 해보고 싶었기에 1인으로 참가했다.

진행 기록과 대회에 대한 소회를 간략히 정리해놓고자 한다.


대회 개요

상기한 링크에서 자세한 정보를 얻을 수 있다.
간략히 설명하자면 이미지와 overview, 카테고리 등을 포함하는 train dataset, 이미지와 overview를 포함하는 test dataset이 주어지고 참가자는 해당 데이터를 이용해 학습을 진행하여 '소'분류 카테고리('cat3')를 예측해야 한다.


아이디어

전형적인 classification 문제라고 생각했다. 신경써야 할 부분은 활용할 데이터가 image, text 두 가지 종류라는 것. 두 종류의 데이터를 어떻게 효율적으로 활용해야 좋은 성능을 낼 수 있을지 고민했다.

이미지 데이터를 이용한 학습은 생각만큼 성능이 나오지 않았다. 이는 대회 커뮤니티에서 다른 참가자분들도 공감하던 내용이었다.

그에 반해 해당 데이터를 설명하는 'overview'의 텍스트 데이터를 활용한 학습은 성능이 꽤 잘 나왔다. 이미지, 텍스트 데이터를 '모두' 활용해야 한다는 규정은 없었기에 텍스트 데이터만으로 학습을 진행하기로 했다.

모델 구현은 huggingface를 활용했다.

RoBERTa

이전 대회들의 경험으로 RoBERTa 모델이 text classification에서 좋은 성능을 보인다는 것을 알고 있었기 때문에 바로 시도해봤다. (부스트캠프에서 '관계추출(Relation Extraction, RE)' 대회를 진행하던게 떠올랐다. 정확히 같은 task는 아니지만 text를 활용해 최종적으로는 classification을 수행해야 한다는 점이 유사하다고 생각했다.)

제공받은 베이스라인 모델 성능이 weighted f1 score 0.62 정도인데에 비해 RoBERTa는 0.82 정도의 초기 성능을 보여줬다.

BERT, XLM, ELECTRA 그리고 앙상블

대회 초기부터 마지막엔 앙상블을 해야겠다고 생각했다. 이를 위해선 여러 모델을 실험했어야 했고 BERT, XLM, ELECTRA를 실험했다.

BERT, ELECTRA는 weighted f1 score 0.50 미만의 낮은 성능을 보였지만 XLM은 RoBERTa와 비슷한 정도의 성능을 보였다.

최대 2개의 결과를 제출할 수 있었다. 평가는 test set의 70%를 차지하는 private set을 기준으로 이뤄질 것이기 때문에(리더보드는 30%인 public set을 기준으로 평가되었다.) 단일 모델보다는 앙상블이 더 robust할 것이라고 생각했다.

때문에 대회 마감까지 hyper parameter tuning을 진행했고 고도화된 모델 중에서 'RoBERTa, XLM 중 높은 성능을 보인 일부 모델로만 앙상블', 'RoBERTa, BERT, XLM, ELECTRA를 모두 골고루 앙상블' 두 가지를 택해 제출하였다.

(public set에 대해 weighted f1 score 0.85 정도의 성능을 보였다.)


결과

public weighted f1 score : 0.85625
private weighted f1 score : 0.85687

총 290개 참가팀 중 21등으로 대회를 마무리하게 되었다.
입상을 하지 못해 아쉽지만 오롯이 혼자 대회를 진행해본 점(물론 대회 커뮤니티 등에서 다른 참가자분들의 의견을 보고 도움을 받기도 했다), 어떤 식으로 성능을 올릴지 고민하고 모델을 구현해보고, 문제를 만나는 등의 귀중한 경험을 했다는 점, robust한 결과를 내기 위해 앙상블을 진행했는데 실제로 private score가 더 높게 나왔다는 점 등 만족스러운 점이 꽤 많았다.

여러모로 배우고 느낀 점이 많은 대회였다.

아쉬운 점

  • 더 효율적으로 실험을 진행하기 위해 wandb 등을 이용한 기록, ML Ops 활용 등을 고민했어야 했다.
  • 이미지 데이터를 활용한 학습이 효과적이지 않다는 판단을 내렸었지만 모델을 고도화해봤으면 학습에 활용할 수 있지 않았을까?
  • colab을 사용했는데 github와 연동하여 대회 진행 과정을 세세히 기록했으면 어땠을까 싶다.
profile
BEST? BETTER!

0개의 댓글