분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
토스 NEXT ML CHALLENGE : 광고 클릭 예측(CTR) 모델 개발
Full-train 과 관련하여 이야기 나눠보고 싶습니다
검증셋을 따로 두지 않고, 모든 학습 데이터를 모델 학습에 사용하는 전략을 Full-train 으로 칭하는 것 같습니다(아니면 다른 용어가 있거나..)
이와 관련하여 다음과 같은 의문점들이 있어 글을 작성해봅니다.
1.파라미터와 iteration 조정 문제
validation에서 찾은 파라미터를 full-train에 그대로 쓰는 게 맞을까요? 데이터가 늘어나면 최적 iteration이나 러닝레이트 등 설정이 달라질 수 있는데, 보통 iteration을 약간 늘리는 방식을 채택하시나요?
2.리스크 관리와 재현성
full-train은 검증셋이 없으니 오버피팅 여부를 알 수 없고, leaderboard 점수로만 확인하게 됩니다. 이럴 때 성능 안정성과 실험 재현성을 어떻게 확보할 수 있을까요?
3.캘리브레이션 문제
확률 보정(calibration)은 보통 검증셋으로 품질을 측정하는데, full-train에서는 calibration 품질을 어떻게 보장할 수 있을까요? 아니면 full-train 상황에서는 calibration 자체가 무의미한 걸까요?
4.대회 외 실제 적용 가능성
대회에서는 full-train이 점수를 올려주는 경우가 많지만, 실제 서비스 환경에서는 unseen data에 대한 일반화가 더 중요합니다. 이 전략이 현실 배포 환경에서도 유효할까요, 아니면 오히려 해가 될까요?
답변 잘 읽었습니다. iteration/LR이 데이터 증가에 따라 단순히 선형적으로 늘지 않는다는 부분과, 프로덕션 환경에서 fallback 로직을 두는 방법이 인상 깊네요.
사실 저는 full-train이 drift에 취약할 거라 조금 조심스럽게만 봤는데, 말씀처럼 CTR과 같이 희소 패턴이 중요한 경우에는 전체 데이터를 쓰는 게 확실히 의미가 있겠다는 생각이 듭니다. 좋은 말씀 감사합니다!
추가 질문으로 희소패턴 학습 부분에 있어서 K-Fold 방식을 사용하는 것과 Full-train 은 차이가 클까요?
저희 팀은 아직 OOF 실험 단계라 확답을 드리긴 어려울 듯합니다. 다만 kaggle competition에서 종종 쓰이는 테크닉이며 마지막 쥐어짜내기 개념으로 이해하시는게 좋겠습니다.
유익한 정보 감사합니다. 좋은 결과 있으시길 바라겠습니다~
덕분에 많이 배워갑니다.
1. 보통 validation 검증으로 하이퍼파라미터 튜닝을 하긴 합니다만 전체 데이터를 쓰는지는 미지수입니다.
2. 성능 안정성과 실험 재현성은 validation을 어떻게 구성하는지가 포인트 일거 같습니다.
3. validation set이 없으면 할수 없다고 생각합니다.
4. 현업에서는 data drift를 탐지하기 위해 psi나 kl divergence같은 통계치를 활용합니다. 실제 프로덕트 환경에서의 데이터가 잘 들어갔는지의 여부를 판단하는 지표를 활용하는데 대회에서는 public lb와 cross validation간의 비교가 중요할듯 합니다.
답변 감사합니다. 여러 대회에 참여 중인 유저로서, 요즘은 희소한 데이터 자원을 검증셋으로 떼어놓기보다는 훈련 전체에 쓰기 위해 full-train 전략을 많이 쓰는 것 같습니다. 실무에서는 일반화와 데이터 drift 탐지가 더 중요할텐데, KL divergence 같은 지표로 drift를 관리한다면, full-train 관점이 현업에서도 유효할 수 있다고 보시나요? 아니면 검증셋을 반드시 유지해야 한다고 생각하시나요?
현업에서는 아무래도 보수적으로 사업을 운영해야 하다보니 full-train으로 사용하진 않는것 같습니다 특히 딥러닝 모델을 사용할때는요. 회사마다 모델을 운영하는 방식이 다르겠지만 검증셋을 유지하는게 보편적이라고 할수 있겠습니다.
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
직업정보제공사업 신고번호: J1204020250004
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io |
전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
마침 제가 고민하고 있던 내용과 같아 의견 공유합니다.
1. Full-train에서 Iteration/LR을 조정하는 방법은 경험적 휴리스틱과 통계학에 근거를 두고 있습니다.
데이터 증가에 비례해 수렴까지 필요한 iteration도 증가하지만, 당연히 선형 증가는 아니므로 보수적으로 접근하는 게 타당합니다.
LR도 마찬가지로 데이터 증가에 비례해 gradient가 안정화되므로 조정해 볼 여지가 있다는 개념 정도로 접근해야겠습니다.
이는 당연히 최적값과 차이가 있고, 데이터셋에 따라서는 효과가 없는 경우도 있습니다.
2. 리스크 관리는 앙상블 기반 안정성으로 평가해야 한다고 생각합니다. 관점에 따라 여러 방법이 있겠습니다.
3. Full-train에서의 callibration은 validation에서 찾은 값과 동일한 값을 사용하는 게 가장 안전하다고 생각합니다.
단, train/val의 데이터 분포가 유사할 경우에만 해당됩니다.
사실 앙상블 자체가 일종의 callibration이므로(극단값을 완화하는 측면에서) 동일한 값을 사용해도 큰 문제는 없습니다.
4. 이번 대회 같은 CTR 과제에서 Full-train은 희소 패턴을 학습한다는 측면에서도 도움이 되는 방법이라 생각됩니다.
프로덕션에서는 주기적 재학습으로 "과거 전체 = train" 구조가 되기에, 시간이 지나며 full 모델의 신뢰도가 증가하는 형태가 될 것입니다.
다만 당연히 validation과의 A/B 테스트가 필요하고, 앞서 말했듯 train/val 데이터 구조가 유사하다는 검증이 필요합니다.
제가 머신러닝 엔지니어라면, 이상 징후나 패턴 발견 시 validation 모델로 자동 전환되는 fallback 로직을 넣는 등
일반화를 위한 안전 장치가 있는 환경에서 도입해볼 것 같습니다.