[페이퍼] 신용 데이터에서 SSL은 GBM에 못 미칩니다. 그런데 합치면 개선됩니다
신용 부도 예측에서 자기지도학습(SSL)이 GBM보다 좋은 성능을 낼 수 있을까요. 공개 데이터(AMEX)로 실험해보니, SSL 단독으로는 GBM에 못 미치지만 GBM 피처에 합쳐 쓰면 통계적으로 의미 있게 성능이 올랐습니다. 그리고 그 이득은 GBM이 안전하다고 본 고객 속 숨은 부도에 몰려 있었습니다.
이번 글은 연재의 “페이퍼” 첫 편입니다. 직접 돌려본 실험 하나를 실무자 눈높이로 풀어 옮깁니다.
Part 3에서, 표 형태의 신용 데이터에서는 딥러닝이 아니라 트리 기반 부스팅(GBM)의 성능이 더 좋다고 했습니다. 그리고 딥러닝이 쓰일 자리는 코어 모델이 아니라 비정형 부가 데이터 쪽이라고 했습니다. 이번 글은 바로 그 경계를 공개 데이터로 직접 실험한 기록입니다.
질문은 단순합니다. 신용 부도 예측에서 자기지도학습(SSL)이 GBM보다 좋은 성능을 낼 수 있을까요. 자기지도학습은 라벨 없이 원자료에서 표현을 배우는 방법으로, BERT나 GPT가 텍스트에서, SimCLR이나 MAE가 이미지에서 큰 성공을 거둔 그 접근입니다. 이걸 고객의 거래 시퀀스에 적용하면 어떻게 될까요.
미리 결론을 말하면, 질문 자체가 약간 어긋나 있습니다. SSL은 GBM을 대체하는 후보가 아닙니다. GBM에 보조 피처로 더해줄 때만 일관되게 도움이 됩니다. 그 과정을 네 가지로 나눠 정리했습니다.
실험은 이렇게 했습니다
공개 데이터만 사용했습니다. AMEX Default Prediction(Kaggle 2022)의 고객 45만 9천 명, 한 사람당 최대 13개월의 익명화된 거래 기록입니다. 고객 단위로 80/10/10으로 나누고, 모든 실험이 똑같은 분할을 쓰도록 고정했습니다.
성능은 이 대회의 공식 지표를 씁니다. 부도(소수 클래스)를 얼마나 잘 잡는지를 Gini와 상위 4% 포착률로 섞은 점수인데, 0.79 근처에서 0.001 차이가 의미를 가질 만큼 촘촘한 지표라고만 알아두면 됩니다.
비교 대상은 둘입니다.
- GBM 베이스라인: 손으로 만든 피처 1,291개 + LightGBM. 공개된 상위권 솔루션 설정 그대로라, 리더보드 top-10 수준(test 0.79558)입니다.
- SSL 인코더: 작은 트랜스포머(약 87만 파라미터)를 네 가지 방식(마스킹, 다음 스텝 예측, 대조학습, 혼합)으로 사전학습했습니다.
전부 노트북 GPU 한 대(8GB)에서 20시간 남짓, 클라우드 비용 0원으로 돌렸습니다.
발견 1: SSL 단독으로는 GBM에 못 미칩니다
네 가지 SSL 방식을 다 fine-tune해도, 가장 좋은 것이 test 0.79267이었습니다. GBM 베이스라인 0.79558에 못 미칩니다. 격차는 0.003 정도로 작지만, 평가 조합 여덟 가지 중 GBM보다 나은 경우는 하나도 없었습니다. 방향이 일관됩니다.
흥미로운 건 라벨을 줄였을 때입니다. SSL의 단골 장점이 “라벨이 적을 때 강하다”인데, 여기에서는 반대였습니다. 라벨을 1%, 5%, 25%, 100%로 줄여가며 비교하니 GBM이 모든 구간에서 더 좋았고, 격차는 라벨이 적을수록 오히려 커졌습니다. 1%에서는 격차가 0.05까지 벌어졌습니다.
이유는 짐작할 수 있습니다. 4천 명으로 87만 파라미터 트랜스포머를 학습시키면 과합니다. 반면 LightGBM은 강한 정규화로 적은 데이터에서도 안정적이고, 무엇보다 도메인 지식이 응축된 피처 1,291개를 바탕으로 딱 필요한 만큼만 자랍니다. Part 3에서 말한 “표 데이터에선 트리가 강하다”가 여기서도 확인됩니다.
발견 2: 평가 방법에 따라 결과가 달라집니다
이건 좀 충격적이었습니다. 똑같이 사전학습한 인코더를 두 가지 방법으로 평가했습니다. 하나는 인코더를 고정한 채 로지스틱 회귀만 붙이는 방법(linear probe), 다른 하나는 인코더까지 전부 다시 학습하는 방법(full fine-tune)입니다.
그런데 네 방식의 순위가 평가 방법에 따라 완전히 뒤집혔습니다. “혼합” 방식은 linear probe에서 꼴찌였는데 full fine-tune에서는 1위였습니다. 같은 모델인데 두 평가의 점수 차이가 0.058이나 났습니다.
여기서 얻을 교훈은 분명합니다. 어떤 논문이 linear probe만 보고 “이 방식이 제일 약하다”고 결론 내고, 다른 논문이 fine-tune만 보고 “제일 강하다”고 정반대로 결론 낼 수 있습니다. 둘 다 자기 실험 안에서는 맞습니다. 그래서 tabular SSL 결과를 볼 때는 어떤 평가 방법을 썼는지부터 확인해야 합니다.
발견 3: 그런데 GBM과 합치면 더 좋아집니다
여기서 결과가 달라집니다. SSL 인코더가 만든 128차원 임베딩을 버리지 않고, 기존 피처 1,291개에 그대로 합쳐서 GBM에 넣어봤습니다.
처음에는 서로 다른 세 개의 사전학습 시드로 반복해, 세 번 모두 베이스라인보다 좋았습니다(평균 +0.00142, t=4.1). 그런데 시드 세 개로는 분산을 낙관적으로 잡기 쉬워서, 여섯 개로 늘려 다시 봤습니다. 여섯 개 모두 베이스라인보다 좋았지만, 이득은 평균 +0.00117(test 0.79675), 표준편차 0.00098, t값은 약 2.9(자유도 5)로 내려왔습니다. 처음보다 작고 정직한 값입니다. 그래도 여섯 시드가 전부 같은 방향이라는 건, 이 이득이 우연은 아니라는 뜻입니다.
숫자 자체는 작습니다. 그런데 이 작은 이득이 어디서 오는지 뜯어보면, 그렇게 작지만은 않습니다.
SSL은 무엇을 보완하나: 도메인 지식의 절반을 재발견
GBM에 들어가는 피처 1,291개는 단순한 전처리가 아닙니다. “마지막 값”, “추세 기울기”, “결측 패턴” 같은 것들로, 수십 년의 도메인 지식이 데이터 파이프라인에 미리 새겨진 결과에 가깝습니다. 말하자면 사람이 손으로 한 사전학습입니다.
그렇다면 SSL의 신경망 사전학습은 그것과 얼마나 겹칠까요. GBM이 가장 중요하다고 본 상위 100개 피처를 빼고 다시 학습시키면 점수가 0.00592 떨어집니다. 여기에 SSL 임베딩을 더하니 그중 0.00324가 회복됐습니다. 회복률 약 55%입니다.
다시 말해 SSL은, 전문가가 손으로 만든 상위 피처가 담은 정보의 절반쯤을 라벨도 없이 원자료에서 스스로 다시 찾아냅니다. 남은 절반은 못 찾습니다. 업무 달력의 의미나 결측의 정성적 해석처럼, 원신호에 드러나 있지 않은 정보이기 때문입니다.
그 이득은 어디에 숨어 있나: 안전해 보이는 고객
평균 +0.001 남짓이 모든 고객에게 고르게 퍼져 있을 이유는 없습니다. GBM의 예측 점수로 고객을 10등분해서 구간별로 이득을 봤더니, 한쪽에 몰려 있었습니다.
GBM이 “이 사람은 부도날 일이 거의 없다”고 자신한 안전 구간(예측 하위 0~3분위)에서 이득이 +0.02에서 +0.03으로 몰렸습니다. 나머지 구간에서는 거의 0입니다.
이게 왜 중요한지는 Part 1의 비대칭 비용을 떠올리면 됩니다. 신용에서 가장 비싼 실수는 부도 고객을 “안전”으로 잘못 분류하는 것입니다. 손실이 100% 현실화되니까요. SSL 임베딩이 잡아내는 게 바로 그 안전해 보이는 고객 속에 숨은 부도, 즉 silent default입니다. 평균 숫자가 보여주는 것보다 실제 쓸모는 더 큽니다.
그래서 실무에서는
정리하면 이렇습니다.
- SSL 한 모델로 GBM을 대체하려 하지 마세요. 단독 성능은 GBM에 못 미칩니다. 라벨이 적을수록 더 그렇습니다.
- 대신 보조 피처로 쓰세요. 인코더 하나의 128차원 임베딩을 기존 피처에 더해 GBM에 넣으면 꾸준한 이득이 옵니다. 비용도 사전학습 한 시간 남짓이라, GBM 하이퍼파라미터를 한 번 더 돌리는 것보다 가볍습니다.
- 평균이 아니라 구간별 손실로 판단하세요. +0.001은 작아 보여도, 안전 구간의 숨은 부도를 줄이는 효과는 그보다 큽니다.
- 인코더 하나면 충분합니다. 욕심내서 네 인코더의 임베딩을 모두 합쳐봤더니, 학습 점수는 올라도 test는 오히려 떨어졌습니다. 전형적인 과적합입니다. “사전학습 방식을 많이 더할수록 좋다”는 NLP의 직관이 여기선 통하지 않았습니다.
솔직한 한계
이 결과는 다음 한계 안에서만 유효합니다.
- 데이터 한 개입니다. AMEX 한 데이터셋이라, 다른 신용 분야로의 일반화는 보장하지 못합니다.
- 인코더가 작습니다. 87만 파라미터라, 더 키우면 55% 회복률이 올라갈 여지가 있습니다.
- 시드는 여섯 개입니다. 처음 세 개로는 t=4.1이었지만, 여섯 개로 늘리니 t≈2.9로 더 정직하고 보수적인 신호가 됐습니다. 더 늘릴 여지는 남아 있습니다.
- 무작위 분할이고, 이 데이터로는 제대로 된 out-of-time 검증이 어렵습니다. AMEX는 익명화 과정에서 모든 고객의 마지막 거래가 2018년 3월 한 달에 몰려 있어, 시간으로 갈라도 며칠 차이밖에 나지 않습니다. 경기 사이클이나 계절성 같은 진짜 시간 이동을 시험하려면 시간 범위가 넓은 다른 데이터가 필요합니다. Part 3에서 강조한 out-of-time 검증을 제대로 하는 것이 가장 중요한 후속 과제입니다.
이 한계들 안에서, 여섯 시드 모두 양의 방향이라는 점, 55%라는 회복률, 그리고 한 구간에 몰린 이득은 신뢰할 만한 신호라고 봅니다.
마치며
SSL이 신용에서 “통한다, 안 통한다”는 처음부터 잘못된 질문이었습니다. 진짜 질문은 “어디서 어떻게 도움이 되는가”였습니다. SSL은 GBM의 경쟁 상대가 아니라 보조 피처입니다. 그 가치는 GBM이 안전하다고 본 고객의 숨은 부도에 몰려 있고, 인코더 하나면 충분합니다.
Part 3에서 “딥러닝이 쓰일 자리는 비정형 부가 데이터”라고 했는데, 이 글은 그 한 문장을 숫자로 확인한 기록입니다.
부록: 코드와 데이터
- 데이터: AMEX Default Prediction (Kaggle 2022), 공개 데이터
- 코드와 논문: github.com/HangilKim11/blog-research/tree/main/ssl-credit-risk
- 재현: 8GB 노트북 GPU 한 대로 20시간 남짓