Согласованность разметчиков: как её считать
Практическое руководство по согласованности разметчиков: процент совпадений, каппа Коэна и Фляйса, альфа Криппендорфа, когда что применять и как это показывает Potato.
Согласованность разметчиков (IAA) измеряет, как часто независимые разметчики дают одну и ту же метку. Это стандартное свидетельство того, что задача разметки сформулирована чётко, а полученным меткам можно доверять. Низкая согласованность обычно означает, что неясны инструкции, а не что разметчики небрежны.
Общая тема — надёжность оценок между экспертами. Potato считает согласованность вживую в админ-панели, см. контроль качества.
Почему сырого процента совпадений мало
Самая простая мера — процент совпадений: доля объектов, размеченных одинаково. Проблема в том, что часть совпадений случается по случайности. Если оба разметчика выбирают «положительно» в 90% случаев, они будут сходиться чаще всего, даже размечая наугад. Меры с поправкой на случайность это исправляют.
Коэффициент с поправкой на случайность имеет вид:
P_observed − P_expected
κ = ─────────────────────────
1 − P_expected
где P_observed — фактическое совпадение, а P_expected — совпадение, ожидаемое по случайности. Значение 1 — полное согласие, 0 — на уровне случайности.
Три коэффициента
- Каппа Коэна: два разметчика, категориальные метки. Классический выбор для пары.
- Каппа Фляйса: больше двух разметчиков, категориальные метки, когда разные объекты могут оценивать разные люди.
- Альфа Криппендорфа: самый универсальный вариант. Работает с любым числом разметчиков, справляется с пропусками и поддерживает номинальные, порядковые, интервальные и относительные данные. Именно её Potato показывает по умолчанию.
Берите каппу для простых категориальных пар; тянитесь к альфе Криппендорфа, когда разметчиков много, пересечение неполное или метки упорядочены либо непрерывны (там, где «ошибся на единицу» должно весить меньше, чем «ошибся на четыре»).
Каппа Флейса или альфа Криппендорфа при трёх аннотаторах?
Если все три аннотатора разметили каждый элемент, а метки — неупорядоченные категории, годится любой из двух коэффициентов. Если хоть у одного элемента не хватает метки или метки упорядочены, используйте альфу Криппендорфа.
Они различаются допущениями:
- Пропущенные метки. Каппа Флейса предполагает одинаковое число оценок у каждого элемента. Если один из трёх аннотаторов пропустил элемент, этот элемент придётся отбросить. Альфа Криппендорфа использует все имеющиеся оценки.
- Шкала измерения. Каппа Флейса считает метки неупорядоченными, поэтому на шкале от 1 до 5 расхождение 4 и 5 весит столько же, сколько 1 и 5. Альфа Криппендорфа принимает метрику расстояния (номинальную, порядковую, интервальную или шкалу отношений) и считает близкие ответы меньшим расхождением.
- Малые выборки. В альфу Криппендорфа встроена поправка на малые выборки, поэтому на пилоте из нескольких десятков элементов значения могут разойтись, даже если данные подходят для обоих.
На полных номинальных данных при разумном числе элементов значения обычно близки. Указывайте тот коэффициент, которого ждут в вашей области, и называйте в статье коэффициент и метрику: «согласованность составила 0,72» означает разное для каждого из них.
Potato считает сразу несколько коэффициентов и не заставляет выбирать один заранее. Для категориальной схемы он выводит рядом процент совпадений, каппу Коэна, каппу Флейса и номинальную альфу, а для упорядоченной схемы каппу с линейными весами, каппу с квадратичными весами, ро Спирмена и порядковую альфу. До версии 2.9 порядковая альфа для шкалы Лайкерта со словесными метками упорядочивала эти метки по алфавиту и на деле становилась номинальной, поэтому пересчитайте порядковую согласованность по шкалам со словесными метками, если сообщали её по результатам более ранней версии. До версии 2.10.1 включительно порядковая альфа взвешивала расхождение простой разностью рангов, а это не порядковая метрика Криппендорфа. Начиная с 2.10.2 она совпадает с порядковой альфой калькулятора, поэтому пересчитайте порядковую альфу, если сообщали её по результатам более ранней версии. Таблицу меток можно проверить и в браузере с помощью калькулятора согласованности, который считает номинальную, порядковую и интервальную альфу, а также каппу Коэна и каппу Флейса.
Как читать число
Универсального порога нет, но вот распространённый грубый ориентир для альфы и каппы:
- ≥ 0,80: достаточно, чтобы на это опираться.
- 0,67–0,80: годится для предварительных выводов; разберите расхождения.
- < 0,67: пересмотрите инструкции, прежде чем доверять меткам.
Относитесь к этому как к поводу разобраться, а не как к пропускному экзамену. Всегда смотрите, какие объекты и какие метки создают расхождения.
Как измерить это в Potato
Пусть разметчики пересекутся на общем подмножестве, затем включите отчёт по согласованности:
agreement_metrics:
enabled: true
# Krippendorff's alpha is reported in the admin dashboard.Для задач на спаны и структурных задач измеряйте согласованность на том уровне, который вам важен, потому что метрики уровня документа прячут расхождения в границах. Для схем спанов Potato выводит каппу на уровне токенов, F1 по спанам при точном и частичном совпадении, альфу Криппендорфа по посимвольным меткам и упрощённую форму гаммы Mathet, что позволяет отделить расхождение в метке от расхождения в том, где начинается спан.
Что делать, когда согласованность низкая
- Прочитайте объекты, где мнения разошлись: неоднозначна инструкция или объект и правда сложный?
- Уточните определения и добавьте сложные случаи в примеры. См. Как писать инструкции для разметки.
- Проведите пилот заново. Если на действительно субъективных задачах согласованность остаётся низкой, подумайте о том, чтобы фиксировать само расхождение, а не выжимать единственный ответ.
Частые вопросы
Вопросы ниже касаются диапазона значений альфы Криппендорфа, того, как она считается, и согласованности при двух разметчиках.
Может ли альфа Криппендорфа быть меньше -1?
Нет. Альфа опускается ниже 0, когда разметчики расходятся чаще, чем предсказывает случайность, и приближается к -1, не достигая этого значения. Два разметчика, которые расходятся на каждом из N элементов и используют две метки одинаково часто, дают альфу ровно -1 + 1/N, то есть -0,8 для 5 элементов и -0,95 для 20. Криппендорф (2011) называет значимым для надёжности диапазон от 0 до 1 и объясняет значения ниже 0 систематическим расхождением или ошибкой выборки. Явно отрицательная альфа указывает на систематическое расхождение, например когда разметчики читают шкалу в противоположных направлениях, и требует пересмотреть инструкции, а не сообщать это число.
Как посчитать альфу Криппендорфа?
Альфа равна 1 минус отношение наблюдаемого расхождения к расхождению, ожидаемому по случайности. Наблюдаемое расхождение берётся из пар меток, поставленных одному и тому же элементу, а ожидаемое берётся из пар, извлечённых из всех меток исследования, причём метрика расстояния (номинальная, порядковая, интервальная или шкала отношений) определяет, сколько весит каждое несовпадение. Potato считает альфу по каждой схеме разметки в админ-панели, как только min_overlap разметчиков разметили один и тот же элемент, а калькулятор согласованности считает в браузере номинальную, порядковую и интервальную альфу по таблице меток.
Можно ли посчитать согласованность разметчиков, если их только двое?
Да. Каппа Коэна создана именно для двух разметчиков с категориальными метками, а альфа Криппендорфа работает как с двумя разметчиками, так и с большим числом. Оба коэффициента требуют, чтобы два разметчика независимо разметили одни и те же элементы, а при малом числе элементов оценка неустойчива, поэтому указывайте число элементов рядом с коэффициентом.