
이미지 분야에는 ImageNet이 있고,
자연어 분야에는 GPT, BERT 같은 거대한 Foundation Model이 존재한다.
그렇다면 문득 이런 의문이 들었다.
"Tabular Data에도 Foundation Model이 존재할까?"
그리고 더 근본적인 질문도 생겼다.
"라벨이 없는 테이블 데이터는 대체 어떻게 학습시키는 걸까?"
지도학습에서는 정답(label)이 존재한다.
나이 | 연봉 | 직업 | 대출 승인 여부
25 | 3000 | 학생 | 거절
42 | 8000 | 회사원 | 승인
이 경우 모델은 대출 승인 여부를 맞추도록 학습하면 된다.
하지만 정답이 없다면?
도대체 모델은 무엇을 학습해야 하는 걸까?
이번 수업은 바로 그 질문에서 시작됐다.
사실 이미지나 자연어에 비하면
테이블 데이터는 생각보다 훨씬 까다롭다.
대표적인 이유는 다음과 같다.
이미지는 픽셀의 위치 정보가 존재한다.
자연어는 단어의 순서가 존재한다.
하지만 테이블 데이터는 다르다.
나이 | 연봉 | 신용점수 | 지역
여기서
사이에는 공간적 구조도,
문장의 순서도 존재하지 않는다.
이미지는 대부분 비슷하다.
고양이 사진이든 강아지 사진이든 결국 RGB 이미지다.
하지만 테이블 데이터는 아니다.
금융 데이터
헬스케어 데이터
제조 데이터
전자상거래 데이터
주식 데이터
각 도메인마다 의미 자체가 완전히 다르다.
이미지는 회전시켜도 고양이는 여전히 고양이다.
고양이 사진
→ 회전
→ 밝기 조절
→ 크기 변경
문제 없다.
하지만 테이블 데이터는?
나이 : 24
연봉 : 4000만원
여기서 연봉을 4억으로 바꾸는 순간
그건 더 이상 같은 사람이 아닐 수도 있다.
즉,
아주 작은 수정 하나가 데이터의 의미 자체를 바꿔버린다.
이것이 Tabular SSL의 가장 큰 난제 중 하나다.
핵심 아이디어는 의외로 단순하다.
일부 데이터를 망가뜨리고,
원래 상태를 복원하도록 학습시키자.
이를 Self-Supervised Learning이라고 부른다.
즉,
데이터 스스로가 정답을 만들어내는 것이다.
가장 먼저 등장한 방법은 Reconstruction 기반 접근이다.
대표적으로는 다음과 같은 방법이 존재한다.
원본 데이터
25 | 4000 | 개발자 | 서울
일부 값을 가린다.
25 | ??? | 개발자 | 서울
그리고 모델에게 묻는다.
"가려진 값은 무엇이었을까?"
모델은 주변 Feature들과의 관계를 이용하여
연봉 = 4000
을 복원하려고 한다.
이 과정에서 모델은 자연스럽게 학습한다.
개발자
서울
25세
라는 정보가 있다면
연봉은 어느 정도 범위에 존재할 가능성이 높다는 사실을 배우게 된다.
대표적인 방식
등이 있다.
BERT의 Masked Language Modeling과 상당히 유사하다.
하지만 Reconstruction 방식에는 한계가 존재했다.
학습이 불안정하거나,
복원 자체에만 집중하는 문제가 있었다.
그래서 등장한 방법이
이다.
핵심 아이디어는 단순하다.
비슷한 데이터는 가깝게
다른 데이터는 멀게
학습시키는 것이다.
예를 들어
원본 데이터
25 | 개발자 | 서울 | 4000
여기서 일부 Feature를 교환하거나
노이즈를 추가하여 새로운 View를 만든다.
25 | 개발자 | 서울 | 4100
모델은
원본
증강본
이 같은 샘플이라는 사실을 학습한다.
반면
58 | 의사 | 부산 | 15000
같은 전혀 다른 데이터는
멀리 떨어지도록 학습한다.
대표적인 연구는 다음과 같다.
SubTab은 Feature를 여러 그룹으로 나눈다.
예를 들어
나이
연봉
직업
지역
신용점수
가 있다면
Group A
나이, 연봉, 직업
Group B
직업, 지역, 신용점수
처럼 나눈다.
그리고 서로 같은 샘플에서 나온 표현은
가깝게 학습시킨다.
SCARF는 Feature Swap을 이용한다.
다른 샘플의 Feature를 일부 가져와
Corruption을 만든다.
그리고
원본
Corrupted Version
이 서로 관련된 표현이 되도록 학습한다.
SAINT는 상당히 흥미로운 접근이었다.
기존 Transformer는
한 샘플 내부 Feature
만 Attention했다.
하지만 SAINT는
행(Row)
열(Column)
둘 다 Attention을 수행한다.
즉,
같은 샘플 내부 Feature 관계
뿐 아니라
다른 샘플과의 관계
까지 학습한다.
결국 핵심은 이것이었다.
좋은 Representation을 학습하는 것
Representation Learning이란
데이터를
의미 있는 벡터 공간으로 변환하는 과정이다.
예를 들어
개발자
백엔드 개발자
프론트엔드 개발자
는 가까운 위치에,
고등학생
은퇴자
는 먼 위치에 존재하도록 만드는 것이다.
좋은 Representation이 만들어지면
그 이후는 쉽다.
분류
회귀
추천
이상 탐지
모두 활용할 수 있다.
여기서 등장하는 개념이
이다.
즉,
어떤 데이터셋에서 학습한 표현을
다른 데이터셋에서도 재활용하는 것이다.
자연어 분야의 GPT와 비슷한 철학이다.
최근 연구들은
대규모 테이블 데이터
↓
표현 학습
↓
다른 Task에 Fine-Tuning
방향으로 발전하고 있다.
대표적으로
등의 연구들이 존재한다.
최근 Meta가 밀고 있는 방법론 중 하나가
Joint Embedding Predictive Architecture
이다.
기존 방식이
픽셀 복원
토큰 복원
에 집중했다면
JEPA는
표현 자체를 예측
하는 방법이다.
쉽게 말하면
입력을 복원하는 것이 아니라
미래 Representation을 맞춘다.
는 개념이다.
최근에는 이 접근을
Tabular Data에도 적용하려는 연구가 등장하고 있다.
좋은 Representation은
이상 탐지에서도 강력하다.
이상 탐지의 핵심 질문은 이것이다.
정상 데이터란 무엇인가?
정상을 잘 학습하면
비정상은 자연스럽게 보이기 시작한다.
예를 들어
나이 30
연봉 5000
직업 개발자
같은 데이터들이 밀집해 있다면
나이 22
연봉 50억
직업 대학생
같은 데이터는
매우 멀리 위치하게 된다.
대표적인 접근은 다음과 같다.
일부 Feature를 보고
나머지 Feature를 예측한다.
예측이 잘 된다면
정상
예측이 어렵다면
이상치
일 가능성이 높다.
일부 Column을 가린다.
그리고 원래 값을 복원한다.
복원이 잘 되지 않는다면
비정상 데이터일 가능성이 높다.
흥미롭게도
하나의 샘플만 사용하는 것이 아니라
다른 샘플들까지 함께 활용한다.
즉,
샘플 간 관계
를 이용하여 이상 여부를 판단한다.
처음에는 단순히
Label이 없으면 학습을 못하는 것 아닌가?
라고 생각했다.
하지만 실제 연구들은 그렇지 않았다.
가려서 맞추기
복원하기
비슷한 샘플 찾기
표현 공간 학습하기
생각보다 다양한 방식으로
데이터 스스로 정답을 만들어내고 있었다.
이미지에서는 회전시키면 되고,
자연어에서는 단어를 가리면 된다.
하지만 테이블 데이터는 그렇지 않았다.
오히려
어떻게 데이터의 의미를 망가뜨리지 않으면서
학습 신호를 만들 것인가?
라는 질문 자체가
이 분야의 핵심 문제처럼 느껴졌다.
딥러닝이 거의 모든 분야를 정복한 것처럼 보이지만,
Tabular Data는 아직도 해결해야 할 문제가 많은 분야다.
그리고 어쩌면 그 점이
이 분야를 더 흥미롭게 만드는 이유인지도 모르겠다.