なぜ Wantedly に推薦システムが必要なのか | Wantedly Engineer Blog
こんにちは。ウォンテッドリーで Data Science Tech Lead をしている合田です。この記事では、ウォンテッドリーのデータサイエンティストが開発している推薦システムについて紹介しま...
https://www.wantedly.com/companies/wantedly/post_articles/465747
Photo by Maël BALLAND on Unsplash
この記事は、Wantedly Advent Calendar 2023 の23日目の投稿です。前回の記事は「PRD のススメ ~ メンバーや関係者とのスレ違いを減らそう」でした。
こんにちは、ウォンテッドリーで機械学習領域のテックリードを務める合田(@jy_msc)です。私は2019年にウォンテッドリーに中途入社し、データサイエンティストとして推薦システムの開発と運用に携わってきました。しかし去年の秋頃にチームの体制や自身の役割が変化し、それに伴って私の仕事内容やマインドセットも大きく変わりました。そうした経緯があり、今年は大変なことが多かったけど、非常に楽しい1年だったなと感じています。この機会に、テックリードになってからのこの1年間でどういうことをやってきたのかを整理してみたいと思います。
新しい技術を導入して未来を作っていくのはテックリードの役割の1つだと考えています。以下では技術導入に関する取り組みについて簡単に書いていきます。
プロダクトに新しい推薦アーキテクチャである相互推薦システムを導入し、大きなインパクトを生み出すことができました。このアーキテクチャの変更は、推薦システムの開発効率の向上にも寄与しました。
「なぜ今のタイミングで導入するべきなのか」を明確にした上で、効果的な Feature Store の導入を推進しました。この技術の導入によって、推薦精度の改善と開発効率の向上が実現できました。
中長期的な技術による価値を高めていくために、研究開発も進めていたりします。
技術を活用して価値を生み出すためには、プロダクトとしてある問題を技術的に解くべき問題に定義する必要があります。プロダクトのミッションや戦略との関係性を踏まえ、プロダクトと技術の相互接続を効果的に進めていくことがテックリードとしての役割だと考えています。
開発組織全体の戦略に沿って、機械学習・推薦システムという技術領域で、何を、いつ、どういう順番で進めるべきかを考え、半年から1年単位のロードマップを作成しています。これによってチームメンバーやプロダクトリーダーと目線合わせした上で開発を進められるようにしています。
プロダクトに存在する問題を見つける必要があります。「なぜやるか」「なにやるか」を明確にし、戦略に沿った効果的な課題解決を目指します。施策の手段が偏ってしまうことはあまり良いことはないので、推薦に限らず幅広い選択肢の中から最適な手段が何かをプロダクトマネージャー間やチームメンバーと議論し、最短距離の最大社会的インパクトを狙っていけるようにしています。
技術を活用して継続的に価値を高めていく体制づくりのために、普段の開発や運用体制に対する改善を進めてきました。
チームに所属する全員が同じ方向を向けて開発を進められるように、技術のWHYを明文化しました。
これまで推薦チームでは各データサイエンティストが個別の施策を担当することが多く、成果を出すための知見が個人に孤立しがちでした。チーム全体の開発生産性を向上させるために、以下の手順で様々な暗黙知を共有化しました。
この取り組みの一例が、推薦システムのオフライン評価フレームワークの作成です。これにより、正確なオフライン評価をチーム全員が実践できるようになりました。
暗黙知の問題を解消するために、四半期に一度、データサイエンティストが施策で得た知見や課題を共有する会を開催しています。この他にも、チームメンバー間の相互作用を増やす取り組みを進めています(後述)。
推薦チームにPRDを導入することで、キックオフ後の施策の認識ズレが起きづらくなり、後戻りの頻度を減らすことができました。PRD導入前の問題と具体的な効果については、グロースチームのプロダクトデザイナーが書いたブログ記事「PRD がデザインプロセスを高速化した話」に詳しく記載されているので、ぜひご覧ください。
運用への意識を高めるために、チーム全員で同期的に監視ダッシュボードをチェックする時間を設けました(現在の頻度は毎日)。元々は各自で非同期に行っていましたが、問題の検知が遅れることを懸念し、明示的に時間を取るようにしました。この取り組みによって問題を早く見つけられるようになりました。また、数字を見ながらの活発な議論や、ダッシュボードの不備発見、新しいプロダクト課題の発見など、エラー検知以外の多くの利点が得られるようになりました。
推薦チームでは各データサイエンティストが個別の施策を担当することが多く、互いの施策を高い解像度で把握していないという状態になりがちでした。これは、相互レビュー時にそれぞれの施策の背景に基づいたレビューの実施を難しくさせてしまい、成果量の減少や技術負債の増加に繋がります。
これに対処するために、チーム内コミュニケーションの活性化とデータサイエンティスト間のインタラクションを強くすることを解決方針として検討し、具体的な手段を講じています。
データサイエンティスト間の情報格差を減らして、関わっている施策を超えた広範な議論を促進するために、各自の施策の背景や現在の施策の状況を共有・議論する場を新しく設けて運用しています(現在は週に一度)。
以前のチームの朝会では、各自がその日の予定を共有し、チームリーダーがそれを把握するための時間となっていました。コミュニケーションを増やすために、朝会の時間を延長し、どんなトピックでも質問や相談、情報共有を行うための時間を新たに設けるようにしています。
仲間が増えるほど出来ることが増えていくので、採用活動はとても大事です。
私がこの1年で特に力を入れた取り組みの1つが採用活動です。ペルソナの作成からスカウト送信、カジュアル面談、技術課題の作成、技術面接、オファー面談と幅広い取り組みを行ってきました。
仲間を増やすという観点以外でも、私たちは採用のためのプロダクトを開発・運用しているので、開発者として採用活動に本気で取り組むことは代えがたい経験となります。この経験が開発する上での知見となり、技術によって支えるべき理想的な体験を形作る上での手助けになります。
会社全体で採用が成功することが一番嬉しいことです。そのため、自領域の採用活動で得た工夫や知見を他の領域にも展開したり、採用の熱意を伝搬させることで、組織全体の熱量を高めるような動きを意識しています。
技術を活用して価値を生み出すためには、その技術を適切に扱えるエンジニアが不可欠です。そのため、チームの技術的な成熟度を高めるための育成が重要となります。
テックリードになってから、チームメンバーとの1on1を実施するようになりました。目標設定、能力開発やキャリア支援などを含め、継続的に1on1を開催しています。
今後の技術的な取り組みに必要なスキルを整理し、それらの能力を伸ばしていくための支援策を VPoE 室に提案し、話を進めていったりしています。
メンバーが伸ばしたいと考えている能力を向上させるためのタスクを作成してアサインすることを努めています。もちろん、その時々の開発の緊急性などを踏まえる必要があるので、常に理想的な状況というわけではないですが、メンバーにとって効率的な成長機会を可能な限り作れるようにしていきたいです。
技術を活用して価値を創出することは大事な取り組みですが、成果を出すだけでなくそれを社内に適切に伝える必要があります。なぜなら、事業やプロダクトにおいてその技術がなぜ必要なのか、どこでどう使われているのかを社内の多くの人が認知していることで、他のチームや技術領域と共同して更に大きな価値を生み出せるからです。このような啓蒙活動を通じた社内での深い理解の醸成やプレゼンス向上は、短期間で成し遂げられるものではなく、地道に継続していくことが必要です。
ウォンテッドリーでは社内発信を行うための様々な場が設けられています。例えば、週に1回行われる全社ミーティング「DemoDay」では、発表者が自身の成果や取り組みなどを共有します。そこで「推薦システムってなに?」といった基本的な話から、推薦チームで取り組んだ施策の内容や成果、Kaggle や生成 AI などML・推薦に関する幅広いトピックについて、おおよそ月1回の頻度で紹介しています。
また社内発信は個人だけの取り組みではなく、その技術領域に所属する社員が一丸になって発信を継続させる必要があります。そのために「大きい成果出せたし、今発表してみんなに知ってもらおうよ!」といった動機づけやきっかけを作ったり、社内発表をお互いに称賛し合うような雰囲気作りを心がけています。
社内だけでなく社外に対しても発信することは大事です。登壇は大きな成長機会になるため、ウォンテッドリーの開発組織では技術イベントでの登壇を賞賛しています。また、人がいないと何もできないので技術領域の価値を継続させるためには常に採用できる状態を作る必要があり、それには私たちの会社の取り組みに関心を持ってくれる人を増やしていく必要があります。
前述のように登壇は良いことなので、チームメンバーにどんどん登壇してもらいたいです。しかし、登壇をしていこうと言うためには、まず自分が先陣を切らなければいけません。今年は技術イベントで計5回の登壇を行い、様々なイベントで発信しました。
ウォンテッドリーの開発組織では技術 Podcast を運営しています(Wantedly Engineering Podcast)。ここでも推薦や Kaggle に関するトピックで発信をしました。
ウォンテッドリーは JSAI、DEIM への協賛を継続的に実施しています。今年も各学会でブース展示やスポンサーセッションでの発表を行いました。
上記のように色々と登壇をしていましたが、私やチームのメンバーが話したいと思っているトピック(プロダクトでの推薦システムの取り組み)を登壇する機会が限られていることに常々悩んでいました。そこで、ないなら自分で作るべき!と考え、以下のイベントの立ち上げを行いました。
この1年で、多くの新しい取り組みに挑戦してきました。中にはここまでテックリードがやる必要があるの?と疑問に思うものがあるかもしれませんが、「その技術領域の価値を継続的に高める」がテックリードのミッションだと考えているので、そのために必要なことはなんでもやるというスタンスで進んできました。来年はさらに大きな成果を上げられるように、テックリードとしての深みを作っていきたいと思います。