世界トップKagglerに必勝技を聞く
前述のデータ分析コンペプラットフォーム、Kaggleにおいて、昨年まで2年もの間1位の座についていたOwen Zhangさんの来日に合わせて開催したPyData.Tokyo Meetup #7は、PyData.Tokyoとして初めての英語での進行となりました。普段は参加できない外国人の方や、日本人でも初めての参加者の方が目立ちました。今回のイベントに合わせ、外国人の方の間でよく使われている、Meetup.com上にもイベントページを開設し、今後さらに広く参加者を募りたいと思っています。
「データ解析コンペで勝つための秘密を教えます」といって話し始めたOwenさんでしたが、その次に口にしたのは「その秘密とは、秘密なんかないってことです」とのこと。「コンペで勝ちたければ地道にテクニックを磨き、たくさんの時間がかかるという覚悟をしてください」というなんとも地味に始まった講演。
- プレゼン資料『Cutting Edge Data Science Technique』(PDF)
データ解析の一般的な方法を図示したOwenさんは、「すでにこの地道な努力の多くがデータロボット社の製品によって自動化されている」と続け、「今後その範囲はさらに広がっていく。そうなった時に人間の仕事として重要なのは、データの中からは分からない、その分野で仕事をしている人だからこそ分かる知識を特徴量生成などを通じて分析に吹き込んでいくこと」だといいます。
![Owenさんの思い描くデータ解析の自動化](http://cz-cdn.shoeisha.jp/static/images/article/9330/9330_automation_s.png)
一方で、講演の中では、特定の特徴量をアルゴリズムに入力する際に必要となるエンコーディングの手法を説明してくれました。Kaggleで開催されたAmazonのUser Accessコンペでは、Amazon社内において、社員がリクエストしたさまざまなカテゴリの計算リソース(例えばディスクへのアクセス権限や、仮想マシンの利用)を管理者が判断し、許可するプロセスをどこまで自動化できるかを競いました。社員がリクエストするリソースにはさまざまな種類があり、非常に多くのカテゴリーに分かれています。ここで2つの問題が発生します。
- リグレッションなどを含む多くのアルゴリズムでは、カテゴリ型特徴量をそのまま入力することができない
- カテゴリが細分化されているため、そのカテゴリーに対してモデルを作ろうとすると、学習データに極度の偏りが生じる(例えば、非常に特殊なリソースをリクエストした社員が過去に2人しかいなかったとすると、その2人に対する決定が、モデルに大きすぎる影響を与える)
![OwenさんのAmazon User Accessコンペでのアプローチ](http://cz-cdn.shoeisha.jp/static/images/article/9330/9330_approach_s.png)
1つ目の問題を解決するには、エンコーディングと言われる手法を用いてカテゴリを数値化します。これにはさまざまな手法がありますが、彼が紹介してくれたのは、頻度エンコーディングという手法。まずそれぞれのカテゴリーをそのカテゴリーが出現する回数に置き換えます(重複を避けるため、少しランダム関数で幅出しを行う)。こうすることで複数のカテゴリを1つの特徴量の中で数値化することができ、数値変数を期待しているアルゴリズムにも入力できるようになります。
2つ目の問題は、もう少し複雑な解決方法が必要です。Owenさんが説明してくれたのは「収縮法」と呼ばれる方法。少数しか出現しないカテゴリの出現確率を、そのカテゴリの出現回数だけでなく、全カテゴリの出現確率の平均値に近づける(縮める)ことによって、予測の精度を上げるという手法。要するに、限定的なサンプル数による過学習を、サンプル全体の情報を使って中和するのです。こういった手法は自然言語処理のモデリングに使われるスムージングの手法(まだ学習モデルが一度も見ていない単語に対して、事前に出現確率を与えておくことで、確率値が学習データに必要以上に左右されるのを防ぐ手法)にも少し似ています。
![All State社のコンペは非常に難易度が高く、優勝者もわずかにしか既存のモデルを向上することができなかった](http://cz-cdn.shoeisha.jp/static/images/article/9330/9330_allstate_s.png)
この他にもOwenさんは、All Stateというアメリカの保険会社のデータコンペに触れました。このコンペでは、見込み客がどのような保険のプランを購入するのか、7つのオプションすべてを正確に当てないといけないという非常に難易度の高い問題設定がされていました。既存のモデルとして「申し込みの前にどういう見積もり依頼をしたか」という参照モデルがありましたが、結局ほとんどの挑戦者がこのモデルをわずかに向上させることしかできませんでした。問題設定があまりにも多数の条件を指定しているため、それらすべてを満たすモデルの生成が非常に難しかったのです。結局Owenさんはこのコンペでは3位にランクインしたが「まったく時間の無駄だったとしか言いようがない」とのこと。
エンコーディングなどの手法を学び、予測モデルの精度を上げるテクニックを磨くことは重要ですが、こういった労力は今後DataRobotに代表される自動化の中で人間ができる仕事の質としてはどんどん低くなっていくとOwenさんはいいます。一方で、2つ目の例にも見られたように、正しい問題設定や正しいデータの準備を行うことは今後も自動化が難しく、人間の力に委ねられている部分だと強調していました。
一週間日本で多忙なスケジュールをこなし、最終日の勉強会登壇だったこともあり、この辺から勉強会はピザ&ビールパーティーに流れ込み、参加者の方々はOwenさんに直接質問したり、参加者同士データ分析の手法について熱く議論したりしていました。世界のトップデータサインエンティストが集まる勉強会にオーガナイザーたちも楽しさを隠せない様子で、話に花を咲かせていました。