株式会社マイクロアドを退職して株式会社Gunosyに入社しました

タイトルのとおりですが、2019年10月31日に株式会社マイクロアドを退職して、2019年11月1日に株式会社Gunosyに入社しました。

転職して1ヶ月が経ち退職(転職)エントリとしては今更感がありますが、転職時の考えを文書化しておいていつでも振り返られるようにしておくための自己満に近い内容です。

なぜ転職するのか

 マイクロアドで何をしてたのか

マイクロアドには、2018年3月に入社しました。元々新卒で2017年4月に就職した際にあまりの世間知らず故に、電話とメールとエクセルと印鑑貰い業と飲み会しかやらない会社に入ってしまい社会に絶望しているなかで、何かと拾ってもらったのがマイクロアドでした。

マイクロアドにはデータサイエンティストという職種として入社しました。ちゃんとした開発の経験もない中で、修士まで機械学習の研究をしていたことで何とか採用してもらいました。(今は機械学習エンジニアという職種になっています)

最初のころは、社内で飛び交っている技術的な単語がほとんど分からず全く話についていけませんでしたが、ちょっとずつ勉強して慣れていき、機械学習を使った機能開発として成果を出すこともできるようになっていきました。

主に担当していたのは、ディスプレイ広告のプラットフォームにおけるCTR (Click Through Rate) 予測・CVR (Conversion Rate) 予測、Webサイトのカテゴライズとキーワード抽出あたりです。

また、仕事の内容についてWebDB Forumで発表させてもらったり、社内では中途新人賞という1年間で入社した中途社員の中のMVPみたいな賞もいただきました。そして1年が経ったあたりからは機械学習チームのリーダーとしても仕事をさせてもらいました。

speakerdeck.com

そしてなぜ転職か

マイクロアドではそこそこ充実した仕事をさせてもらいましたが、以下のような不安がありました。

  • 機械学習システムにおける一部のコンポーネントしか出来るようになっていない
  • 社内での評価と一般的な評価が一致していないのではないか
  • キャリアのロールモデルがいない

それぞれの項目が独立しているわけではなく関連する部分も多いのですが、それぞれについて説明します。おそらくですが、機械学習エンジニアという職種がまだまだ成熟していないことが根本的な原因です。

機械学習システムにおける一部のコンポーネントしか出来るようになっていない

以下は、機械学習の実サービスへの適用に携わっている人なら誰でも見たことがあるであろう図です。Googleが発表した Hidden Technical Debt in Machine Learning Systems という論文に記載されています。

機械学習のシステムにおいて、実際に機械学習を行うコードの部分は極一部でその周辺のコンポーネントの方が多いということを説明しています。実際、機械学習のシステムを動かすためには学習処理以外に、学習用データのためのETL・特徴量生成・モデルのAPIとしてのサービング・処理のワークフロー作成・推論性能のモニタリング・諸々のインフラ構築などが必要でしょう。

f:id:pompom168:20191130213954p:plain

基本的には、特徴量生成と学習以外の部分はアプリケーション/インフラエンジニアの方々にメインではお願いする方針を取っていました。これはチーム内にそもそもシステム開発の知見があまりなく、安定的な運用のためには他のエンジニアに任せたほうが良いという判断でした。

マイクロアドでは割と昔からデータの活用には力を入れていましたが、それはデータ分析としての活用でした。

私は、データ分析と機械学習で必要なスキルは全く違うと思っています*1。機械学習エンジニアとデータサイエンティスト/データマイニングエンジニア/データアナリスト(ここの名前も統一されていって欲しいですね)は職種として別れていた方が健全だと思います。

社内での評価と一般的な評価が一致していないのではないか

上で説明したように、少なくとも業務としては機械学習システムにおける特徴量生成・学習以外の経験はほとんどなく、胸を張ってエンジニアとは言えないスキルセットだと思っていました。しかし社内での評価が想像以上に上がってしまい、このままでは井の中の蛙になってしまうという危機感がありました。

キャリアのロールモデルがいない

これも先に説明したように、マイクロアドでは伝統的にデータ分析がメインであったことと、自分はチームリーダーになったこともあるように、機械学習エンジニアとしてのロールモデルがいませんでした。むしろ、チームリーダーとして自分がメンバーに対してロールモデルになるべき存在になってしまっていました。

機械学習エンジニアという職種自体がまだ成熟していないことを考えても、さすがに自分がロールモデルになるのは経験・スキル的に早すぎると考えていました。

結局のところ

色々と説明しましたが、結局は強い人と働きたいに集約されると思います。

なぜGunosyなのか

単純に転職するに至った問題を全て解消できそうだったからです。

一番気にしていたことは機械学習エンジニアの担当範囲ですが、機械学習のシステムに関することなら全てやるというスタンスだったことが良かったです。

また、KDDやRecSysにも直近で論文を通しており、研究としてもレベルが高いことが非常に魅力的でした。*2

実際転職してどうだったか

まだ1ヶ月で一部しか見れてはいないですが、転職理由とのギャップはありませんでした。

機械学習エンジニアが、機械学習システムに必要なバッチも作るしAPIも作るし、インフラ構築もやる感じです。また論文読み会も安定して行われており(大体始めたのはいいものの段々開催されなくなっていく例が多いと思う)、最新の論文の情報も自分で読んだ分以外も入ってきます。

また驚いたことは、非常に残業が少ないことです。今までは裁量労働なのを良いことにダラダラ夜まで仕事をしていたのですが、早く終わらせるように意識して仕事をするようにしました*3。夜の時間が空いたのでその分をまたキャッチアップの時間に回すことも出来ています。

おわりに

ここに書いたことを忘れずに、またどこかで発表できる成果を出していきたいですね。後、最近インプットを増やしていてあまりアウトプットできていないので、ぼちぼちこのブログも更新していきます。

*1:これはエムスリーの西場さんの発表資料にもありましたね

*2:KDDは [1905.07289] Conversion Prediction Using Multi-task Conditional Attention Networks to Support the Creation of Effective Ad Creative、 RecSysは [1907.08346] Greedy Optimized Multileaving for Personalization

*3:マイクロアドでは裁量労働、Gunosyではコアタイム有りのフレックス労働です