LINEヤフー Tech Blog

LINEヤフー株式会社のサービスを支える、技術・開発文化を発信しています。

検索・レコメンド基盤は、なぜ「作るだけ」で終わらないのか。LINEヤフーのメディアPF開発のリアル

検索やレコメンドは、ユーザーに必要な情報を届けるための仕組みです。しかし、その裏側を支える基盤開発は、単なるAPI実装でも、モデルを載せるだけの仕事でもありません。

サービスごとに異なる要件、急増するトラフィック、個別最適に寄りすぎることで生まれる技術負債、そしてデータサイエンスとの連携。大規模メディアで検索・レコメンドを汎用プラットフォーム(以下、PF)として成立させるには、設計と運用の両方を継続的に見直す必要があります。

今回話を聞いたのは、LINEヤフーで長く検索・プラットフォーム開発に携わり、現在はメディア領域の検索・レコメンド基盤を支える川村 佳史さんです。バーティカル検索PF ABYSS、クローラ刷新、そしてコンテンツの配信・検索・レコメンド配信に関するPFまで、長年PF開発の現場で向き合ってきた経験をもとに、「汎用PFを作る難しさ」と「その難しさが面白さに変わる瞬間」を聞きました。

モダンなオフィスで腕を組んで立つ男性

メディアの検索・レコメンドを支える、複数のプラットフォーム開発

─まず、現在の仕事について教えてください。

川村:
現在は、メディアのコンテンツに関する複数のPFの開発と運用を担当しています。具体的には、コンテンツ配信基盤、コンテンツ検索PF、コンテンツレコメンド配信基盤などです。

役割としては、技術的な意思決定の中心を担いながら、後続のテックリードを育てることも意識しています。自分だけが判断できる状態だと、組織としてスケールしにくくなるからです。

─長くプラットフォーム開発に関わってこられていますが、どんなキャリアを歩んできたのでしょうか。

川村:
最初はバーティカル検索PF ABYSS 1.0、その後はApache Solrを使ったABYSS 2.0の刷新に関わりました。クローラ刷新のプロジェクトを挟んで、2017年からはコンテンツ配信基盤、コンテンツ検索PF、コンテンツレコメンド配信基盤に携わっています。振り返ると、ずっとバックエンドのPF開発を続けてきました。

検索・レコメンド基盤は、普通のバックエンド開発と何が違うのか

─ただデータを返すだけでなく、「必要な情報に出会える状態」を作る難しさについて教えてください。

川村:
一番大きいのは、「必要な情報に出会える状態」を支える必要があることです。検索でもレコメンドでも、ただデータを返せばよいわけではありません。その人にとって、そのタイミングで必要な情報や、新しい発見につながる情報を返せているかが重要です。

そのためには、品質だけでなく、速度や運用性も同時に成立させる必要があります。特にレコメンドは、個人ごとに返す結果が変わるので、単純なキャッシュ戦略では解けない場面も多いです。モデルをどう組み込むかだけでなく、配信の仕組みや性能をどう保つかまで含めて考えなければいけません。

─「良い検索・良いレコメンド」とは、どんな状態だと考えていますか。

川村:
利用する人にとって、必要なタイミングで必要な情報に出会えることだと思います。新しい発見につながることも含めて、その人にとって意味のある情報が届く状態ですね。

「汎用プラットフォーム」を作る難しさは、個別最適との戦いにある

─汎用PFを作る難しさは、どこにありますか。

川村:
利用するサービスの規模が、小規模から大規模までかなり違います。要件も違えば、かけられるコストも違います。小さいサービス向けに過剰性能なものを作っても使われませんし、逆に特定の大きなサービスに寄せすぎると、他で使いにくくなります。

難しいのは、そのバランスを取り続けることです。特定の利用者に最適化した機能を入れすぎると、それが将来の負債になります。PF側は、使いやすさを担保しながらも、汎用性を失わない設計にしないといけません。

─設計で特に意識していることはありますか。

川村:
まずは利用者視点です。使いやすいか、要件を満たせているかを見ます。その上で、特定の利用者に寄りすぎていないか、複雑になりすぎていないか、スケールする構造になっているかを常に意識しています。

利用相談を受けたときも、言われた通りに作るというより、「もっと効率の良いやり方がないか」「コストを抑えられないか」を一緒に考えます。PF側がそこを考えないと、全体として非効率なシステムになってしまうからです。

ラウンジで対話しながら話す男性

データサイエンスと連携するときは、「分からないことを聞く」

─レコメンド領域では、データサイエンスとの連携も重要だと思います。難しさはどこにありますか。

川村:
自分はもともとレコメンドのサイエンス寄りの領域を専門にしていたわけではないので、最初は分からないことが多かったです。だからこそ、まずは細かく質問して、ざっくりでも理解することを意識してきました。

役割分担としては、サイエンス側がモデル作成や効果測定を担い、PF側がそのモデルをどう組み込み、どう配信し、どう安定して動かすかを担います。この境界を曖昧にしないことは大切ですが、その一方で、相手のドメイン知識を前提にしすぎず、伝わる言葉で会話することも大切です。

─コミュニケーションの進め方で意識していることはありますか。

川村:
独断で決めるというより、メリットとデメリットを整理して、関係者と合意形成しながら進めることを重視しています。細かい相談を繰り返して、スピードと納得感の両方を取っていくイメージです。

大規模トラフィックを、どう効率よく捌くかが面白い

─川村さん自身が、今の仕事で一番面白いと感じているのはどこですか。

川村:
大規模トラフィックを、どううまく捌くかを考えるところです。負荷の高い箇所を軽量なシステムに切り出したり、扱うデータサイズを小さくして返却を速くしたり、仕組みで解く余地が大きいんです。

単に性能を上げるだけではなく、どう安定して提供し続けるかも重要です。すべてのトラフィックをそのまま受けるとコストが大きくなりすぎるので、必要に応じてレートリミットをかけるなど、安定性とコストのバランスも見ます。

─その面白さは、LINEヤフーのメディア領域ならではですか。

川村:
かなり大きいと思います。そもそも、ここまで大きなトラフィックを前提にメディアの検索やレコメンド基盤を考えられる環境は限られています。規模があるからこそ、設計や運用で効いてくる工夫の幅も広くなります。

ABYSSからコンテンツ配信・検索・レコメンド配信基盤へ。長くPF開発に向き合う理由

─長くプラットフォーム開発に関わり続けているのは、なぜでしょうか。

川村:
新しいことに興味はありますが、PF開発そのものが好きなんだと思います。仕様を考えたり、設計したり、どうすれば全体としてうまく回るかを考えることに面白さがあります。

実際、ABYSS 2.0の刷新では、検索エンジンの変更だけでなく、物理サーバから仮想環境への移行や、Javaでの大規模開発にも向き合いました。そうした変化の中でも、基盤を作る難しさそのものに面白さを感じてきたから、今も続けているのだと思います。

ラウンジで横向きに座る男性

AI時代に必要なのは、運用で1日が終わらない状態をつくること

─これから技術的に取り組みたいテーマはありますか。

川村:
AIを使って、開発や運用の効率化を進めていきたいです。PFは規模が大きい分、運用作業のコストも大きくなりやすい。そこを改善しないと、運用作業だけで1日が終わって、進化のための時間がなくなってしまいます。

今は、ドキュメントや手順が十分に整理されていない部分もありますし、デプロイのような定型作業もまだ人が多く担っています。だからこそ、AIを使ってそこを軽くし、人が本来やりたい改善に時間を使える状態を作っていきたいですね。

─最後に、どんな人がこの領域に向いていると思いますか。

川村:
大規模トラフィックを扱うことに面白さを感じる人、アルゴリズムや仕組みを考えるのが好きな人、効率的なシステムを作りたい人は向いていると思います。

加えて、自分の知らないことを聞けることも大事です。レコメンドのように隣接領域と一緒に作る仕事では、それだけで前に進みやすくなります。

それと、ボトムアップで動きたい人にも合っていると思います。チームでは、メンバーがこうしたいと提案し、議論しながら進める文化があります。トップダウンだけで決まるのではなく、自分の意思を持って改善を進めていける余白があります。

おわりに

検索・レコメンド基盤の話は、どうしてもアルゴリズムやモデルの華やかさに目が向きがちです。しかし、実際の現場で問われているのは、それらを安定して、汎用的に、長く運用できる形に落とし込めるかどうかでした。

個別最適に引っ張られすぎず、利用者視点を持ち、スケールと運用の現実を見ながら設計する。その積み重ねが、大規模メディアにおける検索・レコメンドの体験を支えています。

「難しい基盤を作りたい」「大きなトラフィックを仕組みで捌く面白さを味わいたい」という人にとって、メディア領域のプラットフォーム開発は、かなり手触りのある挑戦になりそうです。