Skip to content

deep-nlp-spring-2020/kaggle-jigsaw-toxic

Repository files navigation

kaggle-jigsaw-toxic

Итоги участия в соревновании

Наше финальное место место в jigsaw:
Current place

Команда For the Horde, 132 место, бронза (https://www.kaggle.com/c/jigsaw-multilingual-toxic-comment-classification/leaderboard)

Проделанная работа

QtRoS

Если кратко, то мой вклад заключается в применении модели USE (https://tfhub.dev/google/universal-sentence-encoder-multilingual-large/3).
Модель USE позволяет трансформировать небольшой текст в вектор размерностью 512. Доступна так же мультиязыковая модель, которая училась на 16 языках. Я предположил, что можно воспользоваться моделью (в базовой версии, без дообучения) для трансформирования всех доступных текстов (use_baseline.py), а поверх полученных эмбеддингов обучить классификатор на основе NN use_pytorch.py. Даже однослойная сеть (по сути - линейная регрессия) уже давала порядка 0.88 на валидации, что является отличным результатом для одной модели. Такой подход позволил эффективно обучать решение на домашней машине, без использования Kaggle или Collab. В следующей версии классификатор стал многослойным, а к данным добавились дополнительные примеры из расширенного датасета (use_extra.py). В итоге удалось добиться порядка 0.901 на валидации. Данная модель была смешана с популярным кернелом, и это послужило отправной точкой для выхода в топ 10%.

evilden

Мой вклад заключается в написании бейзлайна на Bert multilingual на pytorch(bert_baseline.ipynb). Был проведен ряд экспериментов для поиска лучших гипермараметров, а также конфигураций модели. Совместно с @mtalimanchuk был проведен поиск наиболее подходящих для данного соревнования дополнительных датасетов, а также анализ датасетов на корректность оценок токсичности. В результате этого был создан скрипт(datasets_merge.ipynb) для создания объединенного датасета из двух стандартных, с фильтрацией по оценке токсичности. Также, совместно с @mtalimanchuk был произведен выбор наиболее успешных моделей, а также подбор коэффициентов для блендинга, в результате которого и были получены финальные сабмишны(submissions/submission_max.csv один из них).

mtalimanchuk

Большая часть моего вклада - модель, использующая XLMRoberta. После подбора конфигурации и гиперпараметров мне удалось достичь ~0,9 ROC AUC после первой эпохи на валидационном сете, несмотря на простую архитектуру: XLMRoberta large + linear. Также были проведены эксперименты на дополнительных датасетах, смердженных с @evilden. Помимо этого, я и @evilden портировали решение на TPU с помощью Pytorch XLA, однако, столкнувшись с проблемой нехватки памяти и "сырой" поддержки XLA kaggle-ноутбуками, решили впоследствии обучать модели на GPU. Последней частью работы стал блендинг результатов самых эффективных моделей.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published