Azure Cognitive Searchは、人工知能(AI)を活用したクラウド検索サービスです。従来はAzure Searchという名称でした。Microsoftの検索サービスであるBingやOfficeのアプリケーションで培われた実績をベースに、AIを搭載して自然言語だけでなく音声や画像など、非構造化データの精度の高い検索を可能にします。
金融業界をはじめ製造業や流通業など、さまざまな業界の企業において、サービスや業務効率化のためにAIを採用することが多くなりました。したがって扱うデータが膨大になるとともに、画像、音声、映像など非構造化データをインデックス化する必要が生じます。
このような大量かつ多様なデータをクラウド上で扱うシステムの開発に、Azure Cognitive Searchは役立ちます。ここでは、Azure Cognitive Searchの概要、機能と使い方、価格を整理します。
Azure Cognitive Searchの概要と機能
PaaS(Platform as a Service)の全文検索機能として提供されていた機能がAzure Searchですが、従来の機能にAIを加えてAzure Cognitive Searchと名称が変更されました。Web、モバイルアプリ、エンタープライズアプリケーションに検索機能を追加できます。
Azure Cognitive Searchの特徴
AzureのAI関連のサービスはAzure Cognitive Servicesとして提供されています。これらのサービスは、APIによって学習済みのモデルを利用して、さまざまなアプリケーションなどの機能を強化できることが特徴です。Azure Cognitive Searchは、Microsoftが展開しているこれらの一連のサービスの流れに位置づけられます。
Azure Cognitive Searchは「コグニティブ検索機能」として、AIを使って検索機能を拡張することができます。映像や音声などの非構造化データの検索では、インデックスを作成して検索可能なコンテンツに変換します。スキルセットを定義すると、迅速かつ簡単に検索インデックスの設定と実行ができます。独自のカスタムスキルを作成して高度な検索を追加することも可能です。
Microsoftが長年培ってきた自然言語処理を利用し、地理空間の検索機能をアプリに追加できます。また、特定の業界や目的のために検索をカスタマイズして、検索ランキングを制御することでビジネスの目標達成を支援します。
Azure Cognitive Servicesは、ユーザーの利用するアプリケーションとクラウド上などに置かれたデータの中間に配置され、ユーザーの要求と応答にREST APIもしくは.NET SDKを介して公開されます。
Azure Cognitive Searchの活用シーン
Azure Cognitive Searchは、一例として次のような活用シーンに役立ちます。
■APIによる簡単な検索の実装、検索コンテンツ管理の実現
外部の検索ソリューションを利用すると、インデックスの定義や検索システムの管理を自由に行えない場合があります。カスタマイズなどの自由度も制限されることが多いでしょう。しかし、Azure Cognitive Searchは、検索を独自で管理したい場合に役立ちます。
Azure以外のクラウドで構築したシステムに検索機能を追加したい場合は、外部コンテンツのデータリソースもしくはJSONドキュメントによって、Azure Cognitive Searchを利用できます。Azure上のストレージのコンテンツは、インデクサーによって検索が可能になります。
また、検索機能を実装するとき、Azure Cognitive Search APIによって商用の検索エンジンと同レベルのユーザーエクスペリエンスを提供します。検索クエリや検索語句の関連付け、地理的な空間検索を含むフィルタリングなど高度な検索機能を備えています。
■非構造化データの検索
Azure Blob StorageやCosmos DBに格納した非構造化データ、あるいは外部のリソースを検索可能にします。たとえばOCR(光学式文字読取装置)でスキャニングしたテキストからキーフレーズの抽出や翻訳を行い、AIで構造化して検索可能にします。画像ファイルやアプリケーションファイルにインデックスを追加して、検索可能にすることもできます。
Azure Cognitive Searchの機能
自由形式のテキスト検索として、サポートされているクエリの構文を利用したフルテキスト検索、演算子を用いた単純クエリ構文による検索、ワイルドカードやあいまいな語句によるLucence クエリ構文の検索ができます。スコアリングプロファイルを用いた関連性のモデル化や、価格帯や品目などによるフィルター処理も可能です。さらに、地理的な空間を処理した検索機能も備えています。
ユーザーエクスペリエンスとしては、Bingなどの検索エンジンでも馴染みの深いオートコンプリート(検索語句の自動入力)、自動的な検索語句の関連付け(シノニム)、強調表示、並べ替えなどの検索を支援する機能があります。
AIの機能では、音声や映像のような構造化されていないデータから、検索インデックスのためのテキストを抽出します。学習を行わなくても組み込みスキルを使って、組織の名称や場所などを検索条件に加えることもできます。ナレッジストアの拡張機能を使うと、抽出した検索のインデックスを格納して分析に利用したり、他のアプリケーションに読み込んだりすることも可能です。
JSONのデータ構造であれば、すべてのデータソースの情報からインデックスを受け入れます。Azure Cognitive SearchはJSONの複合型とコレクションをサポートしているため、外部のデータセットが階層構造や入れ子構造になっていても問題ありません。カスタム字句アナライザー、言語アナライザーのコンポーネントもあります。
PaaSの特徴では、ポータルの監視機能で1 秒あたりのクエリ数や待ち時間など、検索処理をモニタリングできます。ストレージ内の暗号化が必要であれば、利用者の暗号キーで補足して機密性を維持することが可能です。Azure Cognitive Searchは、99.9%のSLAの高可用によるスケーラブルなプラットフォーム上で稼働します。
Azure Cognitive Searchの使い方
Azure Cognitive Searchは、大きな流れとして「プロビジョニング」「インデックス作成」「データの読み込み」で使うことができます。
1. プロビジョニング
プロビジョニングは、Azure portalあるいはAzure Resource Management APIで設定します。大量のクエリ負荷や、大量のドキュメントに対応したパーテーションを追加するような場合は、有料オプションで拡張することが可能です。
2. インデックス作成
コンテンツをアップロードする前に、インデックスのスキーマを定義します。スキーマはAzure Portalあるいは.NET SDK やREST API のプログラムによって作成できます。インデックスの作成においては、Azure SQLデータベースから作成する場合、Azure Storageに格納されているJSON BLOBから作成する場合、複数のデータソースにインデックスを付ける場合などによって方法が異なります。
3. データの読み込み
検索するデータの読み込みには、プッシュモデルまたはプルモデルがあります。プッシュモデルでは、SDKまたは REST APIを介して、JSON形式によるあらゆるデータセットから読み込むことができます。プルモデルでは、インデクサーを用いて外部データソースから読み込みます。Azure SQL Database、Azure Cosmos DB、Azure Blob StorageとAzure の仮想マシンにホストされているSQL Serverでインデクサーを利用することが可能です。
Azure Cognitive Searchの価格
Azure Cognitive Searchは、AzureのFreeプラン、Basicサービスプラン、Standardサービスプランのオプションで利用できます。したがって、ストレージや仮想マシンのパフォーマンスなどによって柔軟にカスタマイズが可能です。
Azureの無料アカウントにサインアップして、FreeプランでAzure Cognitive Searchを使い始めることが最も手軽な方法です。トライアルなどの利用として、システムの企画段階に適しています。ストレージは50MBまで、サービスあたりの最大インデックス数は3に限定されます。また、スケールアウトの制限はできず、ドキュメントは20に制限されます。
Basicプランは、あまり負荷のかからない仮想マシンのスペックと最低限の容量のストレージを設定したプランです。ストレージ容量は2GBで、サービスあたりの最大インデックス数は15です。スケールアウトの制限は、サービスあたり最大3ユニット(最大1パーテーション/3レプリカ)、ドキュメントの読解や画像の抽出は画像の容量によって価格が異なります。
Standardプラン以降では、ストレージ容量、インデックス数、スケールアウトの制限などによって、ユニットごとの料金が異なります。ストレージを最適化して、効率の高い方法で大量のデータを扱う方法もあります。
まとめ
エンターテイメント分野に限らず、テレワークやオンラインセミナーなどによって企業や大学でもビデオの利用が増加しています。非構造化データは増加傾向にあり、AIによるコグニティブなサービスの需要は年々上昇しています。検索のアルゴリズムがビジネスを左右する時代に、Azure Cognitive SearchのようなAIを活用した検索は、今後ますます重要な位置づけになるでしょう。