たいむかぷせる2

何年か後に見なおして頭を抱えてくなるものたちのあつまり

リクルートホールディングスのインターンシップに参加しました

はじめに

リクルートでのインターンシップがようやく終了したのでそれのまとめです。職種はデータサイエンティストというやつで,以下の2つのコースに参加していました。

いちおう両方に参加していたというのと,なんだかんだ学びはたくさんあったので,ちょっとずつ書いていこうと思います。
なんかいっぱい書いてたら長くなってしまったので,主に「まとめ」というところだけ読むといいと思います。

サマーインターンシップ

サマーインターンシップは2週間の集中コースでした。データサイエンティスト職の学生が5-6人,これまた5-6チームくらいに別れて各タスクに取り組んでいきます。タスクは様々で,各グループ会社から与えられた案件をそれぞれ解く感じです。
2週間という比較的短い期間なので,どうしても「もっとやりたかった感」は出てしまうのですが,なんとか最終日までに仕上げて発表することができました。データ解析系のインターンでときどきある「データが整形されていてほとんどやることが決まっている」ということはなく,ある程度は整形されているけれど どうやって解析していって,どこをどう改善するか も学生側で自由に決められるのでよかったです。ただしあまり手取り足取り教えてもらえているというわけではなく,むしろほとんど野放しでした。
また,我々データサイエンティスト()が提案した施策の良し悪しを事業部の方々にヒアリングしたり,最終プレゼンテーションも彼らの前で行ったりと,かなりビジネス色もつよいものだったといえます。
ただしはたらく環境はかなりよく,あんまり毎日時間どおりに出社しろというのは求められませんでした。MacBookProとモニタが貸与されて,大きめの会議室を貸し切ってみんなでがりがりやる感じです。椅子がそんなにいいやつではないのでちょっと大変です。途中で用事があったら1日2日休んでもいいし,朝も何時に来てもいいので最高でした。お菓子とか飲み物もいっぱい置いてありました。日当はそれほど高くはありませんが,懇親会は銀座の高級店で🍣とか🍖とかを食べられます。

f:id:studio_graph:20180406003036j:plain

↑銀座の🍣すごくて,なんか1コずつ出てくる。

まとめ

  • 期間は2週間,5-6人で行う
  • 学生にかなり主導権がある,研修とかはほぼない
  • データサイエンスをがりがりやるというよりビジネスもする
  • はたらき方は自由

実践型 長期インターンシップ

サマーインターンシップ後,希望者は実践型の長期インターンシップに進むことができます。ぼくはサマーインターンシップで若干の心残りがあったので,少しテーマが似ているものを選ぶことにしました。インターンシップ自体はリクルートホールディングスのものですが,実際にはグループ会社に配属されてインターンシップをすることになります。そんなわけでぼくはリクルートライフスタイルの配属になりました。期間はだいたい2-3ヶ月くらいです。

待遇と環境

時給はかなりもらえて,リモートも可です。でもあとから書きますが出社はした方がいいです。13インチ,メモリ16GBのMacBookProが1台貸与されます(残念ながらJISキーでした)。出社するといちおう机もあります。ただし大きいサービスということもあって,データ分析基盤はかなり快適にきちんと整っているというわけではありませんでした。
契約上は業務委託ということになっていて,給与計算をするときに「じぶんが働いた時間」を勤怠つけると終了後にお金がもらえるという形です。結構もらえたのでiPad ProとかGoogle Homeとか色んなガジェットを買いました。

長期インターンシップならではのこと

長期インターンシップならではのこととして,じっくり分析に取り組める,ということがあると思います。じゃああれ試そうかとか,これ1回じっくり見てみようかとか,かなり色んな経験が積めたと思います。ただし数ヶ月で結果を出そうとすると実はなかなか忙しいです。またチームメンバーが必ずしも同時に出社しているわけではないので,どういう風にじぶんの分析を引き継ぐか,などもなかなか大変でした。
最初に「この数字をいい感じにデータサイエンスで改善してくれ!」みたいな課題が与えられるのですが,それは「実際に解けるかどうか」はわかっていない課題です。もちろん完全な無理難題が与えられるということはないのですが,適当にやっているとなかなか解けない課題だとは思います。普通に期間中は何度も暗礁に乗り上げたし,これ結局できんのかな…みたいに弱気になったことは何度もありました。
サマーインターンシップのときと同じく,それほど手厚く手取り足取りメンターの指導が受けられるというわけではありません。聞けば教えてくれますが,結構どうするかちゃんと探していかないといけないので結構大変でした。とはいえぼくのプロジェクトはなんだかんだうまくいったので,数ヶ月かけただけの達成感は得られました。じぶんたちでやり切ったぞ!という実感は心地のいいものです。本当によかった…。

まとめ

  • 2-3ヶ月,チームで行う
  • がっつりと時間をかけて分析できる
  • わりとふわっと課題が降ってくる
  • 学生に主導権があって好き勝手できるがたまに暗礁に乗り上げる
    • そのぶんうまくいくと達成感はある
  • 待遇はそこそこいいけど基盤はちょっと厳しい

学んだこと

いちおうはじめて「データサイエンティスト()」という肩書きで働いたので,長期と短期を通して学んだことを書いていこうと思います。

データサイエンスはお金稼ぎである

これはデータサイエンスというよりリクルートという会社の性質であるような気はしますが,常に「それがきちんと利益を生んでいるか」ということは求められます。アルゴリズムがイケていたり,思わぬ分析結果が得られたり,というのももちろん大事なのですが,それよりも利益の方が重視されているんだなという印象は持ちました。もちろんそのへんちゃんとしないとなかなか利益に結びつかないものでもあるのですが。

データは普通に汚い

普通にデータサイエンスをやっているとわかると思うのですが,生きているデータは普通に汚いです。インターンシップとかKaggleとかをやるとある程度データはクレンジングされているのですが,現場だとそうではありません。前処理とかテクニックとか,なかなか大学や教科書では学べない,現場感のあることができたのはよかったのかなと思っています。
また今回のインターンシップを通して「データ分析基盤」はものすごく大事であるとともに,作るのはすごく大変だなと思いました。データがあちこちにあったり,拾ってくるのに時間がかかったりするとなかなか思うように分析ができずストレスが溜まります。ちゃんとわかっている人がそのへんを整備することの大事さは痛感しました。データはただ「ある」だけでは意味がないんですね。

解ける問題に落とし込んでいくことが大事

我々は学生気分なので,とりあえず雑に分析して機械学習でドーンすればいけるでしょ!とか思ってしまうことも少なくはないのですが,実際にはそういうわけにもいきません。分析しても特に優位な差が出るわけではないですし,そもそもそこから機械学習に持っていくのも一苦労でした。なにがわかっていて,なにがわかっていないのか,どこまでは分析できて,どこからは予測しないといけないのか,そのためにどのデータが必要で,どのモデルを使用しないといけないのか,などなどですね。
あとは「現場でも必ずしも精度だけを向上させる必要はない」というのも大きな学びのひとつでした。たとえばアンサンブル学習を行うと必ず精度は上がりますが,予測にも時間がかかるし実際の施策に対してはそこまで有効ではないといったことも多いです。闇雲に精度だけを上げていくのではなく,ある程度のスピード感を持って進めていく方が大事,などもなかなかアカデミックでは学べないことかと思います。
けれどそういうプロセスをちゃんと経ていくうちに,これだったら解けるかも!というのが見つかってくるものです。それを実際に試すとなんだかんだうまくいくもので,そのときの喜びはひとしおでした。逆にそういうところをちゃんと設定していかないと,山ほどあるデータと分析手法に呑まれて,無駄にリソースばかり消費してなにも結果が得られない…ということになってしまいます。

見せ方は大事

これもかなり大きな学びのひとつですね。データサイエンスはデータサイエンスだけで完結するわけではなく(当たり前ですが),実際には企画職の人からお金を取ってきてもらったり,分析結果を施策に落とすときにエンジニア職の人に実装してもらったりしなければいけません。そういうときにちゃんと「見せる」ことはものすごく大事だなと思いました。
数字や数式,一見わかりやすそうなグラフを並べていても,実際そこまで意味があるわけではないんですね。どの数字がどう変わったかということ,それにはどれくらいのコストがかかったのかということ,そもそも解きたい課題はどれだったのかということ,あたりですね。ただ単に分析をして数字を上げればいいだけでなく,きちんと伝えることの大事さは痛感しました…。

リモートではたらくのはむずかしい

今回はじめてリモートワークで働いてみたのですが,やっぱりむずかしいですね。 これは以前もツイートしたのですが 「じぶんのやれることとやれないことをきちんと理解しつつ,ある程度ひとりで調べつつ作業を進められる人」じゃないと普通に出社した方がいい場合が多くて,学生だとそれできている人はぼくを含めてほぼいません。これは首都圏で働けるからこそだということは理解しつつ,普通に出社した方がいい場合が多いなと思いました(少なくともぼくは)。ちゃんと詳しい人にときどき聞きながらの方がいいです。
また,今回はチームメンバーもリモートだったので,情報の共有はかなり大変でした。GitHubにissueいっぱい立てて,SQLと分析結果を貼る,場合によってはJupyter Notebookも,というのを思いついてなんとかしてはいました。しかしながらお互いにDMは何度も送信したし,結局対面の方がいいよねと言って集まったのも何度もあります。リモートワークでチーム開発,かなりむずかしいです。

やっぱりコードが書きたい

これはじぶん自身に対する発見というところなのですが,やっぱりコードを書いているのも楽しい人間なんだな,というところは実感できました。もちろんJupyterでコーディングはするのですが,なかなか切羽詰まってきてよくないコードを量産してしまいましたし,周りのいわゆる「データサイエンティスト」はそれほどコードが書ける人たちというわけでもありませんでした。でもじぶんはやっぱりコードレビューを受けたいし,周りのコードレビューもしたいんですね。そのへんのことがわかったのも大きかったのかなと思っています。
もちろんデータ分析や機械学習も楽しいので,データサイエンティストとしてそのへんばっかりするだけではなく,きちんとコーディングもしていきたいな,ということを思いました。

まとめ

ちなみに今回ディープラーニングはまったく使いませんでした。XGBoostはいいぞ。

  • データサイエンスとはいえお金は稼がないといけない
  • データは普通に汚い
    • 腕力でエイヤっとやらなければいけないときもある
  • 解ける問題に落とし込んでいくことが大事
  • 見せ方は大事
    • みんなデータサイエンティストではない
  • リモートではたらくのはむずかしい
  • やっぱりコードが書きたい

さいごに

これだとただの感想なので,どんな人にオススメするかというのを書いておこうと思います。ちなみにチームメンバーはみんな優秀でした。

  • こんなことやりたい人にオススメ
    • 好き勝手やりたい人
    • 実際のデータを使ってデータ解析したい人
    • データ解析を使ってビジネスっぽいこともしたい人
    • 有名サービスで大量のデータを使ってデータ解析したい人(キレイであるとは言ってない)
  • こんな人には向いてない
    • 手取り足取り教えてほしい人
    • 最新の手法を使って研究っぽいことがやりたい人
    • ディープラーニングしたい人
    • がっつりコードを書きたい人

終わりだよ〜