GunosyのMLエンジニアがモノタロウに転職して、リアルタイム推薦を手掛けている話
※本記事の内容は取材時のものであり、組織名や役職等は取材時点のものを掲載しております。
急速に拡大を続けるビジネスの変化に対応するため、国内ECシステム基盤の刷新を進めているモノタロウ。これらのシステムに対し、大量のデータを高速に連携するためのリアルタイムパイプライン構築が急務となっています。
この仕事に取り組んでいるのが、データマーケティング部門データサイエンスグループの川口さんです。モノタロウのリアルタイム基盤構築へのチャレンジに惹かれて、2021年3月に入社した川口さん。現在どんな仕事に取り組んでいるのかオンラインでお話を聞きました。
ニュースメディアのスタートアップから物流業界へ
ーーこれまでの経歴について教えてください。
新卒でNTT研究所に入社し、固定電話回線サーバの刷新に関する業務を行っていました。研究メインの業務ではなく、開発寄りであり、かつ、マネージングが主な業務でした。
その後、株式会社Gunosyへ転職しました。大学院では人工知能(遺伝的アルゴリズム)に関する研究を行っていたので、人工知能に関わるサービス開発への思いが膨らみ、新たにチャレンジすることにしたのです。入社最初はデータ分析からスタートし、ABテスト解析や機能導入時の効果検証のためSQL/Pythonをひたすら書いていました。
データに対してのドメイン知識を身に付けた後は、ニュース推薦におけるMLデータフロー構築に携わるように。ニュースの選択のしやすさをスコア化して、ニュース推薦リストを作る機能など、さまざまな開発を経験しました。
ーーそこから、転職を決めたのはどうしてでしょうか?
MLエンジニアをキャリアの軸に据えて、ニュース以外の分野にも挑戦してみたいと思ったからです。当時、コロナを発端にリモートワークが当たり前になったことで、物流の需要が爆発的に増えていました。そこで、社会的にもニーズの高い物流業界で、自分の経験を活かしてみたいと考えたんです。
ーーモノタロウ入社の決め手は、何でしたか?
最大の理由は、モノタロウがやろうとしているリアルタイムパイプライン構築を手掛けていきたいと思ったためです。
予測が主体のシンプルなモデルの学習なら、私も経験があったのでわかるのですが、モノタロウの考えているリアルタイムの学習は、難易度が高く、ものすごく時間がかかかります。サーバーの通信含め、あらゆる部分を理解し、実装を行わなければいけません。それらを実現させていきたいという姿勢にとても共感しました。私自身、どうやってやればいいのか想像できなかったので、チャレンジしてみたい気持ちが大きかったですね。
リアルタイムパイプライン構築の最先端に携わる
ーー入社後は、どんな仕事に携わったのですか?
Banditアルゴリズムを用いたUI最適化の施策に取り組んできました。具体的には、ECサイトの商品名に表示する情報を最適化するシステムを開発。商品によって、材質や寸法などの情報を表示した方がいい場合、そうでない場合をユーザーの行動データをもとに判断し、商品名の表示を出し分けする仕組みを実装しました。
今回はカテゴリ別での最適化でしたが、ユーザー別にも応用できると考えています。また、この開発プロジェクトでは、私が全体のフロー設計や進行を担当させてもらい、とても貴重な経験ができました。
ーーどんな経験ができたのでしょうか?
今回は、部署やチームをまたいだメンバーと密に連携しながら行う開発スタイルでした。私にとって、部署またぎの連携は初めての経験だったので、仕事の依頼の仕方やコミュニケーションの取り方など、新鮮で学びが大きかったです。社内のコネクションができたのも良かったですね。一方で「もっとこうすべきだった」という反省点も多々あるので、次回に活かしていければ。メンバーと協働して最適化の施策をリリースできた瞬間は、やはり大きな達成感がありました。
ーー現在は、どんなプロジェクトに取り組んでいますか?
ECサイトの検索バーの下に表示するキーワード推薦の開発プロジェクトに参画しています。ユーザーが検索ワードを入れる前に、参考になるキーワード一覧を出す機能です。ユーザーのサイト内遷移ログからユーザーが興味を持っているであろうキーワードをPretrainedな機械学習モデルから予測し、表示させます。
この推薦機能は、モノタロウで実施しているリアルタイムパイプライン構築の最先端ともいえるもので、チームとしても大きな注目を注いでいます。プロトタイプの開発は完了したので、今はリファクタリングを行っているところです。
現在は、キーワードのみの推薦ですが、将来的にはシステムが推薦する商品リストや、検索時の予測キーワードへの応用などにも展開できると考えています。
ーー入社前に希望していたリアルタイム推薦に関わっているのですね。実際にやってみてどうですか?
とても難易度が高く、もっと深い理解が必要だと感じます。リアルタイムと一言で言っても、一切のラグがなくユーザーの行動をシステムが把握できることはなく、ありとあらゆるところで時間がかかります。
例えば、ユーザー遷移ログを取得する、ユーザー遷移ログを加工する、加工したユーザー遷移ログより推薦結果を産出する一連の流れ。これらの処理はサーバーなどで行われるので、サーバー間の通信でもかなりの時間を要します。今までなら時間がかかっても妥協していた部分に対して目を光らせて、いかに高速化するかを考える必要があるのです。
また、現在使っているモデルも、常に学習しつづけ最新の学習データを用いたモデルを使えるような推薦システムにしていく必要があると考えています。どの特徴量が何に使われていて、アルゴリズムでどの部分がネックになっているのかを理解するのは難しく、試行錯誤の日々ですね。
リアルタイム基盤の設計から開発まで手掛けたい
ーーどんな仕事にやりがいを感じていますか?
データサイエンティストによるアルゴリズムをサービスインする際のプロセスを整理整頓するのが好きですね。自分が触りやすくするためにやっているのですが、いずれ入ってくる新しいメンバーが、悩むことなく開発やメンテナンスがしやすくなるように、と思っています。開発環境を自動化したり、簡略化して改善していくことは、自発的に続けていきたいです。
――川口さんが、普段から心掛けていることは何でしょうか?
メンバー間の連携を円滑にするため、リモート環境でのコミュニケーションの取り方にかなり気を配っています。一つは、レスを早くすること。すぐ答えられない場合でも「わかりません」だったり「考え中です」など、今の状況をすぐに伝えています。そうすると相手も次のアクションを起こしやすくなるので。
あとは、文字コミュニケーションでの感情の伝え方に注意していますね。特に、Slackでメールのような堅い文体でやり取りすると、何を思っているのか読み取れなくなってしまいます。感情が伝わりにくいコミュニケーションを続けていると、仕事が事務的で殺伐としたものになってしまうと感じていて。なので、私自身はSlackでスタンプを使ったり、文章の語尾を意識して絵文字を付けたりして、テキストにポジティブな感情を乗せるようにしていますね。
ーーモノタロウに入社して、自身が成長したと思う部分はありますか?
以前と比べると、仕事の責務が大きくなったこともあり、周りと協働しながら、自身のリソースを管理する力がついてきたと思います。自分が担当する部分のアウトプットを欠かさないことや、他のメンバーへ先回りして依頼するなど、全体を見ながら動くようになりました。
また、組織の課題感を見つけられるようになったとも思います。色々な規模やフェーズの会社を経験してきたのもあり、客観的な視点が身についてきたのかもしれません。モノタロウでは、週報で部門長クラスに意見を伝える機会があるので、そこで改善点や要望をアウトプットしています。現場の声を聞いてくれる仕組みがあるのは、ありがたいですね。
ーー最後に、今後の目標を聞かせてください。
リアルタイム基盤の設計から開発までの経験を積んでいきたいと思っています。イチからのサービス作りを通して、自分の強みはどこにあるのかを見極めて、専門性を深めていければと考えています。
今は目の前にある仕事に向き合って、スキルを磨いていく段階なので、一歩一歩頑張っていいきたいです。そして、MLエンジニアとして、より良いサービスを世の中に展開していきたいと思います。
ーーありがとうございました!