LINEヤフー Tech Blog

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

理論をどう実運用に乗せるのか。メディア領域のレコメンド最適化で問われる、実装可能性と事業価値への翻訳

レコメンドや最適化の仕事は、モデルの精度を上げることだと思われがちです。しかし、実サービスではそれだけで価値になるとは限りません。

ユーザー体験を良くしたい。セッション数を伸ばしたい。広告収益も維持したい。レイテンシや計算資源の制約もある。こうした条件が同時に存在する環境では、「理論的に正しいこと」や「精度が高いこと」が、そのまま採用されるわけではありません。何を最適化すべきかを整理し、その問いをサイエンスの課題に落とし込み、さらに実装と運用に耐える形へ変えていく必要があります。

今回話を聞いたのは、LINEヤフーで長くメディア領域のデータ活用に携わってきた大倉 俊平さんです。Yahoo! JAPANアプリのトップページ改善や、広告収益の拡大に向けた広告配信量最適化、天気・災害、Mitsumame、ヤフコメタイムラインなど、複数の案件に関わる中で、一貫して取り組んできたのは「サービスやユーザーの実現したいことを、適切にサイエンスの課題に落としこむ」ことでした。

この記事では、大倉の仕事を、理論・実装・事業制約のあいだを行き来しながら、実際に価値へつなげていく仕事として見ていきます。

「セッションを伸ばしたい」をそのまま受け取らない。要望の裏にある「真の問い」への翻訳

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

大倉:
今は、広告収益の拡大に向けた取り組みの中で広告とメディアの連携部分を見たり、Yahoo! JAPANアプリのトップページ改善の中でトピックや記事推薦、記事配信ロジックの改善に関わったりすることが多いです。ほかにも、天気・災害、Mitsumame、ヤフコメタイムラインなどにも関わっています。

自分の仕事を一言でいうと、サービスやユーザーが実現したいことを、適切にサイエンスの課題に落としこむことだと思っています。

─ 「サービスやユーザーが実現したいことを、サイエンスの課題に落としこむ」とは、具体的にはどういう仕事なのでしょうか。

大倉:
企画側やサービス側から「トップページのセッション数を増やしたい」といった要望が出てくることがあります。ただ、その言葉をそのまま受け取って実装するわけではありません。

本当に見たいのは何か、どの指標がその目的に近いのか、その指標を上げること自体が本当にユーザーにとって価値なのかを整理して、課題として置き直します。そこをちゃんとやらないと、想定していない方法で指標だけ上がったけれど、実態としては何も嬉しくない、ということが起きます。

─ いまのような役割に至るまで、どんなキャリアを歩んできたのでしょうか。

大倉:
2012年に数学科の大学院を修了してヤフーに入社しました。最初は広告の属性ターゲティングのシステム移植に関わっていて、システム開発だけではなく、広告効果分析やターゲティングロジックの開発にも参加していました。

その後、広告とレコメンドのバックエンドチームが近い組織になったことをきっかけにレコメンド領域にも関わるようになって、2014年以降はトップページのレコメンド改善を中心に、メディア領域のサイエンス業務全般へと範囲が広がっていきました。

窓際の明るい室内で、前を向きながら話す大倉俊平さんの上半身

精度が上がっても、それだけではリリースできない

─ レコメンドや意思決定支援の案件で、単純な精度改善だけでは解けないと感じた課題は何でしたか。

大倉:
新しい案件ほど、まず「案件の目的に合った指標を置けているか」が重要です。ここがずれると、指標だけ上がったけれど、実態としては何も嬉しくない、ということが起きます。

特にメディア領域では、メディアと広告の利益相反があります。記事のレコメンド精度が上がると、記事のクリックが増えてスクロールが減ることがあります。そうすると広告の露出機会が下がって、収益にマイナスの影響が出ることがあります。

実際に、レコメンド精度は改善したのに、収益への影響を理由にリリースできなかったこともありました。

─ そのような利益相反に対しては、どのように向き合ってきたのでしょうか。

大倉:
モデルの改善だけで解けるわけではないので、プロダクト側の工夫も含めて考えます。たとえば、記事を読んでトップページへ戻るときに広告を差し込む「スワイプバック広告」のような仕組みで、一部を緩和できたケースもありました。

重要なのは、レコメンド精度だけを見て良し悪しを判断しないことです。記事を読ませる体験を改善したい一方で、収益面の成立も必要なので、レコメンド面だけで閉じず、プロダクト全体の導線の中でどう補えるかまで含めて関係者と考えます。

ユーザー体験だけ、あるいは収益だけを見るのではなく、全体としてどう成り立たせるかを見ることが大事だと思っています。

実装できない精度は、プロダクトでは採用されない

─ モデル側で解くことと、システム側で解くことは、どう切り分けていますか。

大倉:
レコメンドは、基本的に全部切り分けが必要だと思っています。最新の記事在庫と最新のユーザー情報を使って、リッチで大きなモデルを計算すれば精度が上がるのは当然です。でも、そうするとレイテンシは伸びますし、計算資源も足りなくなります。

そのため、事前に計算して準備しておくものと、オンタイムで計算するものを分けて設計する必要があります。特徴量についても、実際にオンラインで構築可能かどうかを考えて設計しなければいけません。

逆に、実験上とても強く効く特徴量があるのに今は取れないのであれば、それを取得するためのシステムを作る必要があることもあります。

─ 設計や開発の判断で、特に重視していることは何でしょうか。

大倉:
システム負荷と精度のバランスです。精度が高くても、システム開発や運用の負荷が重すぎると、結局は実装されません。理論的に良い案を考えるだけではなく、実際に成立する形にしないと意味がないと思っています。

明るい室内で、横を向��きながら話す大倉俊平さんの上半身

理論を、そのまま持ち込まずに成立させる

今回のインタビューでは、大倉が具体案件を通じてどのように理論を現実へ落としてきたのかがよく見えました。

─ 今回の記事で触れられそうな案件について、いくつか教えてください。

大倉:
ひとつは、トップページに DNN ベースのレコメンドを導入した案件です。当時は今みたいに学習ライブラリもノウハウも十分ではなかったので、GPUサーバー上で CUDA の生コードを書いて、LSTM や GRU の計算式を手動微分しながらモデルを学習させていました。

もうひとつは Distribution-aware Recommendation です。トップページのレコメンドで、ジャンルごとの掲出比率をユーザーごとに調整する仕組みですが、理論は以前からあっても、配信時の計算量がネックになっていました。ユーザーごとに掲出バランスを細かく変えようとすると、配信のたびに必要な計算が重くなり、そのままでは実運用に乗りませんでした。

そこで、モデルの考え方自体を変えるというより、計算式の同値変形によってオンラインで必要になる計算量を下げ、現実的な計算コストで動かせる形に落とし込みました。

あとは、広告収益の拡大に向けた取り組みの中で進めた広告配信量最適化です。ユーザーごとの広告量を最適化して、広告総量を大きく変えずに収益を改善するもので、ヒューリスティックに進められていた調整を、制約付き最適化問題として解き直してアルゴリズム改良を提案しました。

─ こうした案件に共通して、大倉がやっていることは何だと思いますか。

大倉:
理論やアイデアがあっても、そのままだと実サービスには乗らないことが多いです。計算量、レイテンシ、運用負荷、収益への影響など、現実の制約があるので、それを踏まえて成立する形にしないといけません。

なので、自分としては「良さそうな理論を知っている」だけではなくて、それを実際に使える形にまで落とし込むところが役割なのかなと思っています。

複数案件で呼ばれる理由は、抽象化と翻訳にある

─ 複数案件で呼ばれる理由を、ご自身ではどう捉えていますか。

大倉:
適切に抽象化して論理的に整理できることは、自分の強みだと思っています。あとは、他の人が話しているときに、周りにはうまく伝わっていないけれど本人は伝えたそうにしていることを汲み取るのも、割と得意だと思います。会議で話が噛み合っていないときに、自分が間に入ると進むことはよくあります。

それと、手元にあるデータで何とか根拠や方針を出すことや、分析結果やシステムの挙動がおかしいときに、事象から逆算して怪しい箇所を絞る debug もよくやっています。

─ 企画、システム、サイエンスをまたぐ仕事では、どんなことを意識していますか。

大倉:
サービス・企画、システム開発、サイエンスのお互いの言語を翻訳することは重要だと思っています。お互いにミクロな視点だけでコミュニケーションすると、それぞれ言われたものは作っているのに、全体最適ではないものができがちです。

一段上の「意図」を共有できると、かなりスムーズに進みますし、それぞれの中で隠蔽したい仕様と、外に共有したほうがいい情報も整理しやすくなります。

明るい室内で、やや斜め前を向きながら話す大倉俊平さんの上半身

面白さは、「ルールを作るところから」関われること

─ 今の仕事の面白さは、どこにありますか。

大倉:
ユーザーもデータも多くて、統計的に正しいことをやると結果が出やすいのは、今の環境の面白さだと思います。もうひとつは、与えられた問題を解くだけではなくて、「何を上げたらユーザーにとって良いのか」というルールを作るところから関われることです。

機械学習のコンペみたいに、与えられたデータの中で何とかするだけではなくて、実サービスだと「こういうログを仕込めばこういうデータが取れるはずだから、それを使って改善しよう」といったところまで含めて考えられます。やれる範囲が広いのが面白いですね。

─ ほかに、この領域ならではの難しさや面白さを感じることはありますか。

大倉:
ユーザーが言っていることと、実際の行動がずれることがあるのは面白いですね。たとえば「同じ話題が出すぎているからやめてほしい」と言われることがあっても、実際にはそのコンテンツがクリックされることがあります。

人間の感覚としては「出すぎている」と思っていても、行動としては反応してしまうことがある。だから、言われた要望をそのまま額面通り受け取ってやり続けるのが正しいとは限らない、というのはこの仕事の難しさでもあり、面白さでもあると思います。

おわりに

大倉の話を通じて見えてきたのは、レコメンドや最適化の仕事が、単なる精度改善ではないということでした。

何を最適化するべきかを定義すること。
その問いをサイエンスの課題へ翻訳すること。
さらに、計算資源、レイテンシ、運用負荷、収益構造まで含めて、実装可能な形へ落とし込むこと。

理論をどう実運用に乗せるのか。今回のインタビューで見えてきたのは、その問いに向き合う仕事のリアルでした。モデルを書く力だけでは届かない領域で、理論、実装、運用、事業制約をまたぎながら、現実に使える形へ落とし込んでいく。そのプロセスこそが、メディア領域のレコメンド最適化の面白さなのかもしれません。