MySQL HeatWaveのサービス概略 ー全体像を理解しよう

MySQL HeatWave Database Serviceとは

「MySQL HeatWave Database Service」は、Oracleが提供するMySQLに特化したデータウェアハウスサービスです。MySQLの拡張サービスとして提供されており、以下のような特徴があります。

  • インメモリかつ並列処理をすることで分析系SQLの高速処理を実現
  • MySQLのデータとシームレスに連携しETL不要かつリアルタイムでデータ同期可能
  • HeatWaveの利用の有無はMySQLのオプティマイズで自動的に制御するため、クライアント側での処理の判定や接続先の切り替えは不要

HeatWaveは分析処理を最適に処理できるように、自動的にMySQLのInnoDBのデータをカラムナ型に変換しメモリ上に展開しています。これにより今までのMySQLでは苦手とされてきた分析型のクエリ(大量データ検索・多数のテーブルと結合・範囲検索等)で圧倒的な高速化を実現しています。

日々の運用やサービスにてデータベースには有益なデータが保存されていると思いますが、いざ活用を検討すると大量データによる性能問題・分析専用サービスへのETL連携の複雑度・追加する分析サービスによる運用コスト負担等でなかなか踏み出せないシステムもあるかもしれませんが、MySQL HeatWave Database Serviceはこれらの懸念を全て払拭できるサービスとなっています。

そして、2022年4月からはMySQL HeatWave MLとして、上記メリットをそのままに機械学習の提供を開始しました。今回から3回に渡ってMySQL HeatWave MLの概要や使用方法を解説していきます。

機械学習アプリケーション開発の課題と
HeatWave MLによる解決策

機械学習(Machine Learning)はすでに50年以上前から定義されており、さまざまな研究がされてきました。そしてハードウェアやソフトウェアの発展やビックデータをはじめとするデータ活用の広がりによって機械学習は研究の段階から実用化への段階となってきました。

この機械学習には大きく分けて3つの学習手法があります。

教師あり学習

教師あり学習とは、事前に用意した「正解データ」をもとに学習アルゴリズムを学習させる手法です。学習用データのインプットと正しいアウトプットが与えられ、特定の入力を受けることで正しい出力ができるように学習させていきます。

教師あり学習は、あらかじめ定めた分類に学習データを振り分けるための「分類」と、連続するデータの将来の値を予測する「回帰」の2つのタスクがあります。既存データを活用する場面では、過去のデータが既に蓄積されていることがほとんどです。膨大な過去のデータと明確な正解は学習効果が非常に高く、教師あり学習は一般的な手法と言えます。

教師なし学習

教師なし学習とは「正解データ」を与えずに大量データから学習アルゴリズムが自らデータ探索を実行することで、未知のデータ構造やパターンを抽出・分類します。

教師なし学習の代表的なタスクとしては、特徴が共通しているものをグルーピングする「クラスタリング」や複数のデータをベクトルとして扱いまとめて符号化を行う「ベクトル量子化」などがあります。

強化学習

強化学習では、あるデータ出力の結果に対しては成功の報酬(プラスの評価値)を与え、場合によっては好まれないデータ出力の結果には罰(マイナスの評価値)を与えることで、数多くの試行錯誤により学習アルゴリズムの価値最大化に向けたアクションを実行するように最適化する手法です。

MySQL HeatWave MLの機械学習は教師あり学習に対応しています。これによりMySQLに登録されている過去のデータをそのまま有効活用できます。

乗り越えるべき高いハードル

機械学習がかなり身近になったとはいえ、実際に動かしたり結果を活用するためにはデータサイエンスの専門家の支援や機械学習に関する広範な知識を求められます。主に以下のような項目で顕著です。

Subscribe to get access

Read more of this content when you subscribe today.

MySQL HeatWave MLでの対応

・データの収集
MySQL HeatWaveはMySQLデータベースと一体化しているので、データ連携・ETLツールが不要。今使用しているデータをそのまま機械学習のデータとして活用できます。また、既にオンプレミス環境等の別環境で運用中のMySQLでも、MySQLの標準機能であるレプリケーションを使ってデータ連携することも可能です。既に負荷分散等でレプリーションを構築しているシステムでは、同様の方法でMySQL HeatWaveにレプリケーションすることでリアルタイムに機械学習を利用できます。

・アルゴリズムの選択
アルゴリズムの選択はMySQL HeatWave MLにて行われます。メタ学習済のプロキシ・モデルを使用して最適なアルゴリズムが選択され、データの不均一性を考慮したアダプティブなサンプリングを自動的に行います。

・パラメータの選択
ハイパーパラーメータのチューニングには高度に並列化された勾配に基づく探索空間の削減を利用し、MySQL HeatWave MLにて自動化されます。

・トレーニングの実施
MySQL HeatWaveの処理性能が最も顕著に表れる場面です。インメモリ・並列処理を活かしてトレーニング時間の短縮を実現します。

結果の取得(説明)

「トレーニング」の工程に「説明」が統合されています。これにより全てのモデルにおいて「説明」が可能となっています。直感的なわかりやすさを持つ「説明」により、どの要素が最も予測に影響を与えたかの理解を支援します。

Pythonによる一般的な
機械学習アプリケーション開発との比較

上記の機能の違いを踏まえ、実際の開発場面での比較を行っていきます。ここでは機械学習のプログラミングで代表的なPythonを使用します。

Pythonによる開発ケース

Pythonは機械学習に関するライブラリやフレームワークが数多く用意されており、また機械学習に向けた開発手法やノウハウも豊富なため、既に機械学習の開発言語として採用されている方も多くいらっしゃるでしょう。しかし数多くの機能があるということは細かい開発を可能としている反面、その多くの選択肢から最適なものを選びチューニングを行なっていく必要があります。これは用意されている機械学習ライブラリを理解しないと最適な選択ができないので、目的と各ライブラリの特性を理解することも含まれます。

また、当然ながらシンプルな文法とはいえプログラミングとしてのPythonの学習も必要です。そうした一連の処理の流れをプログラミング化し、最後の学習結果に関しても恣意的な情報を排除されていることや、特徴量と予測の因果関係の検証が可能となるような説明も加えなくてはいけません。これらの一連の概略図は以下となります。

MySQL HeatWave MLによる開発

MySQL HeatWave MLでは、開発者もしくは利用者はSQLのみを実行します。今まで開発者がプログラミングをしてきたデータの前処理/アルゴリズムの選択/アダプティブなサンプリング/特徴量の選択/ハイパーパラーメーターのチューニング/モデルの説明/予測の説明の各項目がMySQL HeatWave MLにて自動で実施されます。これらの機械学習における主要部分が自動化されることにより、これまで機械学習における高い専門性や機能開発の設計やプログラムが全て不要となりました。

これにより、これから機械学習を始めようとするなじみの浅いユーザーから機械学習エンジニアまで、幅広い層ですぐに利用できるようになりました。機械学習の利用者は今までデータベースの操作で使い慣れたSQL文で「トレーニング」「推論」「説明」が実行可能となります。

このように、MySQL HeatWave MLでは、これまでとは全く異なったアプローチで機械学習を実現しています。次回は、実際のSQL関数の説明と機械学習のモデル管理等を紹介します。

Original Post>