Введение

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

Здесь есть одна оговорка - выиграть хакатон по науке о данных действительно сложно. Подумайте только о количестве препятствий на вашем пути:

  • Совершенно новая постановка проблемы, над которой мы раньше не работали
  • Множество ведущих специалистов по обработке данных соревнуются за место в таблице лидеров
  • Хруст времени! Мы должны понять формулировку проблемы, собрать структуру, очистить данные, изучить их и построить модель за несколько часов.
  • А потом повторите процесс!

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

Итак, мы рады представить вам 3 наиболее успешных подхода с хакатона по анализу настроений Innoplexus! Вы будете потрясены тем, как эти три ведущих специалиста по данным продумали свои решения и создали свою уникальную структуру.

Из этих подходов можно многому научиться. Поверьте, найдите время, чтобы пройти по этапам и понять, откуда они взялись. А потом подумайте, если бы вы поступили иначе. А потом - вперед и сами примите участие в этих хакатонах на нашей платформе DataHack!

Итак, давайте начнем, ладно?

О хакатоне по анализу настроений Innoplexus

Проведение хакатонов с нашим партнером Innoplexus - это всегда увлекательная перспектива. Каждый раз они придумывают постановки задач, основанные на Обработке естественного языка (NLP), чрезвычайно популярной сейчас области. Мы стали свидетелями огромного развития НЛП благодаря моделям трансферного обучения, таким как BERT, XLNet, GPT-2 и т. Д.

Более того, анализ настроений - один из самых распространенных проектов НЛП, над которыми обычно работают специалисты по данным. Этот хакатон Innolpexus представлял собой пятидневный конкурс, в котором приняли участие более 3200 специалистов по обработке данных со всего мира, которые боролись за возможности трудоустройства и захватывающие призы, предлагаемые Innoplexus.

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

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

Постановка проблемы для хакатона по анализу настроений Innoplexus

Существует множество компонентов, которые влияют на формирование повествования о бренде. Он не просто построен и контролируется компанией, владеющей брендом. Подумайте о любом крупном бренде, с которым вы знакомы, и вы сразу поймете, о чем я говорю.

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

Это актуально для многих отраслей, включая фармацевтику и их лекарства.

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

В общем, настроения можно разделить на 3 основных группы: Положительные, отрицательные и нейтральные настроения.

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

Учитывая текст и название препарата, задача состояла в том, чтобы предсказать тональность текстов, содержащихся в тестовом наборе данных. Ниже приведен пример текста из набора данных:

Пример:

Стелара все еще новичок в лечении Крона. Вот почему вы можете не получить много ответов. Я провел небольшое исследование, но большую часть ответов «пора работать» я получил от комиссий по псориазу. При псориазе для достижения сильного терапевтического уровня требуется около 4–12 недель. Хорошая новость в том, что Стелара, похоже, получает восторженные отзывы от пациентов Крона. Кажется, это лучший препарат со времен Remicade. Я надеюсь, что вы добьетесь успеха. Моей дочери 19 февраля был поставлен диагноз (на момент постановки диагноза - 13 лет) - болезнь Крона терминального иллиума. Использовал преднизон и пентасу. Началась Имуран (02.09), абсцесс брюшной полости (12.08). 2 см стриктуры. Начат Remicade в феврале 2014 года вместе со 100mgs. Имурана.

Приведенный выше текст является положительным для Stelara и отрицательным для Remicade. Теперь, когда у нас есть твердое представление о том, в чем заключалась проблема, давайте перейдем к победным подходам!

Победители хакатона по анализу настроений Innoplexus

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

Вот окончательные рейтинги всех участников в Таблице лидеров.

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

Ранг 3: Мохсин Хасан Хан (инженер ML @HealthifyMe)

Вот чем поделился с нами Мохсин:

Подход

«Моим окончательным решением является сочетание запусков BERT и XLNet».

  • Мое первое впечатление от данных предполагало, что было много неправильных ярлыков с точки зрения моего восприятия негативных и позитивных настроений. Итак, я почувствовал, что будет действительно сложно создать эти функции вручную. Я решил, что было бы лучше придерживаться современных моделей НЛП, чтобы учиться на зашумленных данных.
  • Я начал с простой модели TF-IDF и логистической регрессии, которая дала мне оценку 0,5 при перекрестной проверке (CV). Посмотрев на текстовые данные, я понял, что было много строк, в которых было много строк, не связанных с лекарством.
  • Поэтому я решил использовать только предложения, в которых есть название лекарства. TF-IDF плюс логистическая регрессия с предложениями, содержащими только названия лекарств, дали мне CV-оценку 0,54
  • На этом этапе я решил использовать BERT. Без какой-либо тонкой настройки я получил только 0,45 балла по CV. Но как только я позволил BERT точно настроить данные обучения, он дал оценку валидации 0,60 и оценку таблицы лидеров 0,59. Затем я добавил предложения, которые встречаются до и после приговора к наркотикам - это немного повысило оценку CV. Затем я использовал BERT-large и настроил его, что дало мне оценку CV 0,65 и рейтинг таблицы лидеров 0,61. Точно так же я настроил базу XLNet, которая дала оценку CV 0,64 и таблицу лидеров 0,58. Мое последнее решение - это сочетание запусков BERT и XLNet
  • Примечание. 5-кратное стратифицированное K-сгибание, поскольку распределение классов было несбалансированным

2 место: Харини Венгала (статистический аналитик @WalmartLabs India)

Вот чем поделился с нами Харини:

Подход

«Моя последняя модель представляла собой ансамбль из 3 BERT и 1 AEN».

  • Мой первый базовый подход заключался в использовании векторизатора счетчика. В результате я получил рейтинг в общедоступной таблице лидеров 0,42. Я удалил цифры, смайлы, URL-адреса, знаки препинания и преобразовал текст в нижний регистр.
  • Я попробовал BERT и настроил его для данного набора данных. Затем я удалил стоп-слова из текста, поскольку BERT требует больше памяти, если я запускаю его на всем отрывке. Я принял длину последовательности как 150, но понял, что большая часть важной информации при таком подходе игнорируется. Я не превышал 0,50 балла в общедоступной таблице лидеров.
  • Итак, что еще я мог попробовать? Я взял только те предложения, в которых присутствовал данный препарат, и снова использовал BERT, чтобы классифицировать сантименты. Это дало мне оценку 0,60 в общедоступной таблице лидеров. Я также внедрил Attentional Encoder Network (AEN) для классификации целевых настроений, что дало оценку 0,56.
  • Моя последняя модель представляла собой ансамбль из 3 BERT и 1 AEN. Я использовал функцию потерь CrossEntropyLoss с весами классов = 1 / количество наблюдений в каждом соответствующем классе.
  • Мой главный вывод - попробуйте разные вещи и проверьте, что работает в соответствии с данными. Уделите время перечислению того, что вы можете попробовать во время хакатона.

Ранг 1: Мелвин Бабу (Data Scientist @nference)

Вот чем поделился с нами Мелвин:

Подход

«Я довольно рано заметил, что увеличение максимальной длины последовательности значительно увеличивает результат. Это наблюдение более или менее продиктовало мой подход. Я использовал базовую модель XLNet без каких-либо дополнительных функций ».

  • Я перевел все предложения в нижний регистр и замаскировал соответствующие наркотики в предложениях. Затем я начал брать первые 1380 токенов после токенизации фрагментов предложения.
  • Я решил заполнить ОЗУ графического процессора максимально возможной длиной последовательности и воздержался от использования дополнительных функций. Я попытался добавить вариации к данным, но допустил ошибки реализации и не хватило времени.
  • В окончательной модели я использовал 6 начальных значений для усреднения прогнозов базовой модели XLNet. Время не позволяло мне настраивать другие гиперпараметры.
  • Очень удивлен, что в соревновании, где глубокое обучение могло быть лучшим решением, я мог конкурировать с машиной с оперативной памятью всего 8 ГБ с графическим процессором
  • Выявление различий в распределении поездов и тестов может иметь решающее значение. Большинство вещей такие же, как и на других хакатонах.

Конечные заметки

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

Я призываю вас перейти на платформу DataHack СЕГОДНЯ и принять участие в текущих и предстоящих хакатонах. Это будет бесценный опыт обучения!

Первоначально опубликовано на https://www.analyticsvidhya.com 16 августа 2019 г.