- 2021년 7월 30일 오후 7:33
- 조회수: 7087
REFERENCES
INFORMATION
- 2021년 7월 30일
- 오전 12시 ~
온라인 비디오 시청 (YouTube)

TOPIC
On-Line Video
OVERVIEW
발표자 후기

석사과정을 마치고 회사에서 데이터 분석 업무를 담당하면서 대부분 테이블형 데이터를 다루었습니다. 테이블형 데이터는 일반적으로 feature의 수가 비정형 데이터에 비해 상대적으로 적기 때문에 딥러닝을 쓸 기회가 많지 않았고 feature engineering에 대부분의 시간을 할애했습니다. 하지만 최근 테이블형 데이터임에도 2만여개 feature를 지닌 데이터를 다룰 기회가 생겼고, 현장의 변화로 지속적인 모델의 업데이트가 요구되어 이를 위한 딥러닝 모델을 찾던 중 TabNet을 접하였습니다.
TabNet은 변수 선택을 위한 마스크가 네트워크에 추가된 모델 해석이 용이한 딥러닝 모델입니다. 변수를 선택하는 attentive transformer 블록을 반복 통과할 때 마다 이미 선택한 변수가 중복 선택되지 않도록 sparkmax 함수와 prior scales를 활용였습니다. 이를 통해 각 단계에서 instance-wise feature importance를 계산할 수 있어 local 및 global 특성을 함께 파악할 수 있습니다. 이를 통해 딥러닝의 단점인 해석의 용이성을 크게 개선하였습니다.
TabNet은 tensorflow와 pytorch 구현체가 모두 github에 잘 정리되어 있습니다. 구체적인 동작이 궁금하신 분은 코드를 참고하시길 권해드립니다. 특히 pytorch 구현체는 scikit-learn과 동일한 인터페이스로 구현되어 있어 쉽게 사용할 수 있습니다. TabNet를 사용하고 싶은 분들은 참고하시길 바랍니다. 감사합니다.
청취자 후기

최근 tabular data 에 관한 연구 계획을 세우던 중에 마침 tabnet 을 읽게 되었는데, 논문을 이해하기가 좀 어려웠다. Feature Selection with Masking 과정에서 notation 이 혼동이 될 뿐더러, 모델 구조에서 처리 과정의 순서를 제대로 이해하기 힘들었기 때문이다. 다행히 오늘 세미나 덕분에 처리 순서나 notation 에 대해 헷갈렸던 점이 다소 보완된 것 같다.
해당 논문은 GLU(Gated Linear Unit), SparseMax 등 기존 논문에서 보지 못했던 활성화 함수를 사용한다. TabNet 이 나름 최근에 나온 논문이라 새로운 트렌드로 흘러가는 건지(optimizer 에서 LARS optimizer 가 요새 자주 보이는 것 처럼..), 아니면 새로운 시도였으나 주류가 되지 못하고 퇴화될지는 모르겠다.(AlexNet 에서 쓰였던 Local Response Norm 처럼..)
해당 논문의 key point 는 다음과 같다고 생각한다.
1. 일반적인 tabular data ML 처럼 global feature scaling 은 하지 않고 BatchNorm 으로 대체한다는 점
2. feature selection by masking 을 통해 의사결정나무 모델의 decision boundary 를 모사했다는 점
3. NLP 분야에서 Attention Score Map 처럼 해석이 용이하다는 점(feature-wise, instance-wise 둘 다)
4. NLP, CV 분야처럼 Unsupervised pre-training 을 추구한다는 점
원래는 완전한 구현체가 없어서 보지 않았었는데, 최근에 보니 github 에 코드가 올라온 것을 확인하였다. 코드를 뜯어보면 전반적인 과정이 더 잘 와닿을 것 같다.
세미나를 준비하느라 고생하신 성현이형께 감사의 말씀을 드린다.

이번 세미나는 “Deep Learning for Tabular Dataset”을 주제로 진행되었다. 딥러닝의 장점인 지속적인 학습 가능, 이미 학습된 모델을 약간의 추가 데이터로 개선 가능, 끊임없이 학습 가능 등을 Tabular data에 적용하고 해석까지 추가한 TabNet 모델에 대하여 구체적으로 살펴볼 수 있었다. 해당 알고리즘은 Tree 기반 모델들의 변수 선택 특징을 네트워크 구조에 반영한 딥러닝 모델에 해당된다. 구체적으로는 Conventional DNN 블록을 사용하여 masking되지 않은 한 변수만 학습되도록 하고, 이는 트리 기반 알고리즘의 결정 경계와 유사한 역할을 한다. 또한, feature transformer와 attentive transformer의 블록을 반복적으로 연결하여 이전 결과가 다음 학습에 영향을 주도록 하였다. 이는 이전 모델 학습 결과의 잔차를 다음 단계에서 보완하는 gradient boosting와 유사하다고 볼 수 있다. Atttentive transformer는 prior scale와 sparsemax를 활용하여 변수 선택의 기능을 진행하며, feature transformer는 선택된 변수로 정확히 예측하기 위하여 Ghost Batch Norm, Gated Linear Unit(GLU) 등을 활용하고 있다. 마지막으로, TabNet 모델의 인코더 이후에 예측 모델 뿐만 아니라 다양한 구조를 붙여 사용할 수 있다. 예로 들어, 디코더 구조를 연결해준다면 결측치 보간 효과를 통한 예측 성능 향상 결과를 기대할 수 있다. 모델 학습 이후에 Attentive transformer 층의 mask 값을 활용하여 변수 중요도를 시각화하면 각 스텝에서 활성화된 변수, 즉 예측에 주요하게 활용된 변수가 무엇인지 파악할 수 있으며, 스텝 별로 결과를 확인할 수 있다는 점에서 instance별 해석이 가능하다는 큰 장점을 갖고 있다. TabNet이라는 모델에 대하여 이전에 들어본 적은 있었지만, 이번 세미나를 통하여 실제 모델의 구조와 그 장점을 명확하게 파악할 수 있었다. 아직 다양한 데이터셋에서 좋은 성능을 보이지 못한다는 점이 많이 아쉽게 느껴졌고, 여러 데이터들에 해당 모델을 적용하고 개선 방향을 찾는 것도 좋은 연구가 될 것 같다.

금일 세미나 주제는 table data에 적합한 딥러닝 모델 TabNet 소개였다. table data에 대한 소개부터 세미나가 시작되었으며, table data에 적합한 딥러닝 모델 개발이 왜 중요한지를 현업 관점에서 현장감있게 소개해주셨다. TabNet은 산학 프로젝트에서 요구할만한 역량을 대부분 갖춘 좋은 모델이였으며, 모델 성능 또한 앙상블 계열의 SOTA 모델만큼 훌륭하였다. 현재 진행되고 있는 산학 프로젝트들에 무리 없이 적용할 것 같았다. Tree 계열의 변수 선택 알고리즘을 딥러닝 네트워크에 적용한 원리에 대해 전반적으로 자세히 소개되어 있어 고마운 세미나였다. 신기한 개념들이 많이 도입된 논문이였는데, 개인적으로 Entmax과 GLU 개념을 적용한 원리가 이해하게 되어 뿌듯하였다. 해당 원리는 깊은 구조의 딥러닝 모델 네트워크라면 적용할법만한 합리적인 부분이였다. 또한, 해당 모델은 인코더 구조의 네트워크 모델인지라 동일한 모델 구조를 디코더로 추가하게 되면 pretraining이 가능한 모델이다. 데이터의 개수가 한정적일 때에 효과적으로 사용할 수 있는 좋은 특성 같았다. 금일 세미나를 통해, 테이블 데이터에 적합한 딥러닝 연구 분야와 이 분야의 중요성을 잘 알게 되었다. 고생하신 성현이형에게 감사의 말씀을 전하며 세미나 후기를 마치도록 한다.

이번 세미나는 Tabular Data에 대한 주제로 진행되었다. Tabular data는 산업 현장의 엑셀 시트에서 아주 흔하게 볼 수 있는 형태로, feature는 컬럼에, sample을 row방향에 위치한 정형데이터 구조다.
의외로 딥러닝이 이런 Tabular data에서 아주 특별한 성능을 내는 경우가 드물다고 하는데, 그 이유 중 하나가 산업현장에서의 프로젝트와 학술적인 연구 사이의 gap에 의한 것이라는건 굉장히 재미있는 관점이라는 생각이 든다. 그래서 요즘 특히 산업 관련 회사에서 더욱 데이터 전문인력을 확보하려고 노력하고 있는게 아닐까 싶다.
세미나에서는 이 tabular data에 우수하게 사용할 수 있는 TabNet에 대해 설명해주었다. 여러 feature 중에 가장 효과적인 변수를 선택하여 딥러닝에 반영한다는 특징이 감명깊었다. 분석하다보면 feature중에 노이즈로 작용하는 것은 빼고 싶은적이 많은데, 이러한 부분을 모델 내에서 한번에 해결해준다면 사용자 입장에서는 상당히 간편할 것이다. tabnet은 이러한 변수선택을, 각 feature마다 mask를 통해 해당 feature의 영향도를 각각 학습하도록 하고, 이를 직렬로 반복 연결하여 마치 gradient boosting처럼 최적의 mask를 학습하는 구조이다. input으로 tabular data가 들어가면, feature transformer에 의해 embedding 되고, Prior scales를 가지고 있는 Attentive Transformer에 의해 변수 선택 기능으로 작용한다. 여기서 softmax대신 sparsemax를 써서, feature가 굉장히 많을 때 더욱 0으로 다수 수렴하게 해서 feature selection의 효과를 높인다고 한다.
재밌는 점은, 변수선택에 사용된 mask값 자체를 확인해보는 것으로 각 변수가 결과에 얼마나 중요했는지 확인할 수 있다는 것이다.
이를 통해 결과값에서도 굉장히 좋은 성능을 내고 있었는데, tabular data와 같은 이미 가능한 성능 한계치까지 닿아있는 분야에서도 새롭게 좋은 결과를 낼 수 있다는 점은 재밌었다. 때로는 새로운 data분야에서 효과를 보는 것보다 극한의 성능 개선을 찾는 것이 더 어려울 수 있기 때문이다.
개인적으로, 산업현장의 대부분의 데이터는 이러한 tabular data로 되어있기 때문에 상당히 감명깊었다. 갖가지 전처리와, 모델선택과 개선에 대한 고민을 하기 이전에 그냥 바로 넣어서 baseline 결과를 내는 모델은 어떻게 생각하면 속시원한 기분마저 든다. 듣는 내내, 알기 쉬운 비유와 함께 조목조목 짚어서 설명해주신 성형이형 덕분에 더욱 재밌게 잘 들었다. 준비해주셔서 감사하다는 말씀 전한다.

이번 세미나는 "Deep Learning for Tabular Dataset"을 주제로 진행됐다. 딥러닝은 많은 분야에서 좋은 성능을 내고 있지만, tabular data에서는 여전히 트리 계열의 boosting 방법론이 좋은 성능을 보여주고 있다. 하지만 딥러닝은 지속적인 학습이 가능하다는 점, 사전학습을 활용할 수 있다는 점, 그리고 복잡한 패턴을 잘 찾아낼 수 있는 특징을 가지고 있기 때문에 이러한 특성을 잘 활용한다면 tabular data에서도 좋은 성능을 낼 수 있을 것으로 기대되고 있다. 이번 세미나에서는 tabular data에 적합한 딥러닝 모델을 구조를 제시한 TabNet에 대해서 소개되었다. TabNet은 트리 기반 모델처럼 변수를 선택하여 학습을 진행하며 이전 학습 결과가 다음 학습에 영향을 미치는 boosting과 유사한 구조로 되어 있다. 또한 softmax 대신 sparsemax를 활용해 attention layer 등에서 효과적으로 작동하도록 모델을 설계했다. TabNet은 boosting 계열의 모델들과 대비해 우수한 성능을 보이긴 하지만 일부 데이터셋에서는 여전히 성능이 떨어지는 모습을 보이기도 한다. 오늘 세미나를 통해 TabNet이라는 모델에 대해 처음 접해보게 되어 의미 있는 세미나였다. 향후 연구에 tabular data를 다룰 때 TabNet을 사용하여 활용해보면 좋은 성과를 기대해볼 수 있을 것 같다.

이번 세미나는 'Deep Learning for Tabular Dataset'이라는 주제로 진행되었다. Feature는 column, sample은 row로 결합된 테이블 형태의 데이터셋을 의미하는 Tabular data는 관계형 데이터베이스의 보편화로 현존하는 IT system을 통해 쉽게 경험할 수 있는 데이터 구조이다. 이는 데이터의 특징을 쉽고 간단하게 표현 가능하다는 특징 탓에 제조, 마케팅 현장에서 주로 사용된다. 그러나 tabular data를 활용한 딥러닝의 성능은 이미지, 음성, 언어와 같은 비정형 데이터에서와 달리 인상적이지 못하다. 대표적 원인으로는, 학습 비용 대비 경제성 부족과 해석이 어렵다는 문제가 있다. 그러나, 본 세미나에서 초점을 맞춘 원인으로는 연구와 산업 프로젝트의 지향점이 다르다는 것이었다. 이후 소개해준 TabNet은 tree 기반 모델의 변수 선택 특징을 네트워크 구조에 반영한 딥러닝 모델로, sequential attention mechanism을 사용하여 모델의 성능과 해석 용이성을 향상하였다고 한다. TabNet는 크게 feature transformer와 attentive transformer로 해당 아키텍쳐가 구성되어 있다. 본 세미나에서는 더 세부적으로 ghost batch normalization과 gated linear unit, sparsemax 함수 등 쉽게 접해보지 못했던 새로운 개념들을 소개해주었다. 이와 함께 마지막 한계점으로는 'Deep learning is not all you need'를 통해 딥러닝이 반드시 우수한 성능을 보이는 것이 아님을 지적하였다. 따라서 tabular data에서의 딥러닝 활용 연구는 지속적으로 개선해나가야 할 여지가 있음을 보여주었다. Tabular data가 무엇인지, 그리고 현업에서 이를 어떻게 이용해나가고자 하는지 연구 관점에서는 생각해보지 못할 여러 부분들을 잘 짚어준 세미나였다. 이와 더불어 최신 논문 리뷰까지 정성스레 세미나를 준비해주신 강성현 연구원님께 감사의 말씀을 전하고 싶다.

이번 세미나는 Deep Learning for Tabular Dataset을 주제로 진행되었다. Tabular data는 우리가 쉽게 생각할 수 있는 테이블 형태의 데이터로, feature는 column, sample은 row 방향으로 결합된다. Tabular data는 산업현장에서 쉽게 볼 수 있는 데이터 형태이나, 이에 대한 딥러닝 연구는 그렇게 인상적이지 못한 상태라고 할 수 있다. 특히 딥러닝에 대한 연구 관점과 현업 관점의 차이에 대해 설명해주셨는데, 생각해볼만한 문제인 것 같다. Tabular data를 적용할 수 있는 딥러닝 모델로 TabNet이 소개되었다. TabNet은 tree 기반 모델의 변수선택 특징을 네트워크 구조에 반영한 딥러닝 모델이다. Feature transformer와 attentive transformer라는 블록을 통해서 최적의 mask를 학습하는 feature selection을 sequential하게 연결하여 이전 단계의 학습 결과가 다음 단계의 mask 학습에 영향을 주는 구조를 가지고 있다. Feature transformer에서는 Ghost batch norm과 Gated linear unit의 개념이 적용되고, Attentive transformer에서는 변수 선택을 위해 Prior scale과 Sparsemax라는 방법론을 적용한다. 특히 Attentive transformer의 mask값을 활용하면 변수의 중요도를 시각화하여 파악할 수 있으며, instance 관점에서도 중요도를 파악할 수 있다는 특징이 있다. 다수의 Tabular dataset에서 성능이 우세하기도 하였지만, 여전히 기존의 XGBoost와 같은 모델이 더 좋은 경우도 많아 아직 성능 향상의 기회가 많은 상태라고 할 수 있다. 이번 세미나를 통해 알게된 TabNet은 매우 인상적이었다. 실제로 현업에서 주로 많이 다루는 Tabular data를 위한 딥러닝 모델이면서 해석의 용이성을 제공하기도 하기 때문이다. Tabular data를 다룰 기회가 있을 때 꼭 한번 참고하여 적용해보고 싶다.

이번 세미나는 "Deep Learning for Tabular Dataset"을 주제로 진행되었다.
Tabular Data는 자주 보게 되는 DB 형식의 데이터이다. 데이터 Column은 Feature, Row는 Sample 형태로 구성되어있다. 특징을 명확하게 작성하여 쉽게 알 수 있기 때문에 보편적으로 사용되고 있으며 정제된 데이터 형식이라고 할 수 있다. TabNet은 Tree 기반 모델의 변수 선택 특징을 네트워크 구조에 반영한 딥러닝 모델로 가공하지 않은 Raw Data에서 Gradient를 기반한 최적화를 사용함으로써 End to End 학습을 구현하였고, attention mechanism을 이용하여 성능을 높이고 해석의 용이성을 향상시켰다. 기존 사용하던 딥러닝 모델들에 비하여 굉장히 유연한 모델이였다. 또한 변수의 중요도를 확인할 수 있어 실제 필드에서 유용하게 사용될 수 있을 것으로 예상된다. 추후 연구에서 Tabular Data를 다룰 때 TabNet 등의 모델을 적용해보고 싶다는 생각을 하게 되었다. 더불어 연구와 현업에서 보는 관점에 대해 많은 차이점이 있다는 것을 알 수 있었고 두 관점을 항상 생각 하면서 유연한 연구를 진행하면 좋을 것 같다. 좋은 세미나를 준비해주신 성현이형께 감사의 말을 전합니다!

금일 세미나는 “Deep Learning for Tabular Dataset” 주제로 성현이형이 발표했다. Tabular 데이터는 딥러닝 방법론보다 트리 계열의 Boosting 방법론에서 좋은 성능을 보여주고 있다. 하지만, 현업 관점에서는 기계 노후화, 유지 보수 등을 거친 기계로부터 동일 분포를 띄는 Tabular 데이터를 얻기란 쉽지 않다. 기계 학습 방법론은 이러한 문제를 해결하기가 쉽지 않다. 반면, 딥러닝은 Incremental Learning, Pre-training 등과 같은 다양한 학습 특성으로 위와 같은 문제를 해결해줄 수 있는 요소가 있다. 이번 세미나에서 소개한 TabNet은 Tree 계열의 장점인 Feature Selection 요소를 네트워크 구조에 반영한 tabular 데이터를 사용한 딥러닝 방법론이다. TabNet은 Masking 기법을 활용하여 Feature selection을 위한 변수 Mask 정보로부터 Masking되지 않은 변수만 학습하도록 한다. 특히, 변수를 선택하는 Attentive Transformer는 반복되는 블록에서 이미 선택된 변수가 중복 선택되지 않도록 Sparsemax와 Prior Scales를 사용하였다. Feature Transformer는 Ghost Batch Norm과 Gated Linear Unit (GLU)로 이루어져 있어 local 및 global 특성을 파악할 수 있는 장점이 있다. 실제로 Tabular 데이터를 분석할 때 Bagging, Boosting 알고리즘의 파워를 실감할 때가 많다. 하지만, 딥러닝의 학습 특성을 효율적으로 활용하고 이 외의 장점을 충분히 살린다면 SOTA 방법론이 탄생할지도 모른다.