深層学習で表形式データ処理『TabNet』を解説【AAAI論文】

機械学習

機械学習は、自然言語処理や画像処理分野で大きな功績を挙げており、たくさんの衝撃的な成果がよく紹介されます。
一方でビジネスでは、各月の売上や業務成績など、表形式のデータが主流です。

今回は、そんな表データをディープラーニングで直接処理する手法を紹介します!

論文概要

著者は何を達成したの?

  • ディープラーニングで表形式データを扱えるモデルを提案した
    • 前処理不要
    • end-to-endの学習
    • 1つのモデルで、変数選択(Feature Selection)と推論が可能
    • 推論結果を人間が解釈しやすい
    • 教師なし学習も可能
  • 複数のデータセットで性能評価
    • 他の手法に比べ、同等かそれ以上の性能を記録
    • 回帰と分類のどちらでも高い性能

この手法のキーポイントは何?

  • Attentive transformerMaskFeture transformerを用いた処理モデル
  • 段階的な特徴量処理のネットワーク構造

どう役立つか?

実際のビジネスで用いられる多くのデータは表形式なので、業務委託を受けた際にベースラインとして有効。

TabNetの構造

上の図は、TabNetの全体構造を示しています。
基本的には、マルチステップモデルとなって、段階的に処理を行い、各ステップの出力を合算して出力(Output)を決定します。

Self-supervised learningを行う際には、右側のDecoderモデルと接続して、Autoencoderのように再構成するようにします。
図の左下から特徴量ベクトルが入力され、中央上部の「Output」を通り、右下の「Reconstructed features」が出力されます。

TabNet以下のように各行にデータの特徴量ベクトルが並んだものを、データごとに入力されます。

データ特徴量1特徴量2特徴量3特徴量4特徴量5
data1\(x_{11}\)\(x_{12}\)\(x_{13}\)\(x_{14}\)\(x_{15}\)
data2\(x_{21}\)\(x_{22}\)\(x_{23}\)\(x_{24}\)\(x_{25}\)
data3\(x_{31}\)\(x_{32}\)\(x_{33}\)\(x_{34}\)\(x_{35}\)

このネットワーク構造の重要な要素について、詳しく解説します。

CNNを使って、決定木のような分類を行う

TabNetを理解する上で重要な概念が、ディープニューラルネットワークと決定木(DT)の融合です。
この部分は、TabNetの貢献ではないですが、非常に重要な概念なので、この記事で紹介します。

まず決定木(Decision Tree)から説明をします。

決定木

決定木とは上記の図のように、上から順に条件(左図の灰色部分)を順に適用し、条件による枝分かれを繰り返して、出力(図中のA/B/C)を得るモデルです。
文字通り木構造をしていますが、これを平面領域の分割と考えたのが、右側の図になります。

詳しくは、以下の記事をご覧ください。

決定木による学習 | Code Craft House

この決定木とほぼ同様の動作を、ディープニューラルネットワーク(DNN)で実現することができます。

上の右図が、最も簡単なネットワーク構造になります。
左下から2次元ベクトル\([x_1, x_2]\)が入力されます。
「Mask」により、それぞれの変数がバラバラに畳み込み演算された後、ReLU関数を通って合算されます。

ここで重要なのが、ReLUを通っていることです。
ReLUは、負の値はゼロにし、正の値はそのまま素通りします。
マイナスの値は切り捨てられるため、結果的に図の左側に示された4領域が形成されます。

ここで具体例と主に動作を見てみます。
話を簡単にするために、変数\(x_1\)だけを考えます。

左図で、\(x_1\)が処理され、ReLUに入力されるところに注目します。
入力される行列は、

\(
\begin{bmatrix}
C_1 x_1 - C_1 a \\
-C_1 x_1 + C_1 a \\
-1 \\
-1 \\
\end{bmatrix}
=
\begin{bmatrix}
C_1 (x_1 - a) \\
-C_1 (x_1 - a) \\
-1 \\
-1 \\
\end{bmatrix}
\)

となり、もし\(x_1 > a\)の場合(右図の右側)、\(\begin{bmatrix} C_1 (x_1 - a) & 0 & 0 & 0 \end{bmatrix}^\top\)となります。
逆に\(x_1 < a\)の場合(右図の左側)、\(\begin{bmatrix} 0 & C_1 (a-x_1) & 0 & 0 \end{bmatrix}^\top\)となります。

このようにMaskとReLU関数により、\(x_1\)と閾値\(a\)の関係を出力ベクトルの2要素で表現できます。
\(x_2\)に関しても同様の操作が行え、出力ベクトルの下側の2要素で閾値\(d\)との関係が表されます。
ここで\(C_1\)と\(C_2\)は、\(x_1\)と\(x_2\)に対する重みであると考えられます。

それぞれで表現されている要素の位置が違うため、2つの出力を単純に要素和を取るだけで出力ベクトルが得られます。

このようにすることで、ディープニューラルネットワークを用いて、決定木(Decision Tree, DT)のような振る舞いを再現することができます。
このような構造をソフト決定木(Soft DT)やニューラル決定木(Neural DT)と呼ばれています。

TabNetのステップ構造

ここでもう一度、TabNetの構造を見てみます。
EncoderとDecoderはほぼ同じ要素から作られているので、今回はEncoder部分に着目します。

tabnet-encoder

前節で見たソフト決定木によく似た構造を持つことがわかります。
大きな違いとして、マルチステップ構造になっており、「Attentive transformer」を用いてMask後の処理が接続されていることです。

各ステップにおいては、前ステップで処理された情報をもとに、どの特徴を使用するかを決定します。
最終的に各ステップの特徴表現が集約され、全体の決定(Output)が求められます。

これらのネットワークの構造は、特徴選択を加速させるために行われています。

このことを念頭に、各構成要素について解説をします。

Feature transformer

feature-transformer

上記のように「Feature transformer」は、ソフト決定木の図中のFCを拡張したものです。

異なる点は、Feature transformerの出力は、ReLUに入力されるもの(decision step output)と右側の処理に渡されるもの(subsequent step output)に分かれていることです。
「decision step output」は上記4つのレイヤーを通過したものですが、「subsequent step output」は上図左側の2つのレイヤーのみを通過したものです。

「GLU」はgated linear unitの略で、活性化関数の一種です。

Attentive transformer

「Piror scales」モジュールは、ある特徴量が前のステップまででどのくらい利用されてかを表現します。
「Sparsemax」はSparsemax normalizationで、スパース性が高まるように正規化を行う関数で、特徴選択が促進するために利用されています。

Feature attributes

これは例外的な処理で、ネットワークの解釈性を向上させるための仕組みです。
TabNetの下側の薄い赤色の線をたどると、各ステップの出力に対して、Maskの値が掛けられたものが「Feature attributes」です。

つまり、各ステップで処理された特徴量がどれだけ重要かを示しています。
これにより「Feature attributes」を見ることで、各特徴量がどの程度の重要性を持つのかがわかります。

この重要性を判断するプロセスは、ランダムフォレストをはじめとする決定木をもとにしたアルゴリズムが持つ特有の機能でした。
そのため、TabNetはしばしば「ニューラルネットワークと決定木のいいとこ取りをした」と言いわれます。

教師なし学習

前章でも少し触れましたが、TabNetはDecoderを用いることで、入力情報を復元し、教師なし学習を行うことができます。

具体的には上記に示したように、入力情報の一部をあえて欠落させ、そこの部分を再構成することを目的に学習を行います。
単純なアプローチですが、後で説明するようにこれが非常に有効です。

結果

技術的解説が長くなったので、重要な結果だけ紹介します。

回帰性能とスケーラビリティ

以下の結果は、SARCOSという7自由度のロボットアームの逆動力学問題のデータを用いて検証したものです。
回帰問題で、評価はMSE(mean-squared error)を用いているので、値が小さいほど優位であること示しています。

重要な点は2点あります。
1つ目は、他の手法に比べてTabNetの性能が高いことです。
2つ目は、モデルの大きさ(Model size)を増やすと、結果も改善していることです。
特に2つ目は、決定木などの従来手法にはあまり見られない傾向で、ディープニューラルネットワークを用いた強みと言えます。

事前学習の効果

以下の図は、事前に教師なし学習を行なった場合(青い線)と何もしないで学習した場合(緑の線)を比較した図です。
横軸が学習回数で、縦軸がモデルの分類精度を示しています。

見ての通り、教師なし学習を使って事前学習を行なった方が、新しいタスクに対して効率的に適応できていることがわかります。
これも従来のランダムフォレストなどにはない特徴で、転移学習の有効性を示しています。

まとめ

いかがだったでしょうか?

TabNetは、Kaggleなどのコンペで広く用いられており、その有用性は十分に検証されています。
しかし、その本質を十分に解説した記事は日本語では見つかりませんでした。

TabNet自体は、さまざまなライブラリで実装されており、非常に利用のハードルが低いです。
さらに、GoogleのAI Platform上でもTabNetを利用できます。

次回は実際にTabNetを利用して見たいと思います!

もし論文の読み違えや間違いを発見したら、コメント欄からこっそり教えてください。

コメント

タイトルとURLをコピーしました