Chọn độ đo nào cho việc gì
Chọn độ đo nào cho việc gì
Bạn đang làm việc X, nên báo con số nào, và đọc nó thế nào cho khỏi sai. Đây là bản đồ những độ đo môn này đã dạy, kèm đúng một cái bẫy cho mỗi cái.
Trang này không dạy thêm độ đo nào. Nó trả lời một câu hỏi hẹp hơn nhưng hay gặp hơn: tới lúc viết báo cáo, bạn nên đặt con số nào lên đầu, và người đọc con số ấy dễ hiểu sai ở chỗ nào. Chọn một tác vụ ở dãy nút, bảng sẽ rút lại còn những độ đo hợp với tác vụ đó và một dòng gợi ý nên báo cái nào trước. Bấm vào tên một độ đo để mở cái bẫy của nó.
Ô tìm kiếm quét cả tên, công thức lẫn phần văn bản của cái bẫy, nên bạn có thể gõ triệu chứng thay vì gõ tên: thử thứ tự từ hoặc quy ước. Bộ lọc chiều tốt tách riêng nhóm càng cao càng tốt với nhóm càng thấp càng tốt, vì đó là chỗ hay lẫn nhất khi đọc một bảng kết quả lạ. Khối cuối trang cho bạn chọn hai độ đo bất kỳ và đối chiếu từng thuộc tính, kể cả chọn trùng một độ đo cho cả hai bên.
Một chỗ phải nói rõ về cột chiều tốt, kẻo bạn đọc nó quá rộng. Với các độ đo chấm chất lượng đầu ra, chẳng hạn BLEU hay F1 hay WER, mũi tên đúng nghĩa là hệ tốt hơn hay tệ đi. Nhưng bốn dòng trong bảng không phải điểm chất lượng: cosine với Jaccard là điểm giống nhau, còn tf-idf với PPMI là trọng số của một từ. Ở bốn dòng đó mũi tên lên chỉ có nghĩa giống hơn hoặc đặc trưng hơn, chứ không có nghĩa mô hình của bạn khá hơn. Đây là một quy ước trình bày để cả bảng dùng chung một cột, không phải một phát biểu rằng mọi con số trong bảng đo cùng một thứ.
Cả 27 mục giờ đều dẫn được sang bài dạy nó. Bốn mục từng ghi chưa có bài lúc trang này mới dựng, gồm nDCG@k, MRR, Cohen kappa và tỉ lệ đồng thuận thô, nay đã nối vào hai bài vừa xong là bài bốn độ đo xếp hạng và bài đồng thuận giữa hai người chấm. Ngược lại, bảng cố tình bỏ ra ngoài những con số chẩn đoán không có chiều tốt xác định, chẳng hạn độ thưa của ma trận đếm hay entropy của phân phối lúc giải mã. Chúng là thứ để nhìn, không phải thứ để so hơn kém.
| Độ đo | Tác vụ | Khoảng giá trị | Chiều tốt | Công thức rút gọn | Bài |
|---|---|---|---|---|---|
| Dịch máy | 0 tới 1 | ↑ Cao hơn tốt hơn | BLEU = BP * exp( trung bình của log p_n ) | mở bài | |
| Dịch máy, Tóm tắt | 0 tới 1 | ↑ Cao hơn tốt hơn | F1 = 2*P*R / (P + R), với P và R là trung bình cosine của phép ghép đôi tham lam | mở bài | |
| Dịch máy, Nhận dạng tiếng nói | 0 tới không có trần | ↓ Thấp hơn tốt hơn | d = số phép chèn, xoá và thay thế ít nhất để biến chuỗi này thành chuỗi kia | mở bài | |
| Nhận dạng tiếng nói | 0 tới không có trần | ↓ Thấp hơn tốt hơn | WER = (S + I + D) / N, với N là số từ của câu tham chiếu | mở bài | |
| Nhận dạng tiếng nói | 0 tới không có trần | ↓ Thấp hơn tốt hơn | CER = (S + I + D) / N, với N là số ký tự của câu tham chiếu | mở bài | |
| Tóm tắt | 0 tới 1 | ↑ Cao hơn tốt hơn | recall = số cụm bậc n trùng / số cụm bậc n của bản tham chiếu; precision đổi mẫu số sang bản máy | mở bài | |
| Tóm tắt | 0 tới 1 | ↑ Cao hơn tốt hơn | recall = độ dài dãy con chung dài nhất / số từ của bản tham chiếu | mở bài | |
| Phân loại văn bản | 0 tới 1 | ↑ Cao hơn tốt hơn | accuracy = số dự đoán đúng / tổng số mẫu | mở bài | |
| Phân loại văn bản, Gán nhãn chuỗi, Truy hồi và xếp hạng | 0 tới 1 | ↑ Cao hơn tốt hơn | P = TP / (TP + FP) | mở bài | |
| Phân loại văn bản, Gán nhãn chuỗi, Truy hồi và xếp hạng | 0 tới 1 | ↑ Cao hơn tốt hơn | R = TP / (TP + FN) | mở bài | |
| Phân loại văn bản, Gán nhãn chuỗi | 0 tới 1 | ↑ Cao hơn tốt hơn | F1 = 2*TP / (2*TP + FP + FN) | mở bài | |
| Phân loại văn bản | 0 tới 1 | ↑ Cao hơn tốt hơn | dồn TP, FP, FN của mọi lớp vào một rổ rồi mới chia | mở bài | |
| Phân loại văn bản | 0 tới 1 | ↑ Cao hơn tốt hơn | chấm F1 từng lớp rồi lấy trung bình cộng | mở bài | |
| Phân loại văn bản | 0 tới 1 | ↑ Cao hơn tốt hơn | nhân F1 mỗi lớp với số mẫu thật của lớp rồi chia cho tổng số mẫu | mở bài | |
| Gán nhãn chuỗi | 0 tới 1 | ↑ Cao hơn tốt hơn | số token gán đúng nhãn / tổng số token | mở bài | |
| Gán nhãn chuỗi | 0 tới 1 | ↑ Cao hơn tốt hơn | F1 = 2*TP / (2*TP + FP + FN), đếm trên span chứ không trên token | mở bài | |
| Truy hồi và xếp hạng, Tách token và từ vựng | 0 tới 1 | ↑ Cao hơn tốt hơn | cosine = tích vô hướng / tích hai độ dài vector | mở bài | |
| Truy hồi và xếp hạng | 0 tới 1 | ↑ Cao hơn tốt hơn | Jaccard = số từ chung / số từ trong hợp hai tập | mở bài | |
| Truy hồi và xếp hạng, Tách token và từ vựng | 0 tới không có trần | ↑ Cao hơn tốt hơn | tf-idf = tf * idf, với idf = log(N / df) | mở bài | |
| Truy hồi và xếp hạng | 0 tới 1 | ↑ Cao hơn tốt hơn | nDCG@k = DCG@k / IDCG@k, với DCG = tổng của gain(rel_i) / log2(i + 1) | mở bài | |
| Truy hồi và xếp hạng | 0 tới 1 | ↑ Cao hơn tốt hơn | MRR = trung bình của 1 / hạng của kết quả liên quan đầu tiên | mở bài | |
| Mô hình ngôn ngữ | 1 tới không có trần | ↓ Thấp hơn tốt hơn | PPL = 2^H | mở bài | |
| Mô hình ngôn ngữ | 0 tới không có trần | ↓ Thấp hơn tốt hơn | H = -(1/N) * tổng của log2 P(w_i | ngữ cảnh) | mở bài | |
| Tách token và từ vựng | 0 tới không có trần | ↑ Cao hơn tốt hơn | PPMI(x, y) = max(0, log2( P(x,y) / (P(x) * P(y)) )) | mở bài | |
| Tách token và từ vựng | 0 tới 1 | ↑ Cao hơn tốt hơn | độ phủ = số lần xuất hiện được từ vựng phủ / tổng số lần xuất hiện | mở bài | |
| Chấm bởi người | -1 tới 1 | ↑ Cao hơn tốt hơn | kappa = (Po - Pe) / (1 - Pe) | mở bài | |
| Chấm bởi người | 0 tới 1 | ↑ Cao hơn tốt hơn | Po = số mục hai người chấm giống nhau / tổng số mục | mở bài |
| Thuộc tính | micro F1 | macro F1 |
|---|---|---|
| Tên | micro F1 | macro F1 |
| Dùng cho tác vụ | Phân loại văn bản | Phân loại văn bản |
| Khoảng giá trị | 0 tới 1 | 0 tới 1 |
| Ghi chú khoảng giá trị | Mỗi mẫu một phiếu. | Mỗi lớp một phiếu, bất kể lớp to hay nhỏ. |
| Chiều tốt | Cao hơn tốt hơn | Cao hơn tốt hơn |
| Công thức rút gọn | dồn TP, FP, FN của mọi lớp vào một rổ rồi mới chia | chấm F1 từng lớp rồi lấy trung bình cộng |
| Cái bẫy | Với bài toán đơn nhãn, micro F1 bằng đúng accuracy, không mang thêm một chút thông tin nào. Báo cả hai chỉ làm bảng kết quả dài ra. Điều này thôi đúng khi sang bài toán đa nhãn, lúc đó micro F1 mới tách khỏi accuracy. | Quy ước dành cho lớp không chấm được quyết định con số. Trên đúng cùng một ma trận, tính F1 của lớp đó bằng 0 rồi chia cho 3 lớp cho 58.0%, còn bỏ lớp đó khỏi trung bình rồi chia cho 2 lớp cho 87.0%. Chênh 29 điểm phần trăm, cả hai đều hợp lệ. |
| Bài dạy | /nlp/phan-loai/micro-macro-f1 | /nlp/phan-loai/micro-macro-f1 |
Bảng này là bản đồ, không thay thế được việc hiểu từng độ đo. Một dòng bẫy đủ để bạn dừng lại và nghi ngờ, nhưng chỉ bài dạy mới cho bạn tự tay dựng lại tình huống rồi thấy con số nhúc nhích. Và điều quan trọng nhất: mọi con số ở đây chỉ so được với nhau khi hai bên dùng chung quy ước đo. Cùng bộ tách token, cùng tập kiểm, cùng biến thể công thức, cùng cách xử lý mẫu số bằng 0. Thiếu một trong bốn thứ đó thì hai con số cùng tên vẫn là hai đại lượng khác nhau.