Amazon Nova Multimodal Embeddingsで強化する動画意味検索
本文の状態
日本語全文を表示中
詳細モードで約18分の本文を読めます。
同じ出来事の情報源
4媒体で確認
CyberAgent Developers Blog · Amazon Science · AWS Machine Learning Blog · InfoQ
各社の報じ方を比較 ↓Amazonは、動画内の特定シーンを高速・高精度に検索できる「Nova Multimodal Embeddings」を発表した。スポーツ放送局やスタジオが、プレイヤーの得点シーンや特定俳優のシーンを瞬時に抽出できるようになる。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
動画のセマンティック検索(Video Semantic Search)は、業界全体で新たな価値を解き放ちつつあります。ビデオファーストの体験への需要は、組織がコンテンツを配信する方法を変革しており、顧客は動画内の特定の瞬間へ迅速かつ正確にアクセスすることを期待しています。例えば、スポーツ放送局は選手が得点した正確な瞬間を抽出し、ファンにハイライトクリップを即座に配信する必要があります。スタジオは、数千時間にわたるアーカイブコンテンツ全体から特定の俳優が出演するすべてのシーンを見つけ出し、パーソナライズされた予告編やプロモーションコンテンツを作成する必要があります。ニュース組織は、雰囲気、場所、またはイベントに基づいて映像を検索し、競合他社よりも速く速報記事を公開する必要があります。目標は同じです。エンドユーザーに動画コンテンツを迅速に提供し、瞬間を捉え、その体験から収益化することです。
動画は、テキストや画像などの他のモーダリティ(Modalities)と比較して本質的に複雑です。それは、画面で展開される視覚シーン、環境音や効果音、会話音声、時間的情報、そしてアセットを記述する構造化メタデータという複数の非構造化シグナル(Signals)を統合しているためです。「サイレンの鳴る緊迫したカーチェイス」を検索するユーザーは、視覚イベントと音声イベントの両方を同時に求めています。特定の選手の名前で検索するユーザーは、画面に大きく映っているが、音声で名前が呼ばれない人物を探している可能性があります。
現在の主流なアプローチは、トランスクリプション(Transcription)、手動タグ付け、または自動キャプション生成のいずれかを通じてすべての動画シグナルをテキストに落とし込み、その後テキスト埋め込み(Text Embeddings)を検索に適用するものです。これは対話中心のコンテンツでは機能しますが、動画をテキストに変換すると本質的に重要な情報が失われます。時間的な理解が消失し、視覚・音声の品質の問題により文字起こしのエラーが発生します。すべてのモーダリティを処理し、詳細を失うことなく単一の検索可能な表現に直接マッピングするモデルがあったらどうでしょうか?Amazon Nova Multimodal Embeddings は、テキスト、ドキュメント、画像、動画、音声をネイティブに処理し、共有のセマンティックベクトル空間(Semantic Vector Space)へ埋め込む統一されたエンベッディングモデルです。これにより、最先級の検索精度とコスト効率を実現します。
この記事では、Nova Multimodal Embeddings を使用して Amazon Bedrock 上で動画セマンティック検索ソリューションを構築する方法をご紹介します。このソリューションはユーザーの意図をインテリジェントに理解し、すべてのシグナルタイプに対して同時に正確な動画結果を返します。また、ご自身のコンテンツでデプロイして探索できるリファレンス実装も共有します。

図1:最終検索ソリューションの例スクリーンショット
ソリューションの概要
私たちのソリューションは、Nova Multimodal Embeddings を基盤とし、すべての動画モーダリティ(video modalities)にわたってセマンティック(意味)とレキシカル(語彙)の信号を融合するインテリジェントなハイブリッド検索アーキテクチャ(hybrid search architecture)を組み合わせて構築されています。レキシカル検索(lexical search)は正確なキーワードやフレーズに一致し、セマンティック検索(semantic search)は意味と文脈を理解します。このハイブリッドアプローチの選択理由とそのパフォーマンス上の利点については、後のセクションで説明します。
image
図2:エンドツーエンドのソリューションアーキテクチャ
このアーキテクチャは2つのフェーズで構成されています。動画を検索可能なエンベッディング(embeddings)に変換するインジェストパイプライン(ingestion pipeline、ステップ1-6)、およびユーザークエリ(user queries)をこれらの表現に対してインテリジェントにルーティングし、結果をランク付けされたリスト(ranked list)に統合する検索パイプライン(search pipeline、ステップ7-10)です。各ステップの詳細は以下の通りです:
- アップロード – ブラウザ経由でアップロードされた動画は Amazon Simple Storage Service (Amazon S3) に保存され、オーケストレータの AWS Lambda が Amazon DynamoDB のステータスを更新し、AWS Step Functions パイプラインを開始します
- ショットセグメンテーション – AWS Fargate は FFmpeg のシーン検出機能を使用して、動画を意味的に一貫したセグメントに分割します
- 並列処理 – 3つの並行ブランチが各セグメントを処理します:
Embeddings: Nova Multimodal Embeddings は視覚および音声用の1024次元ベクトルを生成し、Amazon S3 Vectors に保存します
- 文字起こし(Transcription): Amazon Transcribe は音声からテキストへの変換を行い、セグメントにアライメントします。Amazon Nova Multimodal Embeddings はテキスト埋め込みを生成し、Amazon S3 Vectors に保存します
- 有名人検出(Celebrity detection): Amazon Rekognition は著名な人物を識別し、タイムスタンプに基づいてセグメントにマッピングします
- キャプションおよびジャンル生成 – Amazon Nova 2 Lite は、視覚コンテンツと文字起こしデータからセグメントレベルのキャプションおよびジャンルラベルを合成します
- マージ – AWS Lambda はすべてのメタデータ(キャプション、文字起こし、有名人、ジャンル)を結合し、Amazon S3 Vectors から埋め込みを取得します
- インデックス – メタデータとベクトルを備えた完全なセグメントドキュメントが、Amazon OpenSearch Service へ一括インデックス登録されます
- 認証 – ユーザーは Amazon Cognito を介して認証を行い、Amazon CloudFront 経由でフロントエンドにアクセスします
- クエリ処理 – Amazon API Gateway はリクエストを Search Lambda にルーティングし、同Lambdaは意図分析(intent analysis)とクエリ埋め込みの2つの並列操作を実行します
- 意図分析 – Amazon Bedrock(Anthropic Claude Haiku を使用)は、視覚、音声、文字起こし、メタデータ各モダリティに対して関連性重み(0.0〜1.0)を割り当てます
- クエリ埋め込み – Nova Multimodal Embeddings は、視覚、音声、文字起こしの類似度検索のためにクエリを3回埋め込みます
この柔軟なアーキテクチャは、ほとんどの動画検索システムが見落としがちな4つの重要な設計上の意思決定に対応しています。それは、時間的コンテキスト(temporal context)の維持、マルチモーダルクエリ(multimodal queries)の処理、大規模なコンテンツライブラリ全体でのスケーリング、そして検索精度の最適化です。完全な参照実装は GitHub, で公開されており、以下のウォークスルーに沿って進めていただくことで、各意思決定がすべてのシグナルタイプ(signal types)に対して正確かつスケーラブルな検索にどのように貢献するかをご確認いただけます。
コンテキストの連続性を考慮したセグメンテーション(Segmentation for context continuity)
埋め込み(embedding)を生成する前に、動画を検索可能な単位に分割する必要があります。ここで設定する境界線は検索精度に直接影響します。各セグメントが検索の最小単位となります。セグメントが短すぎると、その瞬間に意味を与える周囲のコンテキスト(context)を失います。長すぎると複数のトピックやシーンが融合し、関連性が薄れて検索システムが適切な瞬間を抽出しにくくなります。簡略化のため、固定長のチャンクから始めることもできます。Nova マルチモーダル埋め込みは埋め込みあたり最大30秒をサポートしており、完全なシーンを捉える柔軟性を提供します。ただし、以下の図に示すように、固定の境界線は動作の途中や文の意味の途中でシーンを無理やり切り捨てたり、思考の途中で文を分割したりする可能性があり、検索可能な瞬間の意味するセマンティックな意味(semantic meaning)を損なうことに注意してください。

図3:動画セグメンテーション戦略(Video segmentation strategies)
目標はセマンティックな連続性(semantic continuity)を確保することです。各セグメントは時間の恣意的な切り取りではなく、意味の一貫した単位を表すべきです。固定の10秒ブロックは生成が容易ですが、コンテンツの自然な構造を無視します。セグメント途中でシーンが切り替わると、視覚的なアイデアが2つのチャンクに分割され、検索精度と埋め込み品質の両方が低下します。
これを解決するため、視覚コンテンツが実際にどこで変化するかを特定するためにFFmpegのシーン検出(scene detection)機能を使用します。FFmpegは、動画処理、フォーマット変換、分析に広く使用されているオープンソースのマルチメディアフレームワークです。以下の_detect_scenes関数は、動画に対してffprobe(FFmpegのメディア検査用関連ツール)を実行し、各シーン境界を示すタイムスタンプのリストを返します:
def _detect_scenes(video_path):
result = subprocess.run(
['ffprobe', '-v', 'quiet', '-show_entries', 'frame=pts_time', '-of', 'csv=p=0',
'-f', 'lavfi', f"movie={video_path},select='gt(scene\\,{SCENE_THRESHOLD})'"],
capture_output=True, text=True
)出力は12.345、28.901、45.678のようなタイムスタンプの単純なリストであり、それぞれがシーンが切り替わる自然な境界を示します。
これらの境界が得られたら、セグメンテーションアルゴリズムは許容範囲内で最も近いシーン変更点に各カットをスナップさせ、現在の開始位置から最小5秒、最大15秒の範囲で約10秒を目標とします。その範囲内にシーン変更がない場合は、目標の長さでハードカット(hard cut)にフォールバックします。その結果、8.3秒、11.1秒、9.8秒、12.4秒、7.6秒といった自然なセグメントのセットが得られ、それぞれが固定タイマーではなく実際のシーン境界に合わせて調整されます。
この単純なショットベースのセグメンテーション(shot-based segmentation)により、セグメント境界が恣意的なカットではなく自然な視覚的トランジション(visual transitions)と一致するよう保証されます。ターゲットセグメントの持続時間は、コンテンツの種類とユースケースに基づいて調整すべきです:カットが頻繁なアクション中心のコンテンツは、このようなビジュアルセグメンテーション(visual segmentation)から恩恵を受ける可能性があります。一方、ロングテイクのドキュメンタリーやインタビューコンテンツは、より長くトピックベースのセグメンテーション(topic-based segmentation)の方が適している場合があります。オーディオベースのトピックセグメンテーションや視覚・音声の組み合わせアプローチなど、より高度なセグメンテーション手法については、Media2Cloud on AWS Guidance: Scene and Ad-Break Detection and Contextual Understanding for Advertising Using Generative AI. をご一読いただくことをお勧めします。
ビジュアル、オーディオ、トランスクリプト信号に対して個別のエンベディングを生成する
セグメントが定義された後、アプローチ間の最大の品質差が生じるのはエンベディングモデル(embedding model)の選択です。現在主流のアプローチは、エンベディングを生成する前にすべてのビデオ信号をテキストへの変換(grounding)を行いますが、前述の通り、ビデオが伝える意味はトランスクリプトやキャプションで表現できるものを大幅に超えています。ビジュアルアクション、環境音、画面テキスト、エンティティコンテキスト(entity context)は、完全に消失するか、不正確な記述によって近似されるかのいずれかです。
Nova Multimodal Embeddings は根本的にこの状況を変えます。これは2つのモードでエンベディングを生成できるビデオネイティブモデル(video-native model)だからです。combined mode(結合モード)は、視覚信号と音声信号を融合させて統一された表現を作成し、最も重要な信号を一緒に捉えます。このアプローチはセグメントごとに1つのエンベディングのみを必要とするため、ストレージコストと検索レイテンシー(retrieval latency)の削減に役立ちます。一方、AUDIO_VIDEO_SEPARATE モードは、個別のビジュアルエンベディングとオーディオエンベディングを生成します。このアプローチは、モダリティ固有のエンベディングにおいて最大限の表現を提供し、ビジュアルコンテンツとオーディオコンテンツのどちらを検索するかをより細かく制御できるメリットがあります。
当社の実装では、Amazon Transcribe から派生した3つ目のスピーチエンベディング(speech embedding)まで追加しました。このエンベディングは、前後のセグメントタイムスタンプに対して完全な文のトランスクリプトをアライニング(整列)して作成されており、音声のセマンティックな完全性(semantic integrity)を保持し、完全な思考が2つのエンベディングにまたがって分割されないようにしています。

Figure 4: ビデオセグメントごとのビジュアル、オーディオ、スピーチエンベディングの生成
3つの埋め込み(embeddings)を組み合わせることで、ビデオセグメントの全信号空間をカバーできます。ビジュアル埋め込みはカメラが捉えるもの、つまりオブジェクト、シーン、アクション、色彩、空間構成をキャプチャします。オーディオ埋め込みはマイクが拾うもの、つまり音楽、効果音、環境ノイズ、シーンの音響的テクスチャを捉えます。トランスクリプト埋め込みは人々が話す内容を表し、会話やナレーションの意味的意味(semantics)を表現します。これら3つの信号を単一の結合埋め込みに圧縮すると、異なるモダリティ(modality)が1つのベクトルに圧縮されます。これでは、視覚、聴覚、音声の境界が曖昧になり、各信号が単独で有用であるための細粒度の詳細(fine-grained detail)が失われます。これらを分離して保持することで、クエリの意図に基づいて各モダリティの重みを正確に調整する制御が可能になり、検索パイプラインが回答を最も含んでいる可能性の高いモダリティに対してマッチングを行うことができます。
ハイブリッド検索のためにメタデータと埋め込みを組み合わせる
ビジュアル、オーディオ、音声コンテンツをカバーする3つの独立した埋め込み(embeddings)があっても、システムが適切に回答できない種類のクエリはまだ存在します。埋め込みは意味的類似性(semantic similarity)を捉えるように設計されています。「緊迫した群衆の瞬間」や「水面に沈む夕日」のような概念は視覚的・音響的な意味が豊かであるため、埋め込みはそれらの検索に優れています。しかし、ユーザーが特定の人名、製品型番、地理座標(geolocation)、あるいは特定の日付を検索する場合、埋め込みは失敗する可能性が高いです。これらは独自の意味的シグナルがほとんどない離散エンティティ(discrete entities)です。ここでハイブリッド検索(hybrid search)の出番となります。埋め込みのみを頼りにするのではなく、システムは以下の図に示すように2つの並列検索パスを実行します。視覚、オーディオ、トランスクリプト埋め込みに対してマッチングして概念的類似性を捉える「意味的パス(semantic path)」と、構造化メタデータに対して正確なキーワードおよびエンティティマッチングを実行する「語彙的パス(lexical path)」です。
image
図5:意味的検索と語彙的検索を組み合わせたハイブリッド検索パイプライン
必要なメタデータの量はどのくらいでしょうか?その答えはコンテンツの種類、組織の構造、ユースケースによって異なりますが、事前にすべてを収集するのは現実的ではありません。説明のため、メディアおよびエンターテインメントコンテンツにおける一般的なメタデータのタイプを表すために、いくつかのメタデータカテゴリを選択しました。
まず、コンテンツカタログまたはファイルメタデータから直接抽出された技術的メタデータ(technical metadata)を表すために、動画のタイトルと日時を選択しました。次に、Amazon Nova 2 LiteおよびAmazon Rekognitionを使用して生成されたコンテキストメタデータ(contextual metadata)を表すため、セグメントごとのキャプション、ジャンル、有名人の認識を追加しました。キャプションは各セグメントの動画とトランスクリプト(transcript)から生成され、モデルに視覚的および音声的文脈の両方を提供します。ジャンルはすべてのセグメントを通じた完全な動画トランスクリプトから予測され、これはすべての動画クリップを再送信するよりも低コストで信頼性が高いです。有名人の識別はAmazon Rekognitionによって処理され、カスタムトレーニングを必要とせずに画面に登場する著名な公人を認識します。
キャプション生成およびジャンル分類に使用されるプロンプトの例は、以下の通りです。
キャプション生成
この動画クリップを3〜5文で説明してください。以下を含めてください:
- 何が起こっているか、誰が写っているか、動作、設定、環境
- 画面に表示されているすべてのテキスト:タイトル、字幕、看板、ロゴ、透かし、クレジット
- 画面が主に黒または空白の場合は、「Black frame」または「Blank screen」と記載してください
トランスクリプト:{segment_transcript}
記述的なキャプションのみを返してください。それ以外は一切不要です。
ジャンル分類
以下の動画セグメントの説明に基づき、完全な動画を次のリストから正確に1つのジャンルに分類してください:Sports, News, Entertainment,
Documentary, Education, Music, Gaming, Cooking, Travel, Technology,
Business, Lifestyle, Sci-Fi, Mystery, Other
セグメントの説明:
{all_captions}
ジャンル名のみを返してください。それ以外は一切不要です。
この概念は、他のメタデータタイプにも自然に拡張されます。技術的メタデータには解像度やファイルサイズが含まれる場合があり、コンテキストメタデータには場所、雰囲気、ブランドなどが含まれる場合があります。適切なバランスは検索ユースケースによって異なります。さらに、検索時にメタデータフィルターを適用することで、セマンティックマッチング(semantic matching)の前に検索空間を絞り込むことができ、検索のスケーラビリティと精度をさらに向上させることができます。
意図を考慮したクエリルーティングによる検索関連性の最適化(intent-aware query routing)
現在、3つの埋め込み(embeddings)とメタデータがあり、検索可能な次元は4つです。しかし、特定のクエリに対してどの次元を使用すべきかはどうやって判断すればよいでしょうか?重要なのは意図(intent)です。これを解決するため、Haikuモデルを使用して各入力クエリを分析し、視覚、音声、トランスクリプト、メタデータという各モダリティチャネル(modality channel)に重みを割り当てるインテリジェントな意図分析ルーターを構築しました。以下の図に例示された検索クエリをご覧ください。
*「ヴィンテージカーの隣で電話に出るケビン」*
同じ出来事を4媒体で確認
同じ出来事を扱う別媒体の記事です。見出しと公開時刻を比較できます。
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み