Яндекс.Толока. Як люди допомагають навчати машинний інтелект

Ось уже півтора року в Яндексі для вдосконалення пошукових алгоритмів і технологій машинного інтелекту застосовується платформа Толока. Може здатися дивним, але всі сучасні технології машинного навчання в тій чи іншій мірі мають потребу в людських оцінках.

Люди оцінюють релевантність еталонних документів пошуковим запитам, щоб на них орієнтувалися формули ранжирування в пошуку; люди переписують аудіозаписи в текст, щоб на цих даних налаштувався алгоритм голосового розпізнавання; люди розмічають зображення за категоріями, щоб, натренувавшись на цих прикладах, нейронна мережа далі робила це без людей і краще людей.



Все це можна робити у Толоці, яка є краудсорсінговой платформою і допомагає знайти тих, хто вирішить вашу задачу. Сьогодні вона переходить у статус бети і відтепер відкрита для всіх зовнішніх замовників. Так що настав час розповісти вам детальніше про самій платформі і про те, з якими несподіваними труднощами ми стикалися в процесі роботи над нею, поділимося своїми спостереженнями і пояснимо, як Толока може допомогти саме вам.

Завдання, про які ми говорили вище, у Яндексі традиційно вирішуються з допомогою навчених фахівців — асесорів. Асесори дивляться, наскільки результати пошуку відповідають запиту, знаходять серед знайдених веб-сторінок спам, класифікують його, вирішують схожі завдання і в інших сервісах.

Іронія полягає в тому, що чим більше нових технологій ми запускаємо, тим сильніше зростає потреба в людських оцінках. Недостатньо просто визначити релевантність сторінки пошуковому запиту. Важливо розуміти, не засмічена сторінка шкідливої рекламою? Не містить сторінка контент для дорослих? А якщо містить, то має на увазі запит користувача, що він шукав саме такий контент? Для того щоб автоматично враховувати всі ці фактори, потрібно зібрати достатню кількість прикладів для навчання пошукової машини. А так як все в інтернеті постійно змінюється, то і навчальні набори потрібно постійно оновлювати і підтримувати в актуальному стані. Загалом, тільки для задач пошуку потреба в людських оцінках вимірювалася мільйонами в місяць, і з кожним роком ця кількість лише зростає.

Залучати все більше і більше асесорів у кожній з країн присутності Яндекса організаційно непросто. При цьому далеко не всі нові завдання вимагають спеціального навчання. З багатьма завданнями може впоратися практично будь-яка людина, а часто навіть більш корисно зібрати думки звичайних користувачів, не натренованих професійно оцінювати ранжування. Подібне розділення завдань привело нас до висновку, що в додаток до асесорам нам потрібен ще один більш гнучкий і масштабований джерело отримання людських оцінок.

Краудсорсінг
На додаток до складних завдань, виконуваних асесорами, нам потрібно було навчитися збирати мільйони простих оцінок для будь-якої нас цікавить країні. Більшість завдань, про яких ми говоримо, досить прості і дрібні: на їх виконання не потрібно більше 30 секунд. Зате кількість цих завдань дуже велике. Звичайні фріланс-біржі, на яких можна зв'язатися безпосередньо з кількома виконавцями і пояснити їм суть завдання особисто, для нас не підходили. Для промислових масштабів нам потрібно було залучати тисячі виконавців, оплачувати їх роботу без паперової тяганини і контролювати результат.

Найближчим аналогом того, що нам насправді потрібно було, були краудсорсинговые платформи Amazon Mechanical Turk, Clickworker і CrowdFlower. Саме з допомогою них, як правило, збирають прості людські оцінки академічні дослідники в області Machine Learning і великі пошукові компанії, наприклад, Bing.



От тільки всі ці платформи не працювали у нас цікавлять країнах. До того ж ми вже встигли накопичити певний досвід для того, щоб вирішити завдання власними силами.

Толока
У принциповій логіці роботи будь краудсорсінговой платформи і, зокрема, Толоки немає нічого складного. З одного боку, ми працюємо з виконавцями, розподіляємо завдання, виробляємо оплату, а з іншого – допомагаємо замовникам отримати результат з мінімальними трудовитратами.



До речі, що це за слово таке «Толока»? Над назвою думали досить довго, шукали міжнародні варіанти, але в підсумку вийшло зовсім навпаки. Ідея назвати сервіс «Толокою» народилася в нашому мінському офісі, в якому, до речі, і зосереджено ядро розробки платформи. Це слово (по-білоруськи «талака») поширена в Білорусі приблизно в 30 разів сильніше, ніж у Росії, і означає спільну корисну роботу на загальний результат, а це відмінно поєднується з краудсорсінгом. Хоча вибір назви – це далеко не самий складний питання, з яким ми зіткнулися при розробці сервісу.

Якими можуть бути завдання? Потенційно вони можуть бути будь-якими за вихідними даними, інтерфейсу, очікуваних відповідей. Одному потрібно завантажити картинки і попросити їх класифікувати, іншому — відобразити аудіо-плеєр і попросити написати, що на записі чутно, третій — показати карту з розташуванням користувача.



Кілька прикладів






Тому був обраний шлях максимальної гнучкості: використовуючи json для вхідних і вихідних параметрів і html/css/js — для інтерфейсу, замовник може створити практично будь-яке завдання. А для тих завдань, які вимагають роботу «в полі» (наприклад, піти за адресою і перевірити актуальність інформації про організації), ми підготували мобільну версію Толоки для Android.



У гнучкості в налаштуваннях є і зворотна сторона – високий поріг входження. Далеко не кожна людина вміє верстати інтерфейс. Цю проблему ми вирішуємо за допомогою готових шаблонів, загальна кількість яких плануємо збільшити.

Як платити толокерам? Успішний висновок кровно зароблених — один з головних мотиваторів для людини повертатися і продовжувати виконувати завдання. Складна і довга процедура виводу може поховати платформу. Тому ми збудували систему, в якій досить додати свій гаманець в PayPal або Яндекс.Гроші. На етапі налагодження процесів з боку Толоки виведення грошей міг займати до 30 днів, зараз — пару днів, а то і хвилин. При цьому і толокеры, і замовники звільняються від паперової тяганини.

Як забезпечити якість виконання? Це питання — головний біль будь краудсорсінговой платформи. У Толоці, як і будь-якому соціумі, є люди старанні та уважні, а є — ледачі, недобросовісні і при цьому вміють писати скрипти. Основне завдання: утримати в сервісі перших і якомога раніше знайти і обмежити друге. Для цього ми навчили Толоку аналізувати поведінку виконавців. У замовників з'явилася можливість автоматично виявляти та обмежувати тих толокеров, хто, наприклад, відповідає занадто швидко, або чиї відповіді не узгоджуються з відповідями інших. Ми також додали можливість використовувати контрольні завдання («ханипоты») та обов'язкову приймання перед оплатою. Причому приймання теж можна спростити. Віддати завдання одним користувачам, а оцінку їх результатів – іншим.



До речі, а що ми знаємо про самих толокерах?

Толокеры
У Толоці реєструються і виконують завдання самі різні люди. Найбільше виконавців (як і завдань) у нас в Росії, Україні й Туреччині. Більшість толокеров — це молоді люди до 35 років (як правило, студенти технічних Вузів чи мами в декреті). В основному виконавці розглядають Толоку в якості додаткового джерела грошей, хоча багато хто відзначають, що їм подобається виконувати корисну роботу, робити інтернет чистіше. Ось, наприклад, що вони самі пишуть про себе, обговорюючи Толоку в інтернеті:

Мені на гаманець вже впало 790,41 рублів. Якщо що, то в регіоні, де я живу, зарплата, наприклад, вчителі-молодого спеціаліста, становить 2800 рублів. Зверніть увагу, що це все набито між справою, у вільний час, в перервах між виконанням основної роботи, коли хотілося відпочити і трохи переключитися.


І взагалі, працюючи тут, не відчуваєш себе тупим кликающим роботом. Є якесь відчуття корисності своєї роботи.


Толока в Яндексі
Толока зараз — це майже 270 тисяч виконавців з п'яти країн світу, 80 тисяч виконуваних завдань на день, 400 вже випробуваних різних типів завдань, 1 мільярд зібраних оцінок.

У момент відкриття ми стартували з трьома основними типами завдань, і цікаво, що саме вони як і раніше залишаються найулюбленішими завданнями для більшості толокеров: оцінка якості пошуку картинок, розмітка контенту для дорослих і попарне порівняння об'єктів (наприклад, сторінок в різному дизайні).

Використання краудсорсингу для збору оцінок у цих проектах дозволило командам істотно скоротити час очікування оцінок для побудови метрик. Де асесорам потрібно кілька днів на оцінку набору об'єктів, толокеры справляються за пару годин. За рахунок зниження вартості оцінки вдалося помітно збільшити розміри навчальних наборів і підвищити якість алгоритмів класифікації. Приміром, після переходу на Толоку якість визначення контенту для дорослих зросла на 30%.

Замовниками оцінок у Толоці виступають десятки різних команд Яндекса. За допомогою цього сервісу збираються дані для технологій комп'ютерного зору та розпізнавання мовлення, удосконалюються рекомендаційні технології, поповнюється база довідника організацій, вирішуються багато інші внутрішні завдання. Але їх все одно недостатньо для того, щоб забезпечити всіх толокеров роботою. Потрібно рухатися далі.

Перші зовнішні замовники
Домовившись з декількома зовнішніми партнерами, ми організували закрите альфа-тестування, щоб перевірити відповідність платформи потребам ззовні. Зовнішні замовники прийшли як зі знайомими для нас типами завдань, так і з новими, специфічним для їх бізнесу. За час тестування були запущені завдання по розшифровці цінників товарів з фото, аудит торгових точок, категоризації товарів, пошуку характеристик.

Сайт «Рейтинг Букмекерів» запропонував толокерам завдання по оновленню бази букмекерських відділень по всій країні (близько 4000 об'єктів). Потрібно було перевірити, чи існує об'єкт за вказаною адресою, зробити фотографію і скласти його опис. За даними замовника, перевірити актуальність бази об'єктів по Росії з допомогою краудсорнинга виявилося вигідніше і оперативніше, ніж відрядити працівника або шукати підрядників. Трохи конкретики. Виконання завдання по Санкт-Петербургу, де знайшлося 157 адрес для перевірки, з використанням Толоки обійшлося замовнику трохи більше ніж 4100 рублів. Це більш ніж у 10 разів дешевше, ніж проектна семиденна відрядження одного власного співробітника компанії з Москви в Санкт-Петербург, і в 3-6 разів дешевше, ніж найм підрядника на місці.

Толока виявилася корисна не тільки бізнесу, але і в науковій роботі. Дмитро Усталов Інституту математики і механіки ім.Н.Н.Красовського (ИММ Урв РАН) використовують сервіс для збору оцінок смислових зв'язках російських слів, щоб підвищити якість електронних словників, що використовуються в рамках проекту NLPub. За словами Дмитра, він може швидко і недорого проводити експерименти, перевіряючи велика кількість гіпотез в стислі терміни. Для одного із завдань, наприклад, йому вдалося зібрати 13 тисяч оцінок всього за годину.

І ще один приклад. Рамблер використовує Толоку для уточнення асессорских оцінок пошукової видачі. Результати толокеров трохи менш точні, оскільки вони не мають спеціальної підготовки, але зате вони можуть виконати завдання великих обсягів в короткі терміни і зі стабільною якістю. Так що цей канал отримання оцінок особливо корисний в періоди пікових навантажень.

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

Як додати своє завдання?
Процес відправки завдання, як і раніше, передбачає певні знання з боку замовника, але ми вже працюємо над тим, щоб спростити цей процес в найближчому майбутньому. А поки для замовників доступна за адресою yandex.ru/support/toloka-requester.

Ми рекомендуємо почати з пісочниці. Ця тестова середовище дозволить вам не тільки розібратися у процесі створення завдань, а й випробувати їх, не ризикуючи витратити гроші даремно. Після реєстрації можете відразу приступити до створення свого проекту, причому сервіс запропонує вам вже готові шаблони на вибір.



При постановці завдання ви зможете обмежити виконавців за певними критеріями (наприклад, країна, мова або юзер-агент браузера), включити попередню перевірку результату і контроль якості, налаштувати специфікації вхідних і вихідних даних.

Після навчання на пісочниці ви можете перейти до бойової системі, перенести туди свої проекти, поповнити баланс і запустити краудсорсінг. До речі, все це не обов'язково робити в інтерфейсі. У Толоки є свій API.

На закінчення хотілося б розповісти про основні рекомендації, які ми сформулювали на основі власного досвіду роботи з толокерами.

Рекомендації по роботі з краудом
Wisdom of the crowd (мудрість натовпу) — зовсім не філософське, а цілком статистично перевіряється феномен. Навіть якщо думка однієї людини недостатньо компетентно, а його оцінка — недостатньо точна, об'єднання оцінок від багатьох різних людей може давати більш точні результати, ніж оцінка одного професійного експерта. Головне тут — правильно організувати процес збирання й агрегування окремих оцінок.

  1. Краудсорсінг — дуже потужний інструмент, він відмінно підходить, коли мова йде про великих обсягах і необхідності масштабувати і стандартизувати процеси. Але якщо у вас разова завдання, яка вирішується однією людиною за пару годин, то саме так її і простіше вирішити.
  2. багато разів перевірено, що будь-яку складну задачу можна і потрібно декомпозировать на набір дрібних незалежних підзадач. Це дозволить суттєво підвищити якість підсумкових даних без збільшення вартості загальної розмітки.
  3. Більшість завдань у краудсорсинге запускаються з перекриттям (коли кілька виконавців роблять одне і те ж завдання). Популярне оману: чим більше перекриття, тим вище якість результатів. Як правило, це не так. Точність досить швидко стабілізується із збільшенням перекриття, і мало для яких завдань обгрунтовано перекриття більше 5 осіб на завдання.
  4. Не зовсім інтуїтивний факт: ціна за завдання краудсорсинге практично не впливає на якість одержуваних оцінок. Найчастіше завищення ставки може навіть зашкодити якості, так як толокеры в гонитві за грошима перестають приділяти завданням достатню увагу.
  5. А ось головне, від чого реально залежить якість оцінок – від організації завдання. Чим зрозуміліше написана інструкція і спроектований інтерфейс, тим вище якість результату. І не забуваємо про перевірочних завданнях («ханипоты»), які допоможуть виявити недобросовісних толокеров.
  6. Більшості проектів у Толоці не вимагають від виконавця спеціальних знань. Проте іноді доводиться «тренувати» толокеров виконувати завдання саме так, як потрібно замовнику. В цьому випадку слід створювати спеціальні навчальні пули і використовувати додаткові параметри (наприклад, допускати до завдання тільки тих толокеров, які успішно пройшли тренування).
  7. Правильне таргетування завдань на певних виконавців часто допомагає помітно поліпшити результати розмітки. Наприклад, якщо для розмітки каталогу взуття вам потрібно оцінити пантолеты, то це завдання краще відразу віддати толокерам-дівчатам.
  8. Далеко не всі завдання можна віддати на відкуп мудрості натовпу. Завжди знайдеться завдання, яке вимагає професійної підготовки та граничної уважності. Але практично завжди в цих випадках з допомогою попередньої фільтрації краудом можна спростити життя професійним експертам, помітно знизити вартість отримання оцінок і збільшити пропускну здатність вашого робочого процесу.


Були б вдячні спільноти Хабрахабра за відгуки про роботу бета-версії Толоки. Ми продовжуємо працювати над тим, щоб будь-який замовник міг отримати максимально якісний результат без необхідності писати код, а кожен відповідальний виконавець – заохочення і достатню кількість завдань. І ваші відгуки допоможуть нашій команді в цій роботі. Спасибі!
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.