Chuyển tới nội dung chính

ROUGE và thước đo thiên về recall

Sửa cả hai bản tóm tắtRecall, precision và FCó dòng BLEU đối chiếu

ROUGE và thước đo thiên về recall

Chấm một bản tóm tắt khác chấm một bản dịch. Bỏ sót ý nặng hơn nói thừa, nên thước đo phải hỏi trước hết: bản tham chiếu đã được nhắc tới bao nhiêu phần.

ROUGE so bản tóm tắt của máy với một bản tóm tắt tham chiếu do người viết, rồi hỏi ngược lại câu hỏi của BLEU. BLEU hỏi "câu máy nói ra có bao nhiêu phần đúng", tức là precision. ROUGE hỏi "bản tham chiếu có bao nhiêu phần được nhắc tới", tức là recall. Chữ R trong tên ROUGE chính là recall, và đó là lý do sim dưới đây in cả ba cột chứ không chỉ in F.

Có ba biến thể hay dùng. ROUGE-1ROUGE-2 đếm cụm 1 từ và cụm 2 từ trùng nhau. ROUGE-L không đếm cụm mà tìm dãy con chung dài nhất giữa hai câu: các từ phải giữ đúng thứ tự nhưng không cần đứng liền nhau, nên nó chịu được việc người tóm tắt chèn thêm chữ vào giữa.

ROUGE · chấm bản tóm tắt bằng phần được nhắc tới
ROUGE-1 recall 75.0%
Giữ đúng ý chính nhưng đảo cụm thời gian lên đầu: 15 từ chung mà LCS chỉ 12, vì thứ tự đã khác.
Dãy con chung dài nhất: 12 từthuộc LCSchung nhưng lệch thứ tựkhông chung
Máy
trongnămtớihộiđồngthànhphốtăngngânsáchchogiáodụcgiaothông
Tham chiếu
hộiđồngthànhphốphêduyệtngânsáchmớichogiáodụcgiaothôngcôngcộngtrongnămtới
Biến thểTrùng khớpRecallPrecisionF
ROUGE-115 cụm15 / 2075.0%15 / 1693.8%83.3%F1
ROUGE-211 cụm11 / 1957.9%11 / 1573.3%64.7%F1
ROUGE-LLCS 12 từ12 / 2060.0%12 / 1675.0%66.7%beta = 1
BLEU-4 trên cùng cặp câu này (một tham chiếu, không làm mượt)44.4%
Phạt câu ngắn của BLEU, với c = 16 và r = 200.7788
BLEU gộp mọi thứ vào một con số nên không nói được hệ sai ở đâu. ROUGE tách ra: recall 75.0% là phần tham chiếu được nhắc tới, precision 93.8% là phần tóm tắt nói đúng.

Recall và precision hỏng theo hai kiểu khác nhau

Ở trạng thái mặc định, bản tóm tắt máy dài 16 từ, bản tham chiếu dài 20 từ, và chúng có 15 từ chung. Bảng đọc ra như sau:

  • ROUGE-1: recall 15/20 bằng 75,0%, precision 15/16 bằng 93,8%, F1 bằng 83,3%. Máy gần như không nói chữ nào lạ, chỉ có đúng một từ tăng không có trong tham chiếu.
  • ROUGE-2: recall 11/19 bằng 57,9%, precision 11/15 bằng 73,3%, F1 bằng 64,7%. Cụm 2 từ khắt khe hơn nên mọi con số đều tụt.
  • ROUGE-L: LCS dài 12 từ, recall 12/20 bằng 60,0%, precision 12/16 bằng 75,0%, F bằng 66,7% khi beta = 1.

Bấm hai nút sẽ thấy hai kiểu hỏng đối xứng nhau:

Ngắn mà đúng. Máy chép lại đúng 9 từ đầu của tham chiếu rồi dừng. Nó không nói sai chữ nào nên precision bằng 100% ở cả ba biến thể, nhưng recall của ROUGE-1 chỉ còn 45%, tức hơn một nửa nội dung tham chiếu chưa từng xuất hiện. Với tóm tắt, đây là lỗi nặng, và chỉ có cột recall nói ra được điều đó.

Dài mà loãng. Máy nhắc đủ mọi ý nhưng viết dài 32 từ với nhiều chữ đệm. Recall lên 100%, còn precision tụt xuống 62,5%. F1 bằng 76,9%, cao hơn hẳn trường hợp ngắn, đúng như tinh thần "thà thừa còn hơn thiếu" của việc chấm tóm tắt.

ROUGE-L đếm dãy con, không đếm cụm liền nhau

Trong sim, các từ thuộc LCS được tô viền xanh ở cả hai câu, còn các từ có mặt ở câu kia nhưng không lọt vào LCS thì tô vàng nét đứt. Ở trạng thái mặc định, đếm được 12 ô xanh và 3 ô vàng, cộng lại đúng bằng 15 từ chung. Ba từ vàng là trong, năm, tới: chúng có ở cả hai câu, nhưng máy đưa cụm đó lên đầu trong khi tham chiếu để ở cuối, nên LCS không thể vừa lấy cụm đó vừa lấy phần còn lại.

Đây là chỗ dễ hiểu nhầm nhất, nên nói cho rõ: LCS không phải là giao của hai tập từ. Giao tập hợp cho 15, LCS chỉ cho 12, vì LCS bắt buộc giữ thứ tự. Nhưng LCS cũng không đòi các từ liền nhau: bấm Dài mà loãng sẽ thấy LCS bằng đúng 20 dù máy chèn thêm 12 chữ xen vào giữa. Nói gọn lại, LCS là dãy con chứ không phải chuỗi con liên tiếp.

Một quy ước nữa nằm ngay ở chỗ tô màu, cần nói ra: khi có nhiều dãy con cùng đạt độ dài lớn nhất, sim chỉ tô một dãy trong số đó, chọn theo lối tham lam từ trái sang và ưu tiên bước tới ở câu máy khi hoà. Con số LCS thì không phụ thuộc lựa chọn này, nhưng từ nào được tô xanh thì có, nên đừng đọc màu như thể chỉ có một đáp án.

Nút Đổi thứ tự cho ca thuần khiết nhất: bản tóm tắt dùng đúng 20 từ của tham chiếu, chỉ đảo cụm cuối lên đầu. ROUGE-1 báo 100% vì tập từ y hệt, còn ROUGE-L chỉ còn 85%. Thứ tự có tính, và chỉ ROUGE-L nhìn thấy.

Núm beta: kéo công thức F về phía recall

Công thức F của ROUGE-L là F = (1 + beta^2) * R * P / (R + beta^2 * P). Với beta = 1 nó đúng bằng trung bình điều hoà của recall và precision. Cho beta lớn dần thì trọng số dồn về recall: ở trạng thái mặc định recall bằng 60,0% và precision bằng 75,0%, nên F đi từ 66,7% khi beta = 1 xuống 62,5% khi beta = 2 rồi 60,7% khi beta = 4, tức là bò dần về đúng con số recall. Bấm Dài mà loãng rồi tăng beta sẽ thấy chiều ngược lại, vì ở đó recall cao hơn precision.

Một quy ước cần nói thẳng: trong sim này núm beta chỉ tác động lên ROUGE-L, còn cột F của ROUGE-1 và ROUGE-2 luôn là F1. Bộ công cụ ROUGE gốc có tham số áp cho cả nhóm, nên đây là lựa chọn trình bày của bài, không phải quy định của độ đo.

So với BLEU trên cùng cặp câu

Khung dưới cùng chạy một bản BLEU-4 tối giản, một tham chiếu, không làm mượt, trên đúng cặp câu bạn đang sửa. Ở trạng thái mặc định BLEU-4 cho 44,4%, trong khi ROUGE-1 F1 cho 83,3%. Bấm Đúng ý, khác chữ thì khoảng cách thành cực đoan: BLEU-4 về đúng 0 vì không có cụm 3 từ nào trúng, còn ROUGE-1 vẫn báo F1 bằng 27,0%. Hai thước, hai kết luận, trên cùng một cặp câu.

Giữa hai thước có một quan hệ chặt, nhưng nó hẹp hơn cái mà nhiều bài giảng hay kể, nên phải phát biểu cho đúng phạm vi. Điều chứng minh được là: với một bản tham chiếu và không làm mượt, riêng phần bậc 1 của BLEU, tức BP * p1, không bao giờ vượt recall của ROUGE-1. Gọi k là số từ trùng sau khi kẹp, c là độ dài tóm tắt máy, r là độ dài tham chiếu, thì p1 = k/c còn recall bằng k/r. Nếu c > r thì BP = 1, mà k/c nhỏ hơn k/r. Nếu c <= r thì BP = e^(1 - r/c), và tỉ số BP * p1 chia cho recall rút gọn còn t * e^(1 - t) với t = r/c, một hàm đạt cực đại đúng bằng 1 tại t = 1. Cả hai nhánh đều cho BP * p1 <= recall.

Nhưng BLEU-4 không thừa hưởng bất đẳng thức đó, và đây là chỗ rất dễ nói quá tay. BLEU-4 bằng BP nhân trung bình nhân của bốn độ chính xác, mà trung bình nhân chỉ chắc chắn không vượt p1 khi p1 là con số lớn nhất trong bốn. Phép kẹp phá được điều kiện ấy: một tóm tắt lặp từ nhiều hơn tham chiếu sẽ bị kẹp rất nặng ở bậc 1 trong khi các cụm dài vẫn khớp, nên p2p3 leo lên trên p1. Dán thử a a b b a a vào ô tóm tắt và b b a a b b vào ô tham chiếu: bốn độ chính xác là 4/6, 4/5, 4/4, 2/3, BP = 1 vì hai câu bằng nhau, nên BLEU-4 lên 77,2% còn recall của ROUGE-1 chỉ 66,7%. Cổng kiểm của bài khoá đúng cặp này lại để không ai viết ngược nó thành một định luật.

Chỉ có điều ca đó cần một câu lặp từ méo mó chứ không phải một bản tóm tắt thật: quét 24.000 cặp câu ngẫu nhiên với bộ từ vựng từ ba từ trở lên, không cặp nào có BLEU-4 vượt recall, và cả năm preset ở đây đều có p1 lớn nhất. Nên vẫn đừng đi tìm nút "BLEU trông đẹp mà ROUGE recall thảm hại". Điều đáng nhìn là khoảng cách giữa recall và precision của chính ROUGE, thứ mà một con số BLEU duy nhất không tách ra được. Bấm Ngắn mà đúng: precision 100% và recall 45% nói ngay rằng lỗi là bỏ sót, còn BLEU-4 29,5% chỉ nói "kém" mà không nói kém ở đâu.

Ba điều cần cảnh giác

  • ROUGE cũng chỉ khớp chữ. Nó không hiểu nghĩa hơn BLEU chút nào. Nút Đúng ý, khác chữ đưa vào một bản tóm tắt mà người đọc thấy hoàn toàn đúng ý, chỉ dùng từ khác, và ROUGE-2 rơi xuống 5,7%. Muốn chấm theo nghĩa thì phải dùng độ đo dựa trên vector nhúng.
  • Điểm gắn chặt với cách tách token. Sim này tách theo quy tắc thô nhất: hạ chữ thường, bỏ dấu câu, cắt theo khoảng trắng. Với tiếng Việt thì đó là cắt theo âm tiết, không phải theo từ: câu tóm tắt mặc định được đếm thành 16 token, dù tách từ ghép thì chỉ có 10 từ, vì hội đồng, thành phố, ngân sách, giáo dục, giao thông, năm tới mỗi cụm bị chẻ làm đôi. Đổi quy ước tách là đổi cả mẫu số lẫn cụm 2 từ, tức đổi điểm.
  • Đây là một cặp câu, không phải một tập dữ liệu. ROUGE thật chạy trên hàng nghìn bản tóm tắt và thường có nhiều tham chiếu. Hiệu ứng bạn thấy trên hai câu ngắn sẽ nhẹ hơn nhiều khi lấy trung bình cả tập. Ngoài ra, mọi tỉ lệ có mẫu số bằng 0 đều được sim báo là 0 kèm một dòng chữ giải thích, đó là quy ước để tránh NaN lọt ra màn hình chứ không phải giá trị đúng về mặt toán học.
Điều rút ra

Chọn thước đo là chọn kiểu lỗi mà bạn sợ. Dịch máy sợ nói bậy nên BLEU đo precision. Tóm tắt sợ bỏ sót nên ROUGE đo recall trước. Đừng đọc mỗi F1: hãy nhìn recall và precision tách rời, vì hai bản tóm tắt cùng F1 có thể hỏng theo hai cách trái ngược nhau.

Nếu bạn chưa xem cách BLEU cắt ngọn cụm lặp và phạt câu ngắn, quay lại bài BLEU và phép cắt ngọn rồi thử dán đúng cặp câu ở đây sang bên đó.

Câu hỏi tự kiểm0/4 đúngchưa trả lời
  1. 1Bản tóm tắt máy chép đúng 9 từ đầu của bản tham chiếu dài 20 từ rồi dừng. ROUGE-1 sẽ báo gì?
  2. 2Ở trạng thái mặc định hai câu có 15 từ chung, nhưng ROUGE-L chỉ lấy được LCS dài 12. Vì sao?
  3. 3Ở trạng thái mặc định recall bằng 60,0% còn precision bằng 75,0%. Tăng beta của ROUGE-L thì F đi đâu?
  4. 4Với một bản tham chiếu và BLEU-4 không làm mượt, khẳng định nào đúng về quan hệ giữa BLEU-4 và recall của ROUGE-1?