TabNet 리뷰! 드디어 table (정형 데이터)를 위한 효과적인 딥러닝(인공신경망) 모델이 나타났습니다!
xgboost, lgbm, catboost과 같은 decision tree-based gradient boosting 기법들의 장점을 이용한 모델입니다!
제가 생각하는 key contribution은 다음 2가지 입니다.
정형 데이터에 대해서는 기존의 decision tree-based gradient boosting(xgboost, lgbm, catboost)와 같은 모델에 비해 신경망 모델은 성능이 떨어진다. 두 구조의 장점을 모두 갖는 TabNet을 제안
feature selection, interpretability가 가능한 신경망 모델
제가 현재 참가하고 있는 신약개발 대회 MoA에서 TabNet이 가장 높은 성능을 보이고 있습니다.
이전의 정형 데이터에서는 lgbm이 항상 가장 좋았고, 앙상블을 고려할 때 xgboost, catboost, 그리고 NN(neural network)를 추가하는 정도였습니다. 사실 정형 데이터에 대해서는 NN은 그렇게 복잡하거나 깊은 레이어로 구성되지도 않고, 그 구조에 이것저것 많이 넣는다고 해서 특별히 좋아지지는 않았습니다. 그나마 쓸만했던 것은 autoencoder를 이용해서 노이즈를 제거하거나, PCA와 같이 차원 축소로 사용하거나, 적은 데이터로 학습을 하는 semi-supervised 혹은 self-supervised 방식에 활용되는 정도였습니다. 여기에 조금 양념을 쳐서 anormaly detection(이상치 검출)로 엮어가기도 하죠. 쓰고보니 쓸모가 많은 것 같기도 하네요...ㅋㅋ
그런데, 이제 이러한 decision tree-based gradient boosting의 장점을 가진 인공신경망 아키텍쳐를 제안한 논문이 발표되었습니다! 심지어 feature engineering과 selection도 처리해준다고 합니다. 인공신경망 모델에서 또 중요한 이슈 중에 하나는 설명가능(interpretability)하게 만드는 것입니다. 이것도 가능하다고 합니다! Google Cloud AI의 Serean님과 Tomas님이 연구한 결과입니다! 정형데이터 tabular data를 갖고 연구하시는 분들은 꼭 한번 사용해보시면 좋을 것 같습니다!
이 논문에서는 새로운 고성능 및 해석 가능한 표준 심층 테이블 형식 데이터 학습 아키텍처 인 TabNet을 제안합니다. TabNet은 **순차적인 어텐션(Sequential Attention)**을 사용하여 각 의사 결정 단계에서 추론할 feature를 선택하여 학습 능력이 가장 두드러진 기능에 사용되므로 interpretability와 효과적인 학습을 가능하게 합니다. 실험적으로 다른 신경망 및 변형된 decision tree보다 성능이 우수하다는 것을 증명합니다. 끝에는 self-supervised learning으로 레이블이 없는 데이터가 풍부할 때, representation learning의 성능을 효과적으로 향상시키는 것을 보여줍니다.
이렇게 좌에서 우로 sequential하게 (masking을 이용하여) feature를 seleciton해가면서 feedback을 주고, 학습해나아가는 구조입니다.
현재 깃헙에서 조금 아쉬운 부분은 unsupervised pre-training 코드가 아직 제공되지 않는다는 점입니다. github issue에서는 이 부분이 얘기되고 있고, 다른 contributor 2명이 제안한 두 PR이 있는 것은 확인하고 있는 상황입니다. 제가 학습해본 것은 supervised 부분이고, 대부분 이 approach로 성능을 내고 있습니다. (하지만 unsupervsied training까지 하면 성능이 더 좋을 것으로 생각됩니다.)
tabnet encoder를 통해서 feature engineering 효과를 내고, decision making 부분을 통해 feature selection이 이루어지는 것으로 저는 이해했습니다! encoder는 fine-tuning하면서 task에 맞게 성능을 향상시켜 맞춰갑니다.