こんにちは。
株式会社ハイマックスの平田と申します。
弊社は主にB2Bで基幹システムや業務システムといったレガシーなシステムの開発・保守をやっているSIerで、データ分析や機械学習とはほぼ無縁でしたが、最近転機が訪れ、データ分析案件の受注に至りました。
転機というのはタイトルの通り、私がKaggle Masterになったことです。
転職や異動でシステムエンジニアからデータサイエンティストになるというケースはちらほら見かけますが、ゼロからデータ分析案件を受注したというケースはまだ珍しいんじゃないでしょうか。
この記事は、弊社がデータ分析案件を受注するまでの軌跡を記すものです。
何方かのKaggleにチャレンジするきっかけになれば幸いです。
データ分析面白そう!
きっかけは数年前にデータサイエンティストという職業があると知ったことです。
データからこれまで知らなかった新しい何かを発見するって、なんだか謎解きみたいで面白そうじゃないですか。
当時はこんな感じで漠然としてましたが、すごく魅力的で、自分もデータ分析を仕事にしてみたいと思いました。
とはいえビジネスとして成立しないと仕事にならないので、「レガシーなシステム開発はなくならないが拡大が見込めない市場であり、今後DXをキーワードにしたユーザ企業のIT投資動向の変化に備えて、中でも注目度の高いデータ分析の技術を獲得する」とか「AI技術を導入した自社サービスを開発し、人月商売よりもスケーラブルな事業に着手する」とか建前目標を掲げ、今の仕事にデータ分析を取り入れる活動を始めました。
Kaggleとの出会い
データ分析を仕事にしようとする者なら誰しもが辿り着くであろうTJO氏のブログ、多分に漏れず私も辿り着きまして、そこには次のように書かれていました。
僕が知る限り、未経験者が「実務経験」もしくはそれにほぼイコールであるとアピールし得るものとして、最も手っ取り早いのは「Kaggleなどデータ分析(機械学習)コンペで上位入賞すること」です。1
それで色々調べて、
「なるほど、よしKaggleやろう!」
とはならずにまあまあ落ち着けよと当時の自分を宥めたものです。だって自分が世界のデータサイエンティストと競うなんて、ましてや上位入賞するなんて夢にも思わないじゃないですか。
でも今にしてみれば、競技であるという認識が私の中でハードルを上げていたように思います。
やってみるとわかるのですが、Kaggleって純粋な競技っていうよりはもっとオープンなコミュニティで、別に上位目指さなくても勉強になるんですよね。
なので似たような心境で今一歩を踏み出せずにいる人は、まずは始めてみるのが良いと思います。
幸い、今はブログや書籍でKaggleの始め方を紹介している方がたくさんいらっしゃるので。
まあ兎にも角にも、TJO氏のブログによってKaggleの存在を知りつつも、当時の私はKaggleに対して「あーそんな世界もあるんだなー(遠い目)」くらいにしか思わなかったわけで、でもこの時からKaggleというものが「いつか行ってみたい世界」として頭の片隅に居座り続けていました。
データ分析コンペの面白さ、仲間との出会い
ある日、「データサイエンティスト養成講座 開催のお知らせ」と書かれた1通のメルマガが届きました。
普段ならゴミ箱へスルーパスですが、このときはなぜか目に留まりました。きっと何かに飢えていたんだと思います。
蓋を開けると、Deep Analytics(現SIGNATE)という本邦版Kaggleの練習問題を使ったワークショップで、隔週全8回で8万円とのこと2。これくらいなら会社から出してもらえるのでは?そう考えて上長に相談したらすんなりOK。当時は先着順だったので事前に会員登録を済ませ12時5秒前からCtrl+R連打で待機、アクティブになった購入ボタンをすかさずクリックして無事ゲットしました。ちなみに数分後再訪したら完売してたのでやっぱり善は急げです。
そんなわけで一般社団法人データサイエンティスト協会が主催するデータサイエンティスト養成講座3を受講してきました。
で、どうだったかというと、めちゃくちゃ面白かったんですよ。
講座が、というかコンペが。
理由は次の3つです。
- 自分の成長がスコアという形で可視化されます。SIerってコストと納期と品質くらいでしか評価されないので、個人の能力を評価してもらえるってすごく嬉しいことなんですよね。
- 自分の技術をすべてぶつけ、磨き、そこから新たな技術を錬成し、またぶつけることができます。普段仕事をしていて「自分の持てる技術のすべてを出し切る」ってなくないですか?
- 同じ問題を解いている他の受講生とアプローチを共有して、議論して、思考して、試行して、また共有できます。このフィードバックループ、めちゃくちゃ成長します。
そして講座修了後、もっと学びたいと思いました。
そんな折にコンペ部という講座修了生のコミュニティを紹介されました。
コンペ部というのはその名の通り、みんなでKaggleをやろうというコミュニティです。
同じ目標を持った仲間と作るフィードバックループが自身の成長を加速させると知っていた私は、迷うことなくコンペ部への入部を決めました。
Kaggleとの再会、Masterになるまで
コンペ部に入部してさっそくKaggleを始めることになりました。
でもKaggle Masterまでの道のりは私の文章力ではあんまり面白そうに書けなかったので、結果から書かせてください。
もらったメダル
# | コンペ | メダル |
---|---|---|
1 | Home Credit Default Risk | チーム銀 |
2 | Quora Insincere Questions Classification | ソロ銀 |
3 | Google Analytics Customer Revenue Prediction | チーム金 |
一応Kaggleのプロフィールも載せておきます。
この3つのコンペに取り組んでる間は1日ずっとKaggleやってました。それくらい夢中だったんです。
朝4時くらいに起きてKaggleやって通勤中もスマホでKaggleやって仕事中も休憩時間もKaggleやって、とてつもない数の特徴量を作ったり、様々なモデルを試したりしました。
正直なところ、運の要素も大きかったと感じてますが、どのコンペもメダルをもらえた時は本当に嬉しかったです。
特に金メダルは4位でMaster昇格が確定した瞬間でもあったので、めちゃくちゃ感動しました。(←感情表現下手)
コンペ部部長からこのLINEが届いた瞬間は今でも忘れません。
まあちょっと色々あった4コンペで、sample_submission_v2.csv
を投稿するだけで銀メダルがもらえるとも言われてました5が、金メダルは金メダルということで…。
メダルをもらえた理由
- チームで作戦会議・役割分担・アンサンブルできたからだと思います。どのコンペに参加するかも含めてKaggleについて右も左もわからない状態でしたから、チームは非常に心強かったですし、とても学びが多くコンペの中で自分が成長していくのを実感できました。
- Cross-Validation(CV)ちゃんとやってたからだと思います。CVだけは公開されてるKernel(現Notebook)を使わず、分割方法をチームで相談して決めてました。それでPublic ScoreとPrivate Scoreの乖離が少なかったのだと思います。Home CreditもQuoraも結構shakeしましたからね…。
余談
流石に仕事でKaggleだけやってるわけにはいかず、裏で研究開発やってました。
いや、ほんとは表裏逆ですが。
研究開発というのは詰まるところ、自社のデータを活用して何か作ろうということなのですが、これには致命的な問題があります。
SIerの主たる業務であるシステム開発をデータ活用によって改善しようと思っても、扱うデータのほとんどが顧客の資産なので、NDAを締結してる以上データが使えないのです。
なんとか活用して意味のありそうなデータを見つけて計画書を作り主管部門と交渉し社内決裁を取り開発用のセキュリティルームを設置して動くモノを作りましたが、使い物にならず残念な結果に終わりました。
研究開発としてはその他こんなことをやってました。
こっちは今でも社内で使われているようです。
データ分析案件の受注
さて晴れてKaggle MasterになったことでTJO氏のブログが頭を過ります。
僕が知る限り、未経験者が「実務経験」もしくはそれにほぼイコールであるとアピールし得るものとして、最も手っ取り早いのは「Kaggleなどデータ分析(機械学習)コンペで上位入賞すること」です。
これはもしかして「実務経験」とほぼイコールの実績としてアピールし得るのでは…?
そしてある日、弊社営業が自社のデータ分析関連の取り組みを顧客に紹介したいというので、Kaggleと研究開発の実績を前面に押し出して資料を作成しました。
ありがたいことに顧客からは(特にKaggleの実績が)高評価で、顧客もデータ分析人材の調達に苦戦しているとのことで、ぜひ来てほしいと言っていただけました。
このあとは結構とんとん拍子に案件として受注することが決まったと記憶しています。
そんなわけで現在はこの顧客企業でデータサイエンティスト6として従事していて、データ分析の実務経験を積ませていただいてます。
Kaggle Masterの名に恥じない付加価値を提供できるよう、日々精進する所存です7。
また、今後は事業としてスケールさせることも考えないといけないので、もしデータ分析業務を委託していただける企業様がいらっしゃいましたら、ぜひご相談ください(小声)
まとめ
- コンペ面白い。
- 仲間大事。
- Kaggleから仕事につながることもあるよ。
終わり
ここまで読んでくださってありがとうございます。
それにしても自分の考えをアウトプットするというのは想像以上に大変ですね…。
最後に思うことを少し書いておきます。
思ってたんとちがう
データサイエンティストというロールを与えられてから時々、「これが自分のやりたかった仕事だろうか?」と考えることがあります。
あまり詳しくは書けないですが、観察データしかないからって因果関係を考慮せずに機械学習が使われたり、「じゃあせめて因果推論のためにちゃんとA/Bテストやりましょう」という進言に対して運用上無理だからって何を比較するのかその結果から何を言うつもりなのかよくわからないテストが計画されたり、凡そ科学的根拠に乏しい意思決定が為される現場に何度か立ち会いました。
結果としてサイエンスよりもエンジニアリングの要素が重視されているような気がして、肩透かしを食らっている状況です。
まあそれだけなら単に私の理想と現実にギャップがあったというだけの話なのですが、Twitterなんかを見ていると、どうやらこうした状況は珍しいことではないようです。
サイエンスとエンジニアリングについて
ここでサイエンスとエンジニアリングの違いについてニコニコ大百科で調べてみると、
科学とは、個人や集団が物事を研究・調査・開発などをする事によって得られる情報の事。またそれを研究する事そのもの。広義と狭義では意味の使われ方が違い、英単語のサイエンス(science)の和訳としても使われる。
工学とは、人間社会に役に立つ技術的な何かである。「不可能を可能にする学問」とする人もいる。
とあり、サイエンスとエンジニアリングの決定的な違いは「社会の役に立つことを目標とするかどうか」であると言えそうです。
サイエンスってダイヤの原石を発見するようなもので、エンジニアリングによって磨かれることで付加価値を生むようになると思うんですよね。エンジニアリングだけだと実は石炭を磨いてたりするかもしれません。
データサイエンティストって字面だけだとサイエンス寄りに見えるんですが、少なくとも企業に勤めるデータサイエンティストはビジネスへのコントリビューションを求められていてエンジニアリングも必要です。
ちなみにサイエンスとエンジニアリング、それぞれを別々に司る2人がいるではうまくいかないと思っていて、Innovative City Forum 2014のキーノートセッション8で伊藤穣一氏もそれっぽいことを言ってます。
ArtistとDesignerの違いは何か。Artistは世の中の役に立ってはいけない。Designerはどこかで世の中の役に立ってないといけない。ScientistとEngineerの違いも同じ。この4人が同じ部屋に入っても喧嘩が起きるだけ。イノベーションを起こすには1人の頭の中にこの4つが必要。
例えば、携帯電話を一生懸命に作ってもiPhoneは生まれない。あれはアートなのだ。
イノベーションとまではいかないですがデータ分析によって付加価値を生みたいなら、サイエンスとエンジニアリングのバランスが重要なんだと思います。
ここにアートとデザインが加わればイノベーションにも手が届くかもしれません。
どうなりたいか
データサイエンティストにはサイエンスもエンジニアリングも必要というのは所謂Will・Can・Must9のMustで、最後に自身のWillを記しておきます。
ここに来て稚拙な表現で恐縮ですが、私はやっぱり面白いことをやりたいです。
それは冒頭にも書いた、データからこれまで知らなかった新しい何かを発見するということです。
まあそんなものは都市伝説だという可能性もありますが、私はデータサイエンティストになってまだ日が浅いので、もう少し模索するつもりです。
あと、何かを発見しても1人だとアレなので、喜んでくれる人にその発見をシェアしたいですよね。
それが社会の役に立つってことだと思います。
サイエンスによって新しい何かを発見し、エンジニアリングによって役に立つ形にする。そんなデータサイエンティストに、
なれたらいいなぁ…(遠い目)
それでは皆さん本年もよろしくお願いいたします。
-
https://www.datascientist.or.jp/common/docs/flyer-ds.training.program.pdf ↩
-
まあデータサイエンティスト養成講座というよりは機械学習エンジニア養成講座という気がしないでもないですが。 ↩
-
https://www.kaggle.com/c/ga-customer-revenue-prediction/discussion/68353 ↩
-
Kaggle Days Tokyo 2019で紹介されてました。 ↩
-
弊社にデータサイエンティストという肩書はないので名乗るときはシステムエンジニアですが。 ↩
-
ただどう考えても協力会社の中で弊社の社名は浮いていて、周りの人達はみんな私の倍の年収もらってるんじゃないかと思ってます。 ↩