Актуальное состояние проекта:
В настоящий момент удалось набрать score 0.61930 на лидерборде в kaggle (2 место)

Протестированные модели:
  • ru-en-RoSBERTa (В настоящий момент показала лучший результат)
  • xlm-roberta-base
  • rugpt3small_based_on_gpt2
  • ruRoberta-large
  • ru-t5-large
Emotion Classification
Big
Ducks
v.3
Проект на github
Классификация
Задача решается как Multilabel классификация. Лосс-функция — BCEWithLogitsLoss, которая хорошо подходит для Multilabel задач



Предобученная языковая модель (Transformer Encoder):
В качестве основы берем предобученную модель ru-en-RoSBERTa. Модель преобразует входной текст в эмбединг Используем стандартная токенизация и механизм внимания

Big
Ducks
v.3
Используемые методы
Предобработка данных
  • На данном этапе предобработка данных включает базовые шаги предобработки
Планируем исследовать влияние очистка данных и исправления ошибок с помощью ai-forever/sage
Предобработка и постобработка
  • Предварительная очистка текста от неалфавитных символов и лишних пробелов
  • Токенизация до фиксированной длины (padding/truncation)
  • Кодирование в one-hot формат
  • Получив предсказания на valid и test — примененяем оптимальный Threshold для улучшения качества
Подбор порога
Мы перебираем серию порогов для максимизации F1, что повышает качество распознавания
Архитектура модели
Проверка влияния
Stratified K Fold Cross Validation:
  • Для повышения стабильности и обобщающей способности модели.
  • Проверили. Не дало положительного результата.
Дальнейшее расширение датасета:
  • За счёт интеграции других релевантных датасетов, например, ru-go-emotions
  • Проверили. Были расширены все классы кроме joy и neutral, удалены дубликаты
(см. extend_dataset.ipynb)
Тестирование различных моделей
из лидерборда на русском языке:
  • Исследование моделей лидерборда HuggingFace на предмет их эффективности для нашей задачи
  • Проверили. Лучшая модель по нашему тестированию ai-forever/ru-en-RoSBERTa
Гипотезы
по улучшению модели
Big
Ducks
v.3
Оптимизация предобработки данных:
  • Внедрение методов очистки данных от шума и ошибок для улучшения качества обучения.
  • Проверили. В итоге наилучшим методом оказалось простая очистка данных(убрать лишние пробелы, символы и т.д)
4
3
2
1
Big
Ducks
v.3
Структура Проекта
Новая структура
  • data/: Исходные данные. Включая расширение датасета train_extended.csv
  • cryptonite.ipynb: Основной код обучения
  • extend_dataset.ipynb: Код расширения датасета
  • outputs/: Результаты работы, включая сабмишны
  • requirements.txt: Зависимости проекта.
  • README.md: Описание проекта.
Установка
  1. Клонируйте репозиторий.
  2. Перейдите в директорию проекта.
  3. Установите зависимости:
  4. pip install -r requirements.txt
Запуск
  1. Убедитесь, что данные находятся в директории data/.
  2. Запустите все ячейки последовательно в cryptonite.ipynb
Результаты
Результаты сабмишна будут сохранены в submission_trainer.csv.
Big
Ducks
v.3
Инструкция
по установке
Команда проекта
  • Самаковский Вячеслав
Тим-лид, расширение датасета
  • Казиев Владислав
Построение классификатора, расширение датасета
  • Гришин Егор
Построение классификатора, расширение датасета
  • Алексеев Арсалан
Расширение датасета, визуализация результатов
Big
Ducks
v.3
Благодарим
за внимание!