大規模データを扱うための実践的知識を大公開「CyberAgent Data Engineering & Data Analysis Workshop #4 ~春の機械学習祭り~」レポート

サイバーエージェントのメディア事業における研究開発組織「秋葉原ラボ」では、大規模データを効果的に収集・蓄積・活用するための知見を共有する勉強会「CyberAgent Data Engineering and Data Analysis Workshop⁠⁠、略称「CADEDA」を開催しています。第4弾となる今回は、タイトルに「春の機械学習祭り」とあるように、機械学習がテーマです。

今回は、サイバーエージェントから内藤 遥氏、藤坂 祐介氏、さらにゲストスピーカーであるPreferred Networksの秋葉 拓哉氏の3名による講演がありました。

推薦アルゴリズムの今までとこれから

最初の登壇者は、秋葉原ラボにてさまざまなサービスの推薦システムの開発・運用を担当している内藤 遥氏です。本講演では、代表的な推薦アルゴリズムの歴史と、それらを実サービスで利用するための推薦システムの基盤について話がありました。

サイバーエージェント 内藤 遥氏
サイバーエージェント 内藤 遥氏

前半では、推薦アルゴリズムがどのように発展して来たかを解説しています。まず、最も基本的な推薦アルゴリズムであるGroupLensやItem-based Collaborative Filteringに代表される協調フィルタリングを説明し、これらの手法が抱える問題を低減するMatrix Factorizationと呼ばれる手法を説明しています。

続いて、近年提案された主要なアルゴリズムについて解説しています。具体的には、推薦に利用する特徴量の柔軟性に優れるFactorization Machines、時間的変化を考慮できるRecurrent Neural Networksを推薦に応用する手法、高速なオンライン計算を可能にするCollaborative Metric Learningの3つを取り上げています。

「とくに、我々が注目している手法はCollaborative Metric Learningです。この手法はユーザーとアイテムを同一の空間に写像する工夫により、高速な近似最近傍探索アルゴリズムを適用可能にしている点で優れています」⁠内藤氏)

後半では、実際に推薦アルゴリズムをサービスで展開するため、どのような基盤システムを設計・開発しているかの手法から今後の展望までを解説しています。秋葉原ラボでは、サイバーエージェントが抱えるさまざまなサービスを対象とした推薦システムの保守運用に加え、新規サービスへの推薦システムの導入対応も頻繁に行います。そのため、運用コスト・導入コストの低減を目的として、独自のバッチフレームワークを開発しているといいます。このフレームワークでは、たとえばサービスに依存しない部分である「データを読み込み、加工し、推薦結果を作成し、書き出す」という一連の流れについては共通化し、サービス依存のビジネスロジックのみを切り出して可変とすることで導入コストを低減するなどの工夫を行っています。

現在、推薦基盤で用いているアルゴリズムはMatrix Factorizationが中心であり、一部で試験的にFactorization MachinesやItem2Vecを用いているとのことです。前半で紹介したような新しいアルゴリズムの導入についても検討していますが、たとえばFactorization Machinesは予測計算速度の問題に加えて投入する特徴を選択するための深いドメイン知識が必要になることから、一部の導入にとどまっているそうです。

「課題としては、新しいアルゴリズムの導入やリアルタイム化はもちろんですが、これらを支えるための基盤をどのように作って行くかが重要になります。たとえば、アイテムを分散表現にする場合、サービスごとに異なるアイテムのフォーマットを吸収するためのレイヤが必要になると考えています。また、モデルの更新フローをどのように設計し、どのような仕組みで管理するかも検討する必要があります」⁠内藤氏)

本セッションの質疑応答では、リアルタイム化に関わる質問や、推薦精度の評価に関わる質問などが行われていました。どの質問も、サービスに推薦機能を組み込む際に重要となる課題に関連しており、参加者にも推薦システムを導入・改善したいと考えている方が多いことをうかがわせます。

“マルチメディア機械学習”の取り組み

次の登壇者は、同じく秋葉原ラボにて、スパム・不適切コンテンツの監視基盤システムや画像・音楽などのメディアデータ分析・処理システムの開発を担当している藤坂 祐介氏です。本講演では、マルチメディアデータに関連した機械学習システムの開発事例を紹介しています。特に「ブログ画像カテゴライズ」⁠スパム画像検知」⁠楽曲の盛り上がり検知」の3つについて詳しく説明しています。

サイバーエージェント 藤坂 祐介氏
サイバーエージェント 藤坂 祐介氏

まず、ブログを公式ジャンルに自動でカテゴライズするプロジェクトについて説明しています。ここでは投稿画像に注目し、物体認識で高い性能を持つResNet-18と呼ばれるディープラーニングモデルにより投稿画像を分類しています。このモデルに人手で付与した約30万件の学習データを当てはめ、さらにテキスト解析を併用することで、おおむね良好なブログ分類システムを構築できたとしています。

「多くのカテゴリでは問題ないのですが、一部うまく分類できないカテゴリもあります。たとえば『カップル』『友人同士』というカテゴリの間では類似した写真が多いため、これらを正確に分類するのは困難です。実際にt-SNEと呼ばれる手法で可視化し、このように判然としないカテゴリがいくつかあることを明らかにしました。この分類カテゴリセットはサービスのプロデューサーに提案されたものを利用していますが、適切な分類問題の設定とサービスの需要との間でうまくすり合わせることが大切と感じました」⁠藤坂氏)

次に、スパム画像を自動で抽出するプロジェクトについて解説しています。本発表で取り上げるスパム画像の種類は、エロ・グロなどのユーザーが「不快に感じる画像」と、マッチングサービスのプロフィールなどで使いまわされる「コピー画像」の2種類です。

不快画像の検知では、ResNet-18の中間層をさらに増やしたResNet-34と呼ばれるモデルを利用しています。こちらは4年間にわたるサービス運営の過程で得られた約400万枚の画像を学習データとしています。システムが検知した画像は人手で最終判断が行われ、画像と判断結果は次の学習データとして追加されるようになっています。このサイクルにより、モデルが日々アップデートされる仕組みです。

コピー画像の検知では、大量のコピー画像DBから一致する画像を高速に見つけることが求められます。そこで、画像をdHashにより64bitで表現した際のハミング距離を利用します。本システムはマッチングサービスに導入されており、実際に悪質な業者を発見できたそうです。

最後に、音楽のサビ部分を自動で検出するプロジェクトを紹介しています。音楽ストリーミングサービスAWAでは、ハイライト再生という楽曲の盛り上がる部分をピックアップして聴ける機能を提供しています。このハイライト再生に用いる区間を、人手ではなく機械学習によって抽出することが目標です。手法は、入力音楽に短時間フーリエ変換(STFT)を施して周波数強度を抽出し、続いて12層のCNNに入力することで、最終的な出力である「メロディ」⁠サビ」⁠それ以外」の各カテゴリ確率を得るという方法です。

「実際の楽曲データを用いた評価実験を行いましたが、幅広い音楽の全ジャンルに対応するのはなかなか難しいという問題もありました。たとえばJ-POPではある程度の精度が出たものの、クラシックのように明確な『サビ』自体がない曲もあります」⁠藤坂氏)

本セッションの質疑応答では、紹介プロジェクトにおける具体的な質問やコメントが多く寄せられました。たとえば、サビ検出ではどういった曲がうまく行くのか、どういった特徴が有効だったのかと言った質問です。また、スパム検知にアクセス頻度を素性として投入してはどうか、サビ検出の前にサビの有無を判定する段階を加えたらどうかといったコメントを始めとして活発な議論が行われていました。

大規模分散深層学習とChainerMNの進歩と課題

最後の登壇者は、ゲストスピーカーであるPreferred Networks(PFN)の秋葉 拓哉氏です。秋葉氏は大規模分散深層学習の研究開発、特にディープラーニングを含むニューラルネットワークの計算を行うためのフレームワーク「Chainer」と、Chainerにマルチノードでの分散学習機能を追加するパッケージ「ChainerMN」の開発に携わっています。本講演は、大規模分散深層学習の動機と問題から、それを解決するアプローチの比較に続き、成果であるChainerMNの紹介までと盛りだくさんの内容でした。

Preferred Networks 秋葉 拓哉氏
Preferred Networks 秋葉 拓哉氏

まず最初に、そもそも大規模分散深層学習がなぜ必要で、どういった点が難しいのかを説明しています。ディープラーニングは、ニューラルネットワークに多数の中間層を持たせることで高い精度を実現できる一方で、学習時の計算量が非常に多いことで知られています。たとえば画像認識では、AlexNetと呼ばれるモデルを提案した論文では2つのGPUで5~6日、VGGを提案した論文では4つのGPUで2~3週間という学習時間を要したことを報告しています。これに対し、Facebookは256個のGPUを効果的に利用する手法を提案し、計算時間の大幅な短縮に成功しました。具体的には、ResNet-50というAlexNetやVGGの倍以上の中間層を持つ複雑なモデルながら、1時間の学習時間でより高い精度を実現しています。これをさらに発展させ、PFNでは1024個ものGPUで効率的に並列計算する手法を提案し、わずか15分の学習時間でほぼ同じ精度を達成したとのことです。

「学習処理の高速化は、競争力に直結するため非常に重要です。なぜなら、高速化によって技術者の試行錯誤サイクルをすばやく回せるようになると同時に、より大規模なデータや複雑なモデルを利用できるようになるためです」⁠秋葉氏)

この結果だけを見ると、単純にノード(GPU)を増やせば学習が早くなるように感じますが、それは誤りだといいます。大規模分散深層学習においては、各ノードにどのように計算を振り分けるか・ノードをどのように協調動作させるか・ノードからの計算結果をどのように統合するかなど、考えるべき問題が多数あります。また、複数のマシンを利用することで生じる通信オーバーヘッドも学習速度に影響するため、マシン間の接続など物理的なレイヤにまで気を配る必要があるそうです。

画像

次に、分散深層学習の2つの方式「同期型」⁠非同期型」について解説し、ChainerMNでも採用している同期型による学習方式がなぜ優れているのかを明らかにしています。現在、分散深層学習においてスタンダードとなっている枠組みは、データ並列(Data Parallel)と呼ばれるアプローチです。これは、学習データを分割してそれぞれのノードに割り振り、各ノードで学習を行って結果を統合する方法です。さらに、データ並列にはノードを協調動作させる2つの方法があります。これが、途中で全ノードの計算を待ち合わせて集計処理を行う「同期型」による方法と、各ノードでそれぞれ独立に計算を進めてParameter Serverと随時通信する「非同期型」による方法です。一見すると、待ち合わせる時間がないため短時間で多くの学習データを処理できる非同期型が優れているように見えます。しかし、非同期型による方法はスループットが高い一方でモデルの改善があまり進まないため、結果として同期型の方が高精度なモデルになるといいます。

「非同期型による方法では、あるノードが計算した勾配を反映しようとしても、すでに別のノードによってモデルが更新されていることがあります。このような勾配をStaleな(新鮮でない)勾配と呼びます。こういった古いパラメータから計算された勾配は、モデルの改善に寄与しないばかりか悪い影響を及ぼすことすらあります。スループットのみを改善するのは容易ですが、我々が本当に必要としているのはスループットではなくより精度の高いモデルであることに注意しなければなりません。このため、現在広く使われている方式は同期型で、ChainerMNでも同期型を採用しています」⁠秋葉氏)

最後にChainerMNを利用する方法を紹介しています。ChainerMNが依存するMPIやNVIDIA NCCLなどのライブラリはあらかじめインストールする必要がありますが、ChainerMN自体の導入は一般的なPythonライブラリと同様 "pip install" コマンドでインストール可能です。ソースコードの変更はより単純で、ワーカー同士の通信を担当するCommunicatorの生成と並列処理に対応したOptimizerへの変更のみで対応できるとのことです。

本セッションの質疑応答では、同期型・非同期型アプローチに関する質問のほか、これから分散深層学習を始める上でのアドバイスを求める質問などが寄せられました。たとえば、どこをチューニングするべきかという質問に対しては、GPUだけでなくインターコネクトと呼ばれるマシン間を接続するインタフェースにも注意してほしいとの回答がありました。遅いEthernet接続では、並列させても学習が早くならないばかりか遅くなることもあるそうです。

まとめ

本稿で取り上げた第4回のCADEDAでは、テーマである機械学習についてさまざまな観点からのお話がありました。機械学習というとセンセーショナルな面に注目が行きがちですが、実際にサービスへの応用を考えると、多くの壁があることに気付きます。たとえば、そもそも機械学習がどのような案件に適用できるのか、また、どのように機械学習システムを保守・運用して行けばよいのか。そして、どのようにデータの増加やモデルの複雑化に対処するかといった点です。今回、実際の開発・運用に携わる3人の登壇者からのお話は、このような疑問に対する答えの一例を示していると感じました。

なお、サイバーエージェントでは、本ワークショップCADEDAを引き続き開催する予定です。今後も機械学習に加え、分散・分析処理基盤やデータ分析などのトピックも取り上げる予定です。開催時には以下のページで告知する予定ですので、興味に近いテーマがありましたらぜひともご参加ください。

CyberAgent - connpass
URL:https://cyberagent.connpass.com/

おすすめ記事

記事・ニュース一覧