1. はじめに
ここ数年、AI・機械学習の利用が進んできておりますが、Oracle Database 上においても標準機能にてAI・機械学習を導入することができます。
本記事では、Oracle Database という身近なデータベース上でのAI・機械学習導入のメリットやその基本について説明しつつ、その魅力を紹介します。
AI Vector Searchの適用例などにつきましては、
「Oracle Database 23ai を活用したAIキャッチアップ ②AI Vector Search編」で紹介しています。
クラウドを中心にデータベースの機能やサービスは日々仕様が変化し、また新しいサービスも次々と生まれています。
本記事では執筆時点において情報を正確に提供する努力をしてはおりますが、もし仕様等に変更があったり、本記事の内容に誤りがあった場合でも一切責任を負いかねますので、具体的な検討の際には併せて最新の情報を必ずご確認頂きますようお願いいたします。
※本資料中の商品名・会社名・団体名は、一般に各社の商標または登録商標です。
2. AI・機械学習とは
「AI(人工知能)」とは、あたかも人間の知能を有するような、あるいは人間の知能や時間軸では到達できないような振る舞いを行うソフトウェアやシステム、またはその技術全体を指します。
注) 明確な定義は有識者によって異なるところがあり、また昨今急速に発展している生成AIの流れを受けて、生成AIを指す認識で「AI」という用語が使われるケースも見受けられますが、一般的には上記のような定義とされています。
「機械学習」は、 AIを実現する仕組みの根幹をなすデータ分析の技術・手法を指します。一般的には大量のデータを高速なコンピュータを使って数理統計的に解析して、AIの頭脳となる部分を実現します。
Oracle Databaseはデータを管理し処理、分析することで機械学習を行うことができますが、トータルとしてのAIを実現するプラットフォームではありません。アプリケーションやサービス、場合によっては何かしらのデバイスと組み合わせることでAIを実現します。
厳密には上記のような関係となりますが、本記事ではAIと機械学習を「AI・機械学習」として同義的に扱い、Oracle DatabaseをAI・機械学習の実現環境の1つとして取り扱います。
3. Oracle Database上でAI・機械学習を導入・利用するには
Oracle Databaseでは、以下2つの機械学習に関する機能がどちらも標準機能として搭載されています。
| 機能 | 用途 | 詳細 | 備考 |
|---|---|---|---|
| AI Vector Search ※23ai新機能 |
ベクトル検索(類似性検索) | 各種データを高次元ベクトル値に置き換え、そのベクトル間の距離やコサイン値などを比較することで、類似性による検索を可能とする機能。 | Oracle Database 23aiからの新機能 |
| Oracle Machine Learning(OML) | 回帰や分類、相関など | 回帰や分類、相関など、用途に合わせた一般的な機械学習の様々な機能を標準機能として搭載。 | 以前はEnterprise Editionの有償オプションであったが、現在はStandard Edition2、Enterprise Editionともに標準機能として使用可能 |
※各クラウドサービス個別での扱いや利用可能な機能については、それぞれの仕様をご確認下さい。
4. Oracle Database上でAI・機械学習を導入するメリット
① 金銭的なコストメリット
少なくとも機械学習部分においては、外部のサービスやアプライアンスを使う必要がないため、基本的にその分のコストが浮きます。また、対象データが元々Oracle Databaseに存在するデータであれば、データ移動に関するコストも削減できます。
※リソースの増強(クラウドであれば利用時間の増加も含めて)が発生する場合は、その差し引きでの計算が必要です。また、導入に関する工数差があればその分の加味が必要となりますが、導入に関する敷居は比較的低いと言えます。
② Oracle Databaseの機能がそのまま使える
データの加工、高速化・効率化技術、バックアップ、セキュリティなど、Oracle Databaseの機能をそのまま利用できます。特に機械学習で重要なデータの準備においてOracle DatabaseのSQLや関数群を利用できる点や、結果の取得において他のデータを通常のSQLによる一致型検索と組み合わせて使いたい場合などでその威力を発揮します。
③導入・利用の敷居の低さ
外部のサービスやアプライアンスの利用に関するスキルを身に着ける必要はなく、慣れているSQL/PLSQL による操作が可能です。また、Autonomous DatabaseではGUIツールが充実しており、オンプレミスにおいても標準機能(無償)であるSQL Developerとも統合、GUI操作も可能です。
※AI・機械学習分野において以前から利用されているPythonやRからの操作も可能です。
④高いデータ鮮度/精度
別のAI・機械学習基盤上にデータ移動する必要がなく、機械学習時においてタイムラグ無くデータを取り扱えます。
⑤セキュリティ向上
Oracle Database上で機械学習を完結させられるため、データを移動させない(拡散させない)ことになり、データ主権への対応やデータ管理上のセキュリティ向上にも寄与します。
5. Oracle AI Vector Search 概要
Oracle Database 23ai では多くの新機能や機能強化が実装されていますが、AI Vector Searchはその新機能の中の1つです。Oracle Databaseがそのままベクトルデータベースとしても機能するため、機能面やコスト、セキュリティなど様々なメリットがあります。
Vector Search(ベクター/ベクトルサーチ、ベクター/ベクトル検索)とは?
データ検索やAIの世界で出てくる、類似性検索を実現する検索方法の1つです。ベクトル(Vector)とは空間上における大きさと向きを持った量を言います。そしてベクトル検索では、検索対象となるデータをベクトルで表現し、そのベクトルに対する類似性(距離やコサイン値など)を評価して検索することになります。
例として八百屋さんにある青果物を簡単に2次元(大きさ、甘さ)で考えます。
注)実際のベクトル検索で表現される各ベクトルのそれぞれの次元の値は、通常、そのままある一つの特徴に1対1でリンクする訳ではありませんが、説明用として単純化します。
いくつかの青果物をざっくりですがプロットしてベクトル(矢印)で表現して比べてみます。グレープフルーツとみかんはかなり近いです。実際柑橘類どうしで、味もまあ近い印象があります。
この様にベクトルで表現して2つのデータ間の近さ(類似度)を表現し、類似性検索で利用するのがベクトル検索となります。なお、今回は具体的に2次元において感覚的に「近い」「遠い」を判断しましたが、実際には2つのベクトルの距離やコサイン類似度というものでその近さを測ります。
ちなみにキャベツとかぼちゃを比べてみますと、図の上ではグレープフルーツとみかんと同じような近さを感じます。
しかし、実際には見た目も味もグレープフルーツとみかん程似てはいないと思います。これは、この例が高々2次元のみで表現していて、表現の幅が狭く、精度が低いためです
その為、実際にはもっと大きな次元数でその対象物を表現します。ベクトル検索では通常、膨大な特徴をそれらの関連性を損なうことなくあらかじめ決められた次元数に数値化して落とし込み、ベクトルとして表現します。
これをEmbedding(埋め込み)と呼び、コンピュータが直接扱える数値にしつつ、高速検索と精度の高い類似性検索の両立を狙っています。もちろん人間がそれらを行うのではなく、 機械学習モデルを利用して、ベクトルデータを生成していきます。
※元々数値化されている構造化データなど一部のケースを除く。
Oracle Database 23ai からはベクトル検索が可能な AI Vector Search が標準機能として搭載
ベクトルデータを管理し、ベクトル検索が可能であるデータベースをベクトルデータベースと呼びます。AI Vector Searchの特徴として、別個の製品ではなく、Oracle Database 23ai上に標準機能として搭載されている点が挙げられます。つまり、Oracle Databaseがそのままベクトルデータベースとしても動作します。
Oracle Database自体にはEmbeddingモデルは搭載されていません。ONNX形式と呼ばれるオープンソースのフォーマットによって作成されたEmbeddingモデルをインポートするか、外部にあるサードパーティの埋込みモデル(サービス)をREST API経由で使用する形になります。
AI Vector Searchの概要まとめ
- Oracle Database 23aiの新機能。ベクトルデータを管理でき、ベクトル検索が可能となるベクトルデータベースとして機能。
- ベクトル検索では、従来の一致型検索ではない、類似性検索が可能。
- Oracle Databaseがベクトルデータベースとしても動作。リレーショナルデータベース上でのベクトル検索が可能。機能面やコスト、セキュリティなど様々なメリット。
- 非構造化データのベクトル化にはEmbeddingモデルを使用。ONNX形式のモデルをインポートするか、外部のサードパーティの埋込みモデル(サービス)をREST API経由で利用。
6. Oracle AI Vector Search のユースケース
テキスト検索
テキスト検索では、基本的に「○○という単語を含む」という一致型検索での対応となり、文そのものの意味に対して「近しいことを言っているか」の評価はできませんでした。そのため、期待する検索結果にならないことや、多くの候補がリストアップされた上で、利用者側がそこから取捨選択することが必要となることも多々ありました。
テキストにおけるベクトル検索では、文を高次元ベクトル値に置き換えることで、その文のもつ意味を表現します。そして、ベクトル間の距離やコサイン値などを比較することで(=ベクトルの近さをみることで)、従来の一致型検索ではない、文の持つ意味が近しいものといったテキスト検索が可能となります。
具体的な例
- 関連ドキュメント / 類似問い合わせ検索
社内における規定類や技術文書、特定の特許や判例などを検索したい場合に、質問文をベクトル化し、あらかじめベクトル化されている既存文章を検索して、類似内容を含むドキュメントを高い精度で提示。サポート業務などにおける過去類似問い合わせ検索などでも利用可能。
テキスト検索以外
ベクトル検索では、テキストや画像といった非構造化データを対象とする例がよく見られます。これは一致型検索では意味的に類似なものを精度よく探し出すことが難しいためです。しかし、検索対象となるデータをベクトル化できれば、構造化されたデータであってもベクトル検索自体は実現できます。
例えば商品マスタや社員マスタ、テーブルに格納されたセンサーデータなど、構造化された数値データは要素と数値の集合であり、ある意味既にベクトル化されているとも言えますが、これをベクトル型のカラムに1つのベクトル値として落とし込むことによって、ベクトル検索を適用することができます。
但し、構造化された数値データはそれぞれの要素自体がすでに意味を持ったデータであり、ケースによっては、従来のSQLを駆使した一致型検索を利用した方が高速かつ効率よく実現できるかもしれません。また、特定の要素の影響が強くなりすぎないようスケールを調整したり、適切な特徴量を選択するなど、データの理解がより必要となります。いずれにしましても、投資する時間や費用に対して成果を出せるかどうかについて、通常の機械学習の導入と同様、よく検討・評価する必要があります。
具体的な例
- 推奨システム(リコメンド)
扱う商品のデータをベクトル化し、利用者の購入履歴やよく検索する商品、好みなども同じベクトル空間にてベクトル化。それらを比較して近しいものを「おすすめ」として提示する。商品画像などの非構造化データもベクトル化して併用する方法も考えられる。
- 異常検知
例えば既にテーブルに格納済みのセンサーデータやシステムログといったデータをベクトル化し、過去に異常を起こしたデータのベクトル値との類似性を見ることで、あるいは正常とみなされるデータとの乖離度合いを見ることで、異常データを検出する。
検索対象となるデータをベクトル化さえできれば、これまでに紹介したユースケース以外でも、様々なシーンでの利用が考えられます。ポイントとしては「類似性のあるものを探し出すニーズやそこにメリットがあるかどうか」となります。新規業務のみならず、同一性判定、画像診断、マッチング、リコメンド、異常検知などといったキーワードで、既存業務におけるベクトル検索の適用・応用を考えてみても良いかもしれません。
7. Oracle Machine Learning 概要
Oracle Machine Learning(OML)は、機械学習の一般的な機能を行うことができるOracle Databaseの標準機能です。Oracle Databaseに完全に組み込まれており、追加の費用なく利用可能です。
Oracle Database上での機械学習も、一般的な機械学習と同様のプロセスとなります。OMLとしては、モデル開発・管理部分がその中心的な機能ですが、機械学習のプロセスの中でも重要となるデータの理解・調査や準備においても、通常のSQLや関数などを利用しながら、Oracle Database上でそのまま行うことができます。
基本コンポーネント
Oracle Machine Learning(OML)には、「モデルを開発・管理するもの一式」が揃っています。モデルとは、機械学習において目的となる予測、判定などを行い結果を出力する装置、計算式のようなものであり、その予測や判定のもととなる考え方(=アルゴリズム)に基づいてデータを用いながら学習を行うことで、そのデータの特徴をとらえたモデルが作成され、新しいデータに対して予測や判定結果などを出力させることができます。
OMLには、様々なアルゴリズムが搭載されております。様々な用途・目的に合ったモデルを作成することができ、ビジネスで求められる予測、判断などに役立てることができます。
また、作成したモデルを使って予測や判定結果などを得るためのSQL関数が用意されていますので、Oracle Database内で管理しているデータを基に、SQL内でそのまま結果を得ることができます。
Oracle Machine Learning(OML)に搭載されているもの
-
モデルで採用するアルゴリズム
回帰分析(未来予測などで利用)で使用される一般化線形モデルや、分類(リスクの種類に応じたグループ分けなどで利用)で使用されるサポートベクターマシンなど、様々な機械学習機能に対応するアルゴリズムが、Oracle Databaseのカーネル内に実装されています。
-
モデルの作成や管理で使用するAPI
作成するモデルはデータベース内に保管されますが、そのAPIとしてPL/SQLパッケージ「DBMS_DATA_MINING」が用意されています。
-
モデルの結果を取得する関数
モデルを使って、結果(例えば予測値や該当するクラスタIDなど)を得るための関数が用意されていますので、SQL内でそのまま利用することができます。
-
モデルの維持や評価などで利用できるVIEW
モデルの維持や評価(例えば、一般化線形モデルにおける説明変数の影響度確認など)に便利なVIEWが用意されています。
GUIツール
-
Oracle Data Miner
Oracle Databaseの標準GUIツールであるSQL Developerの拡張機能として、「Oracle Data Miner」が無償提供されています。プロジェクトを作成して、一連の機械学習のプロセスを統合的に管理することができます。

▲ Oracle Data Miner 画面
※https://www.oracle.com/jp/big-data/technologies/dataminer/ より
-
OML AutoMLユーザー・インタフェース/OML Learning Notebooks
OCI Autonomous Databaseにおいては、専門知識がなくてもノンコーディングで機械学習を簡単に導入できるGUIベースツール「OML AutoML ユーザー・インターフェース」や、「OML Learning Notebooks」といった、ノートブックツールも用意されています。

▲OML AutoML UI 画面
※https://docs.oracle.com/cd/F44707_01/amlui/automl-ui.html より
Oracle Machine Learningの概要まとめ
- Oracle Machine Learning(OML)は、回帰や分類、相関など、用途に合わせて機械学習の様々な機能を行うことができるOracle Databaseの標準機能。
- Oracle Databaseに完全に組み込まれており、追加の費用なく利用可能。
※各クラウド個別のサービスにおける利用可能な機能については、それぞれの仕様をご確認下さい。 - Oracle Database上での機械学習も、一般的な機械学習と同様のプロセスとなります。
- 機械学習のプロセスの中でも重要となるデータの理解・調査や準備においても、普段利用している通常のSQLや関数などをそのまま利用でき、非常に便利。
- 様々な用途・目的に合う機械学習アルゴリズムを搭載。
- 便利なGUIツールも存在。特にADB(Autonomous Database)向けが充実。
8. OML のユースケース
Oracle Machine Learning(OML)の特徴は、Oracle Database上で管理しているデータを対象にOracle Database上でそのまま機械学習を行うことができる点にあります。機械学習の考え方、進め方自体は一般的な機械学習のものをそのまま適用できます。
OMLでは様々なアルゴリズムがあるため、非常に多くのユースケースが考えられますが、本記事ではその中からいくつかを紹介します。
教師あり学習
-
回帰:未来結果予測 (例:売上、受注失注、入試合否、オークション落札額、株価など)
候補となるアルゴリズム ⇒ 一般化線形モデル、ニューラルネットワークなど業界や業種を問わず、未来に起こる結果を予測したい例は非常に多いと思われます。例えば、顧客の様々なデータやこれまでの契約データなどから特徴量を抽出し、これまでの結果を教師データとして学習させることで、受注確率や受注金額などを予測するモデルを作成します。

-
分類:優良(不良)分類 (例:顧客分類、医療診断支援など)
候補となるアルゴリズム ⇒ ランダム・フォレストなど例えば、過去の不良顧客のデータや、のちに重大な疾病に罹患した患者の過去の検査データを教師として、優良/不良に分類するモデル(=分類器)を作成して、判断に役立てます。

教師なし学習
-
相関:相関関係発掘 (例:同時購入期待度の高い製品抽出、評価と離職率関係分析など)
候補となるアルゴリズム ⇒ Apriori例えば〇〇の商品を購入する際に同時に購入されやすい商品を抽出したり、社内人事においていくつかの評価項目が離職(率)に与える影響などを分析したりするなど、項目間の関係性を把握し、売上向上やビジネス上の判断などに役立てます。

-
クラスタリング:同類把握 (例:顧客分析、社員分析など)
候補となるアルゴリズム ⇒ k-Meansなど顧客や社員などを似たもの同士でクラスタリングすることで、営業アプローチや組織編制などに役立てます。例えば、社員を様々な特性などを用いてクラスタリングすることで、各社員の弱点を補えあえるチーム作りの参考にします。

9. 全体まとめ
- Oracle Database においては、標準機能でAI・機械学習を導入することができ、具体的には「AI Vector Search」(23ai新機能)と「Oracle Machine Learning(OML)」の2つの機能があります。
- AI Vector Searchは類似性検索を実現し、LLMにおけるRAG適用など、主に非構造化データに対する検索で利用されます。但し、構造化データに対する適用も場合によっては考えられます。
- OMLは、用途に合わせた機械学習の様々な機能を行うことができます。
- Oracle Database上でのAI・機械学習ならではのメリットがたくさんあります。特に導入の敷居が低いため、これまでの取り組みが遅れていたユーザ、プロジェクトのAI・機械学習事始めとして最適です。
ご覧いただきましてありがとうございます。本記事がご参考になれば幸いです。











