大規模データ分析と GCP - Spotify と Shazam に見る機械学習の応用

GCP と音楽業界 – Spotify と Shazam に見る GCP の活用事例

ビジネス

投稿日:2018/08/10 | 最終更新日:2018/10/10

この記事は2016年2月と2017年5月、2017年10月頃に Google Cloud Platform Japan Blog で公開された記事をもとに編集・執筆しています。

はじめに

音楽販売業界では、CD などの媒体経由での販売からインターネットを介したデジタル配信に市場が移行しています。様々な業界において利用が進んでいるクラウドサービス Google Cloud Platform (以下、 GCP )ですが、音楽デジタル配信市場においても活用されています。今回は、音楽デジタル配信市場における GCP の活用状況について説明します。

世界一のユーザー数を誇る Spotify においても GCP を採用

デジタル配信が主流となっている音楽業界においても、 GCP の利用が進んでいます。音楽ストリーミング配信サービスにおいて、世界一のユーザー数を誇る Spotify は、GCP を利用する企業のひとつです。

Spotify は、全世界7,500万以上のユーザーを抱える大企業であり、そのような大企業が自社製のインフラからクラウドへ移行させることは、稀なことでありとても難しいことです。しかし、 Spotify は、難しいと思われる自社製からクラウドへの移行を決断し、クラウドサービスとして GCP を選択しました。

自社でのデータセンター開発投資よりも GCP のメリットを選ぶ

Spotify は、あらゆる人に向けて音楽を特別なものにすることを目指しています。 Spotify では、20 億を超える楽曲再生リストを用意しており、 Spotify ユーザーが 3000 万曲以上の楽曲を手軽に利用できるようになっています。

それだけではありません。 Spotify では、 PC 、スマホといったあらゆるデバイスからでもアーティスト、アルバム、ジャンル、プレイリスト、レコードレーベル別に、楽曲を検索することができるようになっています。さらに、 Discover Weekly という機能によって世界中のユーザーにカスタマイズされた楽曲再生リストを提供できるようになっています。

Spotify では、GCP の利用前の自社製インフラを利用していた際、ユーザーに対してストレスを与えずスムーズにサービスを提供するために、自社で抱える技術者たちによって自ら自社製インフラを運営していました。

しかし、この自社によってインフラを運営する作業は、 Spotify のユーザー数が世界規模で拡大するにしたがって、作業量が増大しSpotifyにとっての負担となってきました。Spotifyでは、本来サービスを改善し、利用者に対してより画期的なサービスを提供することに注力したかったのですが、このような自社でのインフラ運営作業に負荷がかかることでサービス開発に思うように人員を割けなくなり、自社製インフラ運営作業を課題と考えていました。

そのような課題に対応するため、 Spotify は、自社製のデータセンター開発をやめることを決断し、クラウドサービスへ移行することを決断しました。クラウドサービスに移行することで、運用負荷が軽減できると考えたのです。さらに、数あるクラウドサービスの中から、慎重な検討やテストの結果、 Google で既に提供されているサービスが利用できるなどの信頼性から GCP を選択しました。

GCP の豊かなストレージサービス

同社は GCP への移行を決断した際、サービスを停止させないため、移行に際して注意を払いました。移行の流れとして、サービス用のデータと楽曲や利用者用データという二つのデータに分けて移行することにしました。

Spotify のシステム構造はより詳細に細分化されています。まず、移行するにあたり、細分化されたデータから幾つかを、自社製のデータセンターから Google Cloud へ移行し、 Google Cloud Storage や Compute Engine などのサービスを利用するようにしました。

Compute Engine を利用できれば、 Spotify のサービスでは Compute Engine が抱える超高速 IOPS SSD やローカル SSD といった設備により素早いアクセスが可能であり、安定したパフォーマンスの発揮を期待したため、このような選択をしました。

また、 Google Cloud Storage には、自動拡張機能を保有しています。この自動拡張機能を利用すれば、自社製データセンターでできなかったユーザー数拡大に応じた自然なリソースの拡張が可能となります。自動拡張機能が利用できることにより、Spotifyでは、リソース拡張に対する不安がなくなり、より信頼性の高いサービス開発を行うことが可能となりました。

Spotify は現在、ストレージサービスでは Cloud Datastore や Cloud Bigtable を導入しています。

こうした Google Cloud の豊富なストレージサービスを利用することは、Spotifyの技術者に対しての運用負荷を軽減し、より革新的なサービス開発に集中できるようになりました。

Spotify は、それらのクラウドストレージサービスだけではなく、その他のサービスも利用しています。Spotify は、Google の Direct Peering や Cloud VPN 、 Cloud Router などの Cloud Networking サービスを使うことで、ペタバイト単位といった大容量データの移動も可能になりました。

このような GCP のサービス群を活用した結果、 Spotify では、世界中のユーザーに対して、迅速さと信頼性の高さに裏打ちされたサービスを実現しています。

GCP の導入により素早いデータ検索を実現

データ活用のために、Spotify は全く新しいテクノロジーの導入を行いました。それまでに利用していた自社製ダッシュボードツールから、 Google Cloud Pub/Sub や Dataflow 、 BigQuery 、 Dataproc といった最新のデータ処理ツールへ移行しました。

BigQuery や Dataproc を利用することは、データ処理の大きな時間短縮を実現しました。 Spotify のデータ部門が複雑なクエリを実行した場合、それまで数時間かかっていた処理が、 BigQuery や Dataproc の活用により、1~ 2 分で完了するまで短縮されました。

こうした GCP の最新のデータ処理ツールを採用したことで、 Spotify は、より高度なサービスをユーザーに提供できるようになりました。

Spotify は、全てのサービス上のイベントをシステムに集めて転送するために、 Cloud Pub/Sub を使用しています。 Cloud Pub/Sub の利用により、毎秒数10万件ものメッセージ処理を実現できるようになりました。

さらに Spotify は、 Cloud Dataflow も導入し、大規模データに対するバッチ処理やストリーム処理もスムーズにできるようになりました。

音声認識アプリ大手の Shazam においても GCP を採用

音声認識アプリの提供で世界的に知られている Shazam においても、 GCP が利用されています。

Shazam ではサービス開始当初から、優れた音声認識サービスを提供するために GPU の性能が非常に重要でした。サービス開始当初は、 GPU を用意したクラウドサービスがなかったため、まず自社製の環境構築を行いました。

選んだ理由は GCP の優れた GPU

Shazam が GCP を使用し始めた理由は、 GCP のクラウド GPU が充実していたためです。

Shazam のサービスを提供するにあたり、GPU を利用することは CPU 利用時と比べ低コストで、高いパフォーマンスが得られます。ユーザーが録音した断片的なオーディオフィンガープリントと、 Shazam が抱える4,000万曲以上の音楽カタログをマッチングするという Shazam の音楽認識処理では、 GPU の利用が非常に有効です。

Shazam は、マッチング処理のために全ての曲のオーディオシグネチャを取得して、独自のカスタムデータベース形式に構造を変換します。その変換したデータを、 GPU メモリにロードして使用しています。ユーザーが曲を Shazam にかけると、 Shazamのアルゴリズムはそれとマッチするものが見つかるまで、 GPU を使ってデータベースを検索します。この処理を毎日2,000万回以上、トラブルなく行っています。

こうしたサービスを展開するために、当初 Shazam は、他社から GPU 搭載の専用サーバーをリースし、自社でメンテナンスしてきました。自社で運用するには、新しいサーバーの設置や整備にかなりの時間がかかりました。ユーザーの利用ピーク時の需要に合わせてサーバーを設定し、そのシステムを自社で年中無休の24時間体制で運用しなければなりませんでした。それだけではありません。楽曲のマッチング・アルゴリズムを改善し、新しい GPU を利用して、ようやくコストを抑えることが出来るというコストの問題もありました。

Shazam は、サービスが拡大し続けるとともに、このインフラ管理作業とインフラの維持コストが課題となりました。

このような問題に対応するため Shazam では、自社製のインフラではなく、クラウドサービスの導入を検討しました。 Shazam のサービスを提供するために、 GPU の利用は不可欠であったため、クラウド GPU を採用している、 Google Compute Engine で動作する GPU を試してみることにしました。

Google Compute Engine を使用すれば、インスタンスの追加や削除をすばやく行うことができるため、ピーク時を想定した最大の処理設備を常に準備しておく必要はなく、ユーザーの平均的な利用数に対応するほどの準備でサービスを維持出来ると考えました。

Shazam では、社内に抱える膨大な音楽カタログを効率よく検索するために、社内で「ティア」と呼ばれている複数のレベルの GPU サーバークラスタを運用しています。

最初のティアでのヒット率を高めるには、新しくて人気の高い曲に対応した形でインデックスファイルを最新に保つ必要があります。しかし、人気の高い曲の出入りは激しく、最新に保つのは容易ではありません。レコード会社や社内のエキスパートからの申請に基づいて、毎日カタログに新しい楽曲を追加する作業を行わなければいけません。

そのような作業が必要な Shazam において、 Google Compute Engine の Google Cloud GPU を採用したことにより、それまで計算ユニットに非常に大きな負担をかけるため敬遠されていた楽曲データベースの再計算と更新処理であっても、負担に耐えられるようになったため処理頻度を大幅に増やすことができるようになりました。自社製のインフラを利用していた時は毎日1回ずつの更新に留まりましたが、 Google Cloud 採用後は、1時間以内でインデックスを再定義して GPU メモリに反映できるため、インデックスファイルは常にほぼ最新にできるようになりました。

まとめ

今回は、音楽業界における GCP の利用状況について説明しました。音楽業界ではデジタル配信が主流となっていますが、デジタル配信が普及すればするほど、配信業者におけるインフラ関連の投資と運用負荷が課題となっていました。そのような課題をクラウドサービスである GCP の導入により克服しているのです。 GCP は拡張性も高いため、ユーザー数や抱える楽曲が拡大した場合でも柔軟に対応できます。このような特徴が、 GCP と音楽業界との親和性を高めているのです。

参考記事

GCP のメリットを最大限に活用しよう!

GCP・G Suite のご相談・
お見積り依頼はお気軽に
TEL.03-5840-8815
お問合せフォーム TEL.03-5840-8815