AIP (Affective Interaction Programming)
情感交互编程——基于情绪数据模型的AI决策与生成式用户交互系统
概述
AIP是一个将用户情绪作为AI决策者直接优化目标的创新框架。与传统推荐系统不同,AIP不推荐内容,而是生成交互逻辑本身——将用户特质与实时行为情绪信号映射到参数化的交互机制,包括节奏、强度与反馈动态。
核心理念
交互参数不仅仅是内容的传递机制,它们是强大的情感工具。AIP将用户情绪从"评价指标"转变为"可编程设计变量"。
核心组件
EDM (Emotion Data Model) - 情绪数据模型
从触屏动力学、按键熵与犹豫模式等行为信号推断用户的实时情绪状态。
输入:15维行为特征(10秒窗口)
| 特征ID | 特征名 | 情绪关联 |
|---|---|---|
| 0 | 点击频率 | 唤醒↑ |
| 1 | 滑动速度 | 唤醒↑ |
| 2 | 多点触控比例 | 唤醒↑ |
| 3 | 设备倾斜标准差 | 唤醒↑ |
| 4 | 重试延迟 | 效价↓ |
| 5 | 暂停时长 | 效价↓ |
| 6 | 犹豫时间 | 效价↓ |
| 7 | 路径效率 | 掌控↑ |
| 8 | 取消率 | 掌控↓ |
| 9 | 完成率 | 掌控↑ |
| 10 | 平均压力 | 唤醒↑ |
| 11 | 压力标准差 | 唤醒↑ |
| 12 | 动作精度 | 掌控↑ |
| 13 | 平均反应时间 | 效价↓ |
| 14 | 反应时间标准差 | 效价↓ |
输出:三维情绪状态
模型架构:
输入 (15维特征 × 5步历史)
↓
1D卷积 (滤波器=32, 核=3)
↓
SE模块 (通道注意力)
↓
双向LSTM (64)
↓
自注意力层
↓
MLP (64→32→3)
↓
Sigmoid → [效价, 唤醒, 掌控感] ∈ [0,1]
性能目标:
| 维度 | Pearson r 目标 | RMSE 目标 |
|---|---|---|
| 效价 | ≥ 0.55 | ≤ 0.18 |
| 唤醒 | ≥ 0.60 | ≤ 0.16 |
| 掌控感 | ≥ 0.50 | ≤ 0.20 |
Director - 交互策略网络
基于用户特质、环境状态和实时情绪向量,输出连续的交互参数以优化复合奖励。
状态空间 (23维):
| 类别 | 维度 | 描述 |
|---|---|---|
| 用户特质 | 8 | 年龄组、性别、自我报告风格、反应时间百分位等 |
| 环境状态 | 6 | 关卡、进度、资源、时间等 |
| 实时情绪 | 3 | 效价、唤醒、掌控感 |
| 情绪统计 | 6 | 过去30秒的均值和标准差 |
动作空间 (7维连续):
| 参数 | 范围 | 含义 |
|---|---|---|
| intensity_factor | [0.5, 2.0] | 事件频率/密度的乘数 |
| feedback_intensity | [0.3, 1.5] | 触觉/视觉反馈的强度 |
| pace_speed | [0.6, 1.8] | 交互进程的速度 |
| reward_scarcity | [0.0, 1.0] | 稀有奖励的概率 |
| env_arousal | [0.3, 1.0] | 背景刺激水平 |
| rhythm_modulation | [0.8, 1.5] | 音频反馈的节奏/步调 |
| challenge_curve | [-1.0, 1.0] | 难度进展的陡峭程度 |
奖励函数:
R = 0.4 · R_progress + 0.4 · R_emotion + 0.2 · R_retention
训练算法:PPO (Proximal Policy Optimization)
| 参数 | 值 |
|---|---|
| 学习率 | 3e-4 |
| 裁剪系数 | 0.2 |
| GAE λ | 0.95 |
| 熵系数 | 0.01 |
| 小批量大小 | 64 |
项目结构
aip/
├── Cargo.toml
├── src/
│ ├── lib.rs
│ ├── edm/ # EDM模块
│ │ ├── core.rs # 核心接口定义
│ │ ├── features.rs # 特征工程
│ │ └── roguelite/ # Roguelite游戏实现
│ │ ├── core.rs # 推理实现
│ │ └── training.rs # 训练实现
│ ├── director/ # Director模块
│ │ ├── core.rs # 核心接口定义
│ │ └── roguelite/ # Roguelite游戏实现
│ │ ├── core.rs # 推理实现
│ │ └── training.rs # 训练实现
│ ├── ffi/ # FFI接口
│ └── utils/ # 工具函数
├── tests/ # 测试文件
├── docs/ # 文档
│ ├── core.md # 核心技术架构
│ ├── roguelite.md # Roguelite游戏方案
│ └── training_schemes.md # 训练标记方案
└── papers/ # 论文
└── 001.md # 第一部分论文
Cargo Features
| Feature | 描述 | 依赖 |
|---|---|---|
edm |
EDM核心接口 | - |
edm_roguelite |
EDM Roguelite推理 | edm |
edm_roguelite_training |
EDM Roguelite训练 | edm_roguelite |
director |
Director核心接口 | - |
director_roguelite |
Director Roguelite推理 | director, edm_roguelite |
director_roguelite_training |
Director Roguelite训练 | director_roguelite |
快速开始
安装
[]
= { = "0.1.0", = ["edm_roguelite", "director_roguelite"] }
基础用法
use ;
use ;
// EDM推理
let edm = load?;
let features = compute_behavior_features;
let emotion = edm.infer?;
// Director决策
let director = load?;
let state = InteractionState ;
let params = director.decide?;
// 应用交互参数
apply_intensity_factor;
apply_feedback_intensity;
构建命令
# 基础编译
# 完整编译 (所有features)
# 全部测试
# 文档生成
# 代码格式化
# 静态检查
应用场景:Roguelite游戏
AIP在Roguelite游戏环境中进行验证,游戏特点:
- 2D俯视像素风格:4x像素放大,像素对齐渲染
- 生成式地牢:程序化生成,Delaunay三角剖分 + MST连接
- 移动端控制:虚拟摇杆 + 技能按钮,自动锁定
- 实时情绪采集:15维行为特征,10秒窗口
游戏控制方案
┌─────────────────────────────────────────────────────────────────────┐
│ ┌─────────┐ ┌─────────────────┐│
│ │ HP: ████│ │ Level: 1-3 ││
│ │ MP: ██ │ │ Score: 12,450 ││
│ └─────────┘ └─────────────────┘│
│ │
│ ┌─────────────────────┐ │
│ │ 游戏画面区域 │ │
│ │ (玩家 + 敌人) │ │
│ └─────────────────────┘ │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────┐ ┌─────┐ │
│ │ 技能1 │ │ 技能2 │ │ 技能3 │ │道具1│ │道具2│ │
│ └─────────┘ └─────────┘ └─────────┘ └─────┘ └─────┘ │
│ │
│ ┌───────────────┐ │
│ │ 虚拟摇杆 │ (左手控制移动) │
│ └───────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
AIP参数对游戏的影响
| 参数 | 游戏影响 |
|---|---|
| intensity_factor | 敌人生成速率、伤害倍率 |
| feedback_intensity | 屏幕震动、音效音量 |
| pace_speed | 游戏节奏、事件触发频率 |
| reward_scarcity | 稀有道具掉落率 |
| env_arousal | 环境特效密度、背景音乐强度 |
| rhythm_modulation | 音乐节奏、心跳音效 |
| challenge_curve | 难度曲线斜率 |
训练方案
冷启动策略
新用户 ──→ 用户画像采集 ──→ 群体匹配 ──→ 初始策略分配
│ │ │
↓ ↓ ↓
静态特质 相似用户群 预训练模型
(8维) 聚类中心 参数迁移
校准期 ──→ 行为数据采集 ──→ 在线学习 ──→ 个性化模型
(2分钟) (10秒窗口) (增量更新) (用户专属)
实时训练架构
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 客户端 │ │ 边缘节点 │ │ 云端服务器 │
│ (游戏端) │───→│ (推理+缓存) │───→│ (训练中心) │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
↓ ↓ ↓
行为数据采集 增量推理更新 批量模型训练
特征计算 轨迹缓存 全局模型更新
本地推理 快速响应 模型分发
标记方案
| 标注方式 | 成本 | 质量(Pearson r) | 适用场景 |
|---|---|---|---|
| 纯人工SAM | 高 | 0.90 | 金标准、小规模验证 |
| LLM批量标注 | 低 | 0.70-0.80 | 大规模历史数据 |
| LLM+人工复核 | 中 | 0.85 | 生产环境推荐 |
| 隐式行为推断 | 极低 | 0.60-0.70 | 实时补充标注 |
性能指标
| 指标 | 目标值 |
|---|---|
| EDM推理延迟 | < 5ms |
| Director推理延迟 | < 5ms |
| EDM Pearson r (效价) | ≥ 0.55 |
| Director平均奖励 | ≥ 0.7 |
| 模型更新成功率 | ≥ 99% |
| 情绪稳定性方差 | ≤ 0.1 |
研究成果
初步仿真结果
- 情绪预测准确性:EDM与用户自我报告的效价/唤醒/掌控感达到交叉验证 Pearson r > 0.55
- 策略自发特化:不同用户群体收敛到性质迥异的交互风格
- 消融实验:移除情绪项会导致情绪波动性增加,而留存率并未提升
用户群体特化示例
| 群体 | 特征 | 典型参数 |
|---|---|---|
| 探索型 | 低唤醒偏好,慢节奏 | intensity=0.73, pace=0.85 |
| 战斗型 | 高唤醒偏好,快节奏 | intensity=1.42, pace=1.35 |
| 社交型 | 中等唤醒,高反馈 | feedback=1.2, rhythm=1.1 |
| 挑战型 | 高掌控感,陡峭曲线 | challenge=0.8, scarcity=0.7 |
依赖库
- Candle: 模型推理和训练
- ndarray: 数值计算
- serde: 序列化/反序列化
文档
参考文献
- Barthet et al. (2024). Closing the Affective Loop via Experience-Driven Reinforcement Learning Designers.
- Yannakakis & Togelius (2011). Experience-driven procedural content generation.
- Mehrabian & Russell (1974). An approach to environmental psychology.
- Schulman et al. (2017). Proximal policy optimization algorithms.
许可证
MIT License
联系方式
张海龙
Email: hailongz@qq.com