ROUGE 详解

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
2
3
4
5
6
7
8
9
10
from rouge_score import rouge_scorer

scorer = rouge_scorer.RougeScorer(["rouge1", "rouge2", "rougeL"], use_stemmer=True)
scores = scorer.score(reference, candidate)
print(scores["rougeL"].fmeasure)

# 或 datasets / evaluate 库
# import evaluate
# rouge = evaluate.load("rouge")
# rouge.compute(predictions=preds, references=refs)

stemming:英文常开 use_stemmer=True;中文需分词后算,工具链与 BLEU 类似要固定。


四、如何解读

指标 关注点
ROUGE-1 高、ROUGE-2 低 词面对但短语结构不对
ROUGE-L 相对高 句子级骨架与参考接近
微调后 ROUGE-L ↑ 摘要覆盖度改善(同 test、同分词)

CNN/DailyMail 等 benchmark 上 ROUGE-L ~0.40 曾是一线水平,但绝对值强依赖数据集;微调实验只看 delta同 baseline 对比


五、局限性与常见误用

  1. 参考摘要质量上限:参考本身差,ROUGE 高也不代表好用。
  2. 同义替换不友好:与 BLEU 类似,paraphrase 得分低。
  3. 鼓励复制参考:优化 ROUGE 可能导致抽取式抄袭风格。
  4. 多参考处理不一致:max vs average 会导致数值不可比。
  5. 与事实正确性无关:高 ROUGE 仍可能 hallucinate 错误事实。
  6. 短文本方差大:一条样本 ROUGE 波动极大,需 corpus-level 平均。

六、与其他指标的关系

指标 关系
BLEU BLEU 精确率导向;ROUGE 召回率导向;摘要任务成对使用
Exact Match EM 最严;ROUGE 允许部分重叠
BERTScore 语义相似度;对改写更鲁棒

七、实践建议

  1. 摘要 SFT 报告 ROUGE-1 / ROUGE-2 / ROUGE-L(F1 或指明 R/P)。
  2. 与 BLEU 并列,避免单一指标优化导致「短而空」或「长而抄」。
  3. 固定 rouge_score 版本与 stemming 设置;中文先统一分词。
  4. 抽检 ROUGE 低但人工认为好的样例(同义改写),评估指标是否低估真实质量。
-------------本文结束感谢您的阅读-------------