Рекомендации по созданию ваших собственных данных, сопровождаемых ценной информацией, которая поможет вам при принятии ключевых решений.

В следующей статье я расскажу о процессе запуска исследовательского проекта, в котором набор данных академического уровня, такой как те, которые используются Стэнфордским и другими академическими институтами, необходим для новой полностью контролируемой модели классификации. Я поделюсь принятыми нами решениями, рабочим процессом и инструментами, которые мы создали и купили. Имейте в виду, что даже несмотря на то, что это руководство посвящено конкретному исследованию, одному из многих, которые мы проводили по этой теме классификации настроений, вы можете использовать его для обобщения на многие другие. Но сначала давайте поговорим о классификации настроений и причинах, по которым нам (Zencity) потребовалось разработать конвейер для создания наборов данных академического уровня внутри компании.

Классификация тональности - это классическая задача, которую исследовали, обсуждали и писали очень давно. Внутри компании мы использовали VADER, известный алгоритм настроений, который использует правила и лексику, специально настроенную для понимания настроений в социальных сетях. Алгоритм был улучшен с точки зрения дополнительных правил, а лексика была расширена тысячами слов для поддержки городского контента социальных сетей в течение одного года. Используя наш улучшенный алгоритм, мы измерили точность 89,5%. Однако компания росла, и наше понимание потребностей клиентов изменилось. Поэтому мы хотели разработать определение настроения и новый алгоритм, который может помочь нам лучше представить понятие настроения в соответствии с тем, как его воспринимают наши клиенты. Нам также необходимо было поддерживать очень высокую точность, что, в свою очередь, позволяло нам предоставлять городам полезную информацию. Например, при использовании VADER любое сообщение со словом предупреждение, вероятно, было бы классифицировано как негативное. Однако предупреждение не обязательно бывает отрицательным. Для городов предупреждение может быть чем-то нейтральным, например, предупреждением о дорожном движении. Кроме того, из-за бизнес-ограничений каждый образец до сих пор маркировался одним человеком, руководствовавшимся 4-страничной кодовой книгой, которая объясняла, каковы настроения в отношении городов.

Требования к проекту заключались в том, чтобы понять, что является современным с точки зрения анализа настроений, чтобы установить базовый уровень и каковы надлежащие критерии и рабочий процесс для создания нового набора данных. Мы хотели создать новое определение настроений, связанных с городом, в соответствии с рекомендуемыми передовыми практиками, чтобы упростить процесс ручного аннотирования, обучить и, что самое главное, проверить новую модель и добиться очень высокой точности и точности, особенно для новой '' негативный », что очень важно для наших клиентов.

Базовый уровень

Итак, какова современная классификация настроений в социальных сетях? Статья Обзор и сравнительная оценка, опубликованная недавно в ACM Transactions on Management Information Systems, в которой сравниваются 28 ведущих академических и коммерческих систем на 5 различных наборах данных Twitter, показывает общую среднюю точность классификации тональности 61% по системам и доменам. Максимальная точность, измеренная как 76,99%, как показано на рисунке 1. В другом исследовании с использованием глубокого обучения (рисунок 2) мы наблюдаем точность классификации до 87,5%. Эти цифры дают нам относительно ясное представление о том, что такое SOTA и что использование различных алгоритмов в разных областях не приведет к одинаковым результатам.

Критерии и рабочий процесс

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

  1. Голосование большинством голосов за пост.
  2. Простое определение и краткое описание задачи.
  3. Регулярно измеряйте производительность аннотатора и согласованность между аннотаторами.
  4. Выберите соответствующий образец и создайте набор данных.
  5. Тщательно выбирайте аннотационное решение
  6. Используйте простой интерфейс аннотации, чтобы помочь аннотаторам сосредоточиться на одной и четкой задаче.

Большинство голосов за выборку

Выбор проекта, основанного на большинстве голосов, был важным первым шагом, это критический момент в любом проекте аннотации, потому что он добавляет сложности к природе проекта. Такие сложности, как расходы на дополнительные аннотаторы, создание инфраструктуры, которая будет поддерживать несколько аннотаторов, разработка скриптов, отслеживающих их прогресс, и вложение времени в ежедневный анализ, чтобы убедиться, что каждый аннотатор находится на правильном пути. Мы не хотим, чтобы один аннотатор влиял на наш новый набор данных, вносил искажения или искажал его. Например, аннотаторы, которые находятся в одной комнате, могут повлиять на себя, если они переинтерпретируют инструкции во время разговора друг с другом. Аннотатор может однажды проснуться и полностью изменить свою методологию, поэтому желательно иметь механизм мониторинга и тонко настраивать свое понимание, когда это происходит.

Простое определение и краткое описание задачи

Мы также хотели заменить наше 4-страничное руководство по эксплуатации. Идея заключалась в том, чтобы принять решение о новом определении настроений, связанных с городом, которое ориентировано на потребности наших клиентов, и создать очень короткое описание задачи, то есть однострочное определение для нового настроения и инструкции размером менее половины страницы. Окончательное определение было следующим: «показатель удовлетворенности (положительной) или неудовлетворенности (отрицательной) жителей всем, что происходит в городе», как показано на Рисунке 3.

Как видите, определение очень четкое, а инструкции короткие. В следующих примерах мы видим, что нейтральный пример может считаться негативным с точки зрения классических настроений, однако, согласно новому определению, он нейтрален. Автор прямо не говорит, удовлетворены они или нет проблемой, о которой пишут. Обратите внимание, что отрицательные и положительные примеры четко соответствуют новому определению.

Нейтрально: во вторник большое жюри округа Бексар решило не предъявлять обвинение бывшему полицейскому Сан-Антонио, обвиненному в избиении своей тогдашней подруги камнем. возле ее квартиры.

Минус: не круто. Похитители посылок уже в списке непослушных Санты. Этот парень взял сверток с крыльца дома в квартале 9999 на Х-лейн. Если вы его узнали, обратитесь, пожалуйста, к дет. Бланко: 999–999–99999 или напишите ей по адресу

Положительно: Департамент полиции Арлингтона гордится тем, что нанимает многих нынешних и бывших военнослужащих США. Мы благодарны за их службу, и для нас большая честь, что они выбрали работу в нашем отделе.

Оценка эффективности и согласия (или несогласия)

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

  1. самосогласование, которое помогает нам выявлять некачественных аннотаторов. Мы делаем это, вставляя повторяющиеся сообщения каждые K образцов.
  2. Межсогласование, которое является хорошей оценкой объективной сложности задачи. Для мультианнотаторов мы используем Fleischer's Kappa, а для двух аннотаторов мы используем Cohen's Kappa. Для нас значение выше 0,55 считалось хорошей оценкой.
  3. Процент согласия - между всеми аннотаторами. Это еще одна оценка взаимного согласия, для нас значение 0,65 сильно коррелировало с каппа Флейшера и считалось хорошей оценкой взаимного согласия.
  4. Проверка достоверности. Мы вставили образцы, которые были помечены нами внутри, используя тот же процесс большинства, в набор данных. Имейте в виду, что, поскольку мы создали новое определение, мы являемся экспертами, поэтому, если мы измеряем каждый аннотатор по небольшому хорошо маркированному набору данных, мы можем увидеть, согласны ли аннотаторы с нами.

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

Выборка

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

  1. Какие данные отбирать.
  2. Какое распределение выборки следовать и когда?
  3. Какой алгоритм выборки использовать.
  4. Сколько пробовать?

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

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

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

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

Создание набора данных

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

1. Использование ключевых слов - определяется кем-то, кто разбирается в предметной области.

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

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

Пришло время определиться с количеством образцов, необходимых для нашего проекта. Очевидно, что чем больше у нас есть, тем лучше наша модель. Я нашел хороший калькулятор, как показано в таблице 1, изначально созданный для опросов, который помог мне оценить количество выборок, необходимых для известного размера популяции и уровня достоверности, который вы хотите сохранить. В нашем случае казалось, что для предполагаемого размера популяции в 100 000 уникальных писателей с уровнем достоверности 95% для начала достаточно около 10 000 образцов. Количество образцов напрямую влияет на наш бюджет и выбор алгоритма. Допустим, у нас есть 5 аннотаторов, и нам нужно 10 000 выборок от каждого, нам нужно в общей сложности 50 000 аннотированных образцов. В некоторых сервисах, как мы увидим позже, это стоит больших денег. К счастью, моя компания была готова вложить деньги, время и усилия в создание нескольких из этих наборов данных. Мы понимаем, что высококачественные аннотированные наборы данных напрямую способствуют созданию более качественных и точных моделей и, в конечном итоге, той ценности, которую мы даем нашим клиентам. Количество образцов также влияет на наш выбор алгоритмов, в нашем случае мы пробовали алгоритмы классического машинного обучения и глубокого обучения. Однако казалось, что наш набор данных все еще невелик для всех алгоритмов глубокого обучения, которые мы пробовали.

Решения для аннотаций

Есть много решений для аннотаций на выбор, некоторые из них дешевле других, некоторые дадут вам законченное решение, а другие просто предоставят вам инфраструктуру или толпу. Однако у каждого есть свои плюсы и минусы. Сначала я перечислю несколько известных, а затем мы перейдем к нескольким примечательным. Вы можете выбрать один из следующих сервисов: 1. Amazon's Mechanical Turk (AMT), 2. Цифра-восьмерка (Crowd Flower) 3. Crowdsource / Workforce / Onespace, 5. Jobboy, 6. Samasource », 7. Аутсорсинг. Дополнительно вы можете выбрать один из следующих инструментов: 1. Lighttag.io 2. Prodigy 3. Brat

Ниже (Таблица 2) представлены мои первоначальные расчеты для 50 000 аннотаций. Я решил сравнить AMT, премиальные и аутсорсинговые компании, поскольку они представляют услуги и инструменты, которые были нам доступны.

Как видите, это еще один хороший пример того, сколько вариантов у нас есть. В общем, AMT - самый дешевый вариант, вы можете использовать калькулятор, чтобы вычислить, сколько это будет вам стоить, но помните, что вас могут не подобрать аннотаторы, если вы заплатите им базовый 1 цент за задачу. . Что касается надежности, многие исследователи говорили мне, что это рулетка, даже если вы заплатите больше. Ничего не гарантируется, потому что работать в AMT может каждый. Стоит отметить, что документация запутана и неясна, и если вы хотите использовать внешний инструмент, вам понадобится инженер по обработке данных, который поможет вам. Наконец, эксперимент полностью управляем, и ваш контроль над процессом зависит от вас.

С другой стороны, услуги премиум-класса управляют почти всем в сотрудничестве с вами. Однако некоторые утверждают, что они слышали аннотации и поддерживают «доверие», обещая более 80% достоверности. Вы предоставляете им описание своей задачи, и они обучают аннотаторов, пока вы не будете удовлетворены результатами.

Лучшее из обоих миров - это, вероятно, аутсорсинг внешней компании по аннотации, у которой есть штатные сотрудники, с которыми вы можете общаться на регулярной основе. У них есть планы увольнения, то есть, если сотрудник заболеет, его место займет кто-то другой. Однако вы должны подписать контракты и взять на себя обязательство нанять их на определенный период, и после того, как вы начнете, вы не сможете делать паузу. Вам также необходимо разработать или предоставить решение для аннотации, если вы хотите получить оптимальные результаты.

Инструменты аннотации:

Я нашел несколько готовых инструментов для аннотации, но наиболее многообещающими были Brat и Prodigy. Brat имеет открытый исходный код и, похоже, редко поддерживается, он в основном подходит для задач, подобных POS или NER. Prodigy, с другой стороны, относительно дешев (390 долларов США) для одного коммерческого пользователя с бесконечным количеством аннотаторов, пожизненной лицензией и работает для Интернета и смартфона. Мы выбрали Prodigy, потому что он был простым в использовании, легко настраиваемым и работал в «заводском» режиме, фокусируясь на единственной сверхскоростной скорости с помощью сочетаний клавиш. Стоит отметить, что Prodigy поддерживает однопользовательское активное обучение, однако, если вы планируете выполнять многопользовательское активное обучение, вам придется синхронизировать между всеми аннотаторами, а эта функция еще не существует. Кроме того, не существует понятия «пользователь», поэтому для поддержки управления группой аннотаторов и сохранения их работы в единой базе данных требуется инженер по данным. В Prodigy также отсутствует мониторинг производительности, и отсутствует документация. Однако на их форумах есть активная поддержка, и это огромный плюс. На рисунке 4 показан интерфейс Prodigy, с ним просто и легко работать, и он позволяет комментатору сосредоточиться на своей задаче с минимальными перерывами, то есть в «фабричном стиле».

Результаты:

В нашем проекте было собрано 14 000 выборок, получивших большинство голосов, что означает, что наши аннотаторы отметили около 75 000 сообщений, что превышает наши ожидания в 10 000 сообщений на человека. На рисунке 5 мы показываем корреляцию между взаимосогласованием и каппой Флейшера, каждая из которых имеет свой собственный порог. Порог помог определить, можно ли доверять ежедневным данным и следует ли включать их в окончательный набор данных.

На рисунке 6 мы видим, что существует логическая корреляция между метрикой «наземная истина» по сравнению с количеством, которое аннотаторы делали ежедневно; мы видим, что чем меньше они делали, тем выше была достоверность достоверности. Мы также можем увидеть среднюю достоверность достоверности данных по команде за все время на рисунке 7. Мы выбрали значение согласия 70%, которое будет учитывать по разным причинам, что достоверность достоверности данных не будет идеальной 100%, что является одной из основных причин. состоит в том, что некоторые посты с изложением правды имели большинство, полагавшееся на один голос, т. е. 2: 3 против 3: 2, и это может быть ошибкой в ​​отношении истины. Однако таков процесс, и поэтому у нас есть пороги.

Используя окончательный набор данных, мы создаем функции, используя различные методы, такие как TF-IDF, LSA, W2V, Deep-Moji и ELMO, и дополняем данные такими методами, как обратный перевод. Мы обучили довольно много алгоритмов классификации, таких как Calibrated SGD, ULMFit, Random Forest, XGboost, LightBoost, Catboost, LSTM, 1DCNN, а также суммировали несколько из них.

Наша модель с наивысшей перекрестной проверкой достигла точности 89% с использованием TF-IDF и калиброванного SGD (SVM) со следующими показателями, как показано в таблице 3.

Анализ данных:

Мы протестировали модель на 245 469 образцах из 22 городов Америки. Негативные настроения снизились на 6%, позитивные настроения снизились на 19%, а нейтральные настроения выросли на 25%, как показано на Рисунке 8. Мы ожидали, что эти цифры изменятся в соответствии с новым определением, мы эффективно убрали негативные и позитивные. классы из несвязанных выборок, таких как «тревожные» сообщения, аварии, дорожное движение, чрезвычайные ситуации и другие, которые теперь относятся к нейтральному классу, если в сообщении не появилось недовольство пользователя.

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

Я хотел бы поблагодарить моих коллег из Zencity, которые были важной и неотъемлемой частью этого проекта: Самуэля Ефройкина (исследования), Полины Скляревски (новое определение и данные), Алона Ниссера (инженерия), Йоава Талми, Эяля Федера. -Леви, Анат Рапопорт, Идо Иври и Гали Коцер. Я также хотел бы поблагодарить нескольких друзей и коллег, с которыми я консультировался до начала проекта, доктора Оргада Келлера, доктора Эяля Шнарча, доктора Хилу Заросим и Нетанел Давидовиц.

Доктор Ори Коэн имеет докторскую степень. в области компьютерных наук с акцентом на машинное обучение. Он возглавляет исследовательскую группу в Zencity.io, пытаясь положительно влиять на жизнь граждан.