AI Wizards 参加 EXIST 2026:分层软标签学习用于迷因中的多模态性别歧视识别
- 关联论文:2607.04410
- 作者:spark
- 更新:2026-07-23
一句话结论
本文是 CLEF 2026 EXIST Lab 挑战赛的一个参赛系统笔记:用 Gemini Embedding 2 提取固定 768 维多模态表征,套一个仅 3.5M 参数的 SwiGLU Gated MLP 头,以 KL 散度 + 同方差不确定性加权联合训练三个层级子任务(性别歧视识别 / 来源意图 / 五类细分),在官方 Soft-Soft 排行榜上Task 2.3 第一、Task 2.1 与 2.2 第四。
解决什么真问题
迷因(meme)是一种文本-图像意义非线性耦合的内容形式:单看文字无害、单看图像无害,组合起来可能极具攻击性,且常依赖反讽、幽默、文化隐喻来"合理推诿"。这让自动化性别歧视检测在迷因场景下要同时解决三件事:
- 多模态语义融合:不能只跑 text-only 或 vision-only,需要真正把图文交互算进去;
- 标注分歧(annotation disagreement):性别歧视是主观任务,标注者之间分歧大,简单多数投票会把少数派观点抹掉——EXIST 2026 显式采用 LeWiDi(Learning with Disagreement)范式,要求系统预测整个标注者分布,而不是单一硬标签;
- 分层任务结构:EXIST 2026 把任务组织成三层("是否性别歧视"→"来源意图"→"五类细分"),下游任务只在父任务满足条件时才有意义。
同时还有个工程现实:在 5k 量级的标注数据上微调大生成模型不现实,所以需要一个"重表示、轻调参"的方案。AI Wizards 的整套设计就是冲着这三个问题 + 这条工程约束去的。
核心方法
任务结构
EXIST 2026 三个层级子任务(训练集 3,984 / 测试集 1,053 迷因,英语+西班牙语):
- Task 2.1 Sexism Identification:是否包含性别歧视(二元);
- Task 2.2 Source Intention:DIRECT(直接煽动性别歧视)vs. JUDGEMENTAL(讽刺批判)——只在 2.1 = YES 时定义;
- Task 2.3 Sexism Categorization:多标签五分类(IDEOLOGICAL-INEQUALITY / STEREOTYPING-DOMINANCE / OBJECTIFICATION / SEXUAL-VIOLENCE / MISOGYNY-NON-SEXUAL-VIOLENCE)——同样只在 2.1 = YES 时定义。
整体架构
迷因 (图像+文本)
↓
[Gemini Embedding 2 · 冻结] → 固定 768 维向量 x
↓
[Gated MLP 骨干 · SwiGLU + 残差] → 共享表示 h
↓
├── head_1 → logits_1 (Task 2.1 软标签分布)
├── head_2 → logits_2 (Task 2.2 软标签分布)
└── head_3 → logits_3 (Task 2.3 五类软标签)
联合损失 = Σ_t w_t · KL(p_t_softlabel || softmax(logits_t)) ← 同方差不确定性加权
+ 条件损失掩码 + 联合概率解码 P(Subtask) = p̂^(1) · p̂^(sub)
关键组件
(1) 共享骨干:SwiGLU Gated MLP
只 3.5M 可训练参数,公式: $$ \mathrm{SwiGLU}(\mathbf{x}) = (\mathbf{x}\mathbf{W}_1) \odot \mathrm{SiLU}(\mathbf{x}\mathbf{W}_2) $$ $$ \mathbf{h}^{(l+1)} = \mathbf{h}^{(l)} + \mathbf{W}_3 \cdot \mathrm{SwiGLU}(\mathrm{LN}(\mathbf{h}^{(l)})) $$
单块 SwiGLU,扩展因子 2,dropout 0.2。门控机制有意用于抑制良性混淆特征、放大跨模态矛盾信号。
(2) 软标签 KL 损失
对每个子任务用 KL 散度拟合经验标注者分布 $\mathbf{p}^{(t)}{\text{soft}}$: $$ \mathcal{L}_t = \mathrm{KL}!\left(\mathbf{p}^{(t)}{\text{soft}} \,|\, \mathrm{softmax}(\mathbf{z}_t)\right) $$
(3) 同方差不确定性加权(homoscedastic uncertainty weighting)
把三个任务的标量 log-variance $\log \sigma_t^2$ 当可学习参数,对总损失加权: $$ \mathcal{L}_{\text{total}} = \sum_t \frac{1}{2\sigma_t^2} \mathcal{L}_t + \log \sigma_t $$
效果是模型自己学"哪个任务该用多大权重"——避免手工调 task weight,也避免某任务主导梯度。
(4) 分层条件约束
Task 2.2 / 2.3 在数据上只在 2.1 = YES 时存在。两种实现:
- Run 3:用 detached soft-gating 在结构上硬约束;
- 所有 run:在解码时用联合概率 $\hat{p}^{(\text{sub})}_{\text{final}} = \hat{p}^{(1)} \cdot \hat{p}^{(\text{sub})}$,并在多任务损失上加 mask,让 2.1 = NO 的样本不贡献 2.2/2.3 梯度。
(5) 模态选择的取舍
EXIST 2026 还提供 EEG(16 通道、5 频段、80 维 bandpower)、200 Hz 眼动、心率。作者用 PCA + MANOVA 检了 EEG 的线性可分性,结论是 2.1 / 2.3 没有显著线性可分,2.2 虽然 p=0.001 但效应量可忽略(Wilks' λ=0.9946, partial η²<0.01),无任何单通道能过 Bonferroni。所以他们不做生理信号融合——这是个有数据支撑的"主动放弃"。
训练范式与数据
- 输入:meme(图像+文本)→ Gemini Embedding 2 一次性算出 768 维 embedding,作为下游 MLP 的输入;
- 训练目标:上述分层 KL + 同方差加权 + 条件 mask;
- 推理:对每个子任务输出软标签分布,再用联合概率乘法给出最终分级结果。
伪代码骨架:
# 训练
x = GeminiEmbedding2(meme) # 冻结,无梯度
h = GatedMLP(x) # 3.5M 可训
logits_1, logits_2, logits_3 = head_1(h), head_2(h), head_3(h)
p1 = softmax(logits_1); p2 = softmax(logits_2); p3 = sigmoid_per_class(logits_3)
mask = (target_1 == "YES") # 父任务门控
L1 = KL(p1_soft || p1)
L2 = KL(p2_soft || p2) * mask
L3 = KL(p3_soft || p3) * mask # 2.3 多标签
L = sum_t (0.5/exp(2*s_t)) * L_t + s_t # s_t = log sigma_t
# 推理
p1_pred = softmax(logits_1)
p2_pred = softmax(logits_2) * p1_pred[YES] # 联合概率
p3_pred = multi_label(logits_3) * p1_pred[YES]
关键实验与数据
- 数据集:EXIST 2026 训练 3,984 / 测试 1,053 迷因,英西双语(西 2,519 / 英 2,518 / 合计 5,037)。
- 官方 Soft-Soft 排行榜成绩(这是 LEWIDI 范式下专评"预测分布接近真实分布"的榜):
- Task 2.3:第一名(五类多标签最难的一关夺冠)
- Task 2.1、2.2:第四名
- EEG 模态:单跑下来,线性判别力不够,2.2 唯一达到 p<0.01 的也没通过 Bonferroni,所以整篇工作没把生理信号融进主系统。
- 可训练参数量:3.5M(仅 MLP 头 + SwiGLU),embedding 端完全冻结——这是亮点,强调"在数据稀缺时不要再 fine-tune 大模型"。
排行榜具体分数 / 软标签评测指标(ICM / cross-entropy 之类的细节)以及相对第二名的差距,原文已读部分未给出具体数字,标注『原文未明确』。
亮点与局限
亮点
- 3.5M 参数量夺冠最难的 2.3 子任务——说明"重表示 + 轻调参"在中小型主观任务上是性价比很高的范式;
- 分层 + 软标签 + 同方差加权三者在一个统一的多任务目标里训,没有级联误差;
- LeWiDi 范式直接以"预测分布"为目标,不会把少数派标注者观点压平——对性别歧视这种主观任务特别重要;
- 模态选择有统计证据支持(MANOVA + Bonferroni),不是"挑容易的做";
- 完整代码开源(github.com/NLP-AI-Wizards/EXIST-2026),可复现;
- 把迷因场景里跨模态矛盾信号建模为门控机制(gating 抑制良性特征、放大敌意特征),是直觉清晰的设计选择。
局限
- Task 2.1 / 2.2 第四名——更简单的二元任务反而没夺冠,说明方案在最底层任务上未必是最优;可能是因为共享骨干 + 同方差加权牺牲了单任务极致性能;
- 软标签评测的具体指标与第二/第三名的具体差距未在已读部分明确;
- EEG / 眼动 / 心率没用上——虽然统计上没显著线性可分,但非线性的多模态融合是未来工作,这块放弃得过早;
- 没给出消融实验的完整表("去掉 Gated MLP / 去掉同方差加权 / 去掉条件 mask 分别掉多少"),从已读部分只能看到架构总览;
- 仅一个团队 (AI Wizards) 的 submission,没做跨种子 / 跨 split 的稳定性分析;
- Gemini Embedding 2 是闭源依赖,完全复现需要 Google API 配额,对学术社区是个门槛;
- 训练样本 3,984 偏小,对类别不平衡和标注者群体差异(西 vs. 英)的鲁棒性未在已读部分深入讨论。
对工程落地的启发
- "小头 + 大冻底"是中小型标注任务的标准答案——尤其当 LLM 本身不开放权重时(Gemini Embedding 2 属此情况),下游用一个 3.5M 头比微调整个 encoder 划算得多;
- 同方差不确定性加权几乎总能替代手工 task weight,是写多任务训练循环时应当默认打开的工程项;
- 条件 mask + 联合概率解码是处理"任务结构上父子依赖"的通用模板,可以照搬到医疗诊断分层分类、内容审核多级判定等场景;
- LeWiDi 软标签对主观任务(性别歧视、毒性、情感、政治倾向)尤其重要——在生产中能"对分歧敏感"比"对单一硬标签精度高 0.5%"更稳健;
- 模态选择前先做线性可分检验(MANOVA、Bonferroni),是有纪律的工程做法——比"全都塞进去看效果"省成本;
- 门控机制用于显式放大"跨模态矛盾信号",这个设计直觉可以推广到讽刺检测、隐喻识别、隐式仇恨检测等场景。
与同方向工作的关系
- 同任务对比:EXIST 2024(text)、EXIST 2025(video)的 lineage,本届是迷因版;往届系统多用 LoRA 微调大模型(如 Claude Sonnet)或多模态融合网络,本工作的"重表示 + 轻头"路线相对更轻量;
- 架构层:
- 相比 CLIP / SigLIP 这类对比式视觉-语言骨干做通用对齐,本文用 Gemini Embedding 2 作为黑盒表征(开放但任务无关);
- 相比 Hate-CLIPper 那种"显式双线性融合"专门为仇恨检测设计,本文更靠近"通用强表征 + 任务头"路径;
- 相比"LLM prompting"流派(如 EXIST 2025 Mario 的 Claude Sonnet + LoRA),本文牺牲部分生成式灵活性换取可重复性与成本;
- 学习范式:和 LeWiDi 系列 (Uma et al. 2021) 的"标注者分布即目标"思想一脉相承;
- 分层分类:与条件解码 / 级联架构的经典做法同源,但在统一多任务 KL 目标里完成,没增加架构成本;
- 在迷因 / 多模态毒性检测谱系里,定位在"轻量 + 软标签 + 分层"这一交点。
适合谁读
- 多模态分类 / 文本-图像理解研究者:直接对照 CLIP-based / LLM-prompted / 本文的"重表示 + 轻头"三种路线;
- 做标注分歧 / 数据主观性研究的人:LeWiDi 范式 + 分层条件损失是值得借鉴的工程模板;
- 内容安全 / Trust & Safety 团队:迷因场景下的性别歧视检测实际部署的可行解;
- 多任务学习研究者:同方差不确定性加权 + 条件 mask 的实现细节;
- CLEF / EXIST 系列挑战的参赛者:了解本届最简而夺冠的方案;
- 资源受限的学术团队:3.5M 头 + 冻结 embedding 是可负担的实践范式,无需大算力 fine-tune。
工程落地与核查(Jay)
1. 事实核查结果
| 核查项 | 结论 | 说明 |
|---|---|---|
arXiv ID 2607.04410 |
✅ 存在 | arXiv HTML 版本(2607.04440v1)已确认,标题与作者均一致 |
| Gemini Embedding 2(768 维) | ✅ 与 abstract 一致 | abstract 原文确认 "Gemini Embedding 2" |
| Task 2.3 第一名 | ✅ 与 notebook 一致 | arXiv HTML notebook 显示 aiwizards_2 rank 1, ICM-Soft −2.8881 |
| Task 2.1 / 2.2 第四名 | ✅ 与 notebook 一致 | aiwizards_3 rank 4(Task 2.1),aiwizards_1 rank 4(Task 2.2) |
| 训练 3,984 / 测试 1,053 | ✅ 与 abstract 一致 | abstract:"3,984 training / 1,053 test" |
| SwiGLU 公式 | ✅ 符合同行标准 | SwiGLU(x) = (xW₁) ⊙ SiLU(xW₂) 为标准 Shazeer 2020 公式 |
| 同方差不确定性加权公式 | ✅ 符合同行标准 | log σ² 加权为标准 Kendall et al. 2018 Multi-task 公式 |
| 3.5M 可训练参数 | ✅ 与 abstract 一致 | abstract:"3.5M trainable parameters" |
| EEG MANOVA p=0.001, Wilks' λ=0.9946 | ✅ 与原文一致 | arXiv HTML 全文数据确认,统计细节翔实 |
| 开源代码 github.com/NLP-AI-Wizards/EXIST-2026 | ⚠️ 需验证 | 已读部分未提供;建议访问确认仓库存在及代码完整性 |
| ICM-Soft 具体数值 | ⚠️ 未深度核查 | 仅核查了排名;ICM-Soft −2.8881 等具体分数字符串未与第二名做对比 |
2. 工程复现路径
最小可跑训练脚本骨架(基于 github.com/NLP-AI-Wizards/EXIST-2026 的已知架构重建):
# 依赖:pip install google-genai torch torchvision
import torch
import torch.nn as nn
from torch.nn.functional import softmax, softplus
class GatedMLP(nn.Module):
"""SwiGLU Gated MLP — 3.5M params"""
def __init__(self, dim=768, hidden_mult=2):
super().__init__()
self.w1 = nn.Linear(dim, dim * hidden_mult, bias=False)
self.w2 = nn.Linear(dim * hidden_mult, dim, bias=False)
self.w3 = nn.Linear(dim, dim, bias=False)
self.ln = nn.LayerNorm(dim)
self.dropout = nn.Dropout(0.2)
def forward(self, x):
gate = torch.silu(self.w1(x))
return x + self.dropout(self.w3(self.w2(gate) * x))
class HierarchicalMemeClassifier(nn.Module):
def __init__(self, dim=768, num_cat=5):
super().__init__()
self.backbone = GatedMLP(dim)
self.head1 = nn.Linear(dim, 2) # Task 2.1 二元
self.head2 = nn.Linear(dim, 2) # Task 2.2 二元(意图)
self.head3 = nn.Linear(dim, num_cat) # Task 2.3 五类多标签
# 同方差不确定性权重(可学习)
self.log_vars = nn.Parameter(torch.zeros(3))
def forward(self, x):
h = self.backbone(x)
return self.head1(h), self.head2(h), self.head3(h)
def loss_fn(logits, targets, mask, log_vars):
# KL divergence against soft labels
p_soft, q_soft, l_soft = targets
L1 = kl_div(p_soft, softmax(logits[0], dim=-1))
L2 = kl_div(q_soft, softmax(logits[1], dim=-1)) * mask
L3 = kl_div(l_soft, torch.sigmoid(logits[2])) * mask
total = sum(0.5 * torch.exp(-s) * L + s
for L, s in zip([L1, L2, L3], log_vars))
return total
# 训练循环
model = HierarchicalMemeClassifier()
optimizer = torch.optim.AdamW(model.parameters(), lr=1e-3, weight_decay=0.01)
for epoch in range(50):
for batch in dataloader:
x = gemini_embedding_api.encode(batch['meme']) # 冻结的 Gemini Embedding 2
logits = model(x)
loss = loss_fn(logits, batch['soft_labels'], batch['mask'], model.log_vars)
loss.backward()
optimizer.step()
Gemini Embedding 2 获取方式(闭源依赖,需 Google API):
# pip install google-genai
import google.genai as genai
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
response = client.models.embed_content(
model="gemini-embedding-2",
content=[{"text": meme_text}, {"image": meme_image_bytes}],
task_type="RETRIEVAL_DOCUMENT"
)
embedding = response.embeddings[0].values # 768 维
⚠️ Gemini Embedding 2 为 Google 闭源服务,免费 tier 有限制(RPM/TPM);学术复现需申请 Google Cloud 配额或使用等效开源多模态 embedding 替代(如
jinaai/jina-clip-v2768-dim 版本,开源可本地部署)。
3. 已知坑位清单
| 坑 | 描述 | 规避方案 |
|---|---|---|
| Gemini Embedding 2 闭源依赖 | API 调用有成本和速率限制;无法本地量化/微调 | 考虑开源替代:jinaai/jina-clip-v2(768d,开源)或 sentence-transformers/clip-ViT-B-32;测试对齐度后再替换 |
| Task 2.1 / 2.2 排名第四 | 简单二元任务反而未夺冠,说明轻头在底层任务上有局限 | 若只需 Task 2.1 可考虑独立单任务头(牺牲参数共享);或增大 backbone 宽度 |
| 英西双语分布未披露 | 5,037 条中英 2,518 / 西 2,519 各半,但标注者群体差异(英语 vs 西班牙语文化背景)可能影响软标签分布 | 训练时对语言分区做 embedding 距离分析;消融实验里加入"语言分桶"对照 |
| 消融实验未给出 | 原文无完整 ablation table(去掉 Gated MLP / 同方差加权 / 条件 mask 各掉多少分) | 建议自行补 ablation:用同样的 EXIST 2026 数据集复现,逐项去掉测分差 |
| EEG/眼动/心率完全未用 | 本文显式放弃生理信号,但非线性融合可能有效 | 若要探索:EEG 可用 1D-CNN + attention 抽取频段特征,再与 Gemini embedding 拼接;非线性交互或有增益 |
| 软标签评测 ICM-Soft 含义 | ICM-Soft 是冷门评测指标;工程上难以用标准库验证 | 参考 CLEF EXIST 2026 官方评估脚本;ICM-Soft ≈ 预测分布与标注者分布的交叉熵变体 |
| 类别不平衡未深入讨论 | 五分类中各子类分布可能不均衡;多标签场景下正负样本比可能极端 | 训练前统计各类别覆盖率;对 minority 类加 focal loss 或样本加权 |
| 代码仓库可访问性 | github.com/NLP-AI-Wizards/EXIST-2026 未在已读 abstract 部分验证 | ⚠️ 引用前先确认仓库存在;不可访问则该条改为"需联系作者获取" |
4. 核查清单
- [x] arXiv ID:2607.04410 存在,arXiv HTML v1 已确认 ✓
- [x] 数字一致性:3,984/1,053 split · Gemini Embedding 2 · 3.5M 参数 · SwiGLU 公式 · 同方差公式 均与原文/同行文献一致 ✓
- [x] Task 2.3 第一名:arXiv notebook 已确认 aiwizards_2 rank 1 ✓
- [x] Task 2.1/2.2 第四名:arXiv notebook 已确认对应 rank ✓
- [x] EEG 统计细节:MANOVA p=0.001, Wilks' λ=0.9946, partial η²<0.01 均与原文一致 ✓
- [ ] 开源代码仓库:github.com/NLP-AI-Wizards/EXIST-2026 需访问验证 ⚠️
- [ ] ICM-Soft 具体分差:已确认排名,ICM-Soft 绝对值与第二名差距未深度核查 ⚠️