Slide 1

Slide 1 text

Copyright © 2024 HeatWavejp All Rights Reserved. HeatWavejp Meetup #09 HeatWave AutoML で 利用できる機械学習の概要と レコメンデーションの紹介 2024年08月28日(水) 株式会社スマートスタイル 技術本部 データベース部 高橋 宣幸(たかはし のぶゆき) 笠原 佳多(かさはら けいた)

Slide 2

Slide 2 text

Copyright © 2024 HeatWavejp All Rights Reserved. アジェンダ 1. 機械学習とは? 2. HeatWave AutoMLの機能紹介 3. アヤメの分類をもとにしたAutoMLの実行 4. HeatWave AutoML機能を利用したレコメンデーション紹介

Slide 3

Slide 3 text

Copyright © 2024 HeatWavejp All Rights Reserved. 機械学習とは? ◆データを分析する方法の1つ ➢データから、「機械」(コンピューター)が自動で「学習」し、データ の背景にあるルールやパターンを発見する方法 • 学習した成果に基づいて「予測・判断」することも近年では重 要視されるようになってきている • 参考情報:機械学習

Slide 4

Slide 4 text

Copyright © 2024 HeatWavejp All Rights Reserved. 機械学習とは? ◆機械学習は3種類存在する 1. 強化学習 繰り返し試行錯誤のやりとりを重ねることによってタスクを実行できるようにする手法 2. 教師なし学習 学習データに正解を与えない状態で学習させる手法 3. 教師あり学習 学習データに正解を与えた状態で学習させる手法 HeatWave AutoMLでは 教師あり学習をサポート!

Slide 5

Slide 5 text

Copyright © 2024 HeatWavejp All Rights Reserved. 機械学習とは? ◆例) 教師あり学習で犬の種類を学習させる 1. 犬の種類の正解が付いた特徴をコンピューターに学習させる 2. 柴犬の画像を提示し、その画像が柴犬と予測できるか確認する Q.この画像は何? A.柴犬だと思います 毛が短く、茶色くて、尻尾が 短い中型犬… おそらく柴犬であろう ゴールデンレトリバー 大型 毛が長い 金色 柴犬 中型 毛が短い 茶色 尻尾が長い 尻尾が短い チワワ 小型 毛が短い 白色 尻尾が短い

Slide 6

Slide 6 text

Copyright © 2024 HeatWavejp All Rights Reserved. アジェンダ 1. 機械学習とは? 2. HeatWave AutoMLの機能紹介 3. アヤメの分類をもとにしたAutoMLの実行 4. HeatWave AutoML機能を利用したレコメンデーション紹介

Slide 7

Slide 7 text

Copyright © 2024 HeatWavejp All Rights Reserved. HeatWave AutoML の機能紹介 ◆機械学習を簡単に利用できる機能=AutoML • HeatWave AutoMLで事前に用意されているルーチン(SQL)を実行す るだけで、機械学習モデルの作成や予測などを自動で行える • 「教師あり学習」に対応 ➢正解のデータを学習させることで、パターンの識別や予測を実行でき る

Slide 8

Slide 8 text

Copyright © 2024 HeatWavejp All Rights Reserved. HeatWave AutoML の機能紹介 ◆HeatWave AutoML機能を利用するメリット • すでに格納されているデータをもとにSQLで簡単に機械学習が可能 ➢一般的に機械学習はPythonを利用するが、SQLを利用できるため、 学習コストが少ない ➢新たにデータの収集やDBからデータを取り出して加工することが不要 • HeatWaveを利用していれば追加費用なしで利用可能 • 他社製品と比べて高速なトレーニングを行える ➢HeatWave AutoMLはAmazon Redshift ML より平均25倍高速

Slide 9

Slide 9 text

Copyright © 2024 HeatWavejp All Rights Reserved. HeatWave AutoMLの機能紹介 ◆想定されるAutoML機能の利用ケース • 分類モデル:カテゴリの異なる複数のデータを見分ける • 電子メールがスパムかどうかの判別 • 類似したユーザーの特定 • 回帰モデル:連続する入力値に対する次の値を予測する • フライト遅延の予測 • 降雨予報

Slide 10

Slide 10 text

Copyright © 2024 HeatWavejp All Rights Reserved. HeatWave AutoML の機能紹介 ◆図) HeatWave AutoML機能実行の一般的な流れ

Slide 11

Slide 11 text

Copyright © 2024 HeatWavejp All Rights Reserved. アジェンダ 1. 機械学習とは? 2. HeatWave AutoMLの機能紹介 3. アヤメの分類をもとにしたAutoMLの実行 4. HeatWave AutoML機能を利用したレコメンデーション紹介

Slide 12

Slide 12 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆本項の内容 • HeatWave AutoML WORKSHOPの「アヤメの分類」の ワークショップを検証環境で実行 • 日本オラクル社の⽣駒様がGithub上で公開しているワークショップ • 検証環境で実行したワークショップの内容をもとに HeatWave AutoMLの機能の実行例を紹介

Slide 13

Slide 13 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆アヤメの分類について • 事前に用意したアヤメ(Iris)のがく片と花びらのデータを用いて、 アヤメの品種(クラスラベル)がどれかを予測する • 予測に用いるアヤメの特徴 sepal length:がく片の長さ (cm) sepal width:がく片の幅 (cm) petal length:花びらの長さ (cm) petal width:花びらの幅 (cm) • 予測するアヤメの品種(クラスラベル) 予測①:Iris Versicolour(ブルーフラッグ) 予測②:Iris Setosa(ヒオウギアヤメ) 予測③:Iris Virginica(バージニカ) がく片(sepal): 蕾の段階で花を包み 保護する部分 花びら(petal): 葉のような部分

Slide 14

Slide 14 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆ここから実施することの流れ 1. HeatWaveインスタンスの作成 2. HeatWaveインスタンスへの接続 3. データの作成 4. トレーニング(ML_TRAIN) 5. モデルのロード(ML_MODEL_LOAD) 6. 推論(ML_PREDICT_*) 7. 説明の⽣成(ML_EXPLAIN_*) 8. モデルの検証(ML_SCORE)

Slide 15

Slide 15 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成 1. 画面右上のハンバーガーメニュを展開し、 データベース>HeatWave>DBシステムを押下

Slide 16

Slide 16 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成 2. 「DBシステムの作成」を押下

Slide 17

Slide 17 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成 3. 「DBシステムの作成」画面で設定し、作成を実施 「開発またはテスト」 を選択 「スタンドアロン」 を選択

Slide 18

Slide 18 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成 3. 「DBシステムの作成」画面で設定し、作成を実施 事前に作成したVCNを設定

Slide 19

Slide 19 text

Copyright © 2024 HeatWavejp All Rights Reserved. サンプルをもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成 3. 「DBシステムの作成」画面で設定し、作成を実施 すべてデフォルトでOK

Slide 20

Slide 20 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成 3. 「DBシステムの作成」画面で設定し、作成を実施 MySQLのバージョンは 「8.4.2 – LTS」で作成 「Hide advanced options」を 押下すると詳細な設定が可能 設定が完了したら 「作成」を押下

Slide 21

Slide 21 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成 4. 「作成中」ステータスとなることを確認

Slide 22

Slide 22 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆1. HeatWaveインスタンスの作成 4. 「アクティブ」ステータスとなれば利用可能

Slide 23

Slide 23 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆2. HeatWaveインスタンスへの接続 • 踏み台のCompute InstanceからHeatWaveインスタンスへ接続 1. OCIのCompute InstanceにてOracle Linux環境を作成 2. 作成したCompute InstanceにTeraTerm等でSSH接続 3. Compute InstanceにMySQL Shellをインストール 4. MySQL Shellを利用してHeatWaveインスタンスへ接続 mysqlsh -u admin -p -h <ホスト名> -P3306 –sql ➢上記の詳細な手順はOCIチュートリアルの以下を参照 その3 - インスタンスを作成する その9 - クラウドでMySQL Databaseを使う - 4. MySQLクライアント、 MySQL Shellのインストール

Slide 24

Slide 24 text

Copyright © 2024 HeatWavejp All Rights Reserved. 例) テーブルデータのイメージ テーブル名:iris_train データ量 :120行 ◆3. データの作成 • iris-ml-data.txt内のSQLを実行 • 今回は意図した推測を行ってほしいので、 Iris-sentosaのpetal lengthとwidthの値を SQL実行前に変更(右の画像赤枠) • テーブルは以下列で構成 • 推測で利用する特徴のデータが格納された列 sepal length:がく片の長さ (cm) sepal width:がく片の幅 (cm) petal length:花びらの長さ (cm) petal width:花びらの幅 (cm) • 推測するアヤメの品種が格納された列 class:アヤメの品種 アヤメの分類をもとにしたAutoMLの実行 sepal length sepal width petal length petal width class 4.0 2.0 3.3 1.0Iris-setosa 4.5 2.1 4.4 1.4Iris-setosa 4.2 2.2 3.9 1.4Iris-setosa 4.9 3.1 1.5 0.1Iris-versicolor 5.7 3.8 1.7 0.3Iris-versicolor 4.4 3.2 1.3 0.2Iris-versicolor 6.4 2.8 5.6 2.2Iris-virginica 4.9 2.5 4.5 1.7Iris-virginica 6.9 3.1 5.1 2.3Iris-virginica

Slide 25

Slide 25 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆4. トレーニング(ML_TRAIN) • 用意したデータをもとにトレーニング済みモデルを作成し、そのモデ ルをカタログに保存するコマンド • CALL sys.ML_TRAIN ('table_name', 'target_column_name', [options], model_handle); • 実行例(モデル@iris_model01を作成)

Slide 26

Slide 26 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆5. モデルのロード(ML_MODEL_LOAD) • モデルカタログからモデルをロードするコマンド CALL sys.ML_MODEL_LOAD(model_handle, user); • 実行例(カタログから@iris_model01をロード)

Slide 27

Slide 27 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆6. 推論(ML_PREDICT_*) • 行およびテーブルのデータに対し、どのような結果が求められるかの 予測を行う • 行データに対する予測:ML_PREDICT_ROW • テーブルデータに対する予測:ML_PREDICT_TABLE • 今回は1行のデータに対する予測であるためML_PREDICT_ROWを利用 SELECT sys.ML_PREDICT_ROW(JSON_OBJECT("column_name", value, "column_name", value, ...),model_handle, options);

Slide 28

Slide 28 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆6. 推論(ML_PREDICT_*) • 以下数値からAutoMLがどの品種のアヤメかを推測を実施 がく片の長さ:4.4cm がく片の幅 :2.5cm 花びらの長さ:3.0cm 花びらの幅 :1.0cm • AutoMLはヒオウギアヤメ(Iris Setosa)と回答すると予想 • ヒオウギアヤメは一般的にがく片の長さは4~4.5cm、幅2~2.5cm • ヒオウギアヤメの花びらの幅と長さが記載された情報はないものの、写 真を見る限り長さ3cm程度、幅1cm程度に見受けられた • 参考: ヒオウギアヤメ

Slide 29

Slide 29 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆6. 推論(ML_PREDICT_*) • 実行結果 指定した値からアヤメの種類はヒオ ウギアヤメ(Iris-setosa)と推測 ⇒AutoMLの答えは想定と同じ結果 となった

Slide 30

Slide 30 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆7. 説明の⽣成(ML_EXPLAIN_*) • データからどのようにして推測したかの説明を⽣成 • 行データからの推測の説明:ML_EXPLAIN_ROW • テーブルデータからの推測の説明:ML_EXPLAIN_TABLE • 今回は先に実行したML_PREDICT_ROWで推測した内容の説明を確認する ため、行データの推測の説明を求めるコマンドを実行 SELECT sys.ML_EXPLAIN_ROW(JSON_OBJECT("column_name", value, "column_name", value, ...)', model_handle, options); • コマンド実行で特徴値の重要度が-1 から 1 までの値として表示される • 0 または 0 に近い値の場合、推論に影響を与えないことを示す • -1 は推論の参考にならない、かつ現実的にあり得ないことを示す • 1 または1に近い値の場合、推論に影響を与えたことを示す • 今回はがく片の値が影響したという説明が出ると予想

Slide 31

Slide 31 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆7. 説明の⽣成(ML_EXPLAIN_*) • 実行結果 Notesに「がく片の長さが ヒオウギアヤメの予測に 最も大きな影響を与えた」と表示 ⇒予想通りがく片が影響を 与えたという説明が表示された • この赤枠の数値が 特徴値の重要度を示す • 花びらの幅(petal width)が 0.58 • がく片の長さ(sepal length)が 0.99 「がく片」の長さの 特徴値が1に近いため

Slide 32

Slide 32 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆8. モデルの検証(ML_SCORE) • モデルの評価を得点として出力するコマンド CALL sys.ML_SCORE(table_name, target_column_name, model_handle, metric, score, [options]); • balanced_accuracyスコアリングメトリックを利用して得点を出す • balanced_accuracyはデータの偏りがなく、 バランスの取れた正解率の評価を行うメトリック • 参考:balanced_accuracy_score • コマンド出力される評価の値は、0に近いと悪い評価、 1に近いと良い評価

Slide 33

Slide 33 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆8. モデルの検証(ML_SCORE) • 実行例(@iris_model01の検証を実施) • 結果は0.666… であり、@iris_model01の評価は高くもなく、 低くもないことがわかる

Slide 34

Slide 34 text

Copyright © 2024 HeatWavejp All Rights Reserved. アヤメの分類をもとにしたAutoMLの実行 ◆AutoML実行結果の考察 • 品種の推測結果とその過程は予想通り • トレーニングで利用したテーブル” iris_train”のデータは120行とデータ量 は多くはないものの、ヒオウギアヤメと判断できる「がく片」のデータが 十分学習されていたものと考えられる • ML_SCOREの評価は微妙 • 各品種で偏りのない数値を格納できれば、評価は上がるものと考えられる • 推論の後に評価を実施したが、推論の前に評価を実施し、トレーニングを し直してモデルの評価を高めれば、より精度の高い推論が行えると考えら れる

Slide 35

Slide 35 text

Copyright © 2024 HeatWavejp All Rights Reserved. アジェンダ 1. 機械学習とは? 2. HeatWave AutoMLの機能紹介 3. アヤメの分類をもとにしたAutoMLの実行 4. HeatWave AutoML機能を利用したレコメンデーション紹介

Slide 36

Slide 36 text

Copyright © 2024 HeatWavejp All Rights Reserved. そもそも・・・レコメンドって? レコメンドには「おすすめ」、「推薦」という意味があります。 例)洋服屋さんに入り、店員さんが声をかけてきた場合 お客さんの「服装」、「雰囲気」、 「身長」や「お財布の事情」を推測・聞き出して、 店員さんはぴったりの洋服を推薦します。 それが「レコメンド」です。

Slide 37

Slide 37 text

Copyright © 2024 HeatWavejp All Rights Reserved. では・・・レコメンデーションとは? 「レコメンデーション」 = 顧客にお勧めの情報を提供する「サービス」 HeatWave AutoMLでは・・・ 「協調フィルタリング」 という手法を用いて、 「レコメンデーション」ができます!

Slide 38

Slide 38 text

Copyright © 2024 HeatWavejp All Rights Reserved. ざっくり言うと「協調フィルタリング」は・・・ ①ユーザベース型:好みが似ている「人」からオススメする! ②アイテムベース型:関連度が高い「物」をオススメする! HeatWave AutoMLでは、「どちらも採用!?」 Bさんには 「納豆」をオススメしよう! ごはんのお供に 「味噌汁」はいかがでしょうか! (過去データ) (現在) 評価高を優先

Slide 39

Slide 39 text

Copyright © 2024 HeatWavejp All Rights Reserved. 映画レコメンデーションアプリの講座 https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view- workshop?wid=3859&clear=RR,180&session=3985345855664

Slide 40

Slide 40 text

Copyright © 2024 HeatWavejp All Rights Reserved. 映画レコメンデーションアプリの構築 「映画データセット」をDLして、 HeatWave AutoMLで機械学習! ローコード開発プラットフォーム であるOracle APEXを利用 (詳細はこちら)

Slide 41

Slide 41 text

Copyright © 2024 HeatWavejp All Rights Reserved. 映画データセットのDL~データ取り込み https://grouplens.org/datasets/movielens/100k/ ②CSV変換 ③SQL変換 ①映画データセットDL ④MySQLへ

Slide 42

Slide 42 text

Copyright © 2024 HeatWavejp All Rights Reserved. 映画データセットの内容 user_id:ユーザID item_id:映画ID rating:映画の評価値 (「1」 ~ 「5」の5段階) 「data0」テーブルに 10万件分の映画評価データを格納 評価値が高い = オススメ

Slide 43

Slide 43 text

Copyright © 2024 HeatWavejp All Rights Reserved. 映画データセットの内容 ユーザへの「オススメ」はどう変わる? さらに 15 件分の評価追加 さらに 15 件分の評価追加

Slide 44

Slide 44 text

Copyright © 2024 HeatWavejp All Rights Reserved. 「トレーニング」と「モデルロード」 ①映画データセットのトレーニング(ML_TRAIN) ②映画データセットのモデルのロード(ML_MODEL_LOAD)

Slide 45

Slide 45 text

Copyright © 2024 HeatWavejp All Rights Reserved. 1ユーザ分の「推論」=オススメ作成 ③ 1ユーザに対して、まだ見ていない映画の「推論」を作成(ML_PREDICT_TABLE) ※「movies.user_20_xr」テーブルの作成方法はこちらを参照 「user_id=20」 が まだ見ていない映画のリスト情報 「推論」の結果=オススメ3選

Slide 46

Slide 46 text

Copyright © 2024 HeatWavejp All Rights Reserved. 「Oracle APEX」のプロフィール画面 データと連動!コーディングなし!!

Slide 47

Slide 47 text

Copyright © 2024 HeatWavejp All Rights Reserved. 映画レコメンデーション Part1

Slide 48

Slide 48 text

Copyright © 2024 HeatWavejp All Rights Reserved. 映画レコメンデーション Part2 同じジャンルの映画を見た結果

Slide 49

Slide 49 text

Copyright © 2024 HeatWavejp All Rights Reserved. 映画レコメンデーション Part3 違うジャンルの映画を見た結果

Slide 50

Slide 50 text

Copyright © 2024 HeatWavejp All Rights Reserved. 所感 ◆映画レコメンデーションアプリの考察 • DBに登録されているデータを使って、簡単に機械学習が行える • 機械学習にかかる時間が思っていたよりも短い • Oracle APEXを利用して、全くコーディングせず画面が作成できた • UPDATE文を利用して画像ファイルパスを登録したが、 数が多いと間違える可能性もあるので、この点は今後に期待

Slide 51

Slide 51 text

Copyright © 2024 HeatWavejp All Rights Reserved.