LINEヤフー Tech Blog

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

検索連動型ショッピング広告の自動入札における予測精度改善(インターンレポート)

1 はじめに

こんにちは!京都大学 情報学研究科 修士1年の外島直行です。

私はLINEヤフーの就業型インターンシップに6週間参加し、検索連動型ショッピング広告の広告配信に関わるチームで、自動入札を構成する内部処理の精度改善に取り組みました。

インターンでは、「広告配信ロジックの改善」というテーマのもと、既存処理とデータを自ら調査し、改善すべき課題の特定から解決策の提案まで主体的に進めました。その後も、関係者との合意形成、実装、検証まで一貫して担当しました。提案を過去のデータで評価した結果、定量的な改善も確認できました。以下では、その過程と実務を通して得た学びを振り返ります。

2 背景

検索連動型ショッピング広告は、Yahoo!検索で商品などを検索した際に、商品情報を広告として掲載できるサービスです。

検索連動型ショッピング広告の掲載イメージ
図1:検索連動型ショッピング広告の掲載イメージ(出典:Yahoo!広告 ヘルプ)

広告配信では、広告主が設定した予算や目標を踏まえ、広告オークションに用いる入札価格を決める必要があります。検索連動型ショッピング広告の入札戦略では、過去の実績や予測値をもとに、目標とする指標に合わせて入札価格を自動調整する自動入札を利用できます。

私が担当したのは、この自動入札を構成する処理の一部です。後段の判断に必要な情報を、限られた情報量の中でより正確に残すことを目指しました。

3 取り組んだ内容

6週間のうち、前半はドメイン知識や既存処理のキャッチアップと現状分析、中盤は改善案の検討と関係者との合意形成、後半は設計・実装と検証に取り組みました。

3.1 現状の分析と改善案の検討

最初に、関連するコードや設計資料、キャッチアップ資料を読み、対象の処理が自動入札全体の中で果たす役割を把握しました。また、自分の理解を確認するため、キャッチアップした内容を共有する発表会を自ら提案しました。チームの方々からフィードバックをいただくことで、自分の理解が不足していた部分や、追加で確認すべき点を整理しました。

その後、実際のデータを分析し、変更前の方式で誤差が生じやすい条件や、とくに誤差が大きくなるケースを調べました。

改善案は一つに決め打ちせず、期待できる効果、悪化する可能性のあるケース、実装時の懸念点を整理して複数の案を比較しました。チームの方々からは、平均的な誤差だけでなく、誤差の大きいケースをどれだけ改善できるかという観点に加え、変更前の方式では誤差が小さかったにもかかわらず、改善案によって誤差が大きくなるケースはないか、あるとすればどのようなケースか、というフィードバックもいただきました。そこで、全体の指標だけでなく、改善するケースと悪化するケースの両方を個別に確認しながら、改善案を評価しました。

最終的に、誤差が生じる理由について仮説を立て、その仮説に沿った改善案を提案しました。過去のデータを用いて、変更前の方式と改善案を同じ条件で比較した結果を以下に示します。

入札戦略評価指標変更前の方式改善案
コンバージョン数の最大化(目標値なし)平均相対誤差4.67%0.44%
コンバージョン数の最大化(目標値なし)相対誤差の99パーセンタイル(p99)35.01%5.37%
コンバージョン数の最大化(目標値あり)平均相対誤差6.05%0.54%
コンバージョン数の最大化(目標値あり)相対誤差の99パーセンタイル(p99)37.82%5.72%

いずれの入札戦略でも、平均相対誤差を変更前の方式の約10分の1に、誤差の大きいケースを捉えるp99相対誤差を約7分の1に低減できました。この結果を受け、実装と検証へ進みました。

3.2 合意形成と実装

改善案の大枠を決めてから実装に入るまでには、追加のデータ分析やチーム内外への説明、設計書の作成とレビューを行い、関係者との議論を重ねました。

合意形成では、改善するケースと悪化し得るケースの発生頻度や変化量を比較し、利点と懸念点の両方を共有しました。分析の結果、悪化するケースは比較的少なく、その影響も改善によって得られる効果より小さいと考えられることを説明しました。技術面やサービスへの影響について認識を合わせたうえで、変更する方針への合意を得ました。

方針の合意後は、処理の流れや考慮すべきケースを設計書にまとめ、レビューを受けてから実装を進めました。

3.3 実装後の検証

実装後は、検証環境で実際の処理を動かし、設計どおりに動作することを確認しました。そのうえで、変更前の方式と改善案の処理結果を比較し、今回の変更が後段の処理にどのような影響を与えるのかを調べました。

検証では、全体の傾向だけでなく、結果が変化した個々のケースにも注目しました。変更によって入札額が上がるケースと下がるケースをそれぞれ確認し、なぜ変化したのか、その変化が事前の想定と整合しているのかを調査しました。これにより、実装が正しく動作することに加え、変更による影響も把握できました。

4 学んだこと

4.1 自分の考えを正しく伝える力

エンジニアには、自分の考えを正しく伝える力が重要であることは以前から理解していましたが、今回のインターンを通じて、その重要性をあらためて強く実感しました。自分の中で筋道を理解できていても、前提や根拠が相手に共有されていなければ、提案の妥当性を判断してもらうことはできません。

データから何を読み取り、なぜその方針を選び、どのような影響が生じ得るのかを、前提知識の異なる相手にも伝わるよう順序立てて言語化することに苦労しました。この経験を通じて、自分の考えを相手が判断できる形に整理し、合意につなげる力もエンジニアに不可欠であることを、実務の中でより深く実感しました。

4.2 技術とビジネスの両面から考える

社員の方々からのフィードバックを通して、技術的な精度だけでなく、ビジネスの観点から考えることも教わりました。数値上の誤差が小さくなることだけを見るのではなく、その変更が広告主の予算や広告配信にどのような影響を与え得るのか、実際のサービスにどのような価値をもたらすのかまで考える必要があります。技術的に優れていることと、サービスへ導入する価値があることは必ずしも同じではないと気づき、改善案を見る視野が広がりました。

社員の方々は、改善案の内容を短時間で理解したうえで、追加で確認すべき点やビジネス上の影響まで指摘してくださいました。技術と事業の両面から議論する姿に触れ、専門性の高さと、課題を多面的に捉える視野の広さを実感しました。こうした方々との議論やフィードバックを通じて、自分にはなかった視点を得られたことは、今回のインターンにおける大きな収穫の一つです。

5 感想

インターンに参加する前は、エンジニアの業務では、コードを書いたりコードレビューを受けたりする時間が大半を占めると想像していました。しかし実際には、課題を調査し、データを根拠に改善案を考え、その内容を周囲へ説明して認識を合わせることにも多くの時間を使いました。エンジニアリングはコードを書くことだけで完結せず、周囲と協力しながら価値を形にする仕事でもあると実感しました。

このように主体的に取り組めた背景には、社員の方々の手厚いサポートがありました。毎日30分程度の1on1では、進捗や困っている点を相談できました。質問した際には、答えだけでなく、問題の切り分け方や調査の進め方から教えていただき、目の前の問題を解決するだけでなく、自分で考えて進める力も伸ばすことができました。また、検証環境を用意していただいたことで、提案を机上の検討で終わらせず、実際に動かして評価するところまで取り組めました。

最後になりましたが、6週間にわたり支えてくださったメンターの方をはじめ、チームの皆さま、インターン運営に関わってくださった皆さまに、あらためて感謝します。本当にありがとうございました。

メンターからの一言

外島さんのメンターを務めた李庚一です。検索連動型ショッピング広告の開発を担当しています。

6週間という限られた期間でしたが、検索連動型ショッピング広告の自動入札について理解を深め、ロジックの検証や追加施策の検討まで主体的に取り組んでくれました。日々の対話では、自ら調べて考えた内容をもとに議論を進める姿が印象的で、チームにとっても多くの気づきを得る機会になりました。今後のさらなるご活躍を楽しみにしています。