国立情報学研究所(NII)は、データ処理の基本操作であるクラスタリングを、10億個程度のビッグデータに対して、高速で、かつ、少ないメモリー容量で実行できる実用性の高い手法を開発したと発表した。

1億枚の画像をクラスタリング処理した結果の例。似た画像がまとめられている (上から「氷上のスポーツ試合」グループ、「欧風の教会」グループ、「ヤシの木」グループそれぞれの画像の一部)(出所:NIIプレスリリース)

同研究は、国立情報学研究所(NII)コンテンツ科学研究系の松井勇佑特任研究員、ドワンゴメディアヴィレッジ研究開発グループの大垣慶介 グループリーダー、東京大学大学院情報理工学系研究科の相澤清晴教授、山崎俊彦准教授らの研究グループによるもので、同研究成果は、9月14日に計算機科学などの論文を保存・公開するウェブサイト「arXiv」に掲載された。

ビッグデータを処理する際、大量のデータのうち似たものをまとめてグループに分ける「クラスタリング」は、データ処理の最も基本的な作業のひとつとなる。例えば、ソーシャルメディアにアップロードされている膨大な数の画像データを対象に、動物の写真、街の風景の写真といったグループに分ける処理がクラスタリングである。しかし、枚数が1億以上の巨大なデータに対しては、従来の手法では、個人が入手・利用できる仕様のパソコン1台ではクラスタリングを実行することは難しいという問題があるため、大規模なクラスタリングを行うためには、多数のサーバーを用いた分散並列処理が必要となっていた。

今回開発された手法では、直積量子化という技術を用いてデータを圧縮した後、圧縮されたデータに対して「似ているデータを集めてグループを作る」という松井が過去に提案した手法と、「グループの『平均』を計算する」という処理を繰り返した。今回は、グループの平均を効率的に計算する技術を考案したことで、高速なクラスタリングが可能になったという。

この手法を用いることで、画像データセット「Yahoo Flickr Creative Commons 100M(YFCC100M)」の1億枚の画像を対象に「氷上のスポーツ試合」や「欧風の教会」など10万種類のグループに分類する処理を、個人が一般に入手できる高性能機種の仕様であるメモリー容量32GB、CPUのコア数4のパソコン1台で実行したところ、約1時間で終了することができた。これを一般的なクラスタリング手法を用いて同じ所要時間で実行すると、同じ仕様のパソコン約300台が必要だという。

そのほか、10億の画像データを10万種類のグループに分ける処理も約12時間で実行することができた。これを既存手法である「Binary k平均法」などと比較した場合、精度は劣るものの、10~1000倍程度高速化し、100~4000倍程度の省メモリーとなる。また、クラスタリング終了後にデータを近似的に復元できるため、クラスタリング結果を解釈したり、別の処理に利用したりすることができるという利点があるという。煩雑な設定も必要ないので、使うデータに応じてチューニングせずに簡単に使うことができるということだ。

同研究成果は、大規模なデータ処理に日常的に取り組むエンジニアや研究者にとって有益であると考えられるという。また、マイコンなどメモリー容量があまりないIoTのエッジデバイスにおいてもクラスタリング前処理を行えるようになるなど、IoT時代のデータ処理にも有効だと考えられる。なお、同手法のコードは、GitHubで一般公開されているということだ