最初に
最近のリリースまで(具体的にはSummer’ 20まで)Einstein Discoveryの機械学習アルゴリズムは一般線形回帰に頼っていました。一般線形回帰は優れた解釈性と比較的単純なモデルということもあり長い間親しまれていたアルゴリズムです。しかしながら、昨今の機械学習コンテストではより新しいアルゴリズムの後塵を拝することも多くなってきました。その流れに呼応しているわけでもないのですが、Einstein Discoveryにもコンテストで活躍する新しいアルゴリズムがサポートされるようになりました。今までの一般線形回帰とは違う概念を使ったアルゴリズム群の詳細をこの記事でご堪能ください。
オリジナル記事
Tree-Based Learning Algorithms in Einstein Discovery
AUTHOR
Darvish Shadravan
Darvishは、Salesforceのマスターデータサイエンススペシャリストとして、Salesforce Einsteinのテクノロジーを使用して、企業のお客様が最も急を要するビジネスの専門家にアナリティクス、AI、機械学習の力をどのように適用できるかを理解できるように支援すること日々の時間を費やしています。
著者の記事を見る (https://www.salesforceblogger.com/author/dshadravan-salesforceblogger/)
このブログ記事の主な目的は、Summer’ 20にリリースされるEinstein Discoveryにツリー・ベースの機械学習(ML)アルゴリズムが追加されたことについての技術情報を提供することです。この記事は、Einstein Discoveryのアンサンブル(ツリー・ベース)アルゴリズムの機能、利点、詳細を読者に理解してもらうためのものです。ツリー・ベースのアルゴリズムは、Einstein Discoveryの従来の一般線形回帰モデリングに焦点を当てたものではありません。このドキュメントの対象者は、SalesforceとEinsteinの管理者、ビジネスアナリスト、データサイエンティスト、機械学習の専門家、技術管理者/マネージメント層です。
この記事では、Einstein Discoveryでツリー・ベースの手法がどのように使用されているのか、またその理由について、ハイレベルな詳細を説明します。また、関連する統計的手法の「港めぐりクルーズ」も提供します。しかし、この記事はアルゴリズム自体の数学的手法についての包括的なチュートリアルを意図したものではありません。この課題は、多くの書籍や研究論文、オンライン記事で十分に対処されています。数学をさらに掘り下げたい読者のために、この記事では関連するリソースへのリンクを提供しています。
この記事で取るアプローチは、Einstein Discoveryにおけるツリーベースのアンサンブルアルゴリズムの実装を3つのセクションに分けて、濃密なトピックの消費を容易にすることです。
- ツリー・ベースのアルゴリズムの基本概念と構成要素とは?
- Einstein Discoveryでは、どのようなアルゴリズムが新しいのか?
- Einstein Discoveryのモデルの中には、なぜツリー・ベースのアルゴリズムを使った方が良いものがあるのでしょうか?
決定木アルゴリズム
線形回帰やロジスティック回帰と同様に、決定木アルゴリズムは機械学習の教師付き学習の一部です。線形回帰やロジスティック回帰と同様に、決定木アルゴリズムは、結果(従属変数)を最小化または最大化します。
現在Einstein Discoveryの一部となっているツリー・ベースのアルゴリズムの基礎は何十年も前から存在しており、多くの種類の機械学習の課題に対して有効であることが証明されています。しかし近年、大規模な機械学習の出現により、ツリー・ベースのアルゴリズムは「アンサンブル」アルゴリズムのファミリーへと進化しました。これについては後ほど詳しく説明します。
決定木は、ブール値(はい/いいえ、解約する/解約しない)と連続変数(売上予測、顧客満足度(CSAT))の両方の目標結果に対応する教師付き学習アルゴリズムのファミリーです。木をベースとしたアルゴリズムは、精度、安定性、そして特にEinstein Discoveryでは、モデルの解釈可能性と説明可能性を備えた機械学習モデルに力を与えます。
決定木コンポーネント
決定木は以下のコンポーネントを含みます:
- ルートノード(Root Node):最上位の決定ノードを表し,データセット内の最良の予測器に対応する(訳者注1)
- 分割:ノードを2つ以上のサブノードに分割するプロセス
- ディシジョンノード(Decision Node):サブノードがさらにサブノードに分割された場合
- リーフ/ターミナルノード(Leaf/Terminal Node):分割しないノード
- 剪定:決定ノードからサブノードを削除するプロセス
- ブランチ/サブツリー:ツリー全体のサブセクション
決定木は、値のベクトルを単一の出力にマッピングする数学関数の表現と考えることができます。この単一の出力値が “決定 “です。ツリーは、一連の統計的テストを行い、ツリーの先頭(ルート)から始まり、最適なリーフが見つかるまでブランチをたどって決定に到達します。ブランチにはそれぞれの属性の値がラベル付けされ、リーフのノードは実際に数学関数がどの値を返すかを決定します。
訳者注1:目的変数をより良く分けるための最適な説明変数を一番最初に持ってくるということ。これはGINI不純度やエントロピーなどの分割条件が使われる
決定木の一例
シンプルなツリーの実例として、以下に Kaggle(https://www.kaggle.com/parulpandey/palmer-archipelago-antarctica-penguin-data)の南極ペンギンデータセットを使用して RStudio で作成された単一の決定木のイメージを示します。この例題で示したツリーは、科学者チームによって各ペンギンで測定された様々な物理的特徴を使用して構築されています。これらの身体的特徴の定量的な値は、ツリー・ベースのMLモデルを訓練するために使用されます。
このツリーは、体格やヒレの長さなどのデータセットの特徴に基づいて、ペンギンをオスかメスかに分類するために、初歩的な決定木アルゴリズムがどのように使われているかを示しています。ビジネスの世界では、同様の基本的なアプローチを、販売、サービス、マーケティング、商業などの多くの一般的な分類と回帰機械学習のユースケースに適用することができます。
アンサンブルとブースティング
最新の機械学習では、決定木アルゴリズムは一般的に「アンサンブル」として実装されています。これはどういう意味でしょうか?このアルゴリズムは、大規模なツリーのグループを作成し、数学的手法を用いて、そのグループの中から最適な選択を行います。アンサンブル学習は、1つの高品質なモデルを作成しようとはしません。その代わりに、多くの決定木から複数の比較的精度の低いモデルを生成します。そして、それらの「弱い」モデルからの予測を組み合わせて、すべての前任者の誤差から学習した最終的でより正確なモデルを作成します。このタイプのアンサンブル学習アプローチは、より良い精度とモデルの安定性をもたらします。最も重要なことは、多くの機械学習モデルを悩ませているバイアスとバリアンスのトレードオフ(訳者注2)の課題に対処することです。
Einstein Discoveryに追加された決定木アルゴリズムの種類には、勾配降下、弱学習、そして最も重要なのはブースティングという、いくつかの最適化手法が使われています。「ブースティング」の起源は、少なくとも1980年代までさかのぼります。最も影響力のある論文の1つは、Kearnsによる “Thoughts on Hypothesis Boosting” です。アンサンブル法には他にも「バギング」などがありますが、Einstein Discoveryでは現在、ブースト学習法に力を入れています。(訳者注3)
勾配ブースト・ツリー・アルゴリズムの核心的な考え方は比較的簡単です:「弱い」統計モデルから始めて、(前任モデルが誤って分類してしまった)難しい例に本質的に焦点を当てた一連のモデルを作成し、それを改善しようとすることで、困難なデータへの適応を支援するのです。別の言い方をすれば、ブースティングとは、一連のモデルにフィットするモデルを作成するアルゴリズムの手法であり、連続する反復でより実質的な誤差を持つレコードに大きな重み付け値(ペナルティ)を与えます。アルゴリズムがツリーのコレクションをさらに繰り返していくと、損失を最小化するために勾配降下を使用してこれらのレコードを改善しようとします。勾配降下は、ニューラルネットワークやその他の機械学習アルゴリズムを最適化するための一般的な数学的手法です。勾配降下についてよく知らない方は、この記事を参考にしてみてください。
勾配降下では、多数のツリーベースのモデルを生成し、複数の以前の弱いモデルのアンサンブルである最終モデルを作成することで、アンサンブルアルゴリズムがモデルの全体的な予測力を向上させ、より高い精度を得ることができます。これは明らかに単純化しすぎであり、これを実現するためには多くの数学が必要です。しかし、ここではこの説明で十分です。すべての機械学習と同様に、より深く掘り下げたい場合は、Google検索を使用して、このトピックに関する様々な記事や論文を見つけることができます。
訳者注2:バイアス=正解値からの誤差、バリアンス=予測値のばらつき。バイアスが大きいと学習不足と判断され、バリアンスが大きいと過学習と判断される。バイアスとバリアンスはトレードオフの関係にあります。
訳者注3:バギングの有名なアルゴリズムとしてランダムフォレストが挙げられます。Winter’21現在パイロットでリリースされています。
Einstein Discoveryの新しいアルゴリズム
2020 SummerリリースのEinstein Analyticsでは、2つの新しいツリーベースのアンサンブル・ブーストアルゴリズムがEAプラットフォーム内に実装されています。勾配ブーストマシン(GBM)とXGBoostです。
勾配ブーストマシン(GBM)
現代の機械学習エンジニアが利用できるブーストアルゴリズムの種類の中で、勾配ブーストマシン(GBM)は最もポピュラーなものの1つです。Einstein Discoveryでは、GBMは回帰とバイナリ分類をサポートしています。GBMはアンサンブルアプローチを使用し、決定木と勾配ベースの最適化が学習メカニズムとして機能します。モデルが作成される過程では、ツリーが一度に一つずつ追加され、以前のツリーが維持されます。勾配降下は、より多くのツリーが追加されたときの損失(誤差)を最小化するために使用されます。勾配降下はこの記事の範囲を超えていますが、最適なモデルを見つけるための機械学習アルゴリズムでよく使われている手法です。勾配降圧に関する初期の論文の1つは、ここで見つけることができます:勾配降下としてのブーストアルゴリズム
GBM アルゴリズムは、データセットを処理する際に、データサイエンティストによって定義された多数のツリーを作成します。作成されたツリーの範囲内で、アルゴリズムは提供されたトレーニングデータで最高のパフォーマンスを持つモデルを作成します。もちろん、Einstein Discoveryはこれをユーザーのために裏で処理します。GLMアルゴリズムと同様に、Einstein Discoveryの新しいツリー・ベースのオプションは、H2Oライブラリを使用しています。アルゴリズムの詳細と使用されている数学については、こちらを参照してください。H2O Gradient Boosting Machine.
この記事で説明したように、ツリー構造を視覚化するだけで、個々の決定木を理解することができます。しかし、勾配ブーストモデルは一般的に数百本の決定木で構築されています。そのため、個々の木を調べても簡単には解釈できません。幸いなことに、Einstein Discoveryは高度な技術を使って勾配ブーストモデルを要約して解釈するので、GBM (またはXGBoost)で作成された「ストーリー」は人間が読みやすく、解釈しやすいものになります。大量のツリー・モデルが作成されているにもかかわらず、Einstein Discoveryは、ストーリーの中で発見された重要な変数、値、洞察を表面化します。これはEinstein Discoveryのユニークで強力な機能です。
XGBoost
XGBoost (“eXtreme Gradient Boosting”)は、現代のブーストアルゴリズムの中で最も人気のあるアルゴリズムです。競争の激しいKaggle.com (http://kaggle.com/)サイトでは、最近の多くの機械学習の課題で最高の地位に君臨しています。競合他社が、分類や回帰予測モデリングの問題で構造化されたデータセットや表形式のデータセットを使用するMLの問題に取り組む際に、主要なアルゴリズムとして選択されるようになりました。
GBMと同様に、XGBoostは勾配ブースト法に基づくアンサンブル・アルゴリズムですが、いくつかの重要な違いがあります。特筆すべきは、XGBoostは過学習(オーバーフィット)を制御するために、より正規化されたモデルの形式化を使用しており、その結果、より良いパフォーマンスが得られることが多いことです。XGBoostアルゴリズムの開発者であるTianqi Chen氏は、このアルゴリズムの名前は「実際には、ブーストを使ったツリーアルゴリズムの計算リソースの限界を押し広げるという工学的な目標を指している」と述べています。すべての詳細を知りたい人のために、XGBoostという論文に掲載されています。A Scalable Tree Boosting Systemに掲載されています。
注: 今後のリリースでは、Einstein Discoveryで利用可能なツリーベースのアルゴリズムのファミリーにランダムフォレストが追加されます(訳者注4)
訳者注4:Winter’21現在、パイロットとしてリリースされています。
Einstein Discoveryに実装された新しいアルゴリズムはどのように使うのか?
- 新しいストーリーを作成するとき(またはストーリー設定ページ)に、アルゴリズム ドロップダウンメニューが表示されます。
- 使用したいアルゴリズムが分かっている場合は、ストーリーを作成する前にメニューから選択してください。
- そうでない場合は、「自動」を選択します。これにより、モデルトーナメントが実行され、最も良いモデルとストーリーがユーザーに提示されます。「自動」オプションは、1つのモデルではなく3つのモデルを作成するため、実行に時間がかかることに注意してください。
- アルゴリズムを指定しない場合、GLMがデフォルトで選択されます。
ツリーベースのアルゴリズムがより有用で効果的なのはいつですか?
最後に、これらの新しいアルゴリズムをいつ、なぜ、どこで使うべきか?どのアルゴリズムが最適なパフォーマンスを発揮するかを事前に知るための明確な方法はないため、モデルのパフォーマンスを比較するためにテストや実験が必要になることがあります。データセットによっては、当然ながら線形回帰に適しているものもあれば、ツリー・ベースの手法の方がより良い結果が得られるものもあります。どのアルゴリズムが最適なのかを解読したくない場合でも、心配ありません。前述したように、Einstein Discoveryは「モデルトーナメント」を介して自動的にこれを処理するので、手動で比較を実行する必要はありません。
前に述べたように、どのタイプのアルゴリズムが与えられたデータセットでより良いパフォーマンスを発揮するかを常に知ることは困難ですが、高いレベルでは、ツリーベースのアンサンブル・アルゴリズムが他の教師付き機械学習アルゴリズムよりもユニークな利点を持つ状況がいくつかあります。これらのシナリオには、以下のようなものがあります(ただし、これらに限定されるものではありません)。
- 連続変数(数値)である目標結果を持つデータセットは、我々の経験上、新しいアルゴリズムが最も有益であることが証明されています。
- データの有意な非線形性と異常な統計分布があるデータセット (非ガウス分布)
- 従属変数と独立変数の関係が異常に複雑なデータセット
- 対象変数のクラス分布がスキュー/アンバランスであるデータセット
- 列数の多い大規模なデータセット
- 慎重なハイパーパラメータのチューニングを必要とするデータセット
- オーバーフィットしやすいデータセット(XGBoostはGLMと同様の正則化を提供)
- 数値/連続、日付/時刻、カテゴリカル、ブーリアンなど、複数の異なるデータ型を持つデータセット。
結論
Summer’ 20のリリースでは、Einstein Discoveryに新たな機能と改善点が追加されましたが、新しいツリーベースのアルゴリズムは最もエキサイティングなものの一つです。この簡単な記事で、Einstein Discoveryに導入された新しいアルゴリズムを理解し、理解していただけたと思います。さあ、素晴らしいツリーを作ってみましょう
訳者:
小見一平 (KOMI, Ippei)
Salesforce.com Tableau CRM (f.k.a. Einstein Analytics ) Specialist