世界的にトップクラスの音楽プラットフォームが、Milvusで音声と歌詞から1億以上の楽曲を検索する方法

1億曲以上のトラック
カタログ全体が埋め込まれ、ロングテールを含めて検索可能
約10ms P99
数十億のオーディオエンベディングを対象に、毎秒数百回の検索でマッチングします。
音と意味によって
タイトルだけでなく、ハミング、クリップ、または言い換えた歌詞から曲を探します。
About the Music Platform
このプラットフォームは、世界最大級の音楽ストリーミングサービスの1つであり、1億曲以上のカタログを有し、100か国以上で数億人のリスナーに利用されています。
リスナーは再生ボタンを押すだけではありません。部屋の向こうで流れている曲の名前を知るためにスマートフォンをかざしたり、うろ覚えの歌詞を入力して曲を探したり、「似た曲をもっと」とリクエストして夜を埋めたり、権利処理のためにカタログと照合する必要がある自分の音声をアップロードしたりします。それぞれの操作がカタログ全体を検索し、即座に正しいトラックにたどり着かなければなりません。この検索レイヤーはMilvus上で動作しています。
課題
プラットフォームのカタログは1億曲を超え、リスナーの検索方法は同時に3つの要件を生み出しました。
音楽検索は、キーワードだけでなく、音と意味に基づいて機能する必要があります。 リスナーは曲を口ずさむか、スピーカーから5秒分を再生するか、書かれた通りではなく覚えている通りに歌詞を入力します。一致させるタイトルやタグはありません。プラットフォームが求めたのは、曲がどのように聞こえるかと歌詞が何を意味するかに基づいて機能する検索、つまりキーワード一致だけでは実現できない検索でした。
カタログは数十億のベクトルで構成され、そのすべてが検索可能な状態を維持する必要があります。 音の一致は、すべてのトラックを短いセグメントに分割し、それぞれを埋め込むことを意味するため、1億曲以上は数十億のオーディオベクトルとなり、さらに各歌詞セットのテキストベクトルも加わります。これらすべてが同時にオンラインでなければならず、ロングテールも含まれます。そうでなければ、1年間誰も再生していないようなあまり知られていないトラックこそ、検索が失敗する対象になります。
すべての検索は、大規模な環境でリアルタイムに結果を返す必要があります。 曲を特定したり、歌詞のクエリに答えたりすることはリスナーが待つものなので、数十億のベクトルに対して、毎秒数百件の検索を、数ミリ秒で返す必要があります。カタログが成長し続けても、速度が低下することは許されません。
Milvusを選んだ理由
Milvusはこれら3つの要件すべてに直接応えます。それが、チームが検索をMilvus上に構築した理由です。
1つのクエリでベクトル検索、全文検索、メタデータフィルタリング検索に特化して設計されています。 Milvusはオーディオと歌詞の埋め込みを保存し、クリップがどのように聞こえるか、歌詞が何を意味するかに基づいて最近傍を検索するため、鼻歌や言い換えられた一行が正しいトラックに解決されます。歌詞の場合、全文キーワード検索とベクトル検索を単一のハイブリッドクエリで組み合わせ(単語と意味の両方をマッチング)、同じ呼び出し内でメタデータフィルター(アーティスト、ジャンル、地域、権利)も適用します。これはキーワードのみのシステムでは実現できないハイブリッド検索です。
数十億ベクトルで実証済み。 Milvusは数十億規模のコレクション向けに設計された分散データベースであり、埋め込まれたカタログ全体が1つのシステムに存在し、ライブラリの成長に伴ってクラスターとともにスケールアウトします。新しい節目ごとに再アーキテクチャする必要はありません。
高スループットでのミリ秒レベルのレイテンシ。 Milvusは、数十億のベクトルに対して毎秒数百クエリで約10ミリ秒でマッチを返し、負荷の高いインデックス作成をライブクエリから分離するため、新しい音楽が追加されても検索は高速なままです。
オープンソースで、自社インフラストラクチャ上で運用可能。 これらの要件を満たすことに加えて、Milvusはオープンソースであるため、この規模で運用するチームは自社のインフラストラクチャ上で実行し、ワークロードに応じてチューニングや拡張を行い、ベンダーロックインなしでスタックに統合できます。
ソリューション
Milvusは、音や意味によって音楽を見つけるすべての機能の土台となる類似性検索レイヤーです。オーディオとテキストはどちらもベクトルになり、フィルタリングに使用されるメタデータの隣でMilvusに格納されます。
Anonymous Music Insert.png
カタログのインデックス化。 すべてのトラックは短く重なり合うクリップに分割され、音声モデルが各クリップを、そのサウンド(音色、メロディー、リズム)を捉えるベクトルに変換します。したがって、1つのトラックは単一のポイントではなく、数秒ごとに1つずつ連なるベクトルになります。歌詞はテキストモデルによって別途処理されます。各セットはベクトルとして埋め込まれ、かつ全文検索用にインデックス化されるため、クエリは意味または正確な単語のいずれかでマッチできます。アーティスト、アルバム、ジャンル、リリース日、人気度、地域/権利は、同じレコードのスカラーフィールドとして書き込まれます。音声クリップは数十億規模のコレクションを形成し、歌詞ベクトル、全文インデックス、メタデータはその隣に配置されます。グラフベースのANNインデックス(HNSW)は高い再現率を維持しつつ高速な検索を実現し、スカラーインデックスはメタデータをフィルタリング可能にします。
クエリへの応答。 4つのプロダクト機能はすべて、Milvusに対する類似性検索に帰着します。
- 曲認識。 数秒間のキャプチャされたオーディオが埋め込まれ、Milvus内のオーディオコレクションに対して検索されます。各トラックは順序どおりに多数の短いクリップとして保存されています。レコーディングは、同じ曲からの連続したクリップの並びと一致します。これは正しいトラックだけが生成できるものであるため、Milvusはそれをその1つの曲に特定し、リアルタイムで返します。
- 歌詞検索。 各歌詞は、セマンティックな密ベクトルと全文(BM25)インデックスの両方を同じレコードに持つ形でMilvusに保存されるため、単一のハイブリッド検索で意味と表現の両方にマッチし、1つのランク付けされたリストを返します。リスナーが歌詞を一言一句覚えている場合でも、おおまかな要点だけを覚えている場合でも、クエリは正しい曲に到達します。
- レコメンデーション。 リスナーが再生中のトラックがクエリとなり、Milvusはリスナーの地域と嗜好にフィルタリングされた、音響的に類似したトラックをラジオやディスカバリー向けに返します。
- 著作権マッチング。 アップロードされたクリップはチャンク化され、カタログに対して検索されます。高い類似性を持つヒットの連なりは保護された素材の再利用を示し、権利フィールドが所有権を特定します。
4つの機能はすべてMilvus内の同じデータを検索します。同じ音声および歌詞ベクトル、同じメタデータ、各クエリに含まれる同じフィルタです。異なるのはチューニングです。チームは検索層をMilvusクラスター群としてセルフホストし、認識パスには最低レイテンシを、全カタログのコレクションには数十億規模に拡大する際のスループットと再現率を実現するよう、それぞれをサイズ調整します。新しい音楽は同じインデックスパスを通過し、到着した瞬間に検索可能になります。
結果と利点
- あらゆる曲が約10ミリ秒で特定され、毎秒数百件の検索を処理できます。 数秒の音声や1行のテキストで、正確なトラックが、高い同時負荷下でもリスナーには瞬時に感じられる速さで返されます。
- 1億以上の全トラックが、数十億のベクトルにわたって検索可能な状態を維持します。 ロングテールを含むすべてのトラックが埋め込まれオンラインになっているため、カタログが大きくなりすぎたために見つけられない曲はありません。
- 曲はタイトルだけでなく、サウンドと意味によっても見つかります。 口ずさんだメロディー、5秒のクリップ、うろ覚えの歌詞は正しいトラックにたどり着きます。これはキーワード検索では決してできませんでした。
- 認識、歌詞検索、レコメンデーション、著作権マッチングは、1つのエンジン上で動作します。 新しいオーディオ機能は、全カタログをリアルタイムで検索する既存のレイヤーから始まり、新しいシステムを立ち上げる必要はありません。
- すべてはチーム自身のインフラストラクチャ上で動作し、クラスターを拡張することでスケーリングします。 トラフィックとカタログが成長するにつれて、チームはすでに運用しているMilvusクラスターに容量を追加するだけで、検索層の再設計は不要です。
戦略的な成果は、「サウンドによる検索」がプロジェクトではなく、ケイパビリティになることです。プラットフォームが音楽のサウンドに基づいて構築したいものはすべて、すでに1億以上の全トラックをリアルタイムで検索する基盤から始まります。
Milvusを始める
Milvusは、46K以上のGitHubスターを誇る世界で最も広く採用されているオープンソースのベクトルデータベースであり、数十億規模の類似検索のために構築されています。ラップトップから分散クラスターまで、あらゆる環境で動作し、チームはベクトルワークロードのインデックス作成、フィルタリング、スケーリングを完全に制御できます。
GitHubでMilvusを使い始めるか、ドキュメントを読むか、Discordでコミュニティに参加してください。
自分たちでMilvusを運用したくないチームは、同じエンジンをフルマネージドサービスとしてZilliz Cloudで利用でき、無料枠から始められます。
産業
エンターテイメント


