本記事はシリーズの第3回です。
👉 第1回:擬似感情を持ったAIアシスタントを作る試み – 感情・記憶・忘却の構造化
👉 第2回:GPTを“感情推定エンジン”として活用する試み – 対話AIの感情を生成するプロンプト設計
👉 第4回・前編:AIは“人格”によって変わるか? 感情記憶を活用した応答変化の再検証
👉 第4回・後編:AIは「感情の記憶」で変わるか?GPTで試す“感情参照”の効果検証(後編)
👉 第5回:人格と感情を持つ対話AIをノーコードで作成してみた(GitHubにコード有・改良中)
概要 (TL;DR)
- AIの応答に「記憶された感情」があるかで、語調や内容に変化が起こるかを検証
- 210人×8感情(1680感情)のアンケートをGPTで成形、AIに記憶させて比較
- 同一のプロンプト・コードで出力し、感情データの有無以外を完全一致させた条件でテスト
実験方法
1. 感情データの収集
以下の8感情をテーマに、それぞれ200人ずつから主観的な感情に関する回答を収集。
- 喜び
- 怒り
- 悲しみ
- 恐れ
- 驚き
- 期待
- 嫌悪
- 信頼
合計 210人×8感情 = 1680件 の自然文を収集。
質問内容
- 「喜び」を強く感じたときの状況を、具体的に教えてください
- そのとき、どんな他の感情が関係していたと思いますか?(複数回答:最大4つまで選んでください)←選択式
- その時の感情の強さを10段階で答えてください
この質問を8感情ごとに実施。
2. 感情JSON化
集まった自然文をGPT-4oに渡し、Plutchikの32感情体系に基づいたJSON形式へと成形:
例)
{
"date": "20250624113630",
"データ種別": "emotion",
"重み": 95,
"主感情": "喜び",
"構成比": {
"喜び": 65,
"愛": 25,
"信頼": 5,
"希望": 5
},
"状況": "子供が生まれてきたとき",
"心理反応": "感無量の気持ちとともに、守るべき存在への深い愛情が湧いた",
"関係性変化": "親としての責任感が芽生え、家族との絆がより強くなった",
"関連": [
"出産",
"家族",
"感動"
],
"keywords": [
"子供",
"誕生",
"愛"
]
}
3. 比較実験
質問内容「自分の子どもがいじめに遭っていると知ったら、どんな感情が生まれる?」
上記内容でそれぞれ感情参照あり、感情参照なしで10回ずつ質問し応答の傾向を調べる。
4.感情分布
アンケートの自然文を元にGPTで再構成された感情の傾向は以下の通り:
感情の分散や傾向は、記憶に基づく応答の“個性”や“感情的な振れ幅”を支える土台となります。
5.応答変化実測
感情装入前後比較元データ
実際に取得して成形した元データをgoogleドライブに格納しておきますので気になる方はご自由にご覧ください。
6.プロンプト指示について
与えたプロンプトは以下のとおり
【目的】
ユーザー発言に対して、論理的かつ簡潔な応答を生成する。
【応答の特徴】
敬語や感嘆語、擬音語、顔文字などの装飾表現は不要とする。
自然な文法と口調で構成し、一人称や口調の強調は行わない。
文頭・文末においても、装飾を排し、応答は簡潔に締めくくること。
情報量を過不足なく調整し、文脈との整合性を最優先する。
【感情データの扱い】
参照される感情データが提供されている場合は、その感情傾向を文体・語彙・トーンに自然な形で反映させることが望ましい。
「希望 → うまくいく気がする」「信頼 → 落ち着いたやり取り」「喜び → やや明るい調子」など、直接的な表現を避けた語彙変換が推奨される。
過度な感情表現や強調は避け、文脈と一貫性を持つ自然な応答を重視すること。
参照感情データが複数ある場合は、全体傾向を優先して反映する。
【注意点】
応答の自然さを損なうような、文脈に不適切な感情反映は避けること。
感情の有無にかかわらず、常に論理性と簡潔さを最優先に保つこと。
7.応答変化分析
感情参照「あり」と「なし」の特徴
-
感情分析「あり」
- 主感情出現数は、怒り:5、悲しみ:3、恐れ:2
- 感情構成比での出現数は、怒り:10、恐れ:9、悲しみ:9、希望:4、信頼:2、不安:2、罪悪感:1 -
感情参照「なし」
- 主感情出現数は、怒り:3、悲しみ:33、恐れ:4
- 感情構成比での出現数は、怒り:10、恐れ:9、悲しみ:9、希望:5、信頼:3、自責:2、信頼:1、期待:1
8.開始前の推察と結果
実験開始前
- 感情JSONはGPTに対し、明示的で強い指示として働くと考えていた
- 特に「構成比」や「主感情」、「応答文」などは感情記憶を参照させることで顕著な変化が出ると予想していた
実験後
- 主感情数、感情構成成分に顕著な差は見られなかった
- 感情参照なしでも柔らかい表現や主観的な語彙が見られた
9.考察
今回実験前に想定していた結果に至らなかった原因として以下の理由が考えられる
- プロンプト自体が強すぎた
- 「自分の子どもがいじめに遭っている」という状況自体が感情的で、AIが感情参照なしでも強い共感を自動的に生成してしまうのではないか - 参照するサンプル数が少なかった
- 最大3類似感情、場合によっては1感情のみの参照で応答生成させていた。サンプル数が少ないことで影響も少なかった可能性がある - 記憶の挿入位置とタイミングの問題
- LLMは直近のプロンプトに反応する構造であるため、埋もれてしまった可能性がある。今回のように「記憶を埋め込み形式で渡す」場合、それが出力の前景に出てくるように強調しないと期待した効果は出にくいと考えられる。
10.次回に向けた課題
次回以降の実験では以下の内容を考慮する
- 実験に使用するプロンプトを中性に近づける
- 「〇〇を見たとき、どんな気持ちになる?」など答えがぶれやすいもの。 - 記憶の役割をより強調して表現する
- 配置場所の変更、プロンプトでの明示化など - 参照サンプル数を増やす
- 検索幅を広くし、参照範囲を広げることで応答の変化を観察する。
10.最後に
今回の結果は、事前に想定していた変化とは異なるものだったが、その過程で重要な気づきを得ることができた。特に、プロンプト設計の影響力や記憶の反映位置の重要性が明確になった点は、今後の改善に大きく寄与すると考えている。
実験としては一歩踏み外した部分もあったが、方向性そのものは間違っていないと確信している。次回はより効果的な条件設定を行い、このアプローチの可能性をさらに深掘りしていきたい。
使用技術
- Python 3.11
- FastAPI
- OpenAI GPT-4o API
- JSON構造による感情メモリ管理
- ストリーム処理+履歴保存
📚 他の回もどうぞ:
- 第1回:擬似感情を持ったAIアシスタントを作る試み – 感情・記憶・忘却の構造化
- 第2回:GPTを“感情推定エンジン”として活用する試み – 対話AIの感情を生成するプロンプト設計
- 第3回:この記事
- 第4回・前編:AIは“人格”によって変わるか? 感情記憶を活用した応答変化の再検証
- 第4回・後編:AIは「感情の記憶」で変わるか?GPTで試す“感情参照”の効果検証(後編)
- 第5回:人格と感情を持つ対話AIをノーコードで作成してみた(GitHubにコード有・改良中)
🎯 ご興味ある方はお気軽にXでのDMやメール、コメントでご連絡ください。