[Tabular ML (3)] | 뉴럴 네트워크로 Tabular Data를 잘 학습하려면?

대현·2026년 7월 13일

뉴럴 네트워크로 Tabular Data를 잘 학습하려면?

이전에는 Tabular Data를 다룰 때
XGBoost, LightGBM, CatBoost 같은 Tree-based Model이 강력하다는 내용을 정리했다.

그렇다면 여기서 한 가지 의문이 생긴다.

딥러닝이 이렇게 발전했는데,
Tabular Data에서는 Neural Network를 어떻게 사용해야 할까?

이번 강의에서는
Tabular Data를 위한 Deep Learning Architecture를 크게 두 가지로 나누어 다뤘다.

1. MLP-based Architecture
2. Attention-based Architecture

결론부터 말하면 이렇다.

MLP가 Tabular Data에 약한 것이 아니라,
Tabular Data에 맞게 잘 설계되지 않은 MLP가 약한 것이다.

그리고 Attention 역시
단순히 Transformer를 가져다 붙이는 것이 아니라
어떤 feature와 sample 사이의 관계를 학습할지 설계하는 것이 중요하다.


Tree-based Model은 여전히 강력하다

먼저 인정해야 할 부분이 있다.

Tabular Data에서는
Tree-based Model이 여전히 강력하다.

그 이유 중 하나는
Tabular Data가 다음과 같은 특성을 가지기 때문이다.

- feature 종류가 다양하다.
- threshold 형태의 패턴이 자주 나타난다.
- 의미 없는 feature가 섞여 있을 수 있다.
- 데이터 크기가 이미지나 텍스트보다 작은 경우가 많다.

예를 들어 대출 승인 문제를 생각해보자.

Income > 5000
Debt Ratio < 0.4
Credit Score > 700

Tree-based Model은 이런 조건을 기준으로
데이터를 직접 나누는 데 강하다.

반면 일반적인 Neural Network는
이런 불연속적이고 구간 중심의 패턴을
처음부터 자연스럽게 표현하기 어려울 수 있다.

그래서 Tabular Data에서는
무작정 깊은 Neural Network를 사용하는 것보다
데이터에 맞는 구조를 설계하는 것이 더 중요하다.


MLP-based Architecture

가장 먼저 시도해볼 수 있는 MLP

MLP는 Multi-Layer Perceptron의 약자다.

가장 단순한 형태에서는
하나의 row를 vector로 만든 뒤 그대로 MLP에 넣는다.

예를 들어 고객 데이터가 다음과 같다고 해보자.

Age = 25
Income = 3000
Tenure = 12
Debt = 500

이를 하나의 vector로 만들면 다음과 같다.

x = [25, 3000, 12, 500]

그리고 이 값을 MLP에 넣는다.

Input
↓
Linear
↓
ReLU
↓
Dropout
↓
Linear
↓
Prediction

Categorical Feature는 숫자 그대로 넣기 어렵기 때문에
One-hot Encoding이나 Embedding을 사용할 수 있다.


MLP는 정말 Tabular Data에 약할까?

처음에는 나도 이렇게 생각했다.

Tabular Data에서는 MLP보다 Tree-based Model이 무조건 좋은 것 아닌가?

하지만 강의 내용을 보면
그렇게 단순하게 말할 수 없다.

많은 실험에서 MLP가 약하게 보이는 이유 중 하나는
충분히 잘 튜닝되지 않은 MLP를 baseline으로 사용했기 때문이다.

MLP 성능에는 다음 요소들이 큰 영향을 준다.

- Preprocessing
- Feature Representation
- Initialization
- Activation Function
- Regularization
- Learning Rate
- Training Schedule
- Hyperparameter Tuning

즉, 같은 MLP라도
어떻게 전처리하고 학습시키느냐에 따라
성능 차이가 크게 날 수 있다.

그래서 MLP를 평가할 때는
단순히 layer 몇 개를 쌓고 끝내는 것이 아니라
충분한 tuning이 필요하다.


Feature별로 따로 Embedding한다

강의에서 가장 인상 깊었던 부분 중 하나는
Numerical Feature를 표현하는 방식이었다.

일반적인 MLP에서는
숫자형 feature 하나를 scalar 하나로 넣는다.

Age = 25
Income = 3000
Debt = 500

하지만 이 방식은
각 feature가 단 하나의 숫자로만 표현된다는 한계가 있다.

예를 들어 Age = 25라는 값은
다음과 같은 다양한 의미를 가질 수 있다.

- 20대에 속한다.
- 30세보다 작다.
- 18세 이상이다.
- 특정 연령 구간에 속한다.

단순 scalar만 사용하면
이런 구간 정보나 지역적인 패턴을
MLP가 뒤에서 모두 알아서 학습해야 한다.

그래서 각 feature를 따로 embedding하는 방법을 사용할 수 있다.

Age
↓
Age 전용 Embedding

Income
↓
Income 전용 Embedding

Debt
↓
Debt 전용 Embedding

그 결과를 합친 뒤 MLP에 넣는다.

Age Embedding
Income Embedding
Debt Embedding
Tenure Embedding
        ↓
    Concatenate
        ↓
        MLP

중요한 점은
feature를 독립적으로 embedding한다고 해서
끝까지 독립적으로 처리되는 것은 아니라는 것이다.

처음 representation만 따로 만들고,
이후 MLP에서 서로 섞이면서 feature interaction을 학습한다.


Numerical Feature Embedding 예시

대표적인 방식으로는 다음이 있다.

- Piecewise Linear Encoding
- Periodic Activation

Piecewise Linear Encoding

숫자의 범위를 여러 구간으로 나눈다.

예를 들어 Age를 다음처럼 나눌 수 있다.

0 ~ 20
20 ~ 30
30 ~ 40
40 ~ 50
50 이상

Age = 27이라면
20~30 구간 안에서 어느 위치에 있는지를 vector로 표현한다.

이 방식은 Tree가 threshold를 기준으로 나누는 것과 비슷한 효과를 낸다.

Age <= 20
Age <= 30
Age <= 40

즉, MLP가 구간별 패턴을 더 쉽게 학습하도록 도와준다.

Periodic Activation

sin과 cos 같은 주기 함수를 사용해
하나의 숫자를 여러 값으로 표현한다.

x
↓
sin(c1x), cos(c1x), sin(c2x), cos(c2x), ...

하나의 scalar를 여러 차원의 vector로 바꾸면서
더 복잡한 수치 관계를 학습할 수 있게 한다.


좋은 Embedding은 Backbone만큼 중요하다

강의에서 중요한 결론은 다음과 같다.

Numerical Feature를 어떻게 표현하느냐는
MLP와 Transformer 중 무엇을 고르느냐만큼 중요할 수 있다.

실제로 Feature-wise Embedding을 적용한 MLP가
일부 benchmark에서 Tree-based Model이나 Transformer-based Model보다
좋은 결과를 보인 경우도 있었다.

즉,

좋은 Architecture
+
좋은 Feature Representation
=
좋은 Tabular Model

이라고 볼 수 있다.


RealMLP

RealMLP는
단순한 MLP를 제대로 학습시키면 얼마나 강해질 수 있는지를 보여주는 모델이다.

RealMLP는 다음 요소들을 개선한다.

- Robust Preprocessing
- Numerical / Categorical Embedding
- Learnable Feature Scaling
- Improved Activation
- Better Initialization
- Regularization
- Training Schedule
- Meta-tuned Default Hyperparameter

여기서 Meta-tuned Default라는 개념이 흥미로웠다.

여러 데이터셋에서 좋은 설정을 미리 찾고,
그 설정을 새로운 데이터셋에 적용하는 방식이다.

여러 데이터셋에서 좋은 설정 탐색
↓
강한 Default Recipe 생성
↓
새로운 Dataset에 적용

즉, 매번 엄청난 Hyperparameter Search를 하지 않아도
어느 정도 강력한 기본 설정을 사용할 수 있다.

RealMLP가 주는 교훈은 다음과 같다.

MLP가 약한 것이 아니라,
MLP를 약하게 학습시켰을 가능성이 있다.


Nearest Neighbor와 Neural Network의 결합

kNN의 핵심은 단순하다.

나와 비슷한 샘플의 정답을 참고한다.

반면 일반적인 Neural Network는
training data의 정보를 parameter 안에 압축한다.

Training Data
↓
Parameter 학습
↓
새 Sample 예측

예측 시점에는
기존 training sample을 직접 참고하지 않는 경우가 많다.

그렇다면 두 방식의 장점을 합칠 수 있지 않을까?

Neural Network의 Representation Learning
+
kNN의 Neighbor Reasoning

이런 방향에서 등장한 모델이
TabR과 ModernNCA다.


TabR

필기에서 tapR이라고 적은 부분은
정확히는 TabR이다.

TabR은 MLP에
kNN과 비슷한 Retrieval Module을 결합한 모델이다.

기본 흐름은 다음과 같다.

입력 Sample
↓
Encoder
↓
Embedding 생성
↓
비슷한 Training Sample 검색
↓
Neighbor 정보 활용
↓
Prediction

TabR은 다음 정보를 사용한다.

- Neighbor Representation
- Neighbor Label
- Target과 Neighbor의 차이

예를 들어 고객 A의 이탈 여부를 예측한다고 해보자.

고객 A
- 가입 기간 3개월
- 월 요금 높음
- 최근 사용량 감소

TabR은 embedding space에서
이 고객과 비슷한 과거 고객들을 찾는다.

비슷한 고객 1 → 이탈
비슷한 고객 2 → 이탈
비슷한 고객 3 → 유지

그리고 이 정보들을
현재 고객의 representation에 반영해 예측한다.


TabR의 Retrieval은 Attention과 비슷하다

TabR은 모든 sample을 똑같이 참고하지 않는다.

가장 관련 있는 top-m neighbor만 선택한다.

전체 후보 Sample
↓
Similarity 계산
↓
Top-m Neighbor 선택
↓
Softmax로 Weight 계산
↓
Weighted Sum

더 비슷한 sample에는 높은 weight를 주고,
덜 비슷한 sample에는 낮은 weight를 준다.

그래서 단순 kNN이라기보다는
학습 가능한 Retrieval Module에 가깝다.


ModernNCA

필기에서 NCL이라고 적은 부분은
정확히는 NCA다.

NCA는 Neighborhood Components Analysis의 약자다.

ModernNCA는
기존 NCA를 Neural Network 기반으로 현대화한 모델이다.

핵심은 다음과 같다.

Soft Nearest Neighbor가 잘 작동하는
Embedding Space를 직접 학습한다.

일반적인 kNN은 원래 feature space에서 거리를 계산한다.

Raw Feature
↓
거리 계산

ModernNCA는 Neural Network를 통과시켜
더 좋은 embedding space를 만든다.

Raw Feature
↓
Neural Network
↓
Learned Embedding
↓
Soft-NN Prediction

Soft Nearest Neighbor란?

일반 kNN은
가장 가까운 k개의 sample을 골라
다수결이나 평균을 사용한다.

ModernNCA는 각 neighbor에
거리 기반 weight를 부여한다.

가까운 Neighbor → 높은 Weight
먼 Neighbor → 낮은 Weight

그리고 neighbor label을 가중 평균한다.

Prediction
=
Neighbor Label × Similarity Weight의 합

이 방식이 Soft Nearest Neighbor다.


왜 Modern인가?

ModernNCA가 Modern이라고 불리는 이유는
단순히 오래된 NCA를 그대로 사용하지 않기 때문이다.

다음 요소들이 추가되었다.

- Neural Network 기반 Embedding
- PLR-style Numerical Encoding
- Better Optimization
- Stochastic Neighborhood Sampling

Stochastic Neighborhood Sampling은
모든 sample과 거리를 계산하는 비용을 줄이고
효율적으로 neighbor를 활용하기 위한 방식이다.


TabR와 ModernNCA 차이

둘 다 neighbor 정보를 활용하지만
예측 방식은 다르다.

모델핵심 아이디어예측 방식
TabRNeighbor 정보를 Neural Network 내부에 추가Encoder + Retrieval + Predictor
ModernNCASoft-NN이 잘 작동하는 공간 학습Neighbor Label의 Weighted Average

쉽게 말하면 다음과 같다.

TabR
→ 비슷한 샘플의 정보를 가져와 Neural Network가 다시 예측

ModernNCA
→ 비슷한 샘플들의 Label을 가중 평균하여 예측

두 모델의 공통적인 메시지는 이것이다.

Tabular Data에서는
비슷한 Sample의 정보가 강력한 Inductive Bias가 될 수 있다.


TabM과 Ensemble

TabM은 MLP에 Ensemble을 적용한 모델이다.

기존 연구들은 대부분
하나의 강한 모델을 만드는 데 집중했다.

- 더 좋은 Embedding
- 더 좋은 Training Recipe
- Attention
- Retrieval

하지만 여러 MLP를 함께 사용하는 Ensemble도
성능 향상에 도움이 될 수 있다.


Deep Ensemble

Deep Ensemble은
여러 MLP를 각각 독립적으로 학습하는 방식이다.

MLP 1
MLP 2
MLP 3
↓
Prediction 평균

성능은 좋아질 수 있지만
학습 비용이 크다.


Packed-Ensemble

Packed-Ensemble은
여러 MLP를 하나의 큰 Network 안에 넣고
joint training하는 방식이다.

여러 MLP
↓
하나의 구조 안에 Pack
↓
동시에 학습

TabM과 TabMmini

TabM과 TabMmini는
Ensemble Member들이 대부분의 parameter를 공유한다.

Shared Parameter
+
Member-specific Parameter

각 모델을 완전히 따로 학습하는 것보다
더 적은 비용으로 Ensemble 효과를 얻는 것이 목표다.

여기서 주의해야 할 점이 있다.

MLP를 하나로 합쳐 학습하면
독립적으로 학습하는 것보다 무조건 좋다는 뜻은 아니다.

정확히는 다음과 같다.

Parameter Sharing 구조를 잘 설계하면
독립적인 Deep Ensemble보다 효율적으로
좋은 Ensemble 성능을 얻을 수 있다.


MLP-based Architecture 정리

MLP 기반 모델의 핵심은 다음과 같다.

1. Simple MLP도 잘 튜닝하면 강한 baseline이 될 수 있다.
2. Numerical Feature를 따로 embedding하면 표현력이 좋아질 수 있다.
3. Preprocessing과 Training Recipe가 중요하다.
4. 비슷한 Sample의 정보를 Retrieval 또는 Soft-NN으로 사용할 수 있다.
5. Efficient Ensemble을 통해 성능을 높일 수 있다.

즉, MLP는 Tabular Data에 부적합한 구조가 아니다.

문제는 MLP 자체가 아니라
어떻게 설계하고 학습시키느냐이다.


Attention-based Architecture

다음은 Attention 기반 Architecture다.

Attention의 핵심은 다음과 같다.

여러 item 사이의 관계를 계산하고,
중요한 정보에 더 큰 weight를 주어 정보를 합치는 것

Tabular Data에서는
feature 사이의 관계를 학습할 수 있다.

예를 들어 Debt는 그 자체만으로는 의미가 부족하다.

Debt = 3000

하지만 Income과 함께 보면 의미가 달라진다.

Income = 10000, Debt = 3000
Income = 3500, Debt = 3000

같은 Debt라도
Income에 따라 위험도가 달라진다.

Attention은 이런 feature interaction을
직접 학습할 수 있다.


Self-Attention과 Cross-Attention

Attention은 크게 두 가지로 나눌 수 있다.

Self-Attention

같은 집합 안의 item끼리 관계를 계산한다.

Age ↔ Income ↔ Debt ↔ Tenure

Cross-Attention

서로 다른 두 집합 사이의 관계를 계산한다.

현재 Sample
↔
외부 Context

Tabular Architecture에서는
주로 feature 간 Self-Attention과
sample 간 Attention이 중요하게 다뤄진다.


FT-Transformer

FT-Transformer는
Tabular Data에서 Attention 기반 모델의 대표적인 기준점이다.

이름은 다음 두 요소에서 나온다.

FT-Transformer
=
Feature Tokenizer
+
Transformer

Feature를 Token으로 만든다

각 column을 하나의 token으로 만든다.

예를 들어 다음 feature가 있다고 해보자.

Age
Income
Job
Contract

Numerical Feature는 Linear Projection을 사용한다.

Age = 25
↓
Age Token

Categorical Feature는 Embedding Lookup을 사용한다.

Job = Developer
↓
Job Token

결과적으로 하나의 row는 다음처럼 표현된다.

[Age Token]
[Income Token]
[Job Token]
[Contract Token]

Feature 사이에 Self-Attention을 수행한다

각 feature token은
다른 feature token을 참고한다.

Debt Token
→ Income Token을 많이 참고

Contract Token
→ Tenure Token을 많이 참고

그리고 앞에 [CLS] token을 추가한다.

[CLS]
Age
Income
Job
Contract

Transformer를 통과한 뒤
최종 [CLS] representation으로 예측한다.

Feature Tokens
↓
Transformer
↓
[CLS] Representation
↓
Prediction

중요한 점은
FT-Transformer가 기본적으로 하나의 row 안에서
feature끼리 attention한다는 것이다.

다른 row와 직접 interaction하는 구조는 아니다.


Sample 간 Attention

FT-Transformer는 feature interaction을 학습하지만
각 row는 독립적으로 처리한다.

하지만 Tabular Data에서는
다른 sample의 정보가 도움이 될 수 있다.

예를 들어 고객 이탈 예측에서는
행동 패턴이 비슷한 다른 고객이 좋은 참고 대상이 될 수 있다.

그래서 나온 질문은 다음과 같다.

Feature뿐만 아니라
Sample끼리도 Attention할 수 없을까?


NPT

NPT는 Non-Parametric Transformer의 약자다.

일반적인 모델은 training data를 parameter에 압축한다.

Training Data
↓
Parameter
↓
Prediction

NPT는 prediction 과정에서
training data와의 직접적인 관계도 활용한다.

P(y | x, Training Data)

NPT는 dataset과 masking matrix를 입력으로 받고,
가려진 데이터를 예측하도록 학습한다.

Masked Language Modeling과 비슷한 방식이다.

전체 Table
+
Masking
↓
일부 Cell 가리기
↓
나머지 정보로 복원

NPT에는 두 종류의 attention이 있다.

1. Attention Between Datapoints
2. Attention Between Attributes

Attention Between Datapoints

row와 row 사이의 관계를 본다.

Sample A ↔ Sample B ↔ Sample C

Attention Between Attributes

하나의 row 안에서 feature 사이의 관계를 본다.

Age ↔ Income ↔ Debt

즉, NPT는 row와 column 관계를 모두 활용하려는 구조다.

다만 전체 dataset을 직접 다루는 방식은
연산량과 메모리 비용이 크기 때문에
실제 구현에서는 dataset 크기와 구성에 주의해야 한다.


SAINT

SAINT는
Self-Attention and Intersample Attention Transformer의 약자다.

NPT와 유사하게 두 종류의 attention을 사용한다.

- Feature-wise Self-Attention
- Intersample Attention

즉,

하나의 row 안에서 feature 관계 학습
+
여러 row 사이에서 sample 관계 학습

을 함께 수행한다.

SAINT는 여기에 Pretraining도 추가한다.

- Contrastive Pretraining
- Denoising Pretraining

Label이 적은 환경에서도
representation을 먼저 학습할 수 있다는 장점이 있다.


Sample Attention의 장점과 한계

장점

- 비슷한 Sample을 참고할 수 있다.
- Row 사이의 관계를 학습할 수 있다.
- 학습 가능한 kNN처럼 동작할 수 있다.

한계

- 연산량이 크다.
- 메모리 사용량이 많다.
- Sample 수가 많을수록 비용이 커진다.
- Target Leakage를 조심해야 한다.

특히 다른 row의 target이
잘못된 방식으로 현재 sample에 전달되면
data leakage가 발생할 수 있다.


더 구조적인 Attention

최근 모델들은
모든 feature 사이에 무조건 attention을 적용하는 방식에서 더 나아간다.

다음 질문을 던진다.

어떤 Feature끼리 Interaction해야 하는가?

어떤 Interaction은 막아야 하는가?

어떤 수학적 관계를 직접 표현해야 하는가?

T2G-Former

T2G-Former는
feature 관계를 graph 형태로 구성한다.

Income ↔ Debt
Debt ↔ Credit Score
Age ↔ Income

모든 feature가 동일하게 interaction하도록 두지 않고,
Relation Graph를 이용해 중요한 관계를 안내한다.

즉, Attention에 구조적인 정보를 넣는 방식이다.


ExcelFormer

ExcelFormer는
해로운 정보 흐름을 제한한다.

일반 Self-Attention에서는
모든 feature가 서로 정보를 주고받을 수 있다.

하지만 모든 interaction이 유용한 것은 아니다.

의미 없는 feature가
중요한 feature의 representation을 방해할 수도 있다.

그래서 ExcelFormer는
도움이 되지 않는 정보 흐름을 제한한다.

유용한 Interaction
→ 허용

해로운 Interaction
→ 제한

AMFormer

AMFormer는
Arithmetic Feature Interaction을 명시적으로 모델링한다.

Tabular Data에서는 다음과 같은 계산 관계가 중요하다.

Revenue = Price × Quantity

Debt Ratio = Debt / Income

BMI = Weight / Height²

일반 Attention도 이런 관계를 어느 정도 학습할 수 있지만,
AMFormer는 이런 arithmetic interaction을
더 직접적으로 표현하도록 설계되었다.


Attention-based Architecture 정리

Attention 기반 모델은
관계를 학습하는 데 집중한다.

크게 세 가지 관계를 다룬다.

1. 하나의 Row 안에서 Feature 사이의 관계
2. 여러 Row 사이에서 Sample 사이의 관계
3. 구조적으로 제한되거나 강조된 Interaction

모델별 핵심은 다음과 같다.

FT-Transformer
→ 모든 Column을 Feature Token으로 만들어 Attention

NPT
→ Datapoint Attention + Attribute Attention

SAINT
→ Feature Attention + Row Attention + Pretraining

T2G-Former
→ Relation Graph 기반 Interaction

ExcelFormer
→ 해로운 정보 흐름 제한

AMFormer
→ Arithmetic Interaction을 명시적으로 학습

결론

결론은 간단하다.

MLP는 Tabular Data에 약한 구조라고 단정할 수 없다.

좋은 preprocessing,
좋은 numerical embedding,
적절한 training recipe,
neighbor information,
ensemble을 적용하면 충분히 강력한 성능을 낼 수 있다.

Attention Architecture도 마찬가지다.

단순히 Transformer를 가져와 붙이는 것만으로는 충분하지 않다.

Tabular Data에서는 다음이 중요하다.

- 어떤 Feature끼리 관계를 맺어야 하는가?
- 어떤 Sample을 참고해야 하는가?
- 어떤 Interaction을 제한해야 하는가?
- 어떤 연산 관계를 강조해야 하는가?

결국 Tabular Deep Learning의 핵심은 이것이다.

더 깊은 Neural Network를 만드는 것이 아니라,
Tabular Data에 맞는 Inductive Bias를 설계하는 것.

Tree-based Model이 강한 이유를 이해하고,
그 장점을 Neural Network Architecture에 어떻게 반영할지 고민해야 한다.

이번 강의를 통해
같은 MLP와 Transformer라도
feature를 어떻게 표현하고,
어떤 sample을 참고하고,
어떤 관계를 학습하게 하느냐에 따라
전혀 다른 모델이 될 수 있다는 것을 알게 되었다.

profile
도전을 멈추지 않는 개발자

0개의 댓글