Độ đồng thuận giữa người gán nhãn đo mức các người gán độc lập chọn cùng một nhãn cho cùng một mẫu, sau khi đã trừ phần trùng hợp do may rủi; với hai người gán và nhãn dạng danh mục, chỉ số phổ biến nhất là kappa của Cohen, tính bằng (tỷ lệ đồng ý quan sát được − tỷ lệ đồng ý kỳ vọng do may rủi) chia cho (1 − tỷ lệ đồng ý kỳ vọng). Kappa bằng 1 là đồng ý hoàn toàn, bằng 0 là không hơn đoán ngẫu nhiên.
Con số này quan trọng vì nó đặt trần cho chất lượng mô hình: nếu chính người còn không thống nhất được nhãn, mô hình học từ những nhãn đó không thể "đúng" hơn mức thống nhất ấy theo nghĩa có ý nghĩa. Bài này tính kappa từng bước trên một ví dụ giả định về bình luận tiếng Việt, giải thích vì sao tỷ lệ đồng ý cao mà kappa vẫn thấp, giới thiệu các chỉ số cho nhiều người gán, và nói nên làm gì khi con số không như mong muốn.
Vì sao không dùng thẳng tỷ lệ đồng ý
Cách đo tự nhiên nhất là đếm hai người gán giống nhau bao nhiêu phần trăm. Vấn đề là một phần sự giống nhau đến từ may rủi. Nếu bộ dữ liệu có chín phần mười bình luận là không độc hại, hai người gán lười cùng bấm "không độc hại" cho mọi mẫu sẽ đồng ý tới chín mươi phần trăm mà chưa hề đọc câu nào. Tỷ lệ đồng ý cao trong trường hợp này không nói gì về chất lượng.
Jacob Cohen đề xuất hệ số kappa năm 1960 để giải quyết đúng vấn đề đó: so mức đồng ý thực tế với mức đồng ý mà hai người sẽ có nếu họ gán ngẫu nhiên nhưng giữ đúng tỷ lệ dùng mỗi nhãn của mình. Phần chênh lệch, chuẩn hoá về thang từ âm đến 1, mới là phần đồng ý "có thật".
Với dữ liệu tiếng Việt, chuyện phân bố lệch rất hay gặp: bình luận trên sàn thương mại điện tử đa số là khen ngắn, câu hỏi tổng đài đa số rơi vào vài ý định phổ biến, văn bản độc hại chỉ là thiểu số nhỏ. Đó chính là những tình huống tỷ lệ đồng ý thô dễ đánh lừa nhất.
Tính kappa từng bước trên một ví dụ
Ví dụ giả định: hai người gán A và B cùng gán 200 bình luận vào hai nhãn Khen và Chê. Bảng chéo kết quả như sau.
| B gán Khen | B gán Chê | Tổng của A | |
|---|---|---|---|
| A gán Khen | 90 | 15 | 105 |
| A gán Chê | 25 | 70 | 95 |
| Tổng của B | 115 | 85 | 200 |
Bước 1, tỷ lệ đồng ý quan sát được. Hai người cùng chọn Khen 90 lần, cùng chọn Chê 70 lần, tổng 160 trên 200, tức 0,80.
Bước 2, tỷ lệ đồng ý kỳ vọng do may rủi. A gán Khen 105/200 = 0,525, B gán Khen 115/200 = 0,575. Xác suất cả hai cùng chọn Khen nếu độc lập là 0,525 × 0,575 ≈ 0,302. Tương tự cho Chê: 0,475 × 0,425 ≈ 0,202. Cộng lại được khoảng 0,504.
Bước 3, kappa. (0,80 − 0,504) / (1 − 0,504) ≈ 0,296 / 0,496 ≈ 0,60. Tức là trong phần "dư địa" có thể đồng ý vượt may rủi, hai người đạt khoảng sáu phần mười.
Đọc con số: thang tham khảo và giới hạn của nó
Thang được dẫn nhiều nhất là của Landis và Koch (1977): dưới 0 là kém, 0 đến 0,20 là rất thấp, 0,21 đến 0,40 là thấp, 0,41 đến 0,60 là trung bình, 0,61 đến 0,80 là khá cao, trên 0,80 là gần như hoàn toàn. Theo thang này, ví dụ trên nằm ở ranh giới trung bình và khá cao.
Nhưng chính các tác giả và nhiều người sau đã lưu ý thang này là quy ước, không có cơ sở thống kê chặt. Mức "đủ tốt" phụ thuộc bài toán. Phân loại câu có phải tiếng Việt hay không thì kappa phải rất cao; đánh giá mức mỉa mai, mức lịch sự, mức hay của một câu trả lời thì kappa vừa phải là chuyện bình thường, vì bản thân khái niệm có nhiều cách hiểu hợp lý.
Cách đọc hữu ích hơn là so sánh: kappa của bộ dữ liệu này so với vòng gán trước (có tăng sau khi sửa hướng dẫn không), giữa các nhãn (nhãn nào kéo tụt), giữa các cặp người gán (có ai lệch hẳn không), giữa các nguồn hay vùng miền (dữ liệu nhiều tiếng địa phương có thấp hơn không). Những so sánh này chỉ ra chỗ cần sửa, còn một con số đứng riêng thì ít khi chỉ ra được gì.
Nghịch lý kappa: đồng ý cao mà kappa thấp
Ví dụ giả định thứ hai: hai người gán 200 bình luận theo nhãn Độc hại và Không độc hại. Cả hai cùng chọn Không độc hại 180 lần, cùng chọn Độc hại 5 lần, A chọn Độc hại mà B không 10 lần, B chọn Độc hại mà A không 5 lần. Tỷ lệ đồng ý là 185/200 = 0,925, nghe rất tốt. Nhưng tỷ lệ đồng ý kỳ vọng do phân bố quá lệch đã lên tới khoảng 0,88, nên kappa chỉ còn khoảng 0,36.
Con số 0,36 không sai. Nó nói một điều thật: trong số ít ỏi bình luận có dấu hiệu độc hại, hai người gần như không thống nhất được câu nào là độc hại. Với một bộ lọc nội dung, đó mới là phần quan trọng; thống nhất được rằng câu "giao hàng nhanh" không độc hại thì chẳng có giá trị gì.
Hai cách xử lý thường dùng. Một là báo cáo thêm mức đồng ý riêng cho từng nhãn, đặc biệt nhãn hiếm, ví dụ tỷ lệ đồng ý trên các mẫu có ít nhất một người chọn Độc hại. Hai là lấy mẫu có chủ đích để tập đo đồng thuận có nhiều mẫu thuộc nhãn hiếm hơn, rồi nói rõ cách lấy mẫu khi báo cáo.
Nhiều người gán, nhãn có thứ bậc, dữ liệu thiếu: chọn chỉ số nào
Kappa của Cohen chỉ dành cho đúng hai người gán và nhãn danh mục. Các tình huống khác cần chỉ số khác:
- Kappa của Fleiss (Joseph Fleiss, 1971): cho nhiều người gán, mỗi mẫu được một số người gán như nhau nhưng không nhất thiết là cùng những người. Hợp với dữ liệu thuê nhiều người gán luân phiên.
- Alpha của Krippendorff: linh hoạt nhất, chấp nhận số người gán khác nhau cho từng mẫu, chấp nhận dữ liệu thiếu, và có biến thể cho nhãn danh mục, nhãn có thứ bậc, nhãn dạng số. Phổ biến trong nghiên cứu phân tích nội dung và ngày càng được dùng trong xử lý ngôn ngữ.
- Kappa có trọng số: cho nhãn có thứ bậc như thang điểm chất lượng câu trả lời từ 1 đến 5, khi lệch một bậc nhẹ hơn lệch bốn bậc.
- Tương quan hoặc sai số trung bình: cho điểm số liên tục, ví dụ người chấm cho điểm độ tự nhiên của giọng đọc tổng hợp.
- Chỉ số khớp theo khoảng: cho bài toán gắn nhãn đoạn văn bản như tên người, địa danh, nơi người gán có thể chọn ranh giới lệch một hai âm tiết; cần quyết định trước khớp một phần có tính không.
Báo cáo chỉ số nào cũng nên kèm cỡ mẫu đo, số người gán, cách lấy mẫu và khoảng tin cậy nếu tính được. Một kappa đo trên ba mươi mẫu dao động rất mạnh và không nên dùng để kết luận.
Khi kappa thấp: chẩn đoán trước khi trách người gán
Kappa thấp có bốn nguyên nhân chính, và chỉ một trong số đó là lỗi người gán. Nguyên nhân thứ nhất là định nghĩa nhãn mơ hồ hoặc chồng lấn, ví dụ "phàn nàn về giao hàng" và "phàn nàn về đóng gói" khi hàng vỡ trong lúc vận chuyển. Thứ hai là bài toán vốn chủ quan, nhiều cách hiểu hợp lý. Thứ ba là dữ liệu khó đọc với một số người gán, ví dụ nhiều tiếng địa phương hay thuật ngữ chuyên ngành. Thứ tư mới là người gán làm ẩu hoặc chưa được hướng dẫn kỹ.
Cách chẩn đoán là xem ma trận lệch: các cặp nhãn nào hay bị nhầm với nhau, ở những mẫu nào. Nếu lệch tập trung vào một cặp nhãn, sửa định nghĩa hoặc gộp nhãn. Nếu lệch rải đều và cao ở một người, xem lại với người đó. Nếu lệch tập trung ở mẫu có tiếng địa phương, bổ sung bảng từ hoặc người gán quen vùng đó.
Một cám dỗ cần tránh là "ép" đồng thuận bằng cách cho người gán xem nhãn của nhau hay thảo luận trước khi gán phần đo. Làm vậy kappa sẽ cao nhưng không còn đo được độ rõ của khái niệm. Phần đo đồng thuận phải gán độc lập; thảo luận để dành cho vòng sửa hướng dẫn.
Đưa đo đồng thuận vào quy trình hằng ngày
Đo đồng thuận không phải việc làm một lần lúc đầu dự án. Chất lượng nhãn trôi theo thời gian: người gán mệt, người mới vào, dữ liệu mới có kiểu câu chưa gặp. Cách làm phổ biến là dành một tỷ lệ nhỏ mẫu, ví dụ một phần mười, cho hai người gán độc lập trong suốt dự án, và tính kappa theo tuần. Đường kappa đi xuống là tín hiệu cần họp lại, trước khi hàng nghìn nhãn kém đã vào bộ dữ liệu.
Bên cạnh mẫu gán đôi là mẫu vàng: những câu đã có đáp án do nhóm thống nhất sau thảo luận, chèn ngẫu nhiên vào hàng chờ của từng người. Mẫu vàng đo độ chính xác của từng người so với chuẩn của nhóm, còn kappa đo mức thống nhất giữa những người gán với nhau. Hai thước đo bổ sung cho nhau: một người có thể khớp đồng nghiệp rất cao nhưng cả hai cùng lệch chuẩn.
Khi công bố bộ dữ liệu, ghi chỉ số đồng thuận vào thẻ dữ liệu cùng với cỡ mẫu đo, số người gán, cách chọn mẫu, và phân tích theo nhãn. Người dùng sau nhìn vào đó sẽ biết điểm của mô hình trên bộ dữ liệu này có ý nghĩa đến đâu: một mô hình đạt độ chính xác ngang mức đồng thuận của người thì phần chênh lệch còn lại có thể chỉ là nhiễu của nhãn.
Riêng với dữ liệu tiếng Việt nhiều vùng miền, nên tách chỉ số đồng thuận theo nhóm dữ liệu: bình luận có nhiều tiếng địa phương, văn bản không dấu, văn bản chuẩn. Nếu đồng thuận ở nhóm có tiếng địa phương thấp hẳn, đó vừa là cảnh báo chất lượng nhãn, vừa là gợi ý rằng mô hình huấn luyện trên dữ liệu này sẽ kém nhất ở chính nhóm người dùng đó.
Câu hỏi thường gặp
Kappa bao nhiêu thì bộ dữ liệu được coi là dùng được?
Không có ngưỡng chung. Thang Landis và Koch hay được dẫn, nhưng mức đủ tốt phụ thuộc bài toán: nhiệm vụ khách quan cần kappa cao, nhiệm vụ đánh giá sắc thái thì mức vừa phải là bình thường. So sánh qua các vòng và giữa các nhãn hữu ích hơn một ngưỡng cố định.
Có thể tính kappa giữa người gán và mô hình không?
Có thể, về mặt tính toán giống hệt giữa hai người. Kết quả cho biết mô hình khớp người đến đâu so với may rủi. Nên đặt cạnh kappa giữa hai người để biết mô hình đã gần mức trần do con người đặt ra chưa.
Đo đồng thuận trên bao nhiêu mẫu là đủ?
Tuỳ số nhãn và độ lệch phân bố, nhưng vài chục mẫu thường quá ít vì kappa dao động mạnh. Vài trăm mẫu cho bài toán ít nhãn là mức hay dùng. Nhãn hiếm cần lấy mẫu có chủ đích để có đủ trường hợp.
Kappa âm nghĩa là gì?
Hai người đồng ý ít hơn mức may rủi, tức là có xu hướng chọn ngược nhau. Thường do một người hiểu ngược định nghĩa, nhầm thứ tự nút bấm hoặc nhầm cột khi nhập. Nên kiểm tra quy trình trước khi kết luận về khái niệm.
Có nên báo cáo cả tỷ lệ đồng ý thô không?
Nên báo cáo cả hai, kèm phân bố nhãn. Tỷ lệ thô dễ hiểu, kappa trừ phần may rủi, phân bố giải thích vì sao hai con số chênh nhau. Người đọc có đủ ba thông tin mới đánh giá đúng chất lượng nhãn.
Alpha của Krippendorff khác kappa của Fleiss ở điểm nào khi dùng thực tế?
Alpha chấp nhận dữ liệu thiếu và số người gán khác nhau cho từng mẫu, lại có biến thể cho nhãn có thứ bậc và nhãn số. Fleiss kappa đơn giản hơn nhưng giả định mỗi mẫu có cùng số người gán và nhãn danh mục.