Kaggle 대회의 뜨거운 감자, Data Leak 알아보기
안녕하세요, LA오남매아빠, LA오빠 입니다.
LA오빠는 즐거운 Data Science, 슬기로운 직장생활, 행복한 가정생활, 이 세 가지 주제에 대해서 영상을 올리고 있습니다.
오늘은 즐거운 Data Science 편으로 Kaggle 대회 뜨거운 감자, Data Leak에 대해서 살펴보도록 하겠습니다.
지난 번 Kaggle 대회 시작하기 1편에서 제가 1달 정도 남은 대회만 참석하는 이유 중 하나로 Data Leak을 피하기 위해서라고 말씀드렸는데요.
그런데 그것이 실제로 일어났습니다.
지난 번 소개해드린 Ashrae 대회는 빌딩의 전력 사용양을 예측하는 대회입니다. 이 대회에서는 외부 데이터를 사용하는 것이 허용되어있는데요. 이 대회의 테스트 데이터셋인 2018년 2019년 중 일부 데이터를 인터넷에서 검색이 가능하다는 것이 밝혀졌습니다.
그래서 디스커션 그랜드 마스터인 CPMP가 포럼에 “이 대회는 웹 크롤링 대회인가”라는 글을 올렸고, 운영진은 뒤늦게 외부에서 다운로드 가능한 데이터는 테스트 데이터에서 제외하겠다고 발표를 한 상황입니다.
이러한 Data Leak은 많은 참가자들을 김빠지게 만듭니다. 고생 고생해서 Feature Engineering과 Machine Learning Model Optimization을 해서 솔루션을 제출했는데, 갑자기 데이터 릭이 알려지면서 수백등 밖으로 한 번에 떨어지기 때문이지요. 실제로 Ashrae 대회에서도 모델링 없이 단순히 외부 데이터만 이용해서 리더보드에서 2위까지 오를 수 있었다고 합니다.
그리고 Data Leak이 밝혀진 이후의 대회는 많은 경우 누가 더 많은 Leak을 밝혀내느냐에 따라 랭킹이 결정되는 경우가 많기 때문에 Machine Learning 대회를 기대한 많은 참가자들은 이 시점에서 대회를 포기하고 맙니다.
또한 Data Leak은 대회 스폰서와 운영진에게도 치명적이지요. 스폰서가 대회를 후원하는 이유는 실무에 적용이 가능한 좋은 퀄러티의 ML 솔루션을 얻기 위해서인데, Data Leak이 있는 경우, 그러한 솔루션을 얻기 힘들게 돼죠.
하지만 Data Leak이 전혀 쓸모 없기만 한 것은 아닙니다.
캐글 그랜드마스터 Giba, Mario, Abhishek과 KDD Cup 수상자들이 참여한 작년 KDD Cup 2018 Panel Discussion에서 패널들은 입을 모아 Data Leak을 발견하는 것 자체가 Data Scientist에게 굉장히 중요한 능력 중 하나라고 이야기 했습니다.
현업에서 데이터를 수집하고 모델을 만드는 과정에서 의도치않게 Data Leak이 발생하는 일이 적지 않기 때문이지요. 이 경우 이런 Leak을 조기에 발견하고 수정하는 것이 현업에서 큰 도움이 됩니다.
또한 Data Leak을 가지고 대회에서 좋은 성적을 거두는 것도 ML 모델링과는 또 다른 재미를 선사합니다. 마치 형사가 되어 범죄현장에서 증거를 수집하듯이 여러 가지 가능성을 가지고 다른 각도에서 데이터를 살펴보아야하기 때문이지요.
이렇게 Machine Learning 대회의 뜨거운 감자인 Data Leak. 과연 어떤 Data Leak들이 있을까요?
Data Leak은 크게 다섯 종류가 있습니다.
첫 번째는 미래에서 온 Leak. 시계열데이터를 사용한 대회에서 자주 보이는 Leak입니다.
Training Data의 Feature가 미래의 정보를 담고있는 경우이죠.
두 번째는 메타데이터에 Leak이 있는 경우입니다. Truly Native 대회에서는 웹 페이지가 스폰서드 페이지인지 아닌지를 예측하는 대회였는데, 각각의 웹사이트를 압축한 Zip파일이 언제 생성되었는지를 가지고 타겟변수를 정확하게 예측할 수 있었습니다.
세 번째는 ID에 Leak이 있는 경우입니다. Caterpilla Tube Pricing 대회에서는 ID가 랜덤 값이 아니고 타겟변수와 관련된 정보를 담고 있었습니다.
네 번째는 데이터 순서가 Leak을 담고 있는 경우입니다. Telstra 대회같이 단순히 Test Data의 행번호가 타겟 변수와 관련이 있는 경우도 있었구요, 좀 더 복잡하게 TalkingData 대회같이 비슷한 위치에 있는 데이터의 타겟값이 같은 경우도 있었습니다.
마지막으로 이번 Ashrae대회에서와 같이 외부데이터가 Leak을 제공하는 경우가 있습니다. 최근 외부 데이터 사용이 허용된 대회의 경우, 외부에서 테스트 데이터의 타켓 값을 직접 찾을 수 있거나, 추가 Training 데이터를 얻을 수 있는 경우가 있었습니다.
이 경우, 규정상 외부 데이터를 사용하는 팀은 그 데이터를 데드라인 전에 공개를 해야하지만, 여전히 데드라인 직전에 공개를 하거나 공개를 하더라도 웹사이트 주소만 공개를 하고 최종적으로 추출한 데이터를 공개하지 않는 방식으로 다른 팀들이 해당 Leak을 사용하기 어렵게 만드는 경우가 있습니다.
정리하자면 Data Leak에는 미래에서 온 Leak, 메타데이터 Leak, ID Leak, 행순서 Leak, 그리고 외부데이터 Leak이 있습니다.
자, 어떻게 도움이 되셨나요?
대회에 참여하시는 분들은 릭이 있는 대회를 일찌감치 피하시거나, 계속 참여하신다면 릭 찾아내는 보물찾기의 또 다른 재미를 즐기시기 바랍니다.
현업에 계시는 데이터사이언티스트 분들이나 머신러닝 대회 운영자 분들은 자신이 사용하는 데이터에 이러한 릭이 있는지 꼭 확인하셔서 원치 않는 결과를 얻는 불상사를 피하시길 바랍니다.
그럼 화이팅~!