正解データがなくても分析コンペは作れる話 - NTT Communications Engineers' Blog

正解データがなくても分析コンペは作れる話

みなさんこんにちは デジタル改革推進部の浅野です。

NTT Comでは社内の分析課題をコンペにしてみんなで解くイベントがあるのですが、今回は正解データが十分用意できなくてもコンペを開催することに成功したので、その妙技をご紹介したいと思います。 (過去の開催はこちらにも投稿しております)

分析コンペとは

分析コンペとは予め用意された課題に対して参加者が予測を行いその精度を競う催しです。コンペサイトではKaggleAtmacupなどが有名です。
コンペでは参加者に学習用のデータが配られます。学習用データの中には正解データが含まれており、それを頼りに参加者は予測を作ります。さらに参加者に秘密の評価用データも裏にあり、最終的な順位はそちらで決めます。

つまりコンペを開くには、正解データを十分に用意しておく必要があります。

今回のコンペのテーマ

8月に新しいコンペのテーマ案として「社内にかかってくる迷惑電話の検知」が社内で挙がりました。迷惑電話の検知なので、予測対象となるのは迷惑電話番号となります。

背景としては、社内には月に数十万件の電話がかかってきており、ほとんどは業務の電話ですが、中には不動産勧誘などの業務外の電話が含まれています。迷惑電話は一度に大量にかかってくるといった特徴はわかっているものの、具体的な受信間隔や通話時間、そもそもどれくらい迷惑電話が含まれているのかなどは不明でした。また、社員からの通報も受け付けていましたが、正解データとしては使うには量が不足していました。

正解データが十分にない時点でコンペ化は困難に思えたのですが、色々とアイデアを出し合い、「Slack連携型ソシャゲ風 コンペシステム」を編み出しました。

Slack連携型ソシャゲ風 コンペシステム

今回 採用した仕組みは以下です。

  1. 参加者に素材を配布する

    • 「通話履歴データ」はただのログです。正解ラベルはついていません。
    • 「前日までの採点結果」はその名の通り、前日までに参加者から提出された怪しい電話番号の確認結果になります。
  2. 参加者が素材から迷惑電話番号を掘り出す

  3. 怪しい電話番号を見つけたらSlack Botへ提出する
    提出には1個 魔法石を消費します。また、採点・公開済みの電話番号は提出できません。

  4. 毎朝メンテ時間を設け、運営が迷惑電話番号か確認する

  5. 採点結果を公開する
    全ての採点結果を全員に公開します。 運営が知らない迷惑電話番号だった場合はボーナスポイントをつけます。(事前にコンペ運営側でもちょっと掘っていた)

このサイクルを期間中、回し続けます。あらかじめ正解データを用意するのではなく、提出に応じて採点してフィードバックするのが肝です。(Active learningに似ている?)
正解データの不足を運営のマンパワーで解決する脳筋的解決法とも言えます。

このシステムのユニークな点として、

  • 初日、正解データは全く与えられない
    最初はドメイン知識を頼りに手探りで提出することになります。

  • 状況が日々変化する
    一度いいモデルを作ったら終わりではなく、正解データが毎日増えるので仮説検証を繰り返すことになります。実際のデータサインエンスの業務もそんな感じなのでよい練習?になります。

  • 調整弁としての魔法石
    運営による確認作業がキャパを超えないように、配布する魔法石によって提出数を制限します。

  • 謎の戦略性がある

    • いいロジックを見つけても、採点結果が翌日に全体に公開されてしまうので真似されてしまうかもれません。一方で温存しておくと先に掘られるかもしれません。
    • わかりやすい迷惑電話番号は早期に掘り尽くされてしまいますが、後発組はリスクなく先発組の残した採点結果を利用できます。

元々は正解データの不足を補うための仕組みでしたが、状況が刻々と変わるゲーム性が高い新感覚コンペに仕上がりました。

なお、参加者に配るデータ内の電話番号は全てハッシュ化しています。 これはプライバシー上の配慮のほか、参加者が検索を行なって迷惑電話番号か確認する行為を防ぐ意味もあります。

開催の様子

コンペには様々な部署から社員61名が参加しました。 参加登録や現在のランキング表示はSlackのbot上で行いました。

提出の推移は以下の通りです。

毎日100件前後の投稿があり、最終日には300件の投稿がありました。3週間の期間で総投稿数は1300件を超えました。 そして、全体では252件の新たな迷惑電話番号を発見できました。

閉会式では入賞者にヒーローインタビューを行ってロジックを共有してもらいました。 仮説を立ててロジックを組む方、機械学習を駆使して解く方、ドメイン知識をフル活用して驚異の正答率を出す方など、非常に内容の濃い面白い内容でした。コンペの詳しい内容についてはまたどこかでご紹介できればと思います。

最後はちゃんとサービス終了のお知らせを出してコンペは終了しました。

終わりに

社内で分析コンペを開くと社内の集合知が使えるのはもちろん、テーマの背景業務に対する社内理解が広がる、育成に繋がるなど色々とよいことがあります。コンペを開きたいけど正解データが手元になくて困ってる方、本記事が参考となれば幸いです。

© NTT Communications Corporation 2014