ROUGE 評估方法 — 自動文本摘要

Sharon Peng
10 min readJan 14, 2023

--

如果形容兩年是一趟旅程,總共會經過24個站牌的話,目前已經走過了其中6個站牌。未來研究或許會文本摘要相關,這次就來說說文本摘要Rouge是怎麼做評估。

參考論文出處:這裡

Outline:

  • 自動摘要是什麼?
  • Rouge-N: N-gram
  • Rouge-L: LCS (最長共同子序列)
  • Rouge-W: Weighted LCS
  • Rouge-S: Skip-Bigram
  • 結論

自動摘要(Text Summarization)是什麼?

簡單來說,今天有一篇5000字的文章,好長好長,但身為上市公司的CEO,沒有秘書,沒有時間花半小時來閱讀,這時候,如果有人已經幫我們整理好重點的話,不是就很方便嗎?過往這項工作必須仰賴人工處理。但是!現在我們想要讓電腦來自動幫我們處理這件事情。這就是所謂的「自動摘要」。

這次主要介紹的方法,就是我生成出來一個摘要,要如何評估「生成出來的摘要」和「實際人工標注」的結果如何,以下將會介紹Rouge這項方法~Rouge有很多分身,也就代表不同算法,也可以想成是不斷改良的結果。

Rouge-N: N-gram

計算「人工標注」和「我們自己生成」的字串之間的Recall。

會說和Recall比較有關係是因為,下面的公式。會說跟Recall相關是因為主導整個公式的term是生成文句後,「從referece中找回來的總數量」,第一次看到可能無法感覺,所以請參考下方所舉的例子。

公式如下圖:

圖源:https://aclanthology.org/W04-1013.pdf

先來看範例,借用這位博主的範例,一般看到的Reference都只有一個而這位博主給兩的Reference,更方便理解公式的運用。

Reference:(人工標注)

R1: police killed the gunman.
R2: the gunman was shot down by police.

自動摘要:(程式生成)

C1: police ended the gunman.
C2: the gunman murdered police.

ROUGE-1: 以1-grams的狀況來看

ROUGE-1(C1) = (3 + 3) / (4 + 7) = 6 / 11

說明:
分子:
第一個 3,C1對應到 R1,共有三個字出現(police the gunman),
第二個 3,C1對應到 R2,共有三個字出現(the gunman police)。

分母:R1、R2的字數相加

ROUGE-1(C2) = (3 + 3) / (4 + 7) = 6 / 11

說明:
分子:
第一個 3, C2對應到 R1,共有三個字出現(police, the, gunman),
第二個 3,C2對應到 R2,共有三個字出現(the, gunman, police)。

分母:R1、R2的字數相加

現在用2-gram再來看看~

ROUGE-2: 以2-grams的狀況來看。

ROUGE-2(C1) = (1 + 1) / (3 + 6) = 2 / 9

說明:
分子:
第一個1,C1對應到 R1,只有一個相同(the gunman),
第二個1,C1對應到 R2 (the gunman)

分母:R1、R2的字數相加

ROUGE-2(C2) = (1 + 1) / (3 + 6) = 2 / 9

說明:
分子:
第一個1,C2對應到R1,只有一個相同(the gunman),
第二個1,C2對應到R2 (the gunman)

分母:R1、R2的字數相加

以上簡單介紹完ROUGE-N,公式也不算難。希望讀者有了解他們計算的原理,其實跟撲克牌配對的概念很像,「我產生出一段句子,而這句裡面的單字『召回多少個原本Reference』的單字」

Rouge-L: LCS

LCS(Longest Common Subsequence):最大共同子序列。這其實是一個計算方法,然後作者把這個概念挪用到這邊。簡單描述一下LCS:

summary: <Today is a good day.>
References: <Today is wonderful day.>
可以看到他們共同的子序列,也就是共同的單字順序是Today is day.

假設今天是

<Wonderful day is today.>
<Today is wonderful day.>
則他們沒有共同的子序列,也就是沒有共同的單字順序

有了上述的概念後,我們回到ROUGE-L的算法。經過剛才的講述,應該能清楚大概感受到LCS的優點,就是他不需要連續的字出現在一起,而是可以斷斷續續的出現,用學術一點的講法,ROUGE-L可以算出Sentence之間的關係。

這邊可能會有讀者有問題,n-grams也可以有類似的功用,
那為何還要多一個ROUGE-L?
ANS: LCS的好處是,可以自動匹配,不需要事先定義n-grams的長度。

下列公式說明:
X → Reference(人工給的摘要),長度為m。
Y → 自動摘要(程式生成),長度為n。
看到這三個公式不用緊張,論文也說了大部分只考慮R那項。

論文中舉出的例子:(比較ROUGE-2和ROUGE-L)

前提:S1為Reference, S2, S3為candidate summary sentence
這兩句有非常不同的意思,一個是警察殺人,另一個是警察被殺。

ROUGE-2的算法:
ROUGE-2(S2) = 1/ 4 = 0.25 (the gunman)
ROUGE-2(S3) = 1/ 4 = 0.25 (the gunman)
答案相同,但事實不是這樣的吧。

ROUGE-L的算法:
ROUGE-L(S2) = 3 / 4 = 0.75 (police the gunman)
ROUGE-L(S3) = 2 / 4 = 0.5 (the gunman)
呼~還好警察沒事。

從上面這個簡單的例子,可以看到LCS能有效的反應出Sentence Level的含義。

講完優點後,來看看缺點(有缺點才能繼續改進)

缺點是LCS只能看到一個最相同的句子,得不到其他重要的句子。

若拿S1:police killed the gunman 當作reference,經過LCS後只能得到"the gunman" or "police killed" ,而不是the gunman, police killed,因此明明更清楚的S4卻只能得到和S3相同的分數。(在這種狀況下ROUGE-2會是更好的選擇)

Rouge-W: Weighted LCS

前面講LCS種種優點後,還是發現有某方面的問題,例如只看得到最重要的那個其他看不到,第二個問題是他沒有空間的概念。請看下面的範例:

X是我們的Reference, Y1, Y2: Candidate sequence
可以看到他們會有相同的ROUGE-L,但是用眼睛來看,Y1是更好的選擇。

我們知道一般的LCS,是看不到這其中的差異,因此作者就提出了新的方法「Weighted LCS」,在演算法中多加上k去指向連續match過後結束在那一個位置,Xi(Reference)和Yi(Candidate sequence)。

Rouge-S: Skip-Bigram

Skip-Bigram也類似2-grams,比較特別的是他可以跳著作配對,以S1作為範例的話,C(4, 2) = 6種skip-bigrams的方法(police killed, police the, police gunman, killed the, killed gunman, the gunman)。

為了後面好解釋,這邊直接先列出S2, S3, S4和S1配對的情況
S2和S1有3個skip-bigram(police the, police gunman, the gunman)
S3和S1有1個skip-bigram(the gunman)
S4和S1有2個skip-bigram(police killed, the gunman)

公式解釋:
X → Reference translation, length: m
Y → Candidate translation, length: n
SKIP2(X, Y): skip-bigrams的數量
β:控制P和R的相對重要性。

範例:
β = 1
ROUGE-S(S2) = 3 / C(4, 2) = 0.5
ROUGE-S(S3) = 1 / C(4, 2) = 0.167
ROUGE-S(S4) = 2 / C(4, 2) = 0.3
S2比S3, S4還要好,S4又比S3好。

結論:

ROUGE-S比BLEU-2和ROUGE-L還要好

比較:

和BLUE相比,skip-bigram不需要連續的序列。

和LCS相比,skip-bigram可以計算到所有pair的狀況,而LCS只能計算最大共同子序列。

結論

以下是論文給的結論:

  1. ROUGE-2, ROGUE-L, ROUGE-W, ROUGE-S 對於單一文件的評估效果很好。
  2. ROUGE-1, ROUGE-L, ROUGE-W, ROUGE-SU4在極短的摘要中,評估效果很好。
  3. 排除停用詞可以提高相關性(correlation)
  4. 使用多個reference可以提升跟人類做出判斷的相關性。

--

--