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

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

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

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

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

  1. Войдите в аккаунт.
  2. Перейдите в Профиль → Уведомления  → Выполнение пула или агрегации.
  3. Выберите способ оповещения:
    • Почта — письма придут на вашу электронную почту.
    • Сообщения — уведомления придут в Сообщения вашего аккаунта. Кроме вас их увидят те, у кого настроен совместный доступ к вашему аккаунту.
    • Браузер — уведомления придут на устройства, с которых вы вошли в свой аккаунт.

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

Анализирует все ответы исполнителей и возвращает итоговый ответ и его статистическую значимость.

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

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

Важно.

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

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

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

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

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

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

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

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

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

Если вы хотите узнать, как метод Дэвида — Скина реализован в Толоке, ознакомьтесь с открытым кодом.

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример

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

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

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

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

Термины:

  • — точность исполнителя;
  • — константа для сглаживания;
  • — наиболее популярный ответ;
  • — вероятность того, что оценка правильная.

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

,

где:

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

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

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

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

,

где:

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

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

Если исполнитель ответил , то вероятность этого равна точности исполнителя . Если ответил иначе, то вероятность этого равна:

,

где:

— оставшаяся вероятность;

— количество оставшихся ответов.

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

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

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
}

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

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. Почему?

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