HeatWavejp_Meetup_09_HeatWaveAutoMLで利用できる機械学習の概要とレコメンデーションの紹介

>100 Views

February 25, 25

スライド概要

本セッションでは、 HeatWave AutoML で利用できる機械学習の概要や具体的にどのような流れで機械学習処理を行っていくかを説明していき、最後に実際にレコメンデーションを作成した際のポイントや感想などを紹介します。

【登壇者】
株式会社スマートスタイル
データベース&クラウド事業部 技術本部 DB部
高橋 宣幸 氏, 笠原 佳多 氏

profile-image

HeatWavejpは、MySQL HeatWave の良さを知っていただき、参加者同士でノウハウやナレッジを共有できるユーザーコミュニティです。参加者同士のつながりを深めるため、以下の活動を行ってまいります。 COMMUNICATION *Slackやconnpassを活用したユーザー同士のコミュニケーションの場の提供 EVENT *オンライン/オフラインでのMeetupセミナーや勉強会の開催(隔月程度) SHARING *製品情報や最新アップデート、リリース情報の共有 INTERACT *参加者のコミュニティ・ネットワークやユーザー同士の交流を促進

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

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

2.

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

3.

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

4.

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

5.

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

6.

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

7.

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

8.

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

9.

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

10.

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

11.

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

12.

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

13.

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

14.

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

15.

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

16.

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

17.

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

18.

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

19.

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

20.

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

21.

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

22.

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

23.

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

24.

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

25.

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

26.

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

27.

アヤメの分類をもとにした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); Copyright © 2024 HeatWavejp All Rights Reserved.

28.

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

29.

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

30.

アヤメの分類をもとにした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に近い値の場合、推論に影響を与えたことを示す • 今回はがく片の値が影響したという説明が出ると予想 Copyright © 2024 HeatWavejp All Rights Reserved.

31.

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

32.

アヤメの分類をもとにした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に近いと良い評価 Copyright © 2024 HeatWavejp All Rights Reserved.

33.

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

34.

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

35.

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

36.

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

37.

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

38.

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

39.

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

40.

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

41.

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

42.

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

43.

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

44.

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

45.

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

46.

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

47.

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

48.

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

49.

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

50.

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

51.

Copyright © 2024 HeatWavejp All Rights Reserved.