😆

AI開発データベース基礎

2025/02/10に公開

まずはデータベースについて

データベース(Database)は、データを効率的に保存・管理・利用するための仕組みやシステムを指します。私たちが日常的に使っている多くのアプリやウェブサービスの裏側で、データベースは重要な役割を果たしています。たとえば、SNSの投稿、銀行口座の取引履歴、通販サイトの商品情報などがデータベースに保存されています。

データベースの基本概念

データベースは、データを以下のように管理することを目指します:

  • 整理された形式で保存:
    データを表やリストなどの形式で管理し、後から簡単に探せるようにする。
  • 効率的なアクセスと更新:
    必要な情報をすばやく取得したり、新しい情報を追加したり、不要な情報を削除したりする。
  • データの安全性と信頼性の確保:
    重要なデータが失われたり改ざんされたりしないよう保護する。

データベースの種類

以下では代表的なデータベースの種類を簡単に紹介します。

リレーショナルデータベース(RDB)

データを「表(テーブル)」形式で管理します。
行(レコード)が1つのデータのまとまりを表し、列(フィールド)がデータの属性(名前、年齢など)を表します。

ID 名前 年齢
1 田中太郎 25
2 山田花子 30

利点:データ同士の関係(リレーション)を簡単に扱え、SQLという共通の言語で操作可能です。
主なソフトウェア:MySQL、PostgreSQL、SQLite

グラフデータベース

データ同士の「関係性」を重視して保存・管理するデータベースです。データは ノード(点) と、それをつなぐ エッジ(線) で構成され、ノードがデータの要素、エッジがデータ間の関係を表します。
例えば、SNSで「友達」「フォロー」などの関係を管理する際に適しています。

利点:関係性の検索が速く、複雑なネットワーク構造のデータに対応しやすいです。
代表的なソフトウェア:Neo4j、Amazon Neptune

時系列データベース

データを「時系列(タイムスタンプ)」で管理するデータベースです。時系列データとは、時間の経過とともに記録されるデータで、センサーの出力値や株価の変動、ログ情報などが該当します。
通常のデータベースとは異なり、データの時間軸での分析や保存に特化しています。

時刻 温度
2025-01-16 10:00 20.5°C
2025-01-16 10:05 20.6°C
2025-01-16 10:10 20.4°C

利点:時間軸に基づくクエリが高速で、大量のデータを効率的に処理可能です。
代表的なソフトウェア:InfluxDB

ベクトルデータベース

AIや機械学習モデルから生成される数値ベクトル(特徴量)を保存し、類似性検索 に特化したデータベースです。特に、画像、音声、テキストなどを数値化(エンコーディング)して保存し、そのデータの類似性を計算する際に利用されます。

クエリ: [0.123, 0.456, -0.789, ...]
結果: 類似性が最も高い上位10件を返す。

利点:高速な類似性検索が可能で、大規模なデータセットでの検索に強いです。
代表的なソフトウェア:Milvus、Pinecone

データベース管理システム(DBMS)の役割

データベースを構築・操作・管理するためのソフトウェアを データベース管理システム(DBMS) と呼びます。DBMSの主な役割は以下の通りです:

  • データの保存と取得
  • 並行処理の管理
  • セキュリティ

Pinecone

AI開発においてよく用いられるデータベースは ベクトルデータベース です。これは、ベクトルデータベースがAIモデルで生成される埋め込みデータを高速かつ効率的に検索・管理できることが理由です。
ベクトルデータの代表的な DBMS は Pinecone です。
https://www.pinecone.io/

エンべディングとは

エンベディングは、テキスト、画像、音声などの非構造化データを数値ベクトルに変換するプロセスです。

例:

  • 単語「猫」をベクトル [0.1, -0.3, 0.7] として表現
  • 画像を特徴ベクトル [0.12, 0.85, -0.47, ...] に変換

エンべディングをする理由は以下のとおりです

  • 非構造化データを機械が計算可能な形式(ベクトル)に変換するため
  • ベクトル同士の距離や類似度を計算することで、関連性を評価できるようにするため

エンべディングの生成方法

  1. 自然言語処理(NLP):
    モデル例: Word2Vec、BERT、GPT。
    テキストを意味的な関係性を持つベクトルに変換。
  2. 画像処理:
    モデル例: ResNet、VGG。
    画像を特徴量ベクトルに変換。
  3. 音声処理:
    モデル例: Wav2Vec。
    音声データを時間や周波数の特徴を含むベクトルに変換。

類似性検索(Similarity Search)

類似性検索とは、あるデータに対して最も似ているデータを検索する手法のことです。
一般的なデータベースでは キーワード検索 や 数値比較 による検索が主流ですが、類似性検索では データの特徴(ベクトル)を用いた比較 を行います。
これにより、単純なキーワード一致では見つけられない「意味的に近いデータ」を検索できるのが特徴です。

たとえば:

  • 検索エンジン → キーワード検索ではなく「意味が似ている記事」を検索
  • 画像検索 → テキストではなく「画像の特徴」に基づいて検索
  • 音楽推薦 → 曲名ではなく「音楽の特徴」に基づいたおすすめ
  • 対話AI(RAG) → ユーザーの質問に対して「意味が近い回答を検索」

このように、類似性検索は現代のAI技術と非常に密接に結びついています。

類似性の計算方法

ベクトルデータベースでは、データ同士の類似度を計算するために 数学的な距離(または類似度) を測定します。代表的な方法は以下の通りです。

① ユークリッド距離(Euclidean Distance)

最もシンプルな方法で、ベクトル空間上で「直線距離」を測定するものです。
2つのベクトルが近いほど、データも類似しているとみなされます。

例えば:

  • 距離が短い → より類似している
  • 距離が長い → あまり似ていない

用途:

  • 画像検索(ピクセル情報が似ている画像を探す)
  • 時系列データの比較(株価の変動パターンなど)

② コサイン類似度(Cosine Similarity)

ベクトル間の「角度」に着目して、類似度を測る方法です。
角度が小さいほど類似度が高い ため、テキストデータなどの比較によく使われます。

例えば:

  • 「猫」と「犬」の文章埋め込みベクトルは コサイン類似度が高い(意味が近い)
  • 「猫」と「車」のベクトルは コサイン類似度が低い(意味が遠い)

用途:

  • 自然言語処理(NLP)での文書検索
  • 商品推薦(類似商品の検索)

③ 内積(Dot Product)

単純にベクトルの積をとり、大きいほど類似度が高いとする方法です。
検索が高速であるため、大規模なデータセットで使われることが多いです。

用途:

  • レコメンデーションシステム(動画や音楽の推薦)
  • 検索エンジン(クエリとの関連性を計算)

活用例

ベクトルデータベースは、以下のような場面で活用されています。

① AIチャットボット(RAG: Retrieval-Augmented Generation)

AIモデルにとって、適切な情報を「検索」することは重要です。
通常のデータベースでは「キーワード一致」が主流ですが、RAG(検索拡張生成)技術では 類似性検索を活用し、意味的に関連する情報を取得 します。

例えば:

  • 質問:「AIについて教えて」
  • ベクトルデータベースが検索 → 意味的に近い文章を取得
  • AIが回答を生成 → 検索結果をもとに回答

これにより、単純なチャットボットよりも より自然で適切な回答が可能 になります。

② 画像・動画検索

従来の検索では「タグ」や「タイトル」が必要でしたが、ベクトルデータベースを使えば、画像や動画の特徴から類似したものを検索 できます。

例えば:

  • 検索クエリ:ある人物の写真
  • 検索結果:類似した顔の画像を検索(顔認識)

これは、Google画像検索やYouTubeのおすすめ動画などに使われています。

③ レコメンデーションシステム

  • SpotifyやNetflixでは ユーザーの視聴履歴をベクトル化 し、類似したコンテンツを推薦
  • AmazonなどのECサイトでも 購入履歴をベクトル化 し、似た商品を推薦

これにより、従来の「ルールベース」の推薦よりも よりパーソナライズされたおすすめ が可能になります。

まとめ

データベースは、情報を効率的に保存・管理・活用するための仕組みであり、アプリやサービスの基盤となっています。

主な種類として、リレーショナルデータベース(RDB)、グラフデータベース、時系列データベース、ベクトルデータベース などがあり、それぞれ異なる用途に適しています。

特に ベクトルデータベース は、AI分野での 類似性検索 に特化し、検索エンジン、画像検索、レコメンデーションシステムなどで活用されています。Pinecone などのクラウド型DBが普及し、AI技術の発展を支えています。

今後は、リアルタイムAI検索の高度化、マルチモーダル検索、クラウド型DBの拡大 などが進み、データベース技術の重要性はさらに増していくでしょう。

担当:生駒

Discussion