SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「PyData.Tokyo Meetup」イベントレポート

国内外のトップランカーが語るデータマイニングコンペの勝ち方~PyData.Tokyo Meetup #6、7イベントレポート


  • X ポスト
  • このエントリーをはてなブックマークに追加

 こんにちは、PyData.Tokyoオーガナイザーのシバタです。ボストンに向かう飛行機の中でこの記事を書き始めました。私事ですが、昨年12月よりDataRobot,Inc(下記「データロボット社」)という会社で働き始めました。今回は昨年10月に行われたPyData.Tokyo Meetup #6と今年2月に行われたPyData.Tokyo Meetup #7でのデータマイニングコンペをテーマに行った勉強会の様子をお伝えしたいと思っています。実はデータロボット社は多数のコンペ入賞者が働いていることで知られており、2つの勉強会に非常に関連の深い会社です。

  • X ポスト
  • このエントリーをはてなブックマークに追加

 PyDataではこれまで機械学習深層学習などデータ分析関連技術をテーマ別に扱ってきましたが、今回のテーマは、技術というよりはその技術をいかに応用するかが問われるデータ解析コンペの現場から、世界最高レベルのエクスパートをお招きしました。分析コンペとして歴史も長く、世界でもっとも権威のある大会の一つであるKDDカップで2015年の優勝チームの一人だった@smlyこと小嵜耕平さん。世界中の企業がデータを公開しコンペを開催し、30万人を超えるデータサイエンティストが登録するKaggleにおいて、2年近く1位の座につき、データロボット社のプロダクト責任者でもあるOwen Zhangさん。データロボット社のチームは自社製品を使って前述のKDDカップにも参加し、3位に入賞しています。また勉強会には同じくKDDカップで2位に輝いたFEG社のデータサイエンティストの方もご参加され、文字通り世界トップデータサイエンティストの集まるメッカとなりました。

日本人トップKagglerに必勝技を聞く

smlyさんが登壇したPyData.Tokyo Meetup #6(http://pydatatokyo.connpass.com/event/21251/)

smlyさんが登壇したPyData.Tokyo Meetup #6

 データ分析コンペでは、精度の高いアルゴリズムはもちろんのこと、それらをどのよう応用して現実の問題を解決するのかが問われます。理論的な後ろ盾よりも高い予測精度が優先され、またコンペによってはその場で複数の選手が手を組んでチームを作るなどのダイナミックなコミュニケーションも重要です。

 この分野で最近特に耳にするのがKaggleです。企業や研究者がデータを投稿し、世界中の統計家やデータ分析家がその最適モデルを競い合うことを可能にしたプラットフォームで、億を超える高い賞金がかかったコンペや、上位の参加者に仕事がオファーされるコンペなどもあります。2010年に設立され現在登録者数は30万人以上。学会、企業、フリーランスなどさまざまな経歴のデータサイエンティストがしのぎを削っており、数値計算から画像認識まで、さまざまなコンペが開催されています。今回はそんなKagglerの中でも、日本人としてはトップの世界五位にランクインしている@smly(スマイリー)さんにお話いただきました。

 今回は、ACMという国際学会が1995年から開催しているKDDカップで今年smlyさんを含むチームがどうやって優勝したか、その裏話。KDDカップはKaggleと同じく、この手のコンペの中でも世界で最も広く知られているものの一つです。今年のデータは、中国のMOOC(Massive Open Online Courses:大規模オンライン学習サービス)において、コースから脱落してしまう生徒を予測するという課題。それぞれの生徒が今までにどのコースに参加し、アクセスしたのかが元データとなりました。データを提供した中国最大級のMOOCであるXuetangXとしては、このモデルを利用し、脱落する可能性の高いユーザーを事前に予測したいという目的があったと考えられます。抽出したユーザーに対し、エンゲージメント向上の施策をうつなどして脱落を防止する狙いです。

 smlyさんが強調していたのは予測モデルの精度は個別の高精度のモデルを作ることも重要だが、複数のモデルを組み合わせる(アンサンブルと呼ばれる)ことが同じく重要だということ。コンペの最終局面では、それまで個人として参加していたユーザーが呼びかけあってチームを形成することがよくあります。これは高精度だが質の違う予測モデルを組み合わせてアンサンブルモデルを作ることで、お互いの強みを活かしたさらに精度の高い予測モデルを作るためだということです。個々のモデルには多様なアルゴリズムが使われ、今回のコンペでは次のような数多くの手法が使われました。

  • 決定木型のモデルを応用し、特に最近精度が高くて多用される勾配ブースティング
  • 深層学習にも応用されているニューラルネットワーク
  • 回帰分析手法に基づくロジスティックリグレッション

 これらの個別モデルからアンサンブルを作るためには、いくつかの方法がありますが、smlyさんが今回お話してくれたのは、その中でも一番一般的なスタッキングという手法。

スタッキングによるメタフィーチャーの生成
スタッキングによるメタフィーチャーの生成

 学習用のデータを5つに分割し、5分の4でそれぞれの個別モデルを使って学習し、残りのデータに対して出力変数を計算するという操作を5回繰り返すことで、全行に対して新しい特徴量(メタフィーチャーと呼ばれる)を追加していく。これをすべてのアルゴリズムで行い、もとの入力データに新たに特徴量を追加したデータをさらに別のアルゴリズムへの入力とし、そこから出力変数を再度計算するという手法です。このようにデータを分割することで、出力変数が学習データに依存してしまう過学習の問題を回避することができますが、全体の計算リソースが非常に多くなる上、最終的なモデルは複雑性を増してしまうという問題も抱えています。

smlyさんのチームが作ったアンサンブルモデル
smlyさんのチームが作ったアンサンブルモデル

 今回のコンペでは上図のように、最終的にこの手法を3つのステージに分けて応用し、64の個別モデルを組み合わせたそうです。

 アルゴリズムの質に加え、入力特徴量への理解もデータサイエンティストが行える重要なインプットです。コンペでは、チームによってさまざまなアプローチが試されますが、smlyさんのチームで計算したのは、例えば、

  • 対象となる生徒が他のコースでドロップアウトしているか
  • 累積での参加授業数
  • 今までに何回テストを受験しているか
  • 一番最近いつアクセスしたのか

などの特徴量を、生データであるアクセスログや、登録学生情報のDBなどを組み合わせて計算しました。特徴量が追加されるごとにモデルの精度がどんどん上がっていく様子を分かりやすく説明していただきました。

 

特徴量の生成によって少しずつ精度が上がっていった様子
特徴量の生成によって少しずつ精度が上がっていった様子

 今回のKDDカップでは、多くのチームが非常に高い(AUC0.9以上、完璧なモデルはAUC1)予測精度のモデルを作り、激しい接戦が繰り広げられました。最終的にはsmlyさんたちのチームが終了のわずか四時間前に行った「強引な」特徴量生成が功を奏し、順位が入れ替わったそうです。

 

KDDカップ2015最終順位
KDDカップ2015最終順位

 このように、コンペの勝利は最終的に粘り強さが功を奏すことも多いようです。理論的には、なぜうまく行くのか証明できないとしても、試してみて結果が良ければ軍配は上がります。ただし、最終的に勝つモデルは非常に複雑な前処理と特徴量生成、そして多種のアルゴリズムの組み合わせになる傾向にあり、そのような複雑性の高い分析は実際のサービスには使われない場合がほとんどです。計算量が多くなるだけでなく、仮に何かがおかしくなったとしても、デバッグが不可能なシステムを使うことにはリスクが伴います。技術や手法の進歩の一方で、再現性や実用性などにおいて、今後機械学習分野にどのような進展が見られるのかが期待されます。

次のページ
世界トップKagglerに必勝技を聞く

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
「PyData.Tokyo Meetup」イベントレポート連載記事一覧

もっと読む

この記事の著者

シバタアキラ(シバタ アキラ)

データサイエンティスト@DataRobot, Inc. PyData.Tokyoオーガナイザー 人工知能を使ったデータ分析によるビジネス価値の創出が専門分野。物理学博士。NYU研究員時代にデータサイエンティストとして加速器データの統計モデル構築を行い「神の素粒子」ヒッグスボゾン発見に貢献。その後ボストン・コンサルティング・グループでコンサルタント。白ヤギコーポレーションCEOを経て現職 Twitter: @madyagi Facebook: Akira Shibata DATAブログ: http://ashibata.com DataRobot, Incウェブサイト: http://datarobot.com

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

池内 孝啓(イケウチ タカヒロ)

神奈川県横浜市出身。1984年生まれ。ソフトウェア開発会社、インフラサービス提供会社を経て2011年3月株式会社ALBERT入社。クラウドコンピューティングを活用したマーケティングプラットフォーム事業の立ち上げに携わる。2014年1月に同社執行役員に就任。2015年8月株式会社ユーリエを設立。同社代表取締役社長兼CTO。2014年にコミュニティ PyData.Tokyo を共同で立ち上げるなど、Python と PyData ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

田中 秀樹(タナカ ヒデキ)

PyData TokyoオーガナイザーシリコンバレーでPython×データ解析の魅力に出会う。帰国後、ディープラーニングに興味を持ち、PyCon JP 2014に登壇したことがきっかけとなりPyData Tokyoをスタート。カメラレンズの光学設計エンジニアをする傍ら、画像認識を用いた火星および太陽系惑星表面の構造物探索を行うMarsface Project(@marsfaceproject)に参加。インドやモロッコなど、旅先で...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山本 光穂(ヤマモト ミツオ)

デンソーアイティーラボラトリ シニアエンジニア。2006年デンソーアイティーラボラトリ入社以来、時空間情報閲覧サービス(製品名:今昔散歩)や情報検索等に関する研究に従事。特に最近はドライバーの意図推定技術や同推定結果に基づく最適な情報提示技術に興味を持つ。趣味はマウンテンバイクとイングレス(Resistance)。Facebook: https://www.facebook.com/mitsuo.yamamoto.0112 Twitter: @kaita

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9330 2016/06/01 10:32

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング