LoginSignup
32
31

More than 3 years have passed since last update.

テーブルデータに使えるNNモデルの備忘録(PyTorch)

Posted at

はじめに

この度、kaggleのMoAというコンペに会社の同僚と参加し4,384チーム中35位を獲得することができました。テーブルデータのコンペは初めてだったのですがチームメンバーのおかげで楽しく学びをもって取り組むことができました。この記事ではこのコンペに取り組む中で見つけたテーブルデータに使えるNNモデル(PyTorch)を備忘録としてまとめます。
https://www.kaggle.com/c/lish-moa/overview

TabNet

このコンペではこちらのモデルを使っている人も多かったのではないでしょうか?安定していい性能を発揮するので便利でした。
TabNet: Attentive Interpretable Tabular Learning. arXiv preprint arXiv:1908.07442.)
https://arxiv.org/pdf/1908.07442.pdf.
https://github.com/dreamquark-ai/tabnet

このモデルはGoogle CloudAIチームによって開発されているもので、Google Cloud AI Platformでも採用されているとかいないとか...
論文によるとこのモデルの真価を発揮するためにはlabelを使わないSelf Pretrainingをする必要があるようなのですがPyTorch Tabnetのレポジトリにはまだその機能は実装されていません(開発中のようなのでいつか追加されると思います。)なので今回のコンペでは開発中のbranchを利用して自分で実装したものを使いました。実際、Pretrainingを使うとモデルが大きくなっても過適合せずにキチンと学習が進みました。
https://github.com/hirune924/tabnet
使い方
https://www.kaggle.com/hirune924/pytorch-tabnet-pretraining-step3-many-fe-train

DeepFMとその仲間たち

CTR predictionの分野ではNNでテーブルデータを使う研究が盛んなのでしょうか?今回のコンペではカテゴリカル特徴がほぼ無かったので結局は使いませんでしたが、カテゴリカルデータ多い問題であれば使えたかもしれないなと思っています。
https://github.com/guokr/TorchCTR
https://github.com/shenweichen/DeepCTR-Torch
https://deepctr-torch.readthedocs.io/en/latest/
https://github.com/jrzaurin/pytorch-widedeep

DeepInsight

こちらはテーブルデータというかゲノミクスなどの非画像データ(特に高次元でスパースな非画像データ)をkPCAやt-SNEを使用して画像化してCNNで扱うという方法です。思い切った方法ですが精度は意外といいです。しかし、わざわざ画像にして扱うのでモデル学習時間やモデルサイズがテーブルデータと比べると大きく増加するのが欠点かなと思います。今回のコンペでもモデルがヘビーになってしまって実験サイクルのスピードが落ちてしまいそうだったので採用しませんでした。
https://www.kaggle.com/markpeng/deepinsight-efficientnet-b3-noisystudent
https://www.kaggle.com/markpeng/deepinsight-transforming-non-image-data-to-images

GrowNet

こちらは自分は使わなかったので説明は省きますが、複数の小さなNNモデルを勾配ブースティングのように積んでいく感じでしょうか
https://github.com/sbadirli/GrowNet
https://www.kaggle.com/gogo827jz/multi-label-pbestpre-inference-grownet-pl

NODE

こちらも自分は使わなかったので説明は省きますが、NNモデルを使った決定木みたいな感じでしょうか
https://github.com/Qwicen/node
https://www.kaggle.com/gogo827jz/moa-public-pytorch-node

32
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
31