Агрегация результатов

Напишите нам, если не нашли ответ в Справке. Вы можете приложить скриншоты или видео, чтобы ускорить помощь:

Написать в чат  Написать в Telegram

Если задания выданы с перекрытием 2 и больше, запустите агрегацию результатов. Яндекс Задания обработают все ответы исполнителей на задание и выдадут итоговый ответ и степень его достоверности.

Примечание

Если вы запускали пул с отложенной приемкой, убедитесь, что все ответы приняты.

  1. Перейдите на страницу пула.

  2. Нажмите рядом с кнопкой Скачать результаты.

  3. Выберите способ агрегации:

Агрегация займет от нескольких минут до нескольких часов. Следите за процессом на странице Операции. После завершения агрегации скачайте файл с результатами.

Чтобы получать уведомления и письма о завершении агрегации результатов, настройте оповещения:

  1. Войдите в аккаунт.

  2. Перейдите в Профиль → Уведомления → Выполнение пула или агрегации.

  3. Выберите способ оповещения:

    • Почта — письма придут на вашу электронную почту.

    • Сообщения — уведомления придут в Сообщения вашего аккаунта. Кроме вас их увидят те, у кого настроен совместный доступ к вашему аккаунту.

    • Браузер — уведомления придут на устройства, с которых вы вошли в свой аккаунт.

Для агрегации ответов на все завершенные задания с помощью API отправьте POST-запрос с параметрами агрегации:

curl -X POST 'https://tasks.yandex.ru/api/v1/aggregated-solutions/aggregate-by-pool' \
     -H 'Authorization: ApiKey PlaceYourRealOAuthToken_Here' \
     -H 'Content-Type: application/json' \
     -d '{"pool_id":"1238218", "type":"WEIGHTED_DYNAMIC_OVERLAP", "answer_weight_skill_id":"91dbfd8f1bc3310fbbbd09f64b8ab6e5", "fields":[{"name":"result"}]}'

Справочник API Яндекс Заданий

См. подробную информацию о запросе, параметрах и ответах в разделе Агрегировать ответы в пуле документации API Яндекс Заданий. Там же есть примеры запросов на разных языках программирования.

Агрегация результатов по методу Дэвида — Скина

Метод агрегации Дэвида — Скина учитывает неоднородность исполнителей при агрегации ответов. Статистическая значимость итогового ответа определяется на основе анализа ответов всех исполнителей.

Принцип работы

Метод рассчитывает для каждого исполнителя |L|² параметров, где L — это множество всех уникальных значений для агрегации.

Параметры, которые использует метод, создаются автоматически для каждого пула и используются только в расчетах. В результатах агрегации вы не увидите эти параметры.

Примечание

Поскольку этот метод оценивает для каждого исполнителя |L|² параметров, мы не рекомендуем использовать агрегацию Дэвида — Скина в тех случаях, когда исполнитель размечает количество заданий < |L|². Иначе вы можете получить низкое качество агрегации.

По итогам агрегации вы получите файл с ответами. Поле CONFIDENCE: <название поля выходных данных> — значимость ответа в процентах.

Преимущества

Данные для агрегации можно загружать любым способом.

Особенности

Метод Дэвида — Скина — это нетривиальный алгоритм агрегации. Ознакомьтесь с особенностями и узнайте подробнее о модели.

  • Метод не гарантирует, что для агрегации результата будут использоваться исходные ответы исполнителей. Алгоритм учитывает параметры качества исполнителей и закономерности в ответах. Соответственно, он может выдать результат, которого нет в ответах исполнителей на это задание.

    Пример

    В задании на классификацию изображений все три исполнителя выбрали первый вариант ответа. В другом аналогичном задании эти же три человека выбрали первый вариант, а четвертый исполнитель выбрал второй вариант. Если в следующем задании ответ четвертого исполнителя окажется единственным, то метод Дэвида — Скина  может признать такой ответ ошибочным и выдать другой результат.

  • Агрегация Дэвида — Скина работает с контрольными и обучающими заданиями так же как и с основными. Существует вероятность того, что в файле с ответами поле OUTPUT:result для контрольного задания не совпадет с реальным ответом на это задание (поле GOLDEN:result).

  • Если в вашем проекте есть выходные данные с отметкой "required": false и исполнители не заполнят это поле данных, то данное поле не будет участвовать в агрегации.

    Например, у вас есть 1000 заданий: в 999 из них исполнители не разметили поле label, а один разметил его как label=x. В результате агрегации это поле данных будет иметь CONFIDENCE = 100%, так как только одно задание из тысячи попало под условия агрегации.

Как вычисляется

Метод Дэвида — Скина подбирает для каждого исполнителя его матрицу ошибок, и популярность в ответах. Это происходит с помощью EM-алгоритма.

Принцип работы EM-алгоритма заключается в том, что собираются наиболее точные агрегированные ответы для каждого задания, фиксируя матрицы ошибок и популярность ответов. Среди всех ответов алгоритм пытается найти наилучшие популярности и матрицы ошибок. Процесс происходит в несколько шагов. В качестве начальной уверенности в правильном ответе используется мнение большинства.

Описание метода Дэвида — Скина на английском.

Примечание

В агрегации учитываются только принятые задания.

Требования

Основным требованием для этой агрегации являются поля выходных данных:

  • Строки и числа с допустимыми значениями.

    Допустимое значение должно совпадать с параметром value в нужном элементе интерфейса.

  • Логический тип.

  • Целые числа с минимальным и максимальным значениями. Разница между ними не должна превышать 32.

    Если в выходном поле слишком много возможных вариантов ответа, механизм динамического перекрытия не сможет агрегировать данные.

Допустимое значение должно совпадать с параметром value в нужном элементе интерфейса.

  • Массив.
  • Файл.
  • Географические координаты.
  • Объект JSON.

Как проверить

Если у вас есть сомнения в том, что агрегация методом Дэвида — Скина  работает корректно, вы можете:

  • отправить задания на повторную разметку и сравнить полученные результаты;
  • проверить задание вручную.

Агрегация результатов по навыку

Анализирует ответы на основе уровня доверия к исполнителю. Уровень доверия определяется навыком, который вы выберете. Навык — оценка вероятности того, что исполнитель сделал задание правильно.

Преимущества

  • Если в вашем проекте обрабатывается большое количество данных, результаты агрегации будут точнее, по сравнению с методом Дэвида — Скина.
  • Вы сами выбираете поля выходных данных, которые нужно агрегировать.

Особенности

Навык исполнителя имеет «вес». Чем выше навык, тем больше мы доверяем конкретному исполнителю и считаем, что его ответ правильный.

По итогам агрегации вы получите файл с ответами. Поле CONFIDENCE: <название поля выходных данных> — уверенность в агрегированном ответе. В нашем случае это вероятность того, что названный ответ правильный.

Пример

Задания размечали три исполнителя с разным значением навыка «Мой навык»: у первого исполнителя навык — 70, у второго — 80, у третьего — 90.

На первое задание все исполнители ответили OK. В этом случае мы уверены на 100%, что ОК — это правильный ответ.

На второе задание первый и третий исполнители ответили OK, а второй — BAD. В этом случае мы сравним навыки исполнителей и на основе этого посчитаем уверенность в ответе.

Как вычисляется

Термины:

  • q[i]q[i] — точность исполнителя;
  • KK — константа для сглаживания;
  • z[j]z[j] — наиболее популярный ответ;
  • z[x]z[x] — вероятность того, что оценка правильная.

Точность исполнителя q[i]q[i] считаем по формуле:

q[i]=K+correct.golden.sets[i]2×K+total.golden.sets[i]q[i] = \frac{K+correct.golden.sets[i]}{2×K+total.golden.sets[i]},

где:

KK — константа для сглаживания (начиная от 0,5) при недостаточном количестве ответов на контрольные задания.

При наличии нескольких оценок для задания высчитывается наиболее популярный ответ — для каждого варианта ответа суммируем q[i]q[i] исполнителей, выбравших его. Ответ с большей суммой считаем более правильным. Назовем эту оценку z[j]z[j].

По теореме Байеса считаем апостериорную вероятность того, что оценка z[j]z[j] правильная.

В качестве априорного распределения оценок будет считать равномерное. Для оценки z[x]z[x] априорная вероятность:

P(z[x])=1YP(z[x]) = \frac{1}{Y},

где:

YY — количество вариантов ответов.

Далее считаем вероятность того, что оценка z[j]z[j] правильная.

Если исполнитель ответил z[j]z[j], то вероятность этого равна точности исполнителя q[i]q[i] . Если ответил иначе, то вероятность этого равна:

1q[i]Y1\frac{1-q[i]}{Y-1},

где:

(1q[i])(1 - q[i]) — оставшаяся вероятность;

(Y1)(Y - 1) — количество оставшихся ответов.

Таким образом рассчитывается то, что вероятности ошибок равномерно распределены по оставшимся оценкам.

Взяв все ответы исполнителей и, например, вариант z[x]z[x] , мы считаем вероятность того, что исполнители ответят таким образом, при условии, что правильным ответом был z[x]z[x]:

func z_prob(x int) : float {
    d = 1.0
    for w[i]: workers
         if answers[w[i]] == z[x]
            d *= q[i]
         else
            d *= (1 - q[i]) / (Y - 1)
    return d
}

Далее по теореме Байеса считаем вероятность того, что ответ z[j]z[j] правильный:

r = 0
for z[i]: answer_options
    r += z_prob(i) * (1 / Y)

eps = z_prob(j) * (1 / Y) / r

Примечание

В агрегации учитываются только принятые задания.

Требования

Чтобы запустить агрегацию необходимо корректно настроить динамическое перекрытие. Для этого:

  1. Выберите навык. Советуем выбирать навык, рассчитываемый как доля правильных ответов на контрольные задания. Тогда результаты агрегации будут наиболее точными.

  2. Выберите поля выходных данных.

    Поля выходных данных, которые можно агрегировать
    • Строки и числа с допустимыми значениями.

    Допустимое значение должно совпадать с параметром value в нужном элементе интерфейса.

    • Логический тип.

    • Целые числа с минимальным и максимальным значениями. Разница между ними не должна превышать 32.

    Если в выходном поле слишком много возможных вариантов ответа, механизм динамического перекрытия не сможет агрегировать данные.

    Допустимое значение должно совпадать с параметром value в нужном элементе интерфейса.

Вы сможете запустить агрегацию по навыку, если пул соответствует следующим требованиям:

  1. У вас есть навык, который определяет уровень доверия к ответам исполнителя. Лучше всего использовать навык, рассчитываемый как доля правильных ответов на контрольные задания.

  2. В проекте поля выходных данных, имеют допустимые значения.

    Поля выходных данных, которые можно агрегировать
    • Строки и числа с допустимыми значениями.

    Допустимое значение должно совпадать с параметром value в нужном элементе интерфейса.

    • Логический тип.

    • Целые числа с минимальным и максимальным значениями. Разница между ними не должна превышать 32.

    Если в выходном поле слишком много возможных вариантов ответа, механизм динамического перекрытия не сможет агрегировать данные.

    Допустимое значение должно совпадать с параметром value в нужном элементе интерфейса.

  3. Задания в пул были загружены при помощи «умного смешивания».

Решение проблем

Чем отличается уверенность в агрегированном ответе в агрегации по Дэвиду - Скину от уверенности в агрегации по навыку?

В способе вычисления. В обоих агрегациях уверенность означает то же самое.

Как работает агрегация результатов по методу Дэвида — Скина?

Модель агрегации Dawid-Skene анализирует ответы исполнителей и создает матрицу ошибок каждого исполнителя. Так вычисляется статистическая значимость исполнителя для каждого ответа. Подробнее о модели.

Почему агрегация по методу Дэвида — Скина выдает ответ, который исполнители не выбирали?

Метод не гарантирует, что для агрегации результата будут использоваться исходные ответы исполнителей. Алгоритм учитывает параметры качества исполнителей и закономерности в ответах. Соответственно, он может выдать результат, которого нет в ответах исполнителей на это задание.

Где можно увидеть ход агрегации?

На странице пула есть кнопка К списку операций.

Почему может быть недоступна агрегация по навыку исполнителя?

Невозможно агрегировать поля проекта, которые не имеют допустимых значений. Необходимо указывать возможные значения для всех полей всех типов.

Агрегация по навыку недоступна. При запуске по API, код ошибки — ONLY_FOR_POOL_WITH_MIXER. Почему?

Необходимо использовать «умное смешивание».

Написать в службу поддержки