TD AutoML 紹介セミナー

TD AutoML
by Treasure Academy

Takahiro Inoue (@taka)

INDEX

1.

TD AutoMLとは？

2.

実⾏の敷居を下げる仕組みについて

3.

Notebook 紹介ツアー：• ml_datasets• AutoGluon• Time Series Analysis
• EDA
• MTA
• network_analysis• NBA© Treasure DataTD AutoML とは？

© Treasure DataTD における機械学習を担う要素
従来から提供中の「Predictive Scoring」「Hivemall」 「 Custom Scripts」に加え、「TD AutoML」機能を提供
Predictive Scoring

Hivemall

Custom Scripts

GUI による簡単な操作で、CDP全量データに基づく予測スコアの抽出/ABCD
ランク付けを⾃動実⾏

Hive上に構築された、SQLで機械学習を⾏うことができるライブラリを提供

Workflowを利⽤してPython Scriptを実⾏できる仮想環境を提供

ロジスティック回帰分析のみHiveのUDF (User Defined Function) を活⽤した様々な分析⼿法を実⾏可能

OSSとして提供されているPythonの豊富な機械学習ライブラリを活⽤可能

TD AutoML
Workflowで専⽤のOperatorを使⽤するだけで、AutoML環境を設置可能
探索的データ解析から検証・解釈まで、最先端のAutoMLを実現© Treasure Data

4

TD AutoML とは？
WorkfFlow で専用のオペレータと簡単な記述で、AutoML などの機械学習にとどまらず、可視化や分析などの様々なソリューションが利用できる枠組み
ソリューションごとに専用 Notebook が用意され、今後も Notebook が増えることで、できることが増えていく+gluon_train:
ml_train>:notebook: gluon_train
input_table: ml_datasets.telco_churn_train
target_column: churnmodel_name: churn_model+network_analysis:
ipynb>:
notebook: network_analysis
input_table: ml_datasets.transition
limit: 100© Treasure Data5

TD AutoML の活用で解決可能となるビジネス課題（例）△：実施にあたって、⼀部開発の必要や機能制限あり実施する⼿法

分類

値の予測（回帰）

ビジネス上の課題例
需要予測やLTV予測

AutoML(Notebook名)○(AutoGluon automl)

多クラス分類

年代推定や興味カテゴリの類推○(AutoGluon automl)

２クラス分類Churn推定○(AutoGluon automl)

売上推移、株価推移、来場者数推移の予測(ts_forecast)

次に⾏うべきアクションを提⽰（ネクストベストアクション）(Next Best Action)

クラスタリンング（オートセグメンテーション）

有益なセグメントの⾃動作成○

協調フィルタリング

リコメンデーション

時系列分析

機械学習

強化学習

○
○

Predictive
Scoring

Hivemall

Custom Scripts❌

○△

❌

○△○○△

❌

❌

△❌

❌

△

❌

○△

❌

○△

❌

❌

△

❌

❌

△

(今後実装予定)○(今後実装予定)

ネットワーク分析

ネットワークデータの可視化○(Network Analysis)

データ分析
アトリビュート分析© Treasure Data

タッチポイント（例：広告）の多⾯的な評価○(Muti Touch Attribution)

6

Custom Scripts との比較における TD AutoML の優位性
AutoML

Custom Scripts

64 - 512GBのメモリタスクをサポートし、64vCPUを共有(ベストエフォート)AWS Fargateによって制限され、最⼤30GBメモリ / 4vCPU ※機械学習の専⾨家は不要

機械学習の専⾨家が必要

悪意のあるスクリプトがないため、利⽤の制限がない

セキュリティポリシーによっては、利⽤できない場合あり

コーディング不要 (yamlを編集)

Pythonのコーディングが必要

評価指標のグラフ出⼒など、Jupyter Notebookを使ったリッチなビジュアル表現が可能（.py の代わりに .ipynb を実⾏）

ビジュアル表現が乏しい（WFコンソール）

ローカルホストでのDockerイメージキャッシングによる⾼速ブートストラップ

Fargateが毎回Dockerイメージをpullするため、起動に時間がかかる予測モデルは内部モデルレジストリで管理されるため、ユーザーが気にする必要がないモデルレジストリ⽤の外部ストレージ（S3など）が必要※ 機械学習タスクは消費メモリが多いので30GBでは不⼗分。
例えば、AutoGluonは96vCPU/384GB以上のマシンm5.24xlargeの利⽤を推奨© Treasure Data

7

現在用意されているソリューション（Notebook ）一覧

Solution
Notebook

Basic
Notebook

2023/04 時点で用意される Notebook
名前

Notebook名

オペレータ

AutoGluon automl

gluon_train/
gluon_predict

ml_train/ml_predict

ML datasets

ml_datasets

Network analysis
Exploratory DataAnalysis

⼤分類⼩分類

何ができる？

出⼒するもの機械学習教師あり学習（2値,多値）分類/回帰をAutoML にて実施

学習モデル/予測結果（カラムとしてテストテーブルに付与）

ipynb

その他

データセット

各種Notebook向けサンプ
ルデータセットの提供

サンプルデータテーブル

network_analy
sis

ipynb

可視化

有向グラフ

ネットワークデータの可視化

Notebook 内に可視化

EDA

ipynb

データ分析

分析

探索的データ分析を⾏い、 Notebook 内にデータをデータの理解を深める
可視化
状態ごとの“next bestaction”をテーブル出⼒

Next Best Action

NBA

ipynb

機械学習

強化学習

Next Best Action（次に最適なアクションは何か）を提⽰

Timeseries
Forecastingts_forecast

ipynb

機械学習

教師あり学習時系列予測

時系列予測結果をテーブ
ル出⼒

アトリビューション分析
によってコンバージョンに寄与しているタッチポ
イントを評価各種モデルによる、タッチポイントのごとの貢献度をNotebookに出⼒

特徴量が各予測値に与える影響を説明、可視化

8Notebook 内で可視化

Multi-touch
Attribution© Treasure
Data
Shapley

MTA

ipynb

データ分析

マーケティング

shapley

ipynb

機械学習

予測の説明

ソリューション（Notebook）の分類例* が現在リリースされているNotebook（2023/04時点）© Treasure Data

9

Notebook とは？

© Treasure Data

10

(Jupyter) Notebook とは？
ブラウザ上で動作するプログラムの対話型実行環境。ノートブックと呼ばれるファイルに python などのプログラムを記述し、実行結果を逐次確認しながら分析などを進めることが可能。

• Notebookでは「セル」（In[n]で始まる）と呼ばれるブロック（⾚枠）にコードを記述し、セル単位でコードが順番に実⾏される
実⾏結果© Treasure Data

• セルごとに⽂字列やテーブルの出⼒、画像の出⼒が可能で、結果がセルの下（Out[n]で始まるブロックがIn[n]の結果を出⼒している）に都度表⽰される。さらに、動的なグラフも描画可能

11

TD AutoML と Notebook の関係
TD AutoML は、専用のWFオペレータ（ml_train/ml_predict/ipynb）を通じて Notebook を実行する仕組み
ソリューションごとの Notebook が用意されるので、同じ枠組み内で様々な課題解決が行える+gluon_train:
ml_train>:notebook: gluon_train
input_table: ml_datasets.telco_churn_train
target_column: churnmodel_name: churn_model

AutoGluon⽤のNotebookを実⾏

EDA⽤のNotebookを実⾏+run_eda:
ipynb>:
notebook: EDA
input_table: ml_datasets.gluon_train
eda: all© Treasure Data

12

TD AutoML の真価は何か？

© Treasure Data

13

TD AutoML の価値© Treasure Data

1. One-stop within TD

TD 外へのデータのインプット/アウトプットが発⽣しない
データ収集からアクティベーションまで、全てTDで完結
SaaSの導⼊にかかる（費⽤・管理・評価）コストを削減

2. Enables focus on
business value creation

以下のコストを削減することによって、顧客はビジネス価値の創出にフォーカスすることができる：•
エキスパートの雇⽤や外部コンサルタントの導⼊コスト•
ツールのオペレーションやモニタリングコスト•
PDCAを回すコスト

3. Fully automated,*out-of-the-boxsolution

著名なMLエンジニアによって実装された最先端の技術が利⽤可能
追加のオペレーションコストが不要（TDが運⽤）、これは•Python ライブラリのバグ、IaaSの障害などをTDが担保することを意味する*out-of-the-box とは、「箱から出してすぐに使える」という意味を持つ。つまりそのまま使⽤可能で、特別なカスタマイズや設定を必要としない、汎⽤的なソリューションのことを指す。

14

TD AutoML の価値1.
2.

ノンストップソリューション：CDP内で全てのプロセスが完結すること
オートメーション：機械学習・分析における多くの工程を自動化すること
CDP with Multi-SaaSs
Businessproblems

ML problem
framing

CDP

Data
Preparation

data importdata export

CDPActivation

Businessgoals

1-3 data scientists, 2~5 weeks
EDA

Model tuning andcreation

Evaluation

Productization(optional)

w/ TD AutoML
Automation
Business
problems© Treasure Data

ML problem
framing

CDP

Data
Preparation

From EDA toProdutization

CDP

0-1 data scientists, 1 weeks

Activation

Businessgoals••••

管理するツールの削減
リードタイムの削減
データサイエンティストの削減
実⾏の難易度を下げる

15

実行の敷居を下げる仕組みについて© Treasure DataTD AutoML の敷居はこんなにも低い
マーケターでも自力で実行できることを目指し、各所に工夫が施されている

1. そもそも、コード記述量が圧倒的に少ない
⁻ かつ、何の情報を記述すべきかが明確で迷うことがない

2. 各種 Notebook に対してテンプレートが⽤意される
⁻ テンプレートを利⽤することで必要最低限の記⼊項⽬（パラメータ）が把握できる⁻ また埋めるべき項⽬（パラメータ値）に対してどんな値を⼊れたら良いのかの参考になる

3. ウィザード形式で値の記⼊ができる
⁻ 直接Workflowエディタに記述せずに、ウィザードから値の記⼊が可能
⁻ これによって、不要な労⼒とエラーを避けることができる

4. 標準で各種 Notebook 向けのサンプルデータセットが提供される
⁻ 標準で付属する ml_datasets Notebook は、多くのサンプルデータをロードしてくれるもの
⁻ このサンプルデータとテンプレートで誰でもまず実⾏してみることができる© Treasure Data

1. TD AutoML の記述方法
TD AutoML 用の WF オペレータを使用し、必要なパラメータとその値を定義するだけ
SQLやPythonのコードらしいコードの記述は基本必要ない
TD AutoML⽤のオペレータを使⽤
ml_train, ml_predict, ipynb の3種類

使⽤したい Notebook を指定

インプットとなるTDテーブルを1つ指定

インプットテーブルの中で予測対象となるカラム※推論タスク（回帰か分類か）は⾃動的に判別してくれる

AutoGluon automl Notebook を使⽤する場合の例© Treasure Data

⽣成されるモデルに付ける名前

18

2. 各種 Notebook に用意されるテンプレート
テンプレートを読み込むことで、必要最低限のコードが自動記述される
後はインプットテーブル名などを変更するだけで実行できる。しかもこの変更は直接コードを© Treasure Data19

3. パラメーターごとの値をウィザードより設定可能
WFのタブからAutoMLを選び、Notebook PARAMETERS 内のリンクをクリックすると、パラメータ（オプション）ごとの値を設定できる → コードに直接記入することによるフォーマットエラーを回避することができる

AutoML Parameters で設定して「Confirm」すると、WFの記述に反映される（同時にリビジョンも更新）。
逆に、WFの⽅から値を書き換えてもAutoMLParametersに反映される（=Syncされている）→ AutoML Parameters の画⾯
そのNotebookの持つ全てのパラメータの設定が可能になっている。また、テーブル名は直接記⼊せずに、図のようにウィザードで設定可能。
© Treasure Data20

4. TD AutoML を試すためのデータセットが提供される
Notebook: ml_datasets は、数多くの機械学習サンプルデータセットを TD に取り込んでくれる Notebook。
自社データがなくても、このデータセットがあれば検証を進めることが可能。

指定したデータセットがml_datasets db内に作成される。
トレーニング⽤のデータと予測（検証）⽤のデータがそれぞれきちんと提供される© Treasure Data

結論
TD AutoML 利用者は 、WF エディタに直接記述する必要がない。これによって、実行エラーを極力抑えることができている。

1. ソリューション

2. 該当するテンプ

3. 必要なパラメー（Notebook）を決定

レートを選択してWF作成

タ値をウィザードから変更

4. TD AutoML を実⾏

データが無いなら、まずサンプルデータセットで試せすことができる。

© Treasure Data

22

各種 Notebook 紹介ツアー© Treasure Data

Basic Notebook: ml_datasets© Treasure Data24

ml_datasets: TDAutoML を試すためのデータセットを提供
Notebook: ml_datasets は、数多くの機械学習サンプルデータセットをTDに取り込んでくれる便利なNotebook。
自社データがなくても、このデータセットがあれば検証を進めることが可能。

指定したデータセットがml_datasets db内に作成される。

© Treasure Data

Basic Notebook: AutoGluon AutoML© Treasure Data

26

AutoGluon とは？ AutoML とは？
AWS が開発している AutoML（Automated Machine Learning）のツールキット。データ前処理、ハイパーパラメーターチューニング、モデルアンサン
ブルまでの全てを自動化。 AutoMLは、機械学習の専門家でなくても、機械学習のモデルを作成できるようにすることを目的としている。

⾃動化

データ前処理特徴量抽出

最適モデルの探索

ハイパーパラメー
タ最適化

モデルアンサンブル（精度向上）• AutoGluonの適⽤範囲（TD AutoMLではテーブルデータのみ対象）
⁻ テーブルデータ：解約予測（分類）、スパム判定（分類）、売上予測（回帰）、スコア予測（回帰）⁻ 画像分類：商品の分類、異常画像の判定
⁻ 物体検出：写真中の⼈・動物・⾞の分類⁻ ⽂章分類：レビューの分類、フィードバックの分類© Treasure Data27

AutoGluon：実行イメージ
解約予測（2値分類：ChurnedかLive かを判定）

年齢帯予測（多値分類：年齢帯を判定）

PV数予測（回帰：数量を予測）+gluon_train: # 学習タスク
ml_train>:notebook: gluon_trainmodel_name: gluon_model
input_table: db.gluon_train
target_column: status
1つのインプットテーブルを指定し、その中で target_column（⽬的変数）を指定。このカラム値を予測するための学習が、その他のカラムを特徴量（説明変数）を⽤いて⾏われる。target_column の値の種類に応じて分類か回帰かを⾃動判定してくれる。

+gluon_predict: # 予測タスク
ml_predict>:
notebook: gluon_predictmodel_name: gluon_model
input_table: db.gluon_test
output_table: db.gluon_predicted© Treasure Data

input_table に予測対象のテーブルを設定すると、output_tableに「input_table+予測結果」を出⼒28

多層スタックアンサンブルによる精度向上
多層スタックアンサンブルとは、ベースレイヤーの各モデルの出力と元のデータ特徴量を結合したものをスタックレイヤーの各モデルに入力し、その出力に対してアンサンブル選択を実施することを指す。

• 多層スタッキングを⽤いてモデルを⾼精度化• 過学習を考慮してデータを分割• ベースモデルの推論結果を追加カラムとして次の層のモデルで利⽤© Treasure Data

29

Solution Notebook: Time Series Analysis© Treasure Data

30

Timeseries Forecasting Notebook：実行例とアウトプット
過去の時系列データを学習し、forecast_lengthで指定した期間分の予測値を出力する+run_ts_forecast:ipynb>:
docker:task_mem: 128g
notebook: ts_forecast
train_table: ml_datasets.ts_airline_train
tstamp_column: period
target_column: number_of_airline_passengers
forecast_length: 30
output_table: ml_results.ts_airline_forecast
time_limit: 10 * 60 # 10 min by the default

forecast length で指定した期間分（今回は30ヶ⽉）の予測結果テーブルが出⼒される

実⾏後

過去の時系列データ（train）
将来の予測（prediction）© Treasure Data

31

Solution Notebook: EDA© Treasure Data

32

EDA (Explanatory Data Analysis)とは？
探索的データ分析（EDA）は一言でいうとデータから何を読み取れるかを見出すのための手法。
TDの脈略では、各種テーブルがどのような内訳・分布・傾向を持っているかを主に可視化によって把握するための手法• 探索的データ分析（EDA）は、データセットを分析・および調査して主な特性を要約するためのに使⽤されるもの• しばしばデータ可視化の⼿法としてよく活⽤される• データセットの変数と変数間の関連をよりよく理解するのに有効• データソースの最適な処理⽅法を決定するのに役⽴ち、データサイエンティストがパターンを発⾒し、異常を特定し、仮説をテストし、前提条件を確認するのを容易にする• データ分析のために検討している統計技法が適切かどうかを判断するのにも役⽴つ© Treasure Data33

EDA：実行イメージ
可視化したいテーブルを指定するだけで Notebook にさまざまな情報が出力される+run_eda:
ipynb>:
notebook: EDA
input_table: ml_datasets.gluon_train
eda: all
それぞれのカラムの統計情報や値の内訳
カラム同⼠の相関マトリックス
インタラクティブに2つのカラムのクロステーブルをみることができる© Treasure Data

34

EDA の使い所格納されているデータを把握するためだけなら利用頻度は少ないが、オーディエンススタジオのプロファイルの把握のために活用できれば価値の高い Notebook となる

1. 保存されているテーブルの内容を把握するために利⽤
⁻ データの内容を理解することは、CDP活⽤のためには不可⽋である。EDAによってデータの内容が可視化されるため、マーケターがデータを理解するのに⼤いに役⽴つ

2. ペアレントセグメント（オーディエンススタジオ）のプロファイルの特徴を理解するために利⽤
⁻ とりわけ customers テーブル（ペアレントセグメントのプロファイルアトリビュート情報）の把握のために有⽤⁻ さらに、セグメントごとに EDA を⾏えば、そのセグメントの持つ特性が鮮明になる（Segment
Insight のようなもの）© Treasure Data

35

Solution Notebook: MTA© Treasure Data

36

コンバージョンに寄与した広告はどれだろう？
従来、コンバージョンに寄与した広告（タッチポイント）はコンバージョン直前にあるものとして分析されてきた
しかし、コンバージョンに至るまでに接触した広告それぞれに意義があるはずで、これらを無視できないのでは？

Twitter広告

Web1 バナー広告

Yahoo広告

ユーザーA

LINE広告コンバージョン

検索広告

Web3 バナー広告

Web2 バナー広告

ユーザーB

Facebook広告
コンバージョン

ニュースサイト

ユーザーC

Facebook広告

Twitter広告

Yahoo広告
コンバージョン
単に最後に接触した広告だけでなく、初回接触からコンバージョンに⾄るまでの「ジャーニー」を考慮したコンバージョン分析が重要である。

© Treasure Data

37

マルチタッチアトリビューションとは？
コンバージョンに寄与した広告の分析を単純に"直前" や "ランディング"といった「点」の接触のみを評価するのではなく一連の広告の接触、つまり「ジャーニー」を考慮した上で個々の広告の評価を行う手法
検索広告

Web3 バナー広告

Facebook広告

Last touch model
最後の接触のみ100を配分

Web2 バナー広告

Facebook広告

100
コンバージョン

検索広告

Web3 バナー広告

Facebook広告

First touch model
最初の接触のみ100を配分

100

Web2 バナー広告

Facebook広告
コンバージョン

Position-basedmodel
最初と最後に40、残り20をその間の接触で均等分配

検索広告
40

6.3
Web2 バナー広告

Web3 バナー広告

6.3

6.3

Facebook広告
40

Facebook広告

コンバージョン
検索広告
Time Decay Model
コンバージョンを起点に、時間的に近い接触に多くの配分を⾏う© Treasure Data

14

Web3 バナー広告

Web2 バナー広告

1530

Facebook広告

Facebook広告

マルチタッチアトリビューションには様々なモデルがあり、状況に応じて使い分ける
いくつかのモデルは、オプションでパラメータ調整ができる。

5038

コンバージョン

マルチタッチアトリビューションの出力は？
モデルに定義された得点配分方法に従い、各々の広告を評価して順位づけを行う
channelslast_clickchannels

first_clickchannels

position_based

channels

time_decay

Organic

63360

Organic

63438

Organic

63351.661211

Organic

63338.192911

Google Search

41963

Google Search

42048

Google Search42010.996311

Google Search41974.172760

Facebook31477

Facebook

31261

Facebook

31384.884738

Facebook

31472.099135

Direct21047

Direct20959

Direct20987.651316

Direct20978.604879

Google Display

10460

Instagram

10521

Instagram

10458.772370

Google Display

10447.035112

Youtube10406

Youtube10500

Youtube10439.183514

Instagram

10441.715252

Instagram

10403

Email Marketing

10360

Google Display

10429.596557

Youtube10403.458029

Email Marketing

10325

Google Display

10354

Email Marketing

10378.253983

Email Marketing

10385.721922

channelslast_click

first_click

position_based

time_decaymarkov_al
gorithmic

shapley_s
ize1_conv_rate

shapley_s
ize2_conv_rate

shapley_s
ize3_conv_rate

shapley_s
ize4_conv_rate

last_click_non_Directlinear_he
uristic

time_dec
ay0.5_fre
q128

shapley_s
ize4_conv_rate

Direct

21047

20959

20987.651

20978.605

22997.912

22462.0

21978.881

21822.693

21746.017

8975

20975.863

20976.053

20693.013

EmailMarketing

10325

10360

10378.254

10385.722

12358.560

11639.011359.115

11195.291

11113.741

11010

10428.220

10427.473

10718.797

Facebook

31477

31261

31384.885

31472.099

32334.786

32091.031920.599

31771.902

31748.931

33634

31402.930

31399.772

31659.340

GoogleDisplay

10460

10354

10429.597

10447.035

12299.860

11745.011429.708

11199.489

11110.895

11180

10450.019

10451.379

11220.444

GoogleSearch

41963

42048

42010.996

41974.173

40442.893

40992.041175.839

41363.754

41469.599

44805

41993.101

41992.378

41936.618

Instagram

10403

10521

10458.772

10441.715

12277.827

11705.011353.859

11212.298

11139.685

11113

10462.268

10462.834

11321.722

Organic

63360

63438

63351.661

63338.193

54464.151

57093.058902.389

59743.346

60051.161

67644

63320.701

63322.189

60630.346© Treasure Data
Youtube
10406

10500

10439.184

10403.458

12265.010

11714.011320.610

11132.226

11060.971

11080

10407.897

10408.922

11260.721

複数のモデルで横断的に評価

マルチタッチアトリビューションの出力は？
より高度な統計手法（マルコフ連鎖）による、タッチポイントの評価も行える• このタッチポイントの重要度は以下を意味する：
⁻ あるタッチポイントがコンバージョンの確率にどの程度影響するのか？
⁻ コンバージョンジャーニーにおいて、どのタッチポイントが最も重要で、コンバージョン状態に移⾏する確率が最も⾼いか？

© Treasure Data

活用例：コンバージョンに寄与しているWebページを分析
あるウェブサイトにおいて「会員登録」をコンバージョンに設定。タッチポイントをWebページとみなし、どのWebページがコンバージョンに寄与しているかを分析。複数のサイトを横断できるとなお良い。

ページ1

ページ3

ページ2

ユーザーA

ページ4
コンバージョン

ページ5

ページ2

ページ1

ユーザーB

ページ1
コンバージョン

ページ3

ユーザーC

ページ4

ページ2

ページ5
コンバージョン
コンバージョンに寄与したページを、 マルチタッチアトリビューション によって特定© Treasure Data41

活用例： 顧客化において効果的だった施策を分析
MAにおいて「顧客化」をコンバージョンに設定。どのナーチャリング施策が顧客化につながったのかを調査

セミナー

ダイレクトメール

メールマガジン

ユーザーA

セミナー
コンバージョンブログ記事

セミナー

ユーザーイベント

ユーザーB

メールマガジン

メールマガジン
コンバージョン

セミナー

ユーザーC

ダイレクトメール

メールマガジン
コンバージョン
どのナーチャリング施策が最も効果的だったのかを特定© Treasure Data

42

Solution Notebook: network_analysis© Treasure Data

43

Network Analysis：実行イメージ
遷移集計データなどをインプットに、ネットワーク可視化（ネットワークグラフと Sankey Diagram ）した
Notebook を出力してくれる。

• インプットデータに必要な3カラム：⁻ source：遷移元
⁻ target：遷移先+network_analysis:
ipynb>:
notebook: network_analysis
input_table: ml_datasets.transitions
limit: 100

⁻ count | weight：遷移回数、または重み出⼒するグラフは以下の4つ：
⁻ Network Graph（静⽌画）⁻ Network Graph（インタラクティブ）
⁻ Sankey Diagram Horizontal（インタラクティブ）
⁻ Sankey Diagram Vertical（インタラクティブ）
インプットデータの例。User Engagement サイトのアクセスログにて、© Treasure Data
ページ間の（sourceからtargetへの）遷移を集計したもの。

44

出力するグラフ – Network Graph（静止画）© Treasure Data45

出力するグラフ – Network Graph（インタラクティブ）© Treasure Data46

出力するグラフ – Sankey Diagram Horizontal© Treasure Data47

出力するグラフ – Sankey Diagram Vertical© Treasure Data

48

Solution Notebook: NBA© Treasure Data

49

NBA（Next Best Action）とは強化学習（Q-Learning）を実行し、現在の状態に対する最適な次のアクションを提示してくれる。
教師あり学習とは異なり学習データは必要なく、替わりに過去とったアクションに対する報酬（そのアクションがどれだけよかったのか）がレコード毎に必要になる。

• インプットデータは⾏動データで、必要なカラムは以下の5つ：
⁻ user_id：ユーザー識別⼦
⁻ tstamp：タイムスタンプ
⁻ state：状態
⁻ action：とったアクション⁻ reward：その action をとったことによる報酬© Treasure Data

50

「Action」「State」「Reward」の関係「Action」をとった事で 「State」になり、その Action の評価値を「Reward」として付与する。
NBAでは、Rewardが高く得られたActionを高く評価する形で学習し、累積報酬の最大化を目指す。
StateA3を受けてActionA4を実施、その結果
StateA4という⾼い報酬=2.0を得る状態になったことを学習

ActionA1

StateA2[+0.5]

ActionA3StateA4[+2.0]

ActionA5

StateA1[0]ActionA2StateA3[0]ActionA4StateA5[+1.0]

ActionB1

StateB2[0]ActionB3

StateB4[+1.5]

ActionB5

StateB1[0]© Treasure Data

ActionB2StateB3[0]ActionB4

StateB5[0]User
AUserB51

NBA 実行結果
強化学習の結果、Stateごとに最適なAction（Next Best Action）を提案。
各ユーザーの最後のStateに対して提案されたActionを実施することで、良い状態（=累積報酬が大きくなる）に導くことができる可能性がある

ActionA1

StateA2[+0.5]

ActionA3StateA4[+2.0]

ActionA5

StateA1[0]ActionA2StateA3[0]ActionA4StateA5[+1.0]

ActionB1

StateB2[0]ActionB3

StateB4[+1.5]

ActionB5

StateB1[0]© Treasure Data

ActionB2StateB3[0]ActionB4

StateB5[0]ActionA6を提案
What is thenext best
Action?

Proposeを提案
What is thenext best
Action?

52

ml_datasets. nba_train をインプットにした NBA
user_id ごとに遷移を時系列に並べ、過去のアクションの報酬をもとに累積報酬の最大化を目指して学習。
結果、各user_idの最後の state（=ページ）に対して何の action（=マーケティングアクション）を行えば、良い state（=コンバージョンページ）に導けるかを提案してくれる

apac_thanks_[+0.5]

organic_search
user_idA

articles_udfs
[0]

CPC

referralthank_you_contact_us[+2.0]

cab2020_[0]

NBA実⾏後© Treasure Data

statenext_action…

…

thank_you_contact_usreferralthank_you_request_trial

cpc

trust-and-assurance_

organic

rl_state_action テーブル（NBAの結果出⼒の1つ）

displayemail「cpc」を次のアクションとして提案
thank_you_

request_trial[+1.0]

53

強化学習（Q-Learning）とは
NBAはQ-Learningという強化学習を実行。Q-Tableに基づいてアクションを選択、実行し、得られた報酬に基づき（累積報酬が最大になるように）Q-Table を更新していく。
a0a1aan※ ただし、TD AutoML におけるNBAは、アクション毎に都度更新する仕組みをもっていないことに注意。（⼀括更新のみ）

s0a: ⾏動s1
s0.1

00.50.4sm

1アクションごとに更新
a0a1aan環境sʼ: 次の状態
r: 報酬

1. エージェントは環境に対して、現在の状態ss1

からQ-Tableに基づいて⾏動aを実⾏
0.1

00.7sm© Treasure Data

エージェントs: 現在の状態s0ssに関して最⼤のQ値となるaを取得

0.4

2. ⾏動の結果として次の状態sʼと報酬rを得る
3. 得られた報酬を基に、Q-Tableを更新し、Q-Table

次の状態sʼに移⾏

54強化学習とその他の手法との区別しよう
教師あり学習である AutoGluon と、強化学習である NBA は全く異なるものである。
また、Next Best “Product” は協調フィルタリングの領域であり、NBAとは全く異なるものである。

強化学習（QLearning）

教師あり学習学習に必要なもの

⾏動、⾏動、報酬

学習データ （予測対象と特徴量）

学習の結果、出⼒（更新）されるもの

Q-Table

予測するもの項⽬

Next Best Action

Next Best Product

適⽤する⼿法

強化学習

協調フィルタリング

学習に必要なもの

状態、⾏動、報酬

購買データ

学習モデル

予測するもの次の⾏動

レコメンド商品

次の⾏動

分類/回帰結果

パーソナライズされた結果かNo

Yes

利⽤するオペレータ

ipynb

ml_train/ml_predict

利⽤するオペレータ

ipynb

ipynb

利⽤するNotebook

NBA

AutoGluon automl

利⽤するNotebook

NBA（未定）項⽬© Treasure Data55

Q&A© Treasure Data