1 はじめに
こんにちは、京都大学大学院情報学研究科修士1年生の藤原智弘です。普段はメタ学習をメインに研究しています。今回貴重な機会をいただき、2025年8月18日から2025年10月10日までの8週間で、高度なセグメントと呼ばれる検索行動に基づいた広告ターゲティング機能の研究開発を担当しているチームでインターンに参加させていただきました。本記事では、インターン期間中に取り組んだ「高度なセグメントにおける機械学習モデルの改善」について紹介していこうと思います。
2 背景
私たちのチームでは「高度なセグメント」と呼ばれる広告配信システムの研究開発を行っています。高度なセグメントでは、広告主が入力するフリーワードと各ユーザーの検索履歴を基に、機械学習モデルを用いて最適な配信対象ユーザーをリスト化しています。
このモデルの精度が上がれば、広告主にとっては幅広いユーザーに広告を配信することができるようになり、ユーザーにとっては自分の関心・嗜好によりマッチした広告を閲覧することができるようになります。よって、モデル改善は広告主とユーザーの双方にとってメリットがあります。本インターンでは、この機械学習モデルの 精度改善に取り組みました。
3 取り組んだ内容
私が提案した施策は以下の4つです。
- ライフイベントの推定結果を特徴量に追加
- 階層構造を明示したマルチタスク学習モデルの導入
- 予測確率の補正
- 配信サイズの動的変更
3.1 ライフイベントの推定結果を特徴量に追加
私はまず、検索履歴にはユーザーの短期的な関心がより強く反映されていると考え、より長期間のユーザー行動履歴を反映している特徴量を使うことで、ユーザーの長期的な関心・好みを捉えられるのではないか?と仮説を立てました。この仮説の下で、「ユーザーのライフイベントを推定するモデル※2」の推論結果を新規の特徴量として採用しました。例えば、結婚というライフイベントがあれば、同棲・同居のための家具の新調や引っ越し業者が必要になります。また、出産というライフイベントがあるなら、育児のためのミルク・オムツ・玩具など育児用品の購入が必要になります。このように、ライフイベントは生活全体の関心・好みの構造を変化させるので、ライフイベントは包括的なユーザーの関心・好みを表現していると期待できます。私の提案手法では、ユーザーの短期的な興味や好みだけでなく、より広く包括的なユーザーの興味を捉えられる可能性のあるライフイベント情報を特徴量に導入することで、モデルの精度が改善することを狙いました。
3.2 階層構造を明示したマルチタスク学習モデルの導入
ユーザーは、配信された広告に対してクリックや動画視聴、コンバージョン などさまざまな広告アクションを行います。しかし、一部の広告アクションは発生確率が極端に低く、陽性サンプルのパターンを学習することが困難です。そこで、ユーザーの多様な広告アクションとその行動遷移をモデルで捉え、陽性数が少ない広告アクションを学習させるために、2つの改善施策を検討し、以下の図のようなマルチタスク学習モデルを提案しました。DesiredActionが元のタスクの広告の詳細閲覧または商品購入にあたり、Action1~4が元のタスクと性質は近いものの、発生確率が高い補助タスクになっています。

2つの改善施策についてそれぞれ説明していきます。
1つ目の改善施策はマルチタスク学習の導入です。ユーザーの多様な広告アクションのほとんどはユーザーが対象広告に興味を持った時に発生すると考えられます。よって、これらの多様なアクションを同時に学習することで、発生数が少ない目的のタスクに対する予測精度の向上が期待できると考えました。そこで、目的タスクである広告の詳細閲覧または商品購入以外の広告アクションを補助タスクとして導入し、マルチタスク学習を行いました。
2つ目の改善施策は、広告アクションの遷移構造に基づく階層的ヘッドの導入です。マルチタスク学習では、通常各ヘッドで1つのタスクの予測を行いますが、発生数が少ないアクションの予測では過学習が懸念されます。そこで、各タスクを1つのヘッドで計算するのではなく、複数のヘッドで計算する方法を提案しました。ユーザーの広告アクションには、閲覧 →クリック → コンバージョンというような階層構造があると考えられます。この考えの下、上の図のような階層構造に従い、各ヘッドで広告アクションの遷移確率を予測し、複数のヘッドの出力を使って各タスクの発生確率を計算します。これにより、各ヘッドが複数の正解ラベルで学習されるので、発生数が少ないタスクに対して過学習することを抑制できると期待されます。
3.3 予測確率の補正
私が提案したモデルでは全リストの予測確率を1つのモデルで学習・予測しますので、リストごとに予測確率が極端な値を取ってしまいます。例えば、広告の詳細閲覧または商品購入を行ったユーザーが多かったリストでは、予測確率がほぼ1.0となってしまうということが考えられます。逆に広告の詳細閲覧または商品購入を行ったユーザーがほとんどいなかったリストでは、予測確率がほぼ0.0となってしまうことも考えられます。これにより、リスト間で予測確率の分布にズレが生じる可能性がありました。
そこで、私の提案した運用方法ではリストごとに予測確率に対して、Min-Max正規化を行い予測確率を補正することで上記の問題を防いでいます。
以下の表は、補正前後での各性能指標のリフトになります。precisionとrecallは微増に留まっていますがROC-AUCは大幅に上がっているのが確認できます。
| precision | recall | ROC-AUC | |
|---|---|---|---|
| リフト(%) | +0.299 | +0.386 | +2.634 |