
TabPFNv2. 하물며 Nature 에 올라와 있다.
tabular data 까지.. Attention 으로 섭렵 하려고 하는구나. 그래서 이름도 Prior 가 되냐!
예를 들어서,
1. 신약 개발 데이터 셋은 화학적 속성을 기록할 수 있는 반면,
2. 재료 과학 데이터 셋은 열과 전기 속성을 기록할 수 있다.
이러한 전문화는 더 작고 독립적인 데이터 셋과 관련된 모델들이 급증 (proliferation) 하는 현상으로 이어진다.
openml.org 에서는 이 글을 쓰는 시점에서 76% 의 데이터셋이 10,000 개 미만 의 행을 포함하고 있다.여기서 문제가, tabular data 는 하나의 열, feature 가 강한 특징을 갖는다. 따라서, 수치만 봐서는 그 관계를 feature 의 의미를 뜯어 보기 전까지는 알 수가 없다. 특히, attention 은 sequential data 에 특화 되어 있는데, 어떻게 풀어 나가는지 보자.
Deep learning 방법들은 전통적으로 tabular data 에서 힘을 발휘하지 못했는데, 그 이유는 데이터 셋들 간의 heterogeneity (이질성) 과 raw data 자체의 heterogeneity 때문 인다.
Table 데이터는
이로 인하여, tree 기반의 모델들과 같은 non-deep-learning methods 들이 지금까지 강력한 대안으로 여겨져 왔다.
당연한 말인게, 원래 feature engineering 이 존재하고, 그것으로 결측치 혹은 missing data 을 어떻게 할지 설정하며, bagging, boosting 계열의 트리 구조 모델로 feature importance 를 구하여 weight 을 주던가 혹은 feature extract 를 하게 된거지..
하지만, 이러한 전통적인 ML 에는 몇 가지 단점이 있다.
1. 상당한 수정 없이는 분포 밖(out-of-distribution OOD) 데이터의 성능이 떨어지고,
2. 한 데이터 셋에서 다른 데이터 셋으로의 transfer of knowledge 전이도 원활하지 않다.
3. 이 모델들은 propagate gradient 를 지원하지 않아서, neural net 과의 결합이 어렵다.
실제 데이터는 0, NA, NaN 등 데이터가 부지기수이고, 각 열의 box-plot 의 median 값이 0 인 데이터도 수두룩 하다. 즉, 사용할 수 없는 데이터가 너무 많은데.. 도메인 지식 상 꼭 필요한 변수도 있고, 실제 데이터에 문제가 많아서, 모델이 잘 맞지 않는 경향이 크다.
해결책으로, TabPFN 을 소개.
단일 forward pass 에서 TabPFN 은 우리의 benchmarks 에서 gradient-boosted decision tree 포함하는 SOTA 기준 모델들 보다 압도적인 성능 을 낸다.
거기에, TabPFN 의 fine-tuning, generative 능력 그리고 density 추정을 포함한 foundation model 의 특성도 보여준다.
사실 DeepLearning 계열의 attention 이라면.. fine-tuning 이 가능하고, 살짝 밑을 봤지만 synthetic data 도 생성하는 것 같다. 물론 prefill, KV cache 등 현재의 engineering trend 도 포함하고 있어서, 전투적으로 사용할 예정이다.
TabPNF 은 in-context learning (ICL) ,
ICL 은
이 반박을 하자면, 포크가 있으면 될 걸, 포크레인 을 사용하는 비유를 했었다. 그런데, 단 하나의 이점이 그것을 상쇄 시킨다. 위에서 언급한, "전문화된 더 작고 독립적인 데이터 셋과 관련된 모델들이 급증 (proliferation) 하는 현상으로 이어진다" 이게 해결된다면, 하나의 모델로 가능하다면.. end-to-end 처럼 현재 trend 를 반영하게 된다. 즉 포크레인이어도 된다.
원래 Deep Learning 계열의 모델은 Bayesian Neural Network 이다. 거기에 비선형 방정식의 해를 풀 수 있는 객체이다. 거기에 closed-form 해가 없는 건, 해는 물론 있겠지만, 못찾는 것을 approximate 한다는 거니, 아주 강력한 approximator 이므로 가능하다고 생각한다.
다만, 문제는 그 해석이 어렵다는 것인데.. GP 는 다른 의미로 데이터가 많지 않는 경우, 1-D regression 일 때, 내가 원하는 값에서 를 예측하는, 그리고 confidence interval 까지 푸는 방법이잖아. 좀 더 들여다 볼 가치가 있다.
초기 버전을 기반으로 개선된 버전이 개발되었다.
새로운 TabPFN
TabPFN 의 핵심 아이디어
전통적인 방식
이러한 접근으로 ICL 을 examplar (예시) 기반의 declarative (선언적) 알고리즘 프로그래밍 프레임워크로 활용한다.
이런 접근으로
single_eval_pos이후 부터 예측으로 들어가게 되는거잖아. 생각의 전환 이랄까,ICL은 언어의 sequence 만 생각했었는데,few-show learning처럼 데이터를 앞에 두고 ICL 이라는 방법으로 밀어 넣을 줄이야..
이러한 접근을 high-impact 가 큰 분야인 tabular 학습에 적용, 강력한 tabular 예측 알고리즘을 생성.
좀 더 읽어보자. 그러니까 이해가 안되는 부분은.. input-output 예시를 전환해서, 다양한 도메인에서 알고리즘을 개발한다는 건데.. ICL 접근 방식 가닥이 조금씩 이해되고 있음..
standard 한 supervised deep learning 의 ICL 접근 방식
TabPFN 의 ICL 접근 방식
실제 데이터 셋에 적용되기 전에, 이 모델은 다양한 예측 과제를 나타내는 수백만 개의 synthetic datasets 으로 한 번 pre-training 된다.
Step 1 : pretrained 된 하나의 Neural Network (Transformer) 에
Step 2 : labeled train 샘플 + label 이 없는 test 샘플 을 한꺼번에 입력으로 넣는다.
Step 3 : Network 가 train 부분을 context 로 읽고, test 에 대해 바로 예측을 뱉는 구조.
parameter 를 업데이트 하는 training 이 아니라, dataset 안의 예시를 조건 삼아서 규칙을 내부적으로 맞춰보는 incontext learning? 아니 그러면 매번 넣을 때, 기존의 train data 를 넣고, 분포를 찾은 다음, test data 를 넣는다는거네? 그게 incontext learning 인 것이야.
tabular data 를 training 하고 finetuning, inference 할 때
attention_head가 사용되는게 뭔가.. 이질적 이면서도, 새로운 것을 받아들여야 하는 기대감 이랄까.. 그런 것이 든다.
Fig. 1

a. TabPFN 사전 학습 과 사용에 대한 개괄적인 설명.

TabPFN 은 합성 데이터로 학습되고, 데이터 셋 전체를 입력 받아서 한번의 forward pass 로 예측
TabPFN : 에 의해서 parameterized 된 neural network
상속 잘먹였다.
Classifier와Regressor를 Architecture 거쳐서 만들게 하고 그걸 factory 함수에서 제어하게 함.
: 수백만 개의 dataset 에 걸쳐서 (데이터 셋 전부) 최적화 해야하는 training loss.
그렇지. negative log-likelihood 계산 는
CrossEntropyLoss로 하는거지.

x_full코드를 보면,X_train, X_test를concat으로 묶는 부분이 보인다.
inference 할 때
TabPFN 은 이제 임의의 미공개 실 세계의 데이터 셋에 적용 가능.

b. TabPFN architecture.

? 의 entry 를 예측. 각 노드는 table 에서 하나의 entry 를 표현 분포를 예측.
sample attention: sample (행) 간 attention
feature attention: feature (열) 간 attention
Fig. 2

a. 각 데이터 셋 마다, 먼저 상위 수준의 hyuperparameters 를 샘플링.

Hidden node) 까지 존재.edge : 어떤 node 값이 어떤 node 값을 만드는데 입력으로 들어가는지 결정.Sample graph complexity 에서 일단 홀딩. SCM 내용 부터 이해 후에 다시..
b. 이 hyuperparameter 들을 바탕으로,
계산 graph 와 graph 구조를 build 한다.

Linear
MLP
Categorical
데이터 셋을 생성하는 계산 함수를 encode 하는 structual causal model (SCM) 을 구성.
각 node 는 하나의 vector 를 가지고, computational graph 에서 각 edge 는 연결 유형 중 하나에 따라 정해진 함수를 구현.
각 단계(Step) 별 과정.
Step 1) random noise 변수들로 initialization data 를 생성, 이것을 그래프의 root node 에 넣어서 생성될 각 샘플에 대해서 computational graph 를 통해 전파.Step 2) graph 에서 feature (labelled F) 와 target node (target T) 위치를 무작위로 샘플링.Step 3) 샘플링된 feature 와 traget 의 node 위치에서 중간 데이터 표현 (intermediate representations) 를 추출.Step 4) 추출 데이터를 후처리 (post-process).c. 최종 데이터 셋을 가저옴.

prior 설계에 대한 내용은 "Synthetic data based on causal models" 섹션에 나와 있다.`
접근 방식은 이론적인 기반을 가지고 있음
합성 데이터 셋으로 정의된 prior 에 대한 approximating Bayesian prediction 으로 볼 수 있음. 훈련된 PFN 은 posterior predictive distribution 인
를 approximate 하고, 따라서 PFN pre-training 하는 동안 사용된 인공 (artificial) 데이터 셋 분포에 대해 지정된 분포 하에서의 Bayesian prediction 을 반환.
Transformer 기반의 모델은 sequence tokens 를 입력 받아서 attention 으로 항목 간 정보를 결합하여 long-range 의존성과 복잡한 관계를 잘 학습. tabular data 에 적용 될 수 있지만, TabPFN 은 두 가지 주요 한계를 해결.
transformer 는 sequence 를 위해 설계되어서, input data 를 tabular structure 가 아닌 single sequence 로 처리.
ML 모델들은 fit-predict 모델들로 사용되는데, Transformer 는 traning set 에 한번 fitted 된 후, 여러 test set 에 재사용.
Transformer 기반의 ICL (In Context Learning) 알고리즘은
- single pass 로 train 과 test 를 입력 받아 train 과 test 를 동시에 수행.
- fit 된 모델을 재사용할 경우, training set 을 다시 계산.
tabular structure 를 더 효과적으로 활용하기 위해서, table 의 각 셀에 별도의 representation 을 할당하는 architectur 를 제안.

양 방향 (two-way) attention 메커니즘을 사용
architecture 특징
algorithm optimization

KV cache 를 잘 이용했다고 볼 수 있다.
- LLM 의 KV Cache 는 이전 token 의 KV 인데, TabPFN 의 KV Cache 는 Training set 의 KV.
- LLM 은 첫 토큰 생성 시에 캐시가 생긴다면, TabPFN 은 fit() 시 한 번 생김
- LLM 은 다음 토큰 생성시 재사용 되는데, TabPFN 은 predict() 시 재사용 된다.
- LLM 은 점진적으로 증가하는 sequence 인 반면, TabPFN 은 고정된 training set.
- LLM 은 Autoregressive generation 에 최적화라면 TabPFN 은 Training set representation 의 재사용.
cumpute, memory optimization
솔직하게 말하네.
inference details 에 설명.flash attention, activation checkpointing 과 상태를 순차적으로 계산하는 방법을 사용
최적화를 통해 메모리 요구량을 4배로 줄여서 cell 당 1000 byte 미만의 메모리만 필요하게 만듬.
결과적으로, 단일 H100 GPU 에서 최대 50 million 셀을 가진 데이터셋 (예: 5 million row, 10 features) 에 대해서도 예측을 수행 가능.
regression tasks 의 경우, piece-wise(구간 별) 상수 출력 분포를 사용, 이를 통해서 단일 값이 아닌 목표의 분포를 예측 할 수 있다.
classifier일 경우softmax(logits)로 확률 분포 변환
regression일 경우 bucket 확률 분포로 변환
이렇게 결과를 분포로 뽑아내는걸 생각을 못했어. 사실 Prior 라고 하고 Attention 이 들어가서 내 개인적인 사고방식이 틀에 박혀있었어.
Step
1.PerFeatureTransformer에서data_dags파라미터로 DAG (Directed Acyclic Graph) 를 받는다.
2.feature와target속성으로 변수 역할 구분
3.feature와target로 실제 feature/target index mapping
4. DAG 의 Laplacian 행렬을 사용해서 positional encoding 을 생성'LM' : Largest (in magnitude) eigenvalues. 'SM' : Smallest (in magnitude) eigenvalues. 'LA' : Largest (algebraic) eigenvalues. 'SA' : Smallest (algebraic) eigenvalues. 'BE' : Half (k/2) from each end of the spectrum.
L = nx.directed_laplacian_matrix(graph)이용[[ 0.99 -0.148081 -0.262168 -0.01 -0.259042] [-0.148081 0.99 -0.483378 -0.010095 -0.135017] [-0.262168 -0.483378 0.8 -0.163355 -0.200388] [-0.01 -0.010095 -0.163355 0.99 -0.469376] [-0.259042 -0.135017 -0.200388 -0.469376 0.8 ]]
이러한 hyperparameter 를 기준으로 데이터 셋의 기반이 되는 causal structure 를 규정하는 방향성 비순환 그래프 (DAG) 를 구성.
Initialization data sampling 참고.Example >Computational edge mappings 참고.training ground (학습 환경) 을 조성. 이러한 생성 과정을 통해 모델 학습 1회당 약 100 million 개 규모의 방대한 합성 데이터셋 corpus 를 만들었으며, 각 데이터셋은 서로 다른 (고유한) causal structure, 특성 (feature) 타입, 그리고 함수적 특성을 가진다.
Post-processing섹션 참고.
TabPFN 은 ICL (In Context Learning) 을 활용
최대 10,000 개의 sample 과 500 개의 feature 를 가진 데이터 셋에서
전통적으로 사람이 설계한 접근들 (방식들) 보다
매우 효율적인 알고리즘을 자율적으로 (autonomously) 발견함으로써,
tabular data 모델링에 중대한 변화를 가져왔다.
synthetic data (합성 데이터) 를 기반으로 한 foundation model 로의 전환은 다양한 분야에서 tabular data 분석을 위한 새로운 가능성을 열어주었다.
Potential future directions
Future work
tabular data 모델링 분야가 계속 발점함에 따라서 TabPFN 과 같은 foundation model 이 연구자들의 역량을 강화하는데 중요한 역할을 할 것.