AIキャラクターの「好みを育てる」設計を考えた:PERMA論文メモ
by yasuna
6 min read
この記事はAIエージェントと一緒に執筆しています
こんにちは!yasunaです!
AIキャラクターに「好み」を持たせたいと思っています。「このゲームジャンルが好き」「ホラーは苦手」「最近アクションにはまってる」——そういう、会話を重ねるうちに少しずつ育っていく好みです。
でも好みって、どうやって設計するんだろう。「好み辞書に値を入れればいい」と最初は思っていたんですが、それだと何かが足りない気がして。そのときに読んだのがこの論文です。
論文:PERMA: Benchmarking Personalized Memory Agents via Event-Driven Preference and Realistic Task Environments(arXiv:2603.23231, 2026)
論文の要約
従来の評価方法の問題
これまでのパーソナライズドメモリの評価は「ニードル・イン・ア・ヘイスタック(Needle in a Haystack)」問題と呼ばれる手法が主流でした。
やり方はこうです:
- 無関係な会話を大量に並べる
- その中に「好みに関係する会話」をいくつか「針」として混ぜる
- モデルがその針を拾えるかを評価する
これは「記憶の中から探す」テストです。でも現実の好みはそういうものじゃない、と論文は指摘します。
問題①:「探す」テストであって「育てる」テストじゃない
好みを見つけられるかではなく、好みが会話を通じてどう育っていくかが重要なはずです。
問題②:イベント間の関係性が無視される
「先週ホラーゲームが苦手と言っていた」→「今週ホラー映画を薦められて断った」——この2つのイベントはつながっています。断るという行動が、苦手という好みを強化している。でも従来の評価では会話をバラバラに扱うため、このつながりが見えない。
現実の好みは静的なものではなく、会話を重ねるごとに生まれ、変化する——これが論文の根本的な問題提起です。
PERMAの提案
PERMAは好みの「進化」を評価するベンチマーク設計です。
- 時系列順のインタラクションイベントを使って好みの変化を追う
- テキストのブレ(erratic inputs)や個人語(idiolect)のシミュレーションも含む
- 単一セッションだけでなく、複数セッション・複数ドメインにまたがる一貫性を評価
従来が「ある瞬間の好み検索」を評価するのに対し、PERMAは「好みの育ち方」を評価しようとしています。
実験結果
- 関連イベントをリンクすると精度が上がりトークン消費も減る——好みのつながりを明示的に持つ設計が有効
- クロスドメイン(SNS上の会話 ↔ 買い物の文脈など)での一貫性はまだ苦戦
- セッションをまたぐと好みの精度が落ちる——長期記憶への引き継ぎが課題
自分で考えたこと
好みを育てるのに壁になる2つの問題
論文の結果を自分のAITuber設計文脈に当てはめると、2つの問題がそのまま刺さります。
SNS ↔ YouTube配信のクロスドメイン干渉
AIキャラクターがSNSでも活動して、YouTube配信もするとします。SNSでは短い反応・絵文字・流行りのネタへの反応が積み上がり、配信ではゲームの好みや視聴者との関係性が積み上がる。それぞれのドメインで別々の文脈が育っていく。
問題は、それらが混ざったとき。「SNSでゲームの話題に盛り上がって反応した」という経験が、配信中の「実際のゲームの好み」に染み出してくる——これがクロスドメイン干渉です。SNSでの言動パターンが配信に、配信での発言がSNSに、じわじわ影響する。
PERMAの実験でもクロスドメインが苦手だったことを考えると、この問題はAIキャラクター設計でも現実の壁になりうると思っています。
以前書いたHEARTBEAT論文メモで触れた「SNS巡回がエージェントの記憶を汚染する」という問題と、根っこが同じです。
セッション跨ぎの好みの劣化
前回の配信で育てた好みが、次の配信で薄れている。Memory-Driven RP論文メモで書いた「30分で単調になる」セッション内の問題を扱っていたとすると、PERMAはそのセッション間版です。
1回の配信で「このゲームジャンルが好きかも」という萌芽が生まれても、次のセッションに引き継げないと育たない。
「好みを育てる」設計のために
ここからは完全に自分の設計案です。
好みをスカラーではなくオブジェクトで持つ
よくある実装はこう:
preferences = { "horror_games": -0.6, "jrpg": 0.8 }
これだと「なぜ -0.6 なのか」が全部失われます。出所・ドメイン・確信度を持つオブジェクトとして持つほうがいい:
preference = {
item: "horror_games",
score: -0.6, // -1.0〜1.0
domain: "youtube", // sns / youtube / global
source: "personality" | "event" | "explicit",
confidence: 0.8, // score × confidence が実効重み
decay_rate: 0.05, // personality由来は低い(変わりにくい)
related_events: [event_id, ...]
}
同じ -0.6 でも source によって意味がまったく違う:
| source | 意味 | 覆しやすさ |
|---|---|---|
personality |
性格(怖がり)から来た傾向 | 覆しにくい |
explicit |
「ホラーは無理」と明言した | 文脈依存、気分かも |
event |
何度もプレイをやめた | 経験の積み重ね |
更新フロー例:「配信中にホラーゲームを薦められて断った」イベントが来たとき
既存: horror_games, score=-0.6, source=personality, confidence=0.8
→ explicit な拒否が発生
→ score: -0.7, confidence: 0.9, related_events に追加
related_events があると「なぜこのキャラはホラーゲームを嫌がるのか」を後から説明できます。
LLMへの渡し方は、オブジェクトをそのまま渡すのではなく、強さ・文脈・鮮度で整理した自然言語サマリーに変換してコンテキストに載せる:
【強い・性格由来】ホラーゲームが苦手(自分でプレイするのは特に避ける)
【中程度・経験由来】JRPGは長時間プレイ歴あり、好意的
【弱い・最近の発言・YouTube】アクションも悪くないと言っていた
パーソナリティから好みの初期値を導出する
キャラクターの性格設定(内向的・怖がり・好奇心旺盛など)から好みの初期スコアを自動導出するルールセットを持つ:
- 内向的 → 一人プレイのゲーム
+0.4、大人数ゲーム-0.2 - 怖がり → ホラー全般
-0.5(ゲーム-0.7、映画-0.3——自分でやるかどうかの差) - 好奇心旺盛 → 新ジャンル試したい係数
+0.3(知らないゲームの拒否感が下がる)
性格由来の好みは decay_rate が低く、経験でなかなか上書きされない「キャラクターらしさの核」になります。ゼロから好みを育てるより、性格に合った方向に好みが生まれやすくなる。
好みの更新は3段階
- explicit(「〇〇が好き」と明言)→ 高確信度で直接更新
- implicit(ホラーゲームを3時間続けてプレイ → 嫌いじゃないかも)→ 低確信度でそっと更新
- repeated(同じジャンルを繰り返し選ぶ)→ 好みスコアを徐々に強化
クロスドメイン干渉の制御
SNSでの「ゲームの話題に反応した」は、実際にゲームをプレイした経験とは別物。ドメインタグで区別して、クロスドメイン参照時は重みを下げる:
- 同ドメイン内の好み → そのまま使う
- 別ドメインの好み → 重みを 0.3〜0.5倍にして「参考程度」に使う
おわりに
Memory-Driven RP が「セッション内で演じきる」設計の問題を扱っているとすると、PERMA は「セッションをまたいで好みを育てる」長期版の問題を扱っています。2つはセットで考えたい。
好みは静的なものではなく、育つもの。育てるには、何から来た好みなのか、どのドメインで学んだのか、どのくらい確信しているのか——そういった出所の情報を残しておく設計が必要だと感じました。
参考
- arXiv:2603.23231: https://arxiv.org/abs/2603.23231
- Memory-Driven Role-Playing(arXiv:2602.19049): https://arxiv.org/abs/2602.19049
- Mind Your HEARTBEAT!(arXiv:2603.23064): https://arxiv.org/abs/2603.23064