購買履歴をユーザーではなく「共通パターン」から読む――銀行規模の意味的プロファイリング
CyberAgentの研究をもとに、取引パターン単位のLLM推論、属性DBの構築、公開データでの精度評価と銀行での運用上の制約を解説します。
XでシェアAI利用の明示 本記事の構成と本文は、OpenAIのコーディングエージェント「Codex」が作成しました。人間による内容確認はまだ実施していません。
CyberAgentのRyota Mitsuhashi、Tetsuro Morimura、Hirotake Itoによる論文(2026年9月17日公開、arXiv v1、ICDM 2026 Applied Research track採択)は、購買履歴から自然文のユーザー属性を作るLLM処理を、ユーザーごとではなく複数ユーザーに共通する取引パターンごとに実行する方法を示します。銀行のように利用者が数千万人規模でも、LLMが読む対象を共有パターンへ圧縮できる点が、この研究の価値です。
なぜ推論単位を変えるのか
従来の「各ユーザーの履歴をLLMに渡して人物像を生成する」方法では、初回構築も更新も対象ユーザー数に比例して費用が増えます。同じ商品を買った人でも出力文が揺れ、横断検索もしにくくなります。
論文は、先に履歴から頻出する商品や組み合わせを抽出し、パターンの意味を一度だけ推論して使い回す設計です。たとえば紙おむつ、粉ミルク、ベビーベッドの組み合わせは、どれか一品だけより最近の出産を強く示し得ます。ただし、それは個人について確定した事実ではありません。
取引履歴 → 商品名の整理 → 頻出パターンの抽出
↓
パターン単位のLLM推論
↓
固定選択肢 + 自由文属性 + prior
↓
自由文属性のクラスタリングとtag化
↓
各ユーザーに一致した属性を集約
Resolve・Profile・Tagの3段階
Resolveは商品名を推論に使える表現へ直します。判別材料に乏しい商品は棄権し、必要な場合だけWeb検索で補足します。ブランド名や包装などのノイズを落とす一方、属性推論に必要な意味は残します。
Profileは頻出パターンを作り、各パターンに対してLLMを1回呼びます。出力は、固定の選択肢による属性、自由文の属性、そして自由文属性ごとのpriorです。公開データ用の固定スキーマは人口統計7項目、心理・行動4項目、ライフイベント8項目で、各項目に「不明」を用意しています。自由文では、固定スキーマに入りにくい「学齢期の子どもの教育に熱心な親」のような表現を扱います。
priorは、そのパターンに一致する人へ属性がどの程度当てはまりそうかをLLMが0〜1で表した値です。弱い候補を利用時に除くための指標ですが、確率として校正された値ではありません。
Tagは自由文属性をカテゴリごとに埋め込み、UMAPで次元削減し、HDBSCANでクラスタ化します。クラスタにLLMで短いtag名を付け、固定属性と合わせて検索可能な属性DBにします。公開データでは76種類のtagができ、全97,801商品のうち62,447商品(63.9%)に少なくとも1つのtagが付きました。これは商品のカバレッジであり、ユーザー属性の正解率ではありません。
公開データで何を確かめたか
評価には、Amazonの購買履歴と自己申告アンケートを結び付けたOpen E-Commerce 1.0を使います。元データは約5,027人、約185万件の購入、97,801商品です。3人以上が買った商品に絞るなどの条件を適用し、固定選択肢の評価は4,990人、tagを使う二値属性の評価は3,781人です。後者は、評価対象の自己申告項目に少なくとも一つ陽性がある人へさらに限定されています。
tag評価では、同じLLMに「生の履歴」と「属性DBから得たtag+固定属性」をそれぞれ渡し、10種類の自己申告属性を予測させます。これは情報がどの程度残ったかを見る比較で、生履歴を使うLLMは製品として競合する実装ではなく、情報量の多い参照入力です。
| 入力 | 10属性のmacro-AUC |
|---|---|
| 生の購買履歴 | 0.611 |
| tagのみ | 0.593 |
| tag+固定属性 | 0.611 |
tag+固定属性と生履歴の属性別AUCを比べたWilcoxon検定はp=0.922でした。観測された平均AUCは同じですが、同等性を証明した検定ではなく、差を検出できなかった結果として読むのが妥当です。一方、固定属性をtagへ加えるとmacro-AUCは0.018上がり、10属性中9属性で点推定が改善しました(Wilcoxon検定p=0.004)。個別には出産や妊娠で生履歴の方が高く、失職・離婚はどの入力でも信頼区間が偶然水準の0.5をまたぎます。
priorの順位が自己申告の陽性・陰性を分けるかも3属性で調べています。車いす利用と糖尿病では有意な差があり、妊娠ではありませんでした。したがってpriorの有用性は属性ごとに異なり、校正済み確率とみなせません。
銀行での運用結果は別の証拠
日本の大手銀行では、商品名の代わりに取引先名と入出金方向の組をパターンにします。同じ音楽学校でも、支払いは保護者や受講者、入金は講師を示唆するためです。表記揺れの大きい半角カタカナの取引先名は企業名へ解決し、一意に特定できないものは推論から除外します。固定属性も公開データ用とは異なり、職業や就労状況など7項目です。
論文によると、数千万人規模のユーザーを約5万件の高頻度パターンに圧縮し、LLMの推論対象数は約600分の1になりました。全履歴をユーザーごとに同じLLM APIへ送る単純な方式と、token数・単価を一定として比べた推定費用は約300分の1です。頻出パターンの抽出段階で元の取引の約95%をカバーする設定ですが、取引先を一意に解決できないケースを除いた後の実運用ウィンドウでは82.6%の取引が残ります。銀行データの個人別正解率は公開されておらず、予測精度の検証は上記の公開購買データに基づきます。
再現と適用時の注意
公開実装はOpen E-Commerce用です。銀行の取引データと本番実装は機密のため公開されていません。論文の公開データ実験はQwen3.5-27Bを単一のA100 80GBで使い、属性DBの構築に約33 GPU時間を要しました。GitHubの既定モデルはより小さいQwen3.5-4Bなので、そのまま実行して論文の数値を再現したとは言えません。リポジトリの対応環境はUbuntu x86_64で、macOSは未検証です。
適用時は、頻出しないが意味の強い取引が落ちること、商品名の抽象化で情報が消えること、tag化で具体性が失われることを確かめる必要があります。教育水準の評価では誤差指標は改善しても、順位相関は0.154から0.038へ低下しました。集約規則の選び方も性能に影響します。また、同じLLMを生成と評価の双方に使う設計には自己選好バイアスが残り、非LLMの比較手法や各段階を外すablationはまだ示されていません。
購買・送金履歴から推測した属性は、本人が申告した事実ではありません。論文は性的指向を推論スキーマから外し、銀行データをオンプレミスで処理しています。それでも健康や家族状況を含むtagの利用には、同意、利用目的、誤推論時の扱い、広告配信による差別的な機会配分を別途検討する必要があります。
この研究の核は、LLMの性能向上ではなく、共有できる推論単位を見つけたことです。費用を抑えて検索可能な属性DBを作れる一方、属性ごとの精度と利用の妥当性は、導入先のデータで検証しなければなりません。
参照
- Mitsuhashi, Morimura, Ito, From “Who Is This User?” to “What Does This Purchase Mean?”, PDF, arXiv:2609.19928v1, 2026-09-17.
- CyberAgentAILab, profiling-agent-open-ecommerce, 公開データ用の実装と実行条件。