Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

잡동사니 블로그

[논문 읽기] TabTransformer: Tabular Data Modeling Using Contextual Embeddings 본문

공부용

[논문 읽기] TabTransformer: Tabular Data Modeling Using Contextual Embeddings

코딩부대찌개 2023. 11. 16. 20:07

https://arxiv.org/abs/2012.06678

 

TabTransformer: Tabular Data Modeling Using Contextual Embeddings

We propose TabTransformer, a novel deep tabular data modeling architecture for supervised and semi-supervised learning. The TabTransformer is built upon self-attention based Transformers. The Transformer layers transform the embeddings of categorical featu

arxiv.org

Abstract

  • 지도 학습과 준지도 학습을 위한 새로운 tabular data modeling architecture인 TabTransformer를 제안.
  • TabTransformer는 self-attention 기반 Transformer를 기반으로 구축 되었으며, Transformer 레이어는 categorical features에 대해 좀더 robust 하게 contextual embedding함.
  • 공개적으로 사용 가능한 15개의 데이터셋에 대해 TabTransformer는 평균 AUC는 tabular data에 대한 deep learning 모델 보다 성능이 우수 하였고, 트리 기반 앙상블 모델의 성능과 비슷한 성능을 나타냄.
  • noise가 있는 데이터에 대해 더 robust 하고 더 나은 interpretability(해석 가능성)을 제공함.

Introduction

  • Tabular data는 추천 시스템, 온라인 광고와 같은 real world에서 가장 일반적인 데이터 유형
  • 이에 따른 state-of-the-art(SOTA) 방법은 GBDT(Gradient Boosted Decision Tree)와 같은 tree 기반 ensemble 모델들 이다.
    • 기존에 텍스트 및 이미지는 딥러닝이 기반으로 되는 것에 비해 대조적이다.
  • GBDT 계열 모델은 높은 정확도, 훈련도 빠르며, 해석도 쉬움, 그렇기에 실무자들 사이에서 선호 되나 몇가지 제한 사항이 있음.
    • Streaming data에는 적합하지 않으며, taular data 데이터와 함께 이미지/텍스트와 같이 multi-modality일 경우 end-to-end 학습을 허용하지 않음.
    • 기본적인 형태의 DTs 모델들은 예측에 대해 확률 추정을 하지 않음.
    • missing & niose가 있는 feature를 처리하는 state-of-the-art 딥러닝 방법은 여기에 적용할 수 없음.
  • gradient descent를 사용하여 이미지/텍스트 인코더의 end-to-end를 허용하는 고전적이고 인기 있는 모델은 MLP(Multi Layer Perceptron)
  • 그러나 MLP도 제약사항이 몇가지 존재함.
    • 모델이나 학습된 embedding 모두 해석 불가능.
    • missing & niose 데이터에서 모두 robust 하지 않음
    • 준지도 학습에서 경쟁력 있는 성과를 달성하지 못함.
    • 중요한점은 성능이 GBDT 계열 모델보다 성능이 떨어짐.
  • 그래서 MLP와 GBDT 간의 성능 격차를 해소하기 위해 TabTransformer를 제안함.
  • TabTransformer는 categorical features에 대해 효율적인 contextual embeddings을 학습하기 위해 Transformers를 기반으로 구축 되었음.
  • parametric embeddings에 multi-head attention을 기반으로 Transformer layer를 적용하여 이를 contextual imbedding하여 MLP와 GBDT 모델 간의 성능 격차를 해소함.
    • highly correlated features들로 인해 Euclidean distance가 서로 가까운 embedding vectors가 생성 되는 반면 baseline MLP에서는 그러한 패턴이 존재하지 않음.
  • missing & noise 데이터에 대해 robust하다.

The TabTransformer

  • TabTransformer architecture는 column embedding layer, N개의 Transformer layer stack, Multi Layer Perceptron으로 구성되어 있음.
  • 각 Transformer layer는 self-attention layer와 Feed Foward layer로 구성 되어 있음.

$(x, y)$를 feature-target 쌍으로 나타내며, 이때 $x\equiv\{x_{\small cat}, x_{\small cont}\}$로 정의됨. 여기서 $x_{\small cat}$은 모든 categorical feature를 나타내고, $x_{\small cont} ∈ \mathbb{R}^c$는 모든 $c$개의 continuous features(연속형 변수)를 나타냄. $x_{\small cat}$을 $\{x_1, x_2, · · · , x_m\}$으로 정의하며, 각 $x_i$는 $i ∈ \{1, · · · , m\}$에 대한 categorical feture임.

 

각 $x_i$의 categorical feature에 대하여 Columns embedding을 사용하여 $d$차원의 parametric embedding으로 변환함. 각 $x_i$의 feature embedding은 $e_{\small φi}(xi) ∈ \mathbb{R}^d$로 표현 되며, $i ∈ \{1, · · · , m\}$.

또한 모든 categorical feature에 대한 임베딩 집합은 $E_φ(x_{\small cat}) = \{e_{\small φ1}(x_1), · · · , e_{\small φm}(x_m)\}$으로 표시 할 수 있음.

 

이러한 parametric embeddings인 $E_φ(x_{\small cat})$은 첫 번째 Transformer layer에 input.

그 후, 첫번 째 Transformer layer에서 output이 두번 째 Transformer layer의 input으로 진행됨.

각 parametric embedding은 다른 embedding들로 부터 context(문맥?)을 연속으로 집계하여 최상위 Transformer layer에서 출력 할 때 contextual embedding으로 변환됨.

Transformer layer의 sequence를 함수로 표시하면 $f_θ$으로 표시 할 수 있음.

 

$f_θ$은 parametric embeddings에서 $\{e_{\small φ1}(x_1), · · · , e_{\small φm}(x_m)\}$으로 작용 하고 해당하는 contextual embedding은 $\{h_1, h_2, · · · , h_m\}$로 반환됨.

→ 여기서 $h_i ∈ \mathbb{R}^d$ 로 $i ∈ \{1, · · · , m\}$

contextual embedding인 $\{h_1, h_2, · · · , h_m\}$ $x_{\small cont}$와 연결 되어 $(d \times m + c)$ 차원의 벡터가 형성됨.

이 벡터는 MLP(Multi Layer Perceptron)에 연결 되어 y를 예측하게 되는데 이 MLP는 $$로 ****표시 할 수 있음.

classification은 cross-entropy, regression은 MSE(Mean Square Error)로 설정함. < 당연한 것.

 

first order gradient methods(1차 기울기??)방법을 통한 end-to-end 학습에서 모든 TabTransformer parameter를 학습하기 위해 $\mathcal{L}(x,y)$를 최소화 함.

TabTransformer parameters는 column embedding일 경우 $φ$, transformer layer일 경우 $θ$, 상위 MLP일 경우 $ψ$가 포함됨.

$$ \mathcal{L}(x, y) ≡ H(g_ψ(f_θ(E_φ(x_{\small cat})), x_{\small cont}), y) $$

Transformer

  • Transformer는 multi-head self-attention layer와 feed forward layer와 각 layer 뒤에 나오는 add & Norm layer로 이루어짐.
    • Residual Connection과 layer Nomralization.
  • Self attention layer는 Q(Query), K(Key), V(Value)가 input인 형태

$$ Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V $$

$d_k$는 Key의 벡터의 차원

$QK^T$는 Query와 Key의 전치(transpose)를 내적(dot product)한 것.

$\sqrt{d_k}$는 scale factor

 

그리하여 $softmax(\frac{QK^T}{\sqrt{d_k}})$는 attention weight를 계산하는 부분이며, softmax 함수를 통해 모든 가중치의 합이 1이 되게 만들며 attention weight와 Value matrix를 곱하여 최종 출력됨.

각 categorical feature(column) $i ∈ \{1, · · · , m\}$에 대해 embedding lookup table $e_{φi}(.)$가 있음. $d_i$ class를 가진 $i$번째 feature에 대해, embedding table인 $e_{φi}(.)$는 $(di + 1)$개의 임베딩을 가지며, 여기서 추가 embedding은 결측치.

Code

https://github.com/lucidrains/tab-transformer-pytorch

 

TabNet과의 차이?

TabNet 은 구글 TabTransformer는 AWS에서 발표.

TabNet은 attention 구조 + encoder decoder 구조를 기반으로 진행됨

  • 각 decision step에서 중요한 feature를 고르기 위해 multiplicative sparse mask를 사용

TabTransformer는 transformer 기반으로 각 feature embedding을 계산하여 각 feature가 서로 어떻게 연관되어 있는지를 학습

읽어보니 단순 데이터 보다는 Categorical feature가 많은 tabular data에서 어느정도 유효할 것 같은 생각이