Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[DBWT-1] データ活用: Oracle Machine Learningを活用した、アプ...

[DBWT-1] データ活用: Oracle Machine Learningを活用した、アプリケーションへのAI/MLの組み込み

2023年4月12日 (水)開催、Oracle Database World Tokyo [DBWT] セッション1の資料です。

機械学習モデルを作成するだけでは、現場の課題解決にはなりません。その後の部分 - PythonやRベースの広範なソリューションによるモデルの実装や拡張 - を本番環境で行うのは、多くの場合、より困難を伴います。Oracle Autonomous Database 上の Oracle Machine Learningを採用し、一連の流れをシンプルかつ迅速化する方法についてお伝えします。

oracle4engineer

April 19, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Oracle Database World Tokyo 中山 厚紀 ⽇本オラクル株式会社 事業戦略統括 事業開発本部 担当ディレクター

    Oracle Machine Learningを 活⽤した、アプリケーションへの AI/MLの組み込み アルゴリズムを移動 - データを移動させずに︕ 矢田 和也 ⽇本オラクル株式会社 テクノロジーコンサルティング事業本部 プロフェッショナルサービス本部 第三デジタルインテグレーション部 プリンシパルコンサルタント 2023年4⽉12⽇
  2. Copyright © 2023, Oracle and/or its affiliates 3 お尋ねします 機械学習

    / AI を、⽇々活⽤していますか︖ Yes No どちらか いうと No
  3. Copyright © 2023, Oracle and/or its affiliates 4 お尋ねします ECの利⽤をされる⽅限定︓

    リコメンド︓お勧め商品を参考にしますか︖ Yes No
  4. 「お勧め」の裏側では… 学習している Copyright © 2023, Oracle and/or its affiliates 5

    ブドウを 買った イチゴを 買った ブドウも イチゴも 買った イチゴだけを 買った ブドウだけを 買った 相関図 ブドウだけ 買う⼈はいても イチゴだけ買う⼈は 少ない • 気温が30度を超えるとアイスクリームよりかき氷が売れる • タバコを吸う⼈は肺がんになりやすい イチゴを買う⽅に 「ブドウをお忘れでは?」 と⾔ってみる…
  5. 蓄積されたデータは貴重… 購⼊可能性%を基に、 - ⾃分の営業テリトリ内で - 購⼊可能性の⾼い順にリスト 新規のお客様の情報から • 購⼊可能性%を確認 このセッションのゴール

    〜 Oracle Database上のデータから、最短で学習モデルを作って活かす Copyright © 2023, Oracle and/or its affiliates 6 ▪業務データ、オープンデータ ▪データベースエンジン ▪Oracle Machine Learning* (旧 Advanced Analytics) □ 並列検索 (Enterprise Edition) □ (Option)In-Memory*, 圧縮 • 2019年12⽉5⽇よりEnterprise Edition, Standard Editionで追加料⾦なしで利⽤可能 • Oracle Database 19c RU 19.8以降、オプションなしでIM列ストアのサイズ16GBまで利⽤可能
  6. f スコアリングのほか、数多くの⾝近なシーンでMLモデルが利⽤されています MLモデルで推奨事項、予測、インサイトを⽣成 Copyright (c) 2023, Oracle and/or its affiliates

    9 ⼊⼒ データ 予測 インサイト おすすめ どの顧客に最初にコンタクトすると良いか? どの製品を推奨すると良いか? この家の不動産価値は幾らか? このクレームは不正ではないか? この従業員が退職しそうではないか? ⾃社顧客をセグメント分類するとどうか? 根本原因は何か? 最も予測性の⾼い属性はどれか? MLモデル MLアルゴリズム・ スコアリング関数
  7. さまざまな機械学習技術の活⽤例 Copyright©2023、 Oracle and/or its affiliates. 10 分類 回帰 クラスタリング

    顧客⽣涯価値予測 信⽤リスク - ローン前払⾦予測 - 倒産確率 顧客ロイヤルティ 顧客離反の予測 顧客獲得の予測 相関ルール 時系列 [バスケット分析] 製品のクロスセルとアップセル 製品バンドル など 需要予測 販売予測・収益予測 ATM引出し予測 顧客セグメンテーション ドキュメント分類 ⽣物種分類 地域/事業所ごとの住宅価値の分析 探索的データ分析(EDA) 次のお勧め 異常検知 不正検出 ネットワーク侵⼊検出 異常ケースの識別
  8. Copyright (c) 2023, Oracle and/or its affiliates 12 Oracle Databaseと

    Autonomous Database オープンソース・ツール MLモデルは様々なツールから⽣成できます。 外部ソース データベース内アルゴリズム SQL、R、Python API OML UI: Data Miner、AutoML UI データ・サイエンティスト、MLエンジニア、データ・アナリスト、そして⼀般ユーザーもAutoMLを活⽤しています Caret kernLab randomForest rpart E1071 tensorflow … Scikit-Learn Keras SciPy Pytorch TensorFlow …
  9. SELECT prediction_probability(BUY_TRAVEL_INSUR, 'Yes' USING 98400 as income, 45 as age,

    'Married' as marital_status, 2 as num_previous_cruises) FROM dual; DECLARE v_setlst DBMS_DATA_MINING.SETTING_LIST; BEGIN v_setlst('ALGO_NAME') := 'ALGO_SUPPORT_VECTOR_MACHINES'; V_setlst('PREP_AUTO') := 'ON'; DBMS_DATA_MINING.CREATE_MODEL2( MODEL_NAME => 'BUY_TRAVEL_INSUR', MINING_FUNCTION => 'CLASSIFICATION', DATA_QUERY => 'select * from CUSTOMERS', SET_LIST => v_setlst, CASE_ID_COLUMN_NAME => 'CUST_ID', TARGET_COLUMN_NAME => 'BUY_TRAVEL_INSURANCE'); END; ore.sync(table="CUSTOMERS") settings = list(model_name="BUY_TRAVEL_INSUR") svm.mod <- ore.odmSVM(Species~.,train.dat, odm.settigs = settings) CUSTOMERS = oml.sync(table="CUSTOMERS") X = CUSTOMERS.drop(" BUY_TRAVEL_INSURANCE") y = CUSTOMERS["BUY_TRAVEL_INSURANCE"] svm_mod = svm() svm_mod = svm_mod.fit(X, y, model_name = 'BUY_TRAVEL_INSUR') PL/SQL 旅⾏保険を購⼊する可能性が⾼い顧客を特定する機械学習モデルを構築 OML APIからデータベース内モデルを構築: SQL、R、Python Copyright©2023、 Oracle and/or its affiliates. 機械学習モデルを適⽤して、個々の顧客が購⼊する可能性が⾼い確率を予測します
  10. 幅広いビジネス上の問題に対応 Oracle Machine Learningデータベース内アルゴリズム Copyright (c) 2023, Oracle and/or its

    affiliates 14 分類 回帰 異常検知 クラスタリング 時系列 属性評価 特徴抽出 ⾏重要度 相関ルール ランキング ⽣存時間分析 ディシジョン・ツリー 明⽰的セマンティック分析 ⼀般化線形モデル(GLM) NaiveBayes ニューラル・ネットワーク ランダム・フォレスト サポート・ベクター・マシン (SVM) XGBoost ⼀般化線形モデル(GLM) ニューラル・ネットワーク サポート・ベクター・マシン (SVM) ステップワイズ線形回帰 XGBoost 階層K-Means 階層直交パーティショニング・クラスタリング(O-Cluster) 期待値最⼤化(EM) 指数平滑法 ⼀般的なモデル 例) トレンド、季節性、不規則な時系列を加え るHolt-Winters法 主成分分析(PCA) Non-negative Matrix Factorization 特異値分解(SVD) 明⽰的セマンティック解析(ESA) 最⼩記述⻑ ランダム・フォレスト 監視なしペアワイズKL分散 CUR⾏分解& AI Apriori CUR⾏列分解 XGBoost XGBoost 1クラスSVM 多変量状態推定技術 - 逐次確率⽐検定 (MSET-SPRT) パーティション化されたモデルのサポート、 統合テキスト・マイニング、 ⾃動データ準備 OMLアルゴリズム・チート・シート アルゴリズムのドキュメント
  11. Copyright © 2023, Oracle and/or its affiliates 15 機械学習モデリング モデリング

    GLM ステップ1 ステップ2 ステップ3 … DT ステップ1 ステップ2 ステップ3 … NB ステップ1 ステップ2 ステップ3 … SVM ステップ1 ステップ2 ステップ3 … SVM ステップ1 ステップ2 ステップ3 … モデリング • ディシジョン・ツリー • ⼀般化線形モデル • NaïveBayes • ニューラル・ネットワーク • ランダム・フォレスト • サポート・ベクター・マシン COMPLEXITY_FACTOR CONV_TOLERANCE EPSILON KERNEL_FUNCTION OUTLIER_RATE STD_DEV NUM_ITERATIONS NUM_PIVOTS BATCH_ROWS REGULARIZER SOLVER NB ステップ1 ステップ2 ステップ3 … U (( )) データ
  12. モデルの構築と評価の反復的で時間のかかる作業を排除 各アルゴリズムの特定のハイパーパラメータを調整する⽅法の理解を不要に コンピューティングの時間とコストを削減 l MLをMLプロセスに適⽤ l アルゴリズムおよびハイパーパラメータ検索スペースの削減 ⾃動化された機械学習(AutoML) モデリング・プロセスを簡素化 データ・サイエンティストの⽣産性を⾼め、専⾨家以外の⼈がMLモデルを作成できるように⽀援

    Copyright (c) 2023, Oracle and/or its affiliates 16 OML モデル アルゴズム ⾃動選択 機能 ⾃動選択 モデル ⾃動チューニング • 最⾼のモデル品質を達成す る可能性の⾼いデータベー ス内アルゴリズムを特定 • 網羅的な検索より早く”最 適”なアルゴリズムを⾒つける • データのノイズを除去、かつ、 特徴量を絞る • 最も予測しやすいものを特 定することで、機能を絞る • パフォーマンスと精度を向上 • モデルの精度を⼤幅に向上 • ハイパーパラメータの⾃動チ ューニング • ⼿作業や網羅的な検索⼿ 法を回避
  13. ひとりで最後まで⾏うことが可能に 開発者から⾒たエンタープライズMLソリューションのワークフロー Copyright (c) 2023, Oracle and/or its affiliates 18

    データ・エンジニア データ・サイエンティスト アプリケーション開発者 オブジェクト・ストア Oracleオブジェクト・ストア Amazon S3 Azure Blob Store Google Cloudストア S3-compatible 18 GoldenGate データセット 表 ビュー アクセス データ結合 データ変換 MLモデル Python、R、SQLスクリプト SQL問合せ RESTエンドポイント データの探索 データの準備 MLモデルの構築 モデルの評価 ML対応のコード化 適⽤ インテグレーション 表⽰ Oracle APEX Oracle Analytics Cloud サービス・アプリケーション モバイル・アプリケーション
  14. すでに構築されているモデルの、デプロイも可能です アプリケーションで使⽤するデータベース内モデルのデプロイ Copyright (c) 2023, Oracle and/or its affiliates 20

    Oracle APEX Oracle Analytics Cloud サービス・アプリケーション モバイル・アプリケーション アプリケーション SQL モデルのエクスポート /インポート REST Oracle ⾃律型 データベース Oracle データベース SELECT prediction_probability(BUY_TRAVEL_INSUR, 'Yes’ USING 98400 as income, 45 as age, 'Married' as marital_status, 2 as num_previous_cruises) FROM dual; CREATE TABLE CUSTOMER_SCORES AS SELECT case_ID, prediction(BUY_TRAVEL_INSUR USING *) BUY_INSUR prediction_details(BUY_TRAVEL_INSUR USING *) PD FROM CUSTOMERS; curl --location --request POST '{oml-service- url}/omlmod/v1/deployment/buyinsurance/score' ¥ --header 'Content-Type: application/json' ¥ --header 'Authorization: Bearer <token>' ¥ --data-raw '{ "inputRecords": [{ "INCOME": 98400, "AGE": 45, "CUST_GENDER": "M", "MARITAL_STATUS": "Married", "NUM_PREVIOUS_CRUISES": 2 }] }' シングルトン・スコア- SQL バッチ・スコア- SQL シングルトン・スコア- REST
  15. ⾃動モデリングおよびデプロイメントのしやすさを実現するノーコード・ユーザー・インタフェース AutoMLモデル構築とRESTによるスコア確認をADB-Sで実装 Copyright (c) 2023, Oracle and/or its affiliates 21

    curl --location --request POST '{oml-service- url}/omlmod/v1/deployment/creditscoringrf1/score' ¥ --header 'Content-Type: application/json' ¥ --header 'Authorization: Bearer <token>' ¥ --data-raw '{ "inputRecords": [ { "WEALTH":"Average", "AGE": 45, "CUST_GENDER":"M", "MARITAL_STATUS":"Married", "CUSTOMER_VALUE_SEGMENT":"silver" } ] }' リアルタイムシングルトンスコア
  16. Oracle Machine Learningは、 データ・サイエンス・プロジェクトの成功のためのツールを提供 Copyright © 2023, Oracle and/or its

    affiliates 22 OML コンポーネント Oracle Autonomous Database (19c, 21c) Oracle Database (19c, 21c) Oracle DBCS Oracle Exadata CS/CI/C@C OML4SQL API MLモデルを構築し、 データ移動なしでデータをスコアリング ü ADB-S, ADB-D, ADB C@C ü ü ü OML4Py API データベース内MLを使⽤し、Pythonの⾼パフォーマンスの コンピュート・エンジンとしてデータベースを利⽤ ü ADB-S ü ü ü OML4R API データベース内MLによる⾼パフォーマンスの 計算エンジンとしてのデータベースの活⽤ ü ADB-S ü ü ü OML Notebooks SQL、PL/SQL、Python、R、condaおよびマークダウン・インタプリタ ü ADB-S OML AutoML UI コード不要の⾃動モデリング・インタフェース ü ADB-S OML Services RESTfulモデル管理およびデプロイメント ü ADB-S Oracle Data Miner MLメソドロジを作成するための ドラッグ・アンド・ドロップ・インタフェースを持つSQL Developer Add-in ü ADB-S, ADB-D, ADB C@C ü ü ü Project化 [WIP] - 業務通 - 分析/ML通 - アプリ開発通[ToBe像] これらがすべて、Oracle SaaSでの実装に寄与
  17. ⽮⽥ 和也 Copyright © 2023, Oracle and/or its affiliates |

    24 ⽇本オラクル株式会社 テクノロジーコンサルティング事業本部 プロフェッショナルサービス本部 第三デジタルインテグレーション部 シニアコンサルタント 卸売事業者様での機械学習(ML)活⽤事例 Oracle Consulting Service 事例紹介
  18. ▪ 背景︓ 卸センター倉庫内におけるパート社員のシフト計画を⽴てたい • 現在は、直近の実績や曜⽇ごとのパターンから必要な⼈員を推定し、シフトを組んでいる → 機械学習で予測精度を上げられないか︖ • 機械学習やプログラミングに精通していない業務部⾨でも簡単に予測できるようにしたい →

    予測モデルの構築は、コーディングなしでできる AutoML UI で試⾏してみよう → 予測の実⾏は、担当者がブラウザアプリやREST APIの実⾏で簡単にできるようにしよう ▪ ゴール設定︓ 「誤差15%以内※」 で、 1か⽉先までの卸センターの出荷量を予測し、1か⽉先までのパート社員のシフトを最適化したい。 AutoML を活⽤した卸センター倉庫内の出荷量予測 (1/4) Copyright © 2023, Oracle and/or its affiliates 25 卸売事業者様での活⽤事例 ※15%以下の誤差であれば、 パート社員の必要⼈数が変わらないため 11⽉9⽇ 予測出荷量 = 100 → 25⼈必要 11⽇10⽇ 予測出荷量 = 75 → 19⼈必要 11⽉30⽇ 予測出荷量 = 140 → 35⼈必要 …
  19. AutoML を活⽤した卸センター倉庫内の出荷量予測 (2/4) Copyright © 2023, Oracle and/or its affiliates

    26 ▪ 分析⽅法︓ ⽇付 曜⽇ 祝⽇ フラグ 1⽉前 出荷実績 1.5⽉前 出荷実績 1年前 出荷実績 出荷量 2020/11/1 ⽇ 1 550 480 810 1000 … … … … … … … 2022/10/30 ⽇ 1 45 100 80 50 2022/10/31 ⽉ 0 600 500 670 900 ⽬的変数 1か⽉先までの ⽇次での出荷量 予測が必要 ⽇時 商品ID 個数 … 11/1 13:08 A001 11/1 13:12 B002 11/1 13:21 A001 11/1 13:23 C003 出荷明細表(2年分︓約500万⾏) ケース表(⽇次の合計出荷量サマリ表) 全ての説明変数と⽬的変数が含まれた表 ケース表の作成 ( sum group by, Window関数 など ) 予測精度向上を狙って 追加構成した説明変数(特徴量) STEP1: 出荷明細表から学習対象表(=ケース表)を構成する Autonomous Database に格納された出荷明細表(トランザクション表)を⽇次でサマリし、かつ出荷量予測に有⽤そうな説明変数を “とりあえず⼿当たり次第に” 追加し、AutoML UI に学習させるためのケース表をSQLで構成する。 ⽇付 曜⽇ 祝⽇ フラグ 1⽉前 出荷実績 1.5⽉前 出荷実績 1年前 出荷実績 出荷量 2022/11/1 ⽕ 0 150 200 250 ? 2022/11/2 ⽔ 0 300 1000 500 ? … … … … … … … 2022/11/30 ⽔ 0 600 100 600 ? 予測対象データ
  20. AutoML を活⽤した卸センター倉庫内の出荷量予測 (3/4) Copyright © 2023, Oracle and/or its affiliates

    27 STEP2: AutoML UI で予測モデル構築 AutoML UI のブラウザインターフェースから、「回帰(出荷量という数値予測のため)」を選択し、予測モデルの構築を実⾏ AutoML は、 「ニューラルネットワークアルゴリズム」 を最適と判断 → R2 = 0.88 ★ AutoMLにて、⾃動的に⽐較/最適化されるアルゴリズム ü ⼀般化線形モデル ü ⼀般化線形モデル(リッジ回帰) ü Support Vector Machine(線形) ü Support Vector Machine(ガウス) ü ニューラルネットワーク R2 = 回帰モデルの精度を評価する指標の⼀つ(決定係数)。 回帰式のモデルが 「正解データにどれくらい当てはまるか」の 割合を表し、 0.0 <= R2 <= 1.0 の値を取る。 AutoMLによる説明変数毎の影響度可視化 1年前の出荷実績が最も影響しており、 次いで1.5か⽉前、1か⽉前の出荷実績が影 響を与えていることが分かる ※ STEP1で、”⼿あたり次第” に有⽤そうな説明 変数を追加したのは、AutoML が⾃動的に影響度 の⼩さい変数は無視してくれるため 対象のテーブルと予測したいカラムを 選択するだけで作成可能︕
  21. AutoML を活⽤した卸センター倉庫内の出荷量予測 (4/4) Copyright © 2023, Oracle and/or its affiliates

    28 STEP3: 構築した予測モデルをデプロイし、1か⽉先までの⽇次での予測出荷量を出⼒するブラウザアプリの開発 予測モデルはデプロイするとAutonomous Database内に保存され、すぐにREST APIで予測結果を取得できるようになる。 また、予測出荷量を表⽰するブラウザアプリを開発については Autonomous Databaseに付属しているAPEX(ローコードのアプリ開発ツール)を⽤いて数週間程度の短期間で開発。 各卸センターの担当者は、⽉末にこのブラウザアプリやAPIを実⾏するだけで 出荷量予測を⾏えるようにした。
  22. 本プロジェクトにおけるポイント Copyright © 2023, Oracle and/or its affiliates 29 PoC検証

    約2週間 課題設定 データプロファイリング 約3ヶ⽉ PoC要件定義 機械学習モデル実装 予測UI/API開発 PoC検証 項⽬の整理 PoC実施スケジュール PoC環境構築 +分析⽤データの ロード ※ DataPumpを利⽤ 機械学習プロジェクトを⾏う上での懸 念 • Python等を使って機械学習モデルを構築+ チューニングするスキルの習得が困難... • ユーザー部⾨へ使ってもらうための簡便なインターフェースも ⽤意する必要がある... • 通常の業務もあり、プロジェクトへ割く⼈員の余裕がない... ü AutoML UIを利⽤することで未経験のDBAでも 機械学習モデルを⾃⼒で構築 +モデル構築〜評価のサイクルを⾼速に︕ ü ローコード開発ツールであるAPEXを使⽤することで インターフェースの開発コストを最⼩限に︕ ü Autonomous Databaseは数ステップ(10分程度)で構築完了 +AutoML, APEXはセットアップ作業、追加コスト無しで利⽤可能 予測モデル 構築 評価 データ 加⼯ ▪体制 顧客 基盤担当者︓3名 オラクルコンサルメンバー︓2名
  23. Oracle Consulting Service による AutoML 関連⽀援について Copyright © 2023, Oracle

    and/or its affiliates 30 PoC検証 まだ機械学習を業務に取り⼊れられていない、もしくは取り⼊れようとしたが断念したお客様向けに、機械学習の業務適⽤ を成功させるための進め⽅や考え⽅の講義、およびOracle Cloudの機械学習ツール(AutoML UI)に関するハンズ オントレーニングを実施した後に、お客様の業務課題を実際に機械学習を利⽤して解決可能かを検証します。 内 容 ▪機械学習 1st Step ⽀援サービスの⽀援内容 機械学習の業務適⽤を成功させるためのプロジェクトの進め⽅から、実際にツールを利⽤した分析⽅法までを 座学、およびハンズオン形式のトレーニングを通して習得いただきます。 その後、お客様の担当者とのディスカションを通して、機械学習による解決が期待される業務課題を抽出し、 実データを使ってPoC検証を⾏い、本番適⽤までのロードマップ策定を⾏います。 約1ヶ⽉ 機械学習の概要とOracleの ツール紹介(座学形式) AutoML UIに関する ハンズオントレーニング お客様業務における 課題設定 機械学習に関する PoC検証 ▪機械学習を業務適⽤する際の代表的なハードル • 機械学習に必要な作業範囲が分からない • どんな業務課題が機械学習で解決できるのか分からない 約3ヶ⽉ トレーニング 評価・ロードマップ策定
  24. データ利活⽤を促進するセルフサービス・ツール群 インスタンスを作成すれば、すぐに利⽤可能 機械学習 Notebook / AutoML UI ビジネスインテリジェンス Oracle Analytics

    Desktop Webアプリ開発 Application Express : APEX API開発 Oracle Rest Data Services データ操作(ロード/変換等) Database Actions Service Console SQL Monitor / Performance Hub Copyright © 2023, Oracle and/or its affiliates 40 ワン・ストップで始め、短時間で確認できます ※ADB を導⼊済みで、ADB を1データソースに 設定している場合に利⽤可能
  25. まとめ アプリケーションの MLモデルを Oracle Database および Autonomous Databaseと簡単に統合 SQL、R、Python および

    AutoML を使⽤したデータベース内モデルの構築 R や Python のサードパーティの機能を利⽤し、SQL と RESTを使⽤してデプロイ コスト、メンテナンス、複雑性を軽減 スケーラビリティ、パフォーマンス、信頼性の向上 Oracle Machine Learningを使⽤したアプリケーションへのAI/MLの埋め込み Copyright (c) 2023, Oracle and/or its affiliates 53
  26. Copyright © 2023, Oracle and/or its affiliates 54 詳細 OML

    Webページ https://oracle.com/machine-learning OMLブログ https://bit.ly/omlblogs OML GitHubリポジトリ https://bit.ly/omlgithub OMLオフィス・アワー https://bit.ly/omlofficehours Oracle LiveLabsで試す 概要︓ https://bit.ly/omlfundamentalshol OML4Py ︓https://bit.ly/oml4pyhol すべてのOML ︓ https://bit.ly/omllivelabs OMLドキュメント https://docs.oracle.com/en/database/oracle/machine-learning/index.html