2. Nhóm RANK-BASED, relevance NHỊ PHÂN
2.1 MRR (Mean Reciprocal Rank)
Phần tiêu đề “2.1 MRR (Mean Reciprocal Rank)”Không có doc liên quan nào trong danh sách → RR = 0.
Bảng giá trị — chú ý độ sụt rất dốc ở đầu:
| Vị trí hit đầu | 1 | 2 | 3 | 4 | 5 | 10 |
|---|---|---|---|---|---|---|
| RR | 1.00 | 0.50 | 0.33 | 0.25 | 0.20 | 0.10 |
Mô hình người dùng ngầm: người dùng đọc từ trên xuống, dừng ngay khi gặp doc liên quan đầu tiên, và không quan tâm gì tới phần còn lại. Đúng cho Q&A một câu trả lời, navigational search (“trang đăng nhập ở đâu”).
Hai điểm yếu cần biết rõ:
- Mù với graded relevance. Nếu hệ trả doc
rel=1ở vị trí 1 và docrel=2ở vị trí 3, MRR = 1.0 — điểm hoàn hảo, trong khi tài liệu thật sự trả lời câu hỏi nằm ở vị trí 3. MRR không thể phát hiện lỗi này. - Mù với các doc liên quan còn lại. Truy vấn cần tổng hợp từ 3 tài liệu: MRR chỉ nhìn tài liệu đầu tiên.
→ Với golden set graded + RAG cần nhiều đoạn, MRR chỉ nên là metric phụ dùng để debug (“hệ có bao giờ đặt rác lên đầu không”), không phải metric quyết định.
MRR cũng bị phê phán về mặt phương pháp: nó không phải thang đo interval (khoảng cách 1.00→0.50 và 0.50→0.33 không “bằng nhau” theo bất kỳ nghĩa hữu ích nào), nên việc lấy trung bình số học có vấn đề về lý thuyết đo lường (Fuhr 2017; phản biện: Sakai 2020). Trong thực tế mọi người vẫn lấy trung bình — nhưng biết chỗ yếu này thì sẽ không dựa vào chênh lệch MRR nhỏ.
2.2 MAP (Mean Average Precision)
Phần tiêu đề “2.2 MAP (Mean Average Precision)”Đọc công thức bằng lời: tính precision tại mỗi vị trí có hit, rồi lấy trung bình qua số doc liên quan. Mẫu số là (không phải số hit tìm được) — nên doc liên quan không tìm được vẫn bị phạt, tức AP có sẵn thành phần recall bên trong.
Vì sao AP khác cả recall và precision: nó thưởng cho việc dồn tất cả doc liên quan lên trên. Recall chỉ hỏi “có trong top-k không”. Precision@k chỉ đếm tổng. AP quan tâm từng doc liên quan nằm ở vị trí nào.
Hình học: AP xấp xỉ diện tích dưới đường precision–recall. Đó là cách diễn giải chính xác nhất và giải thích tại sao nó “tổng hợp” cả hai.
MAP là metric chuẩn của TREC trong khoảng hai thập kỷ, và vẫn là lựa chọn tốt nhất khi relevance nhị phân + nhiều doc liên quan mỗi truy vấn.
Nhược: vẫn nhị phân. Với golden set graded, AP không phân biệt được rel=2 và
rel=1.
2.3 Đường precision–recall và các biến thể
Phần tiêu đề “2.3 Đường precision–recall và các biến thể”Với mỗi ta có một cặp . Nối lại thành đường PR. Đường này có hình răng cưa (precision tăng khi gặp hit, giảm khi gặp miss), nên thường được interpolate:
TREC cổ điển báo cáo 11-point interpolated average precision — precision tại recall = 0.0, 0.1, …, 1.0. Ngày nay ít dùng, chủ yếu gặp trong paper cũ.
2.4 Ví dụ số — cả nhóm trên cùng một truy vấn
Phần tiêu đề “2.4 Ví dụ số — cả nhóm trên cùng một truy vấn”Truy vấn A2 của golden set: "webhook trả về E4010 thì xử lý thế nào",
với rel = {d025: 2, d031: 1} → , .
Ba kịch bản ranking (doc liên quan in đậm):
| # | Top-5 | recall@5 | prec@5 | MRR | AP | nDCG@5 |
|---|---|---|---|---|---|---|
| A | d031, d012, d025, d040, d007 | 1.000 | 0.400 | 1.000 | 0.833 | 0.689 |
| B | d025, d031, d012, d040, d007 | 1.000 | 0.400 | 1.000 | 1.000 | 1.000 |
| C | d012, d040, d025, d031, d007 | 1.000 | 0.400 | 0.333 | 0.417 | 0.532 |
Bảng này là bài học trung tâm của Module 0:
- recall@5 và precision@5 không phân biệt được A, B, C. Cả ba “lấy đủ tài liệu”. Set-based metrics mù với ranking — đúng như định nghĩa, nhưng phải thấy bằng số mới tin.
- MRR không phân biệt được A và B (cả hai = 1.000). Vì MRR chỉ thấy “vị trí 1 có doc liên quan”, nó không biết rằng ở A, doc trả lời trực tiếp (d025, rel=2) bị đẩy xuống dưới một doc chỉ liên quan (d031, rel=1).
- AP phân biệt được A và B (0.833 vs 1.000) vì nó nhìn cả hai vị trí hit. Nhưng AP làm được điều đó nhờ thứ tự, không nhờ mức độ — nó không biết d025 quan trọng hơn d031, nó chỉ biết có một doc liên quan ở vị trí 3 thay vì vị trí 2.
- Chỉ nDCG dùng được thông tin
rel=2vsrel=1và cho ra thứ tự đúng về mặt sản phẩm: B (1.000) > A (0.689) > C (0.532).
Kiểm tra DCG kịch bản A bằng tay (dùng gain hàm mũ, xem §3.1):
gains theo rel: [1, 0, 2, 0, 0]
Thứ tự lý tưởng: rel sắp giảm dần = [2, 1]