TL;DRTTHEは、LLMエ…
TL;DR
Think-to-Personalize(TTP)は、EC検索において、ユーザーの購入履歴をLLMに推論させ、曖昧なクエリを意図補完したクエリに書き換えてから埋め込み検索する手法です。SFTとGRPOによる2段階学習で推論と検索を統合し、オフライン・オンライン双方で効果を確認しました。
解説
ねえ智也くん、このブログのタイトル、『Think-to-Personalize』って何か面白そう!でも、検索クエリの意図を推論で補完って、どういうこと?
ああ、これはECサイトの商品検索の話だよ。ユーザーが曖昧な検索ワードを入れたとき、その人の購入履歴を使って、LLMに「この人は何を探してるんだろう?」って推論させるんだ。
へー、例えばどんな曖昧なクエリ?
例えば「プレゼント」って検索したとする。でも、その人が過去にコーヒー豆を買ってたら、コーヒー関連のプレゼントを探してる可能性が高いよね。TTPはそういうのを推論して、クエリを「コーヒー プレゼント」みたいに書き換えるんだ。
なるほど!でも、なんでわざわざクエリを書き換えるの?そのまま検索すればいいんじゃない?
普通の埋め込み検索だと、曖昧なクエリはベクトルがぼやけちゃって、精度が落ちるんだ。だから、具体的なクエリに書き換えてから埋め込み検索することで、より関連性の高い商品を出せるようにしてる。
なるほどね。で、どうやってLLMに推論させるの?
2段階の学習をするんだ。まずSFT(教師ありファインチューニング)で、正しい推論の仕方を学ばせる。それからGRPOっていう強化学習で、検索結果が良くなるようにさらに最適化する。
GRPOって何?強化学習の一種?
うん、グループ単位で報酬を比較する強化学習手法だよ。検索結果の関連性を報酬にして、推論の質を上げる感じ。
それで、実際に効果はあったの?
オフラインの評価でも、オンラインのA/Bテストでも、従来の手法より良い結果が出てる。特に、ユーザー履歴がある場合の精度が上がったみたい。
すごい!でも、何か課題とか限界はないの?
そうだね。まず、ユーザー履歴が少ない新規ユーザーには効果が薄いかもしれない。あと、LLMの推論に時間がかかるから、リアルタイム検索には向かない可能性もある。
あー、確かに。でも、履歴がたくさんあるユーザーにはめっちゃ便利そう!私もECサイトで「プレゼント」って検索するとき、過去の買い物から推論してくれたら助かるなー。
でも、君の履歴だと「お菓子」って検索しても、全部チョコレートになりそうだね。
あはは、それも悪くないかも!でも、たまには新しい発見も欲しいから、ほどほどにしてね!
まあ、その辺は今後の研究に期待だね。