ROUGE(Recall-Oriented Understudy for Gisting Evaluation)面向摘要等任务,从召回率角度衡量:参考文本中的 n-gram 或最长公共子序列,有多少出现在模型生成里。
段末注释:ROUGE-N 基于 n-gram 重叠;ROUGE-L 基于最长公共子序列(LCS,Longest Common Subsequence),对词序变化更宽容。
系列索引:微调评估指标导读
一、直观含义
与 BLEU 偏「生成词是否多余/用对」不同,ROUGE 问:
参考摘要里的关键片段,生成摘要覆盖到了多少?
- ROUGE-1:unigram 重叠 → 词级覆盖
- ROUGE-2:bigram 重叠 → 短语级覆盖
- ROUGE-L:LCS-based F1 → 最长连续匹配结构
摘要微调文献中 ROUGE-L 最常见。
二、使用场景与所需数据
| 场景 | 常用 ROUGE |
|---|---|
| 抽取式 / 生成式摘要 | ROUGE-1/2/L |
| 翻译 | 较少单独用 ROUGE(多用 BLEU) |
| 对话回复 | 中 — 需高质量参考 |
| QA 短答案 | 更常用 EM / token F1 |
数据要求:((\text{candidate summary}, \text{reference summary}));可多参考时对每个参考算分再取 max(标准做法)。
三、计算方式
3.1 ROUGE-N Recall
对 n-gram,设参考中 n-gram 计数为 (\text{Count}_r),候选中匹配计数(clipped)为 (\text{Match}):
$$
R_{\text{ROUGE-N}} = \frac{\text{Match}}{\text{Count}_r}
$$
Precision 类似(分母换为候选计数);ROUGE-N F1 为二者调和平均。报告时需说明是 R、P 还是 F1。
3.2 ROUGE-L
设参考与候选的最长公共子序列长度为 (LCS):
$$
R_L = \frac{LCS}{|reference|},\quad P_L = \frac{LCS}{|candidate|}
$$
$$
F_L = \frac{(1+\beta^2) R_L P_L}{R_L + \beta^2 P_L}
$$
通常 (\beta=1)(F1 权重)。LCS 不要求 n-gram 连续相邻,但保持顺序。
3.3 代码
1 | from rouge_score import rouge_scorer |
stemming:英文常开 use_stemmer=True;中文需分词后算,工具链与 BLEU 类似要固定。
四、如何解读
| 指标 | 关注点 |
|---|---|
| ROUGE-1 高、ROUGE-2 低 | 词面对但短语结构不对 |
| ROUGE-L 相对高 | 句子级骨架与参考接近 |
| 微调后 ROUGE-L ↑ | 摘要覆盖度改善(同 test、同分词) |
CNN/DailyMail 等 benchmark 上 ROUGE-L ~0.40 曾是一线水平,但绝对值强依赖数据集;微调实验只看 delta 与 同 baseline 对比。
五、局限性与常见误用
- 参考摘要质量上限:参考本身差,ROUGE 高也不代表好用。
- 同义替换不友好:与 BLEU 类似,paraphrase 得分低。
- 鼓励复制参考:优化 ROUGE 可能导致抽取式抄袭风格。
- 多参考处理不一致:max vs average 会导致数值不可比。
- 与事实正确性无关:高 ROUGE 仍可能 hallucinate 错误事实。
- 短文本方差大:一条样本 ROUGE 波动极大,需 corpus-level 平均。
六、与其他指标的关系
| 指标 | 关系 |
|---|---|
| BLEU | BLEU 精确率导向;ROUGE 召回率导向;摘要任务成对使用 |
| Exact Match | EM 最严;ROUGE 允许部分重叠 |
| BERTScore | 语义相似度;对改写更鲁棒 |
七、实践建议
- 摘要 SFT 报告 ROUGE-1 / ROUGE-2 / ROUGE-L(F1 或指明 R/P)。
- 与 BLEU 并列,避免单一指标优化导致「短而空」或「长而抄」。
- 固定
rouge_score版本与 stemming 设置;中文先统一分词。 - 抽检 ROUGE 低但人工认为好的样例(同义改写),评估指标是否低估真实质量。