入社1年目の話(受託分析編)
昨年、僕の崇拝する先輩@nino_piraさんがデータサイエンティスト見習い 新卒1年目が終わると題したブログを書いてくださいました。
外部発信が難しい受託分析という業界において、1年目の社員がどんな日常を送ったのかを知れるとても素晴らしい記事だと思いました。
ちなみに先日新卒2年目が終わったらしく下町データサイエンティスト 新卒2年目が終わるという、またまた素晴らしいブログを書いておられますのでこちらも是非。
はじめに
挨拶が遅くなりました、株式会社ブレインパッドにてデータサイエンティストをしております佐藤由将(さとうゆうすけ)と言います。
今回は2019年度に新卒社員として入社した佐藤が新卒1年目を振り返ってみようと思います。(ちなみに「入社1年目の〜」という始まりは 岩瀬大輔さんの著書 入社1年目の教科書から拝借しました。)
受託分析会社という都合上、クライアント名はもちろん詳細な分析の話はできませんが、1年目のデータサイエンティストが何をしていたのか、ふわっと感じてもらえ興味を持っていたただければ嬉しいです。
また、弊社が請け負う受託分析としては常駐型と非常駐型があるのですが、僕はこの1年間については非常駐型PJのみのアサインでしたので、常駐型分析についての体験は記載できませんので悪しからず。
全体感
率直に言って僕はこの会社に入って良かったと思います。昨年@nino_piraさんも同様のことをおっしゃっていましたが、僕もそう思う1人です。
弊社に入社した人の多くが「色々な分析経験を積みたい」という志望を抱いています。もちろんそのほかの理由の方もいると思いますが、僕もそんな志望理由を持って入社いたしました。
では実際にできるのか?という問いが浮かぶと思いますが、それに対する答えとしてはYESと言いたいです。そう思うのも実際にこの1年間は案件での学びが多かったからです。 1年目でこういう経験をしたからこそ、この先もこの会社で「色々な分析経験を積めそう」と思うのです。
いいところ
働く環境
僕は普段データサイエンティストやエンジニアなどの技術職が在籍する白金台本社で勤務をしています。(昨年10月からビジネス職がメインで在籍する目黒オフィスも稼働しています)
白金台はほどほどの都会感・高級感・静けさのバランスが絶妙で好きです。オフィスも駅の目の前で、通勤時間帯もそこまで混雑しないのでストレスなく通勤しています。そしてコアタイム11:00~16:00のフレックスタイム制があり、勤務時間を柔軟に調整できるのも良いポイントです。
働く姿としては基本的には服装自由なので常識範囲のスタイルであれば何も困ることはありません。ただし、クライアント先に往訪時はスーツorビジカジ程度にフォーマルなスタイルです。たまにカッチリな場面があるのも僕は好きです。会社の貸与PCもWindowsとmacで選べますし、申請が必要ですが僕は自席にモニター2台使用していて作業環境も申し分ないです。
学び/成長の機会
弊社では沢山の勉強会が開催されています。例えば新卒1年目のデータサイエンティストは1年間指定書籍を勉強する取り組みがあります。これは分析業務を行う上で必要な知識レベルを揃えるということを目的にしていて、微積・線形代数、統計学基礎、多変量解析、機械学習、時系列分析、最適化の6テーマを読んでいきます。
その他にも有志で行なっている勉強会がたくさんあり、その理由としてはやはり学ぶ習慣が定着している人が多くいるからだと思います。またスキル習得のために1人あたり年間12万まで補助する制度があり、個人や組織の成長を後押しくれる環境が整っています。
人
ブレインパッドに入社してから人間関係で困ることは一度もないです。そのぐらいいい人で溢れています。それに加えて優秀な人が多いです。優秀というのは仕事ができるのはもちろん、数学に強い人、ビジネスに強い人、深層学習に強い人、最適化に強い人…といったように個々人のスキルの優秀さと多様性の幅がすごいです。わからないこと困っていることがあれば、大抵のことは社内の人が知っています。すごい環境だと思います。
2019年4月~6月:新卒研修
弊社に入社した新卒社員がまず取り組むのは3ヶ月の研修期間となっています。初めの2ヶ月間はビジネス研修、エンジニアング研修、データサイエンス研修といった流れで業務に必要な基礎知識を学びます。
この期間の研修は職種問わず共通でして、ビジネス職の人でもSQLやPythonを書いたり、分析基礎で沢山の数式を見たりするあたりはさすがデータ分析の会社だなという点でした。
ちなみに僕は学生時代にコード管理から目を背けていた代償としてgit研修、kaggleに登録して早n年放置し続けた代償として分析演習に苦戦しました(笑)。分析演習は下記のブログの通り、担当してくださった@marupippi22さんが演習を少しでもエキサイティングにしようとkaggle風のleaderboardをお手製するというこだわりっぷり。本当にいい研修でした、ありがとうございました。
ここには紹介しきれない各研修の詳細については、僕と同期で入社した@mss_kidくんがブログにまとめてくれたのでこちらも是非読んでみてください!
また、研修に使用した一部の資料についてはOpenBPという外部への情報発信プロジェクトにて閲覧できるのでこちらも必見です!!
さて、3ヶ月間に渡る研修の最後1ヶ月間はチームに分かれて仮想PJを行います。毎年テーマは変わりますが、この年は「自社ツールに蓄積されたログデータを使い、クライアントのウェブ上でユーザ体験を向上させる施策を提案する」といったテーマでした。
なかなか難しそうなテーマですが、こういうふわっとしたテーマから課題把握、目的設定、分析設計を踏まえてPJに落とし込む能力はデータサイエンティストとしても必要な能力であると思いました。実際に仮想PJを進めていく中で大事だなと思ったいくつかのポイントを書いてみます。
1. 分析設計
実際ここに多くの時間を費やしたと思います。クライアントのビジネスモデルやサイトの仕様を調査し現状整理、クライアントが抱く課題感の把握。この点はコンサル寄りなスキルが必要な気がしました。
もう1つはデータから何ができるかを正しく判断すること。高度な分析やモデリングをしたい気持ちをぐっと堪えて、提供データを理解し実現可能な分析を考えること。その上でUUや売上インパクトの視点からビジネス的にも価値のある分析を見出す。実際に手を動かすまでに相当頭を使いました。
2. 先輩をうまく使う
この研修では各チームに先輩社員が2人アドバイザーとしてつくことになっています。毎日1時間のMTGを設定させていただけるので、進捗や方針についてレビューをいただける貴重な時間となっています。
この時間をどう使うかも各チームで分かれるので面白いポイントです。僕らのチームは特に困っていることがなくても毎日進捗共有することを徹底し、共有せずに気付いたときには手遅れということだけは避けるようにしました。いい意味で先輩を使うことを徹底したという感じです。今となっては実案件でも中間報告、最終報告だけだとクライアントとして不安になるのも一緒だなと感じます。
3. タスク管理
1ヶ月間3人でPJを進めていくのでスケジュール管理やタスク管理も重要なポイントでした。クライアントコミュニケーションやMTG用の資料作成など、分析以外のタスクも頻繁に発生するので都度最適な割り振りが鍵を握ります。分析タスクにおいても次のマイルストンまでに必要なタスクの洗い出し、優先度の設定、作業者の割り振りなど、PJ管理能力が問われる経験でした。
2019年7月~9月:画像深層学習
3ヶ月の研修期間を経て、待ちに待った初案件でした。6月下旬ごろにあった配属面談で「画像とか非構造データを扱ってみたいです」と明言しました。今思えば画像データはほぼ触ったことなく、深層学習もバリバリやってたわけでもないのによくアサインしてもらえたなと思います(笑)。
実状としては入社して初めての案件なので無償稼働、いわゆるOJTという形でのスタートとなります。メンバーはPM@yutatatatataさん、メンバー@nino_piraさん、OJT佐藤という構成です。個人的に最初の案件は特段学びが多いし、思い入れも深かったなと思います。
案件の進め方
研修で諸々学んだし大丈夫!と思っていても実際の案件は多少勝手が違う。最初の案件で案件の進め方を掴めたのは自分にとって大きな財産となっています。それも案件開始前のキャッチアップ期間に以下にあげるものをハンズオン形式で沢山教えていただいたおかげです。
・朝会のやり方
・WBS・タスク管理
・git・PRの出し方
・GPGPU環境
・Docker
・tmux
研修では時間的制約もあり全内容を網羅できないのは仕方ないことなので、ありがたみを感じた自分からしっかり後輩たちに還元できたらなと思います。
深層学習による不良品検知
この案件は画像データから不良品を検知したいというタスクでした。前Phaseで検知できていない不良を検知できるようにすることが目標で、僕の役割としてはモデルの学習前に行う前処理を工夫することで検知可能にすることでした。OpenCVによる画像処理を駆使していくつかの前処理を試したもののなかなか精度が出ず苦戦しました。最終的には現状の画像では今の精度が限界であるという結論になり、画像案件における撮像環境の大切さを学んだ案件でした。
また、不良品検知タスクでは何を不良とするか、何を精度目標とするかの評価設計の大切さも身に沁みました。これをしないと何を当てたら終わりなのかに悩み続けることになります。
ドキュメント文化
この案件では、かなりドキュメントを書いたと思います。案件テーマとしても多くの実験を回すことになるので、結果共有や実験管理の面でも大事なことでした。一緒に働いた先輩方が意識していたドキュメント文化の徹底は今の仕事でもしっかり身についています。
2019年8月:ミシュラン1つ星体験
少し箸休めで白金台でのランチを紹介しようと思います。ご紹介するのはルカンケというお店です。プラチナ通りから一本入った路地にある小さな一軒家フレンチレストラン。ミシュランガイド東京2015~2020にて6年連続で一つ星を獲得している名店です。
とはいえ、毎日こんな高級ランチなわけではなく、今回は部署で行なっているチーム活動のキックオフランチで行ったかなりスペシャルなランチをご紹介します。(普段はもっぱらコンビニです。)いわゆる会社のお金でいただいたありがたいランチです。
今回は事前にランチコースを予約して来店しました。メニューから早速衝撃を受けました、1品目から「小石と葉」という斬新っぷりです。さすがミシュランです。
1品目 小石と葉。食べれる小石と葉を見つけてみてください。ちなみに勤務中なので飲み物はノンアルです。
2品目 フォアグラのアイスクリーム。2品目からアイスです。
3品目 とうもろこしのスープ。受け皿が大きいです。
4品目 鱧 / 焼きなす / しそ。大きなお皿にちょこんと乗っています。
5品目 鮮魚 / 夏野菜 / エビ。夏らしく爽やかな一品です。
6品目 牛ハラミ / グリーンカール / リヨネーズ。メインディッシュでもどこか繊細さが残ります。
7品目 マンゴー / 桃 / ヨーグルト。デザートまで手を抜きません。
いかかでしたか?こんなランチにチーム活動で行けるなんて最高です。
2019年9月:meetup参加
この時期は初めてmeetupというものに参加してみました。行けたものは少ないのですが、1つ目はなんでデータサイエンティストやってるの? 〜 思い描いていた自分を思い出すために。 vol.4です。
通称なんDと呼ばれるイベントのデータサイエンティスト版です。弊社先輩社員である@yutatatatataさん発信で開催されたイベントで、5人の先輩データサイエンティストの方々がデータサイエンティストをやっている内発的動機について話すというものでした。
参加してみて感じたのは、第一線で活躍している皆さんは共通してデータサイエンティストの仕事を楽しんでいることでした。シンプルですが大事だなと思います。それに加えて自分にしかできないことを見つけて自分なりの道を切り開いているとも感じました。マスクドさんの言葉を引用するなら「獣神サンダーライガーのように自分で切り開くべし」ですね。
2つ目はData Gateway Talk vol.3に参加しました。
こちらは弊社先輩社員の@nino_piraさん、@yucho147さんが主催されているイベント。データサイエンティストの登竜門(Gateway to Success) となることを目指した勉強会でしてコンセプトが素晴らしいと思います。個人的なハイライトはこちらをご参照ください。
弊社先輩社員は非常に多くの勉強会やMeetupを主催されているなと思います。知っている範囲だけでもかなりあります。こうしたイベントは勉強としての位置付けはもちろん会社のブランディング、時には採用にも繋がるので非常に大事だなと思います。
2019年10月:同期LT会始動
この時点で研修を終えてから3ヶ月ほど経ちました。それぞれが案件に配属され、日々の業務でコミュニケーションをとる機会が少なくなってきた時期でもありました。
自分がOJTでそうだったように、同期の各々が経験した案件での学びや苦労話、ぶっちゃけ話などをせっかくなら同期内でシェアした方がいいなと思いLT会を企画しました。冒頭にも書きましたが弊社の案件には常駐型案件もあり、常駐先での話をなかなか聞くことができないのが実情です。純粋な近況報告の面に加えて知見共有の意味でも開催してよかったなと思います。
とまあ、こんな感じで月に1度はみんなで集まってLT会をしたり、業務とは関係ないですが隔月ぐらいの頻度で外国の料理を食べに行ったりと同期仲良く過ごしています(笑)。
2019年10月~12月:因果推論
この案件は僕にとって人生初の有償稼働となります。 テーマは因果推論、OJTとはまたガラッとテーマが変わりました。それまで因果推論については全く知りませんでしたが、キャッチアップ期間で勉強しました。中でも@nino_piraさんのブログは理論編、実装編ともに超わかりやすいのでオススメです。
やってみての感想を一言で言うと難しいなです。因果推論の枠組みでは正しく効果を測定するために、考えうるあらゆる要因を準備するわけですが、圧倒的にドメイン知識が必要な作業です。当然クライアントとの擦り合わせで調整していくことになります。また因果推論から得られる結果の解釈も基本的にはドメイン知識がないと、その結果が妥当かどうか判断がつきません。あらゆる面でドメイン知識が必要な分析でして受託分析が故の難しさを実感しました。
これで終わってもいいのですが、僕にとってはもう1つの面で非常に学びの多い案件でした。顧客折衝です。
受託分析は不確実性で溢れている仕事だと思うのです。期待通りの分析結果が出るかわからないという不確実性、コミュニケーションの不確実性、クライアントの立場に立てば我々の分析技術に対しても不確実性を抱くと思います。そんな状況でも、不確実性を減らしていく術をこの案件のPMから学びました。
特に非常駐案件にも関わらずPM自ら半常駐スタイルで案件を進めることによる効果は凄まじかったです。
まず、半常駐することでコミュニケーションコストが格段に減ります。分析方針や細かいデータの話も隣ですぐに聞けるぐらいの状況だったそうです。
また、作業状況が鮮明になることも大きいです。非常駐案件はクライアントからしたら、決して安くない金額を払っているにも関わらず、進捗状況が伝わりづらくなる面があるので不安になるのは当然です。その反面、常駐スタイルでは作業画面を見せながら進捗共有できるのでそういった不安も解消できます。
この案件がスムーズに進行した要素としては本当に顧客折衝の面が大きかったと実感しています。弊社には本当に多才なデータサイエンティストがいるなと思います。この他にも沢山書きたいことがあるのですが、手っ取り早くはこちらの回の白金鉱業.fmを聞いてみてください!!個人的推し回です。
2020年1月~2月:需要予測
こちらは因果推論と同じクライアント様のデータで別テーマの分析。Phaseを区切り、同じデータで違うテーマをやることもあります。ざっくりいうと各月の売上を予測するタスクでしてLightGBMでモデリングしました。
今までkaggleライクなモデリングやテクニックに疎かったので非常に勉強になりましたし、少しkaggleの楽しさ?がわかった気がします。
その他にもPJ期間が短い時の進め方、データ期間が短い&イレギュラーなイベントによって予測困難など、この案件でも沢山学びがありました。
2020年2月:初評価と肉
再び箸休めコーナーを入れさせていただきます。この月は入社後初めての評価ということもあり、胸中ドキドキで過ごしていました。昇給の祝杯を上げるべく、仲良くさせていただいている先輩と同期でうまうまな肉を食べに行きました。また半年頑張れます。
2020年3月~:再びの因果推論
そろそろ時系列が現実に追いついてきました。実は先ほどの因果推論案件は現在も継続してやらせていただいてます。
前回の分析から半年近くが経過し、僕自身は分析内容も一度経験したものがベースとなるので、分析設計やタスク管理などを少しだけ任せていただけることになりました。一部のテーマについては分析部分も佐藤がメインでやることになり、1人の分析者として完遂できる能力が求められると感じています。(現在進行形で不安です。)
既に学びあり反省ありの日々でここで諸々書いてもいいのですが、年度も跨ぐ案件なので続きは新卒2年目が終わる頃に書こうと思います。(サラッと来年も書く宣言)
その他
完全プライベートの話としては今年の2月に25年間住んだ実家から脱出しました。なんとなく去年の12月頭ぐらいから考え出して、2週間ぐらいでサラッと決めてしまいましたが一人暮らしを始めて良かったと思います。今はウイルスのせいで母親が毎日心配してますが(笑)。1人の人間としても成長しなければ〜。
おわりに、そして2年目へ〜
いかがでしたでしょうか。
受託分析企業に新卒入社した佐藤の入社1年目を振り返ってみました。(全体的に弊社社員のブログ等の宣伝が多くなってしまいましたが)
冒頭に書いた通り案件での学びが多かった1年間だと思います。分析面で言うとテーブルデータと画像データを扱い、分析としても3種類経験し、手を動かす時間が多かったので満足度は高いです。
それに加えてPMの考え方や具体的なアクションを目の当たりにしたことで、PM視点で考えることを意識した1年でもありました。
1人前の分析者としてまだまだ道のりは長いですが2年目も頑張っていこうかと思います。ではでは。