# 英雄对线、组合联动与克制：M2 开发规范

另有[OP.GG 韩服 Master+ 对位参考](../research/opgg_master_relationships/README.md)：独立展示当前版本同分路对位整局胜率、场数、来源及低支持标记。这些汇总没有逐局时间或 10/15 分钟标签，不回灌历史训练/验证，职业模型权重仍为零。

当前查询版本已增加[时间衰减](../models/relationships/m2_recency_v1/README.md)：四个默认对线分支选择 365 天半衰期，Full Fearless 共选选择 90 天；其余按时间验证保留不衰减回退。权重参考拟合时点，原始场数、权重和与有效样本量分开返回。测试收益不一致，完整对照见新版本报告；原 `m2_final` 保留为冻结基准。

**简体中文** · [English](champion_relationships.en.md) · [开发路线](development_roadmap.zh_cn.md) · [数据需求](data_requirements.zh_cn.md)

规范固定于 2026-10-10；研究进展更新于 2026-10-13。本文定义开发目标与数据单位；实验进展不等于完整验收或生产上线。

## 当前研究交付

[M2 统一入口与复现](../models/relationships/m2_final/README.md)已覆盖全档案的对线与跨路研究、赛制隔离的共选机会、候选分路与当前前缀查询，并交付[逐项验收及全消融报告](../models/relationships/m2_final/artifacts/report.zh_cn.md)。16,437 场逐局记账，纳入 15,669 场；39 场已收录 DCGI 作为同一个保守测试事件块，避免猜测逐系列 ID。其余未核验完整连接、保留评估分区及重复别名均有明确排除记录。

未知赛制保留为缺失背景，不猜成 Classic。已知 Classic / Full Fearless 的机会模型独立训练；未知、选禁不完整或与规则冲突的系列拒绝训练机会。客户端英雄 roster 不称官方合法名单，查询可接收调用方带来源/时间/完整性声明的候选池，并保留未核验标记。指标保留独立缺失分母、支持度、收缩及未知分路；关系属于调整后的历史关联，未通过选择的全局交互停用，不伪造克制置信区间。

[独立排位迁移及不确定性验证](../models/relationships/m2_validation/README.md)已有可复现结果；金币改善不稳定，当前排位贡献零。2026 仅回顾诊断，不能称新盲测。M1/M3 预测不改写，也不启用个人英雄胜率/KDA加分。M4 接入、队伍争取优线的倾向和未来未见窗口验证属于后续工作。

此前的 [Full Fearless v2](../models/relationships/m2_v2/README.md)及 [LEC 2024 Classic](../models/relationships/m2_classic_v1/README.md)作为冻结研究记录保留，当前使用统一入口。历史官方规则/名单的缺失仍在覆盖合同中披露；交付不声称所有历史证据已经恢复。

## 1. 模块边界

M2 分为两条独立分支：**对线表现关系**与**跨位置联动/克制关系**。一组英雄能赢线，不意味着整局搭配必然更好；整局对抗结果也不能当成赢线证据。各类输出保留原指标、方向、版本、有效样本量和不确定性。

```mermaid
flowchart TD
    PRO["职业逐局阵容与已核验指标"] --> LANE["M2-L 上中对位、下路组合对组合"]
    PRO --> GLOBAL["M2-G 同队联动与跨路对抗"]
    RANKED["少量同口径排位对局"] --> TRANSFER["分域建模与时间验证"]
    TRANSFER --> LANE
    TRANSFER --> GLOBAL
    LANE --> TEAM["M3 队伍争取对线优势的倾向"]
    LANE --> POLICY["M4 当前状态的下一手 BP"]
    GLOBAL --> POLICY
    TEAM --> POLICY
    META["M1 版本热度"] --> POLICY
    COMFORT["M3 选手英雄池与队伍偏好"] --> POLICY
    STRUCT["后续阵容完整性：前排、伤害结构等"] --> POLICY
```

前排、AD/AP、开团与保护等传统结构需求放到 M4 的阵容状态中，随已有选择及剩余位置考虑；它们不替代 M2 的实测关系，也不等全部选完才考虑。

## 2. M2-L：对线表现关系

### 统计单位和标签

|单位|完整匹配键|优先保留的表现|
|---|---|---|
|上单/中单|我方英雄×实际分路，对方英雄×同分路|10/15 分钟补刀差、经济差、经验差，分别建模|
|下路双人组|我方 bot + sup，对方 bot + sup，四个角色不能省略|ADC 补刀差；双方 bot+sup 合计经济差与经验差；ADC/辅助单独经济差用于诊断|
|打野|双方打野和完整阵容背景|作为跨位置上下文；后续研究清野/资源影响，不能直接套单人线对线定义|

例如 **卡莉丝塔(bot)+烈娜塔(sup) 对 艾希(bot)+萨勒芬妮(sup)** 是一条四英雄组合对位。这里的分路来自实际比赛；其他比赛中的萨勒芬妮 bot 必须另列。已选 ADC、尚未选辅助时，模型比较补入各辅助之后的完整组合潜力。

下路不是把 ADC 单挑分数和辅助单挑分数相加。辅助补刀不能与 ADC 等权，合计经验使用经验值而非英雄等级。10 分钟与 15 分钟分别报告，避免把后期转线当成同一对线阶段。

### 拟定估计方式

先用赛前已知的队伍/选手整体水平、版本、红蓝方、赛区、赛事和赛制估计基准表现，再学习英雄与对位的剩余关联。打野组合、换线、辅助游走、资源倾斜若有可靠观测，作为上下文控制或分层；缺失时保留未知，不能宣称消除了这些干扰。选手整体水平不使用该选手在特定英雄上的胜率/KDA。

双人路样本会稀疏，采用共享与收缩：英雄×分路主效应、同队双人组关系、敌方双人组关系、四英雄对位残差分层估计。样本不足时向较粗层级回退，并扩大不确定性；不能把每个四英雄组合都当成有充分样本的独立结论。最终形式由时间验证决定，先保留多维表现，不预设未经训练的固定综合权重。

这是**调整后的历史对线表现关联**。只有最终分路而没有实际站线信息时，不能把它叫纯对线因果克制。历史结果在完赛后才能使用；当前局 BP 绝不读取当前局的补刀、经济或最终分路。

## 3. M2-G：跨位置联动与克制

参考 [BPGG Synergy](https://bpgg.app/en/synergy) 的共同选取频率与组合结果展示，以及 [BPGG Counters](https://bpgg.app/en/counter) 的“相对单英雄基准的额外对抗表现”思路。其公开说明提示：共同选取是关联；对抗表使用整局队伍结果，英雄不必同路。这些是方法参考，不是本项目已经复现其内部算法。

分开输出三类信息：

1. **组合选取倾向**：某英雄已被选时，队伍选另一英雄的条件频率；控制版本热度、队伍习惯、已占位置、ban/全局 BP 可用性及选择机会。顺序 A→B 和 B→A 的条件频率可以不同。
2. **同队表现联动**：在控制单英雄基础表现、双方队伍水平和版本等背景后，同队组合是否仍有额外的整局表现关联。组合胜负可作为团队层面的一个标签，伤害/视野/资源等经验证字段作为辅助诊断；不恢复选手特定英雄胜率/KDA加分。
3. **敌对表现关系**：两个英雄分属双方时，相对基准的对抗表现，包含跨路关系，例如打野与敌方中单、辅助与敌方 ADC。方向、双方角色和其余阵容需要明确；频繁互相出现本身不是克制。

基础方案为带正则/分层共享的交互项：整局结果模型先包含赛前队伍差异、蓝红方、版本和十个英雄的主效应，再增添同队与敌对英雄交互。收益是相对基准的变化，不用原始胜率直接排名。共现分支独立建模；同一场的蓝红镜像、20 个同队对、25 个敌对对不能当作独立比赛增大置信度，验证按完整比赛/系列赛分组。

缺失 CC 或技能事件时，不伪造“控制衔接”得分。MVP 可先提供支持度明确的共现及关系候选，收益模型仍需时间验证；不能以计划文档冒充训练成果。

## 4. 职业与排位如何融合

以此前指定的主要联赛队伍参加的正式比赛为主，沿用档案范围与盲选排除。比赛重要性、赛前实力、版本/时间距离保留为上下文或经验证的权重；不同赛制的可用机会分别处理。

排位只提供小幅辅助：分职业/排位域估计，再用历史职业时间外结果选择迁移强度并约束其贡献，不能因排位数量巨大而压过职业。某项来源不改善验证时允许权重为零。不要现在拍定“10%”再称已训练。

现有韩服高分段聚合选用/禁用率**没有四英雄对位及 10/15 分钟指标**，不能直接训练对线克制。需要包含双方十个英雄、实际分路、版本、地区/段位、日期及时间点指标的排位逐局资料；整局关系还需比赛结果与同口径上下文。选手练习与排位对局若重叠必须按比赛 ID 去重。

## 5. 如何影响逐手 BP 与队伍倾向

例如对方已选下路双人组、我方已有 ADC：M4 对每个合法辅助查询 M2-L 的完整双人对位表现，同时查询 M2-G 与已有中野的关系，结合 M1 版本信息和 M3 个人/队伍偏好，重新预测下一手。

若对方只露出一名英雄，保留可能分路与后续搭配分布，对这些合法后续情况求期望及风险；不能偷看真实最终阵容。双人路“成套选取”是一种倾向，不是强制同时锁定；两手不连续时仍按每个实际 BP 前缀更新。

M3 学习队伍愿意为预期对线优势付出多少选取优先级，以及保留反制位、保护组合的倾向。**T1 偏好优线组合是待验证例子**，不是硬编码事实：用当时可知的关系预测和实际选择学习相对共同倾向的差异，控制英雄池与版本热度，不能用该局最终赢线结果解释该局 BP。

## 6. 整理产物与待补数据

- [对线观测 schema](../research/data_catalog/lane_observations_schema.json)、[覆盖与检查](../research/data_catalog/lane_observations_validation.json)。`lane_observations.jsonl.gz` 每局保存上、中、下路双人组三条蓝方视角观测，反向查询只翻转差值，不重复增加样本。
- 来自已有逐选手指标的原时间点值，缺任一组成值则对应标签为 `null`；明确盲选排除，未核验赛制保持未核验。
- 优先补：实际换线/站线或可信标记、打野介入与辅助游走、资源投入、对应系列赛/赛制、可用机会。之后补同口径少量排位对位及可靠 CC/事件指标。
- 无法区分的背景保留未知。原观测整理产物不含拟合后的克制分数；新增实验与限制见顶部研究进展。队伍优线倾向与排位融合仍未验收。

本地实际整理：**16,415 局、49,245 条单位观测**（每局上、中、双人下路各一条）。每种单位有完整主要指标的局数分别为 10 分钟 **12,552**、15 分钟 **12,553**；两个时间点高度重叠，不能相加为独立比赛。全版本合并后的有方向双人组合共 9,628 种，仅 112 种达到 10 局；这只是原始支持度，不是目标版本可用样本量，更不是准确率。

复现：先运行 `research/scripts/prepare_development_data_inventory.py`，再运行 `python -X utf8 research/scripts/prepare_lane_observations.py`；读取的是已有本地来源，未新增外部对局采集。

## 7. 验证与交付

按时间和完整系列赛验证，先训练基准，再依次加入对位、完整双人组、全局关系、队伍对线偏好；报告每步消融。对线报告各时间点 CS/经济/经验 MAE、RMSE、区间覆盖和低样本表现；不得只保留有利组合。M4 报告加入各模块后的下一手 log loss、Top-K 和校准，确认关系信息确实帮助预测真实选择。

展示分为单人对线表、双人组对位矩阵和跨路关系表。每行显示实际分路、版本窗口、方向、支持度、观测与调整后结果的区别，以及未知/回退状态。前排、伤害结构等另在 M4 阵容区展示。
