機械学習エンジニアの山口です。業務ではYahoo!ショッピング向けのレコメンドを開発しています。
近年はTransformer による自然言語処理(NLP)分野の発展が著しく、BERTによる文章埋め込みから大規模言語モデルによるチャットなど、さまざまなタスクにおける基盤技術としての地位を確立しています。レコメンド(RecSys)の領域でも、NLPを活用した事例は増加傾向にあり(参考: KDD 2024 参加レポート: 推薦システムへのLLM活用)、Yahoo!ショッピングでも改善に活用できないか検討していました。本記事では、レコメンド商品の並べ替え(ランキング)モデルに商品名によるクリック・購買予測を導入し、オンラインA/Bテストを通じてその効果検証を行った事例を紹介します。
施策・手法の紹介
レコメンドの基本的なアプローチとして、協調フィルタリング(Collaborative Filtering; CF)が広く採用されており、Yahoo!ショッピングも同様です。以下図にYahoo!ショッピングのレコメンドの生成フローを示します。
大規模な商品数を取り扱うため、マルチフェーズのレコメンデーションになっています。主に2フェーズあり、Retrieval、Rankingで構成されます。
- Retrieval: ユーザーの行動ログから、大まかな関連商品を列挙する
- Ranking: ユーザーの行動ログだけでなく、商品情報なども活用してより正確に関連度を推定する
どちらのフェーズでも主に利用されるのは、ユーザーの行動ログです。
一方、Content-based Filtering では、商品名や画像などのアイテム情報を使いレコメンドします。特に、近年のCNNやTransformerの研究の進展によりテキストや画像の活用が進み、強力な手法となりつつあります。
本施策では、RankingモデルをCFとContent-based Filteringを組み合わせたハイブリッドモデルに変更し、レコメンド経由のクリック・購買の改善を目指しました。
ランキングモデルへのBERT導入
ランキング処理のフローを図に示 します。本施策では、商品テキストを活用するため、BERTモデルを導入しました。
従来のログベースの商品特徴量に加えて、BERTの推論スコア(BERT score)を追加しました。BERTモデルの出力をさらにRankerへ入力しており、モデルスタッキングになっています。BERTモデルは閲覧している商品名とレコメンド候補の商品名を受け取り、商品to商品のペアでスコアリングを行います。
BERTのfine-tuning
BERTモデルをレコメンドに最適化するため、ユーザーの行動ログを用いてBERTモデルをfine-tuningしました。モデルは関連度推定をコンテンツベース(商品名)で行いますが、モデルの学習はCFと同様の手法でログを使っています。手法の位置付けとしては、CFとContent-based Filteringの中間とも考えることができ、本施策の特徴でもあります。
また、BERTモデルはCross-Encoderを採用しています。図に示すように、閲覧・レコメンド商品のペアを入力し、クリック・購買予測を行うように学習します。ベースとなる事前学習済みモデルは社内で開発されたショッピングコーパス特化のBERTモデルで、軽量ゆえにチューニング・運用が比較的容易であることを重視して採用しました。
本番環境での運用
BERTモデルの定常学習・運用
検証の結果、BERTモデルは季節性・トレンドの移り変わりの影響を受けやすいことが明らかになったため、性 能劣化を防ぐために定期的なモデル更新を行っています。
出力スコア(BERT score)の分布ドリフトが発生するとスコアを利用する後段モデルに悪影響を及ぼすため、以前の学習で利用したデータと新規に収集したデータ両方を利用してモデルを定期的に再学習し、急激なドリフトの発生を抑制しています。しかし、長期的なドリフトには対応できないため、適宜利用先モデルの更新も行っています。
推論パイプラインの開発
Yahoo!ショッピングでは扱う商品数が非常に多く、商品を絞り込んだ場合でも依然として膨大な組み合わせが存在します。このため、推論処理を大規模にスケーリングできる仕組みが求められました。本施策では、PySpark(Spark)を活用して推論処理を並列化し、バッチジョブとして実行することにしました。これにより、大規模データに対しても効率的にBERTの運用が可能となりました。
オフライン評価・オンライン A/B テストの結果
オフライン評価、オンラインA/Bテストを実施し、本施策の効果を検証しました。
- オフライン指標
ログを使い、NDCG@k(ランキング上位k件の順序評価)を評価 - オンライン指標
サービスに実装し、CTR(レコメンドのクリック率)、CVR(レコメンド経由の購買率)を計測
以下表に各指標とコントロールモデルに対する改善を示します。
Metric | Improvement |
---|---|
NDCG@10 | +1.4% |
NDCG@20 | +2.8% |
CTR | +1.5% |
CVR | +2.1% |
オフライン・ オンラインの結果ともに、コントロールモデルに対して指標の改善を有意に確認できました。
おわりに
今回は、言語モデルを活用したレコメンドの改善事例を紹介しました。近年、言語モデルや画像モデルの研究が進展し、自然言語や画像の解釈能力が向上しています。これらの技術を活用して、ユーザー理解をより深め、さらに質の高いレコメンドを提供できるよう、今後も改善を続けます。
LINEヤフーでは、Yahoo!ショッピングをはじめとする多くの自社サービスで機械学習モデルの開発を行っています。このような取り組みをさらに推進するため、データサイエンティストや機械学習エンジニアを募集しています。機械学習やデータ分析に興味があり、実際のサービスでそのスキルを活かしたいと考えている方は、ぜひ応募をご検討ください。