SlideShare a Scribd company logo
Многометковая классификация в NLP
Алексей Тишуров
Data Scientist, InData Labs
План
● Общее описание задачи
○ Формализация
○ Источники возникновения
● Особенности подготовки к решению
○ Разведочный анализ
○ Метрики качества классификации и валидация
● Основные подходы
○ Модификация задачи
○ Модификация моделей
○ Базовое решение абстрактной NLP задачи
○ Немного о нейронных сетях
● NLP ориентированное описание конкретного решения
2/33
Какие бывают классификации
● Бинарная - предсказать один из двух классов
● Многоклассовая(Multiclass) - предсказать один из M классов
● Многометковая(Multilabel) - предсказать k (можно 0) из M классов
● Многозадачная(Multioutput) - решить несколько задач на одних признаках
3/33
Где возникают такие задачи, и почему это важно
● Тексты
○ Жанры фильмов1
○ Вопросы stackexchange2
○ Научные статьи3
● Картинки и видео
○ Теги к видео youtube4
○ Интересы по профилю instagram
● Звук
● Биология5
● Медицина6
4/33
1-http://www.imdb.com/interfaces/
2-archive.org/details/stackexchange
3-arxiv.org/help/bulk_data_s3
4-research.google.com/youtube8m/
5-archive.ics.uci.edu/ml/datasets/Yeast
6-mimic.physionet.org/mimicdata/whatsnew/
Перед решением любой задачи
● Провести разведочный анализ
● Разобраться, можно ли свести задачу к более простой
● Выбрать метрики качества работы алгоритма
● Выбрать схему валидации
Каждый из этих пунктов имеет свои особенности в многометковой задаче
5/33
Особенности анализа меток
● N - количество примеров
● M - количество уникальных меток
● Y - множество уникальных комбинаций меток
● Полезные статистики:
○ Кардинальность меток:
○ Плотность меток:
○ Разнообразие меток:
○ Нормализованное разнообразие:
6/33
Особенности анализа меток
● N - количество примеров
● M - количество уникальных меток
● Y - множество уникальных комбинаций меток
● Полезные статистики:
○ Кардинальность меток:
○ Плотность меток:
○ Разнообразие меток:
○ Нормализованное разнообразие:
7/33
Особенности анализа меток
● Есть ли пренебрежимо редкие метки?
● Насколько взаимосвязаны метки?
● Возможно ли объединить некоторые метки в одну?
● Стоит ли решать многоклассовую задачу на
уникальных комбинациях меток? (Label Powersets)
● Можно ли построить иерархию на метках?
8/33
Особенности анализа меток
● Есть ли пренебрежимо редкие метки?
● Насколько взаимосвязаны метки?
● Возможно ли объединить некоторые метки в одну?
● Стоит ли решать многоклассовую задачу на
уникальных комбинациях меток? (Label Powersets)
● Можно ли построить иерархию на метках?
9/33
lift for “training and coaching”
Метрики качества классификации
Набор меток для объекта в виде бинарного вектора
● Специализированные метрики:
○ Hamming loss - нормализованное расстояние Хэмминга
○ Accuracy - доля верно предсказанных комбинаций меток
○ Ranking loss - доля неправильно ранжированных пар (верная, неверная) меток
○ Jaccard index - отношение мощностей множеств пересечения и объединения меток
● Решают проблему абстрактного сравнения алгоритмов
● Не до конца помогают понять, хорошо ли решена ваша задача
10/33
Метрики качества классификации
● Метрики для бинарной классификации:
○ Площади под ROC и Precision-Recall кривыми
○ Precision, recall, f1
○ Микро- или макро- усреднение
11/33
image: https://en.wikipedia.org/wiki/Precision_and_recal...svg
RankingLoss = 1 - AUCmicro
Получаем:
Выбор схемы валидации
● Задача пока не решена в общем случае
● Возможны следующие варианты:
○ Требовать одинакового присутствия каждой метки в фолдах
○ Требовать одинакового присутствия каждой комбинации меток
○ Комбинировать два предыдущих варианта*
12/33*-lpis.csd.auth.gr/publications/sechidis-ecmlpkdd-2011.pdf
Выбор схемы валидации
● Задача пока не решена в общем случае
● Возможны следующие варианты:
○ Требовать одинакового присутствия каждой метки в фолдах
○ Требовать одинакового присутствия каждой комбинации меток
○ Комбинировать два предыдущих варианта*
13/33*-lpis.csd.auth.gr/publications/sechidis-ecmlpkdd-2011.pdf
Выбрали плохо Выбрали лучше
Кросс-валидация
Отложеннаявыборка
Кросс-валидация
Отложеннаявыборка
Возможные варианты решения
● Модификация моделей
○ Деревья и их ансамбли
● Модифицикация задачи
○ Binary Relevance
○ Classifier Chains
○ Label Powersets
● Нейронные сети
○ Fasttext
○ Общий случай
14/33
Деревья и их ансамбли
● Выбираем сплит по среднему улучшению по всем меткам
● В листьях возвращаем несколько меток вместо одной
● Аналогично решается многозадачная регрессия
● Естественным образом работает и в ансамблях деревьев
● Плюсы:
○ Все задачи решаются одной моделью
○ Можно обобщить и на иерархическую классификацию*
● Минусы:
○ Ансамбли деревьев мало применяются во многих сферах возникновения задач
15/33
*-https://link.springer.com/article/10.1007/s10994-008-5077-3
Модификация задачи: Binary Relevance
16/33
image: linkedin.com/pulse/multi-class-classification..
● Давайте решать M задач бинарной классификации
○ По модели на класс
○ Каждая решает, относить ли объект к своему классу
● Плюсы:
○ Быстро и параллельно обучается
○ Любая разумная модель внутри
○ Отличное базовое решение
● Минусы:
○ Игнорирование взаимосвязи между классами
○ Не всегда достигается высокое качество
Модификация задачи: Classifier Chains
● Выбирается случайный порядок меток
● Классификатор обучается отделять свою метку на:
○ Исходных признаках
○ Предсказаниях предыдущей модели в цепочке
● Плюсы
○ Получаем учет взаимодействий между классами
○ Все еще используем линейное число моделей
● Минусы
○ Нельзя учить модели параллельно
○ Нужно делать out-of-fold предсказания внутри
○ Для хорошей производительности нужно тренировать несколько цепей
17/33
Модификация задачи: Classifier Chains
● Выбирается случайный порядок меток
● Классификатор обучается отделять свою метку на:
○ Исходных признаках
○ Предсказаниях предыдущей модели в цепочке
● Плюсы
○ Получаем учет взаимодействий между классами
○ Все еще используем линейное число моделей
● Минусы
○ Нельзя учить модели параллельно
○ Нужно делать out-of-fold предсказания внутри
○ Для хорошей производительности нужно тренировать несколько цепей
18/33
image: scikit-learn.org/stable/auto_examples/multioutput/plot_classifier
производительность на yeast
Модификация задачи: Classifier Chains
● Выбирается случайный порядок меток
● Классификатор обучается отделять свою метку на:
○ Исходных признаках
○ Предсказаниях предыдущей модели в цепочке
● Плюсы
○ Получаем учет взаимодействий между классами
○ Все еще используем линейное число моделей
● Минусы
○ Нельзя учить модели параллельно
○ Нужно делать out-of-fold предсказания внутри
○ Для хорошей производительности нужно тренировать несколько цепей
19/33
другая задача
Модификация задачи: Classifier Chains
● Выбирается случайный порядок меток
● Классификатор обучается отделять свою метку на:
○ Исходных признаках
○ Предсказаниях предыдущей модели в цепочке
● Плюсы
○ Получаем учет взаимодействий между классами
○ Все еще используем линейное число моделей
● Минусы
○ Нельзя учить модели параллельно
○ Нужно делать out-of-fold предсказания внутри
○ Для хорошей производительности нужно тренировать несколько цепей
20/33
другая задача
Базовое решение абстрактной NLP задачи
● Tf-Idf векторизация для построения признаков (TfIdfVectorizer)
○ Короткие шумные тексты: n-граммы символов
○ Длинные тексты: слова(их биграммы) + стандартная предобработка
○ min_df, max_df для регуляризация и уменьшения числа признаков
○ Не забываем удалять атрибут stop_words_
● Binary Relevance как инструмент модификации задачи
● Логистическая регрессия в качестве базовой модели
21/33
Нейронные сети: Fasttext
● Название полностью оправдывает себя
● Требует стандартной предобработки
● Строго говоря, softmax не подходит для многометковой задачи
22/33
image: https://arxiv.org/abs/1607.01759
Нейронные сети: общий случай
● Делаем сети M выходов
● Активация - сигмоид на каждом выходе
● Оптимизируем среднюю (взвешенную?) бинарную кросс-энтропию
● Решаем все M задач одной сетью
● Приятный бонус - почти всегда параметров меньше, чем у Binary
Relevance
23/33
Например
TfIdf+LR+BR RNN
800к весов 200к весов
Настройка порога принятия решения
● Индивидуально для каждой метки
● На независимой выборке
● Возможные варианты:
○ Так, чтобы плотность предсказанных меток совпадала с реальной
○ Так, чтобы доли меток совпадали
○ Так, чтобы хорошо решало вашу задачу
24/33
Слайдик с какими-то выводами
● Внимательно анализируйте метки
● Пытайтесь свести задачу к более простой
● Аккуратно выбирайте способ валидации
● Считайте метрики качества бинарной классификации
● Начинайте с TfIdf + LR + Binary Relevance для базового решения
● Используйте Fasttext, если критично важна производительность
● Обучайте нейронные сети, если критично важно качество
● Индивидуально подбирайте порог принятия решения
25/33
Несколько полезных библиотек
● Проект Meka1
● Scikit-multilearn2
● StarSpace3
- пока без коммерческой лицензии
26/33
1-http://meka.sourceforge.net
2-http://scikit.ml
3-https://github.com/facebookresearch/StarSpace
Категоризация статей
● Датасет: статьи arXiv.org с исходным кодом в LaTeX
● Метки: разделы математики/информатики/физики/астрономии
● Количество документов: ~226 тысяч статей
● Число меток после предобработки: 29
● Размер корпуса:
○ 17.8 гб сырой
○ 6.9 гб предобработанный
27/33
Про word2vec и doc2vec
● Обязательный инструмент в NLP
● Моделирует семантические аналогии
● Часто требует обучения под домен
● Лемматизация + границы предложений для
подготовки текстов
28/33
CBOW
skip-gram
images: https://arxiv.org/abs/1301.3781
vec(hochreiter) - vec(lstm)+ vec(cnn) ≈ vec(lecun)
Некоторые решения
● Tf-Idf + LR + Binary Relevance
○ Только название и автореферат
○ Лемматизация и приведение к нижнему регистру
● 2 вида doc2vec + LR + Binary Relevance
○ Конкатенация 2-х векторов
○ Не совсем real-time: вектора новых статей требуют отдельного обучения
29/33
DBOW
DM
images: https://arxiv.org/abs/1405.4053
Как это выглядит в 2D
● doc2vec - исходные вектора
● t-SNE - понижение размерности
30/33image: Anton Kulesh
Комбинируем разнородные источники признаков
● RNN для чтения заголовка
● RNN для чтения автореферата
● Полносвязная сеть для doc2vec
31/33
?
Сравнение результатов
Модель ROC-AUC F1 Время
LR + TF-IDF (слова) 0.822 0.584 3 мин
LR + TF-IDF (символы) 0.861 0.632 7 мин
LR + DM 0.935 0.688 0.5 мин (+4ч)
LR + DBOW 0.937 0.69 0.5 мин (+5ч)
LR + DM + DBOW 0.944 0.694 0.5 мин (+9ч)
LSTM без doc2vec 0.973 0.716 3.4 ч (+9ч)
GRU без doc2vec 0.975 0.718 2.9 ч (+9ч)
LSTM + doc2vec 0.977 0.737 3.6 ч (+13ч)
GRU + doc2vec 0.982 0.741 3.1 ч (+13ч)
lstm vs gru: http://proceedings.mlr.press/v37/jozefowicz15.pdf
Благодарю за внимание!
Алексей Тишуров
Data Scientist
a_tishurov@indatalabs.com
alexeitishurov@gmail.com
33/33

More Related Content

PPTX
Наследование и полиморфизм
PPT
Тестирование весна 2014 смешанное занятие 2
PPT
Java. Конструкторы класса и инициализация
PPTX
5 уроĸов из провальных АБ тестов / Сергей Гилев (Playkot)
PDF
Интерпретация моделей машинного обучения
PDF
C++ Базовый. Занятие 16.
PPT
Java. Вложенные классы и интерфейсы.
Наследование и полиморфизм
Тестирование весна 2014 смешанное занятие 2
Java. Конструкторы класса и инициализация
5 уроĸов из провальных АБ тестов / Сергей Гилев (Playkot)
Интерпретация моделей машинного обучения
C++ Базовый. Занятие 16.
Java. Вложенные классы и интерфейсы.

What's hot (12)

PPTX
Математика для тестировщиков
PDF
Система критериев оценки качества тестовых заданий
PDF
Работа с унаследованным кодом. Есть ли жизнь после коммита.
PPTX
Tests bogachkov last_version_120412
PPTX
ооп презентация
PPTX
Attacks against machine learning algorithms
PDF
Омар Ганиев (Россия). Обзор атак на модели машинного обучения
PPTX
Федор Романенко - "Ранжирование: от строчки кода до Матрикснета"
PPTX
Составные части объектного подхода
Математика для тестировщиков
Система критериев оценки качества тестовых заданий
Работа с унаследованным кодом. Есть ли жизнь после коммита.
Tests bogachkov last_version_120412
ооп презентация
Attacks against machine learning algorithms
Омар Ганиев (Россия). Обзор атак на модели машинного обучения
Федор Романенко - "Ранжирование: от строчки кода до Матрикснета"
Составные части объектного подхода
Ad

Similar to Multilabel classification in nlp (20)

PDF
Сергей Терехов — Активное обучение при малой доле примеров с известными ответами
PDF
Введение в машинное обучение
PDF
Интерпретация моделей машинного обучения
PDF
Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках сереб...
PDF
машинное обучение и анализ данных
PPTX
Технологический стек классификации текстов на естественных языках
PPTX
Классификация текстовых документов на естественных языках
PDF
Вебинар: Введение в машинное обучение
PDF
Когда тексты —не только слова
PPT
Разрешение лексической неоднозначности
PDF
Павел Бахтин. ВШЭ. Использование state-of-the-art эмбеддинговых моделей для а...
PPT
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...
PDF
Predicitive Analytics в InterSystems Caché
PDF
Hub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное обучение
PDF
Введение в машинное обучение
PDF
Crowdsourcing с механической поддержкой
PPT
Деревья решений
PPTX
когда тексты не только слова
PDF
Online learning - Apache Spark alternatives: Vowpal Wabbit. (18.06.2015)
PDF
Онлайн-классификация пользователей в быстрой Крипте. Родион Желудков
Сергей Терехов — Активное обучение при малой доле примеров с известными ответами
Введение в машинное обучение
Интерпретация моделей машинного обучения
Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках сереб...
машинное обучение и анализ данных
Технологический стек классификации текстов на естественных языках
Классификация текстовых документов на естественных языках
Вебинар: Введение в машинное обучение
Когда тексты —не только слова
Разрешение лексической неоднозначности
Павел Бахтин. ВШЭ. Использование state-of-the-art эмбеддинговых моделей для а...
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...
Predicitive Analytics в InterSystems Caché
Hub AI&BigData meetup / Дмитрий Сподарец: Введение в машинное обучение
Введение в машинное обучение
Crowdsourcing с механической поддержкой
Деревья решений
когда тексты не только слова
Online learning - Apache Spark alternatives: Vowpal Wabbit. (18.06.2015)
Онлайн-классификация пользователей в быстрой Крипте. Родион Желудков
Ad

Multilabel classification in nlp

  • 1. Многометковая классификация в NLP Алексей Тишуров Data Scientist, InData Labs
  • 2. План ● Общее описание задачи ○ Формализация ○ Источники возникновения ● Особенности подготовки к решению ○ Разведочный анализ ○ Метрики качества классификации и валидация ● Основные подходы ○ Модификация задачи ○ Модификация моделей ○ Базовое решение абстрактной NLP задачи ○ Немного о нейронных сетях ● NLP ориентированное описание конкретного решения 2/33
  • 3. Какие бывают классификации ● Бинарная - предсказать один из двух классов ● Многоклассовая(Multiclass) - предсказать один из M классов ● Многометковая(Multilabel) - предсказать k (можно 0) из M классов ● Многозадачная(Multioutput) - решить несколько задач на одних признаках 3/33
  • 4. Где возникают такие задачи, и почему это важно ● Тексты ○ Жанры фильмов1 ○ Вопросы stackexchange2 ○ Научные статьи3 ● Картинки и видео ○ Теги к видео youtube4 ○ Интересы по профилю instagram ● Звук ● Биология5 ● Медицина6 4/33 1-http://www.imdb.com/interfaces/ 2-archive.org/details/stackexchange 3-arxiv.org/help/bulk_data_s3 4-research.google.com/youtube8m/ 5-archive.ics.uci.edu/ml/datasets/Yeast 6-mimic.physionet.org/mimicdata/whatsnew/
  • 5. Перед решением любой задачи ● Провести разведочный анализ ● Разобраться, можно ли свести задачу к более простой ● Выбрать метрики качества работы алгоритма ● Выбрать схему валидации Каждый из этих пунктов имеет свои особенности в многометковой задаче 5/33
  • 6. Особенности анализа меток ● N - количество примеров ● M - количество уникальных меток ● Y - множество уникальных комбинаций меток ● Полезные статистики: ○ Кардинальность меток: ○ Плотность меток: ○ Разнообразие меток: ○ Нормализованное разнообразие: 6/33
  • 7. Особенности анализа меток ● N - количество примеров ● M - количество уникальных меток ● Y - множество уникальных комбинаций меток ● Полезные статистики: ○ Кардинальность меток: ○ Плотность меток: ○ Разнообразие меток: ○ Нормализованное разнообразие: 7/33
  • 8. Особенности анализа меток ● Есть ли пренебрежимо редкие метки? ● Насколько взаимосвязаны метки? ● Возможно ли объединить некоторые метки в одну? ● Стоит ли решать многоклассовую задачу на уникальных комбинациях меток? (Label Powersets) ● Можно ли построить иерархию на метках? 8/33
  • 9. Особенности анализа меток ● Есть ли пренебрежимо редкие метки? ● Насколько взаимосвязаны метки? ● Возможно ли объединить некоторые метки в одну? ● Стоит ли решать многоклассовую задачу на уникальных комбинациях меток? (Label Powersets) ● Можно ли построить иерархию на метках? 9/33 lift for “training and coaching”
  • 10. Метрики качества классификации Набор меток для объекта в виде бинарного вектора ● Специализированные метрики: ○ Hamming loss - нормализованное расстояние Хэмминга ○ Accuracy - доля верно предсказанных комбинаций меток ○ Ranking loss - доля неправильно ранжированных пар (верная, неверная) меток ○ Jaccard index - отношение мощностей множеств пересечения и объединения меток ● Решают проблему абстрактного сравнения алгоритмов ● Не до конца помогают понять, хорошо ли решена ваша задача 10/33
  • 11. Метрики качества классификации ● Метрики для бинарной классификации: ○ Площади под ROC и Precision-Recall кривыми ○ Precision, recall, f1 ○ Микро- или макро- усреднение 11/33 image: https://en.wikipedia.org/wiki/Precision_and_recal...svg RankingLoss = 1 - AUCmicro Получаем:
  • 12. Выбор схемы валидации ● Задача пока не решена в общем случае ● Возможны следующие варианты: ○ Требовать одинакового присутствия каждой метки в фолдах ○ Требовать одинакового присутствия каждой комбинации меток ○ Комбинировать два предыдущих варианта* 12/33*-lpis.csd.auth.gr/publications/sechidis-ecmlpkdd-2011.pdf
  • 13. Выбор схемы валидации ● Задача пока не решена в общем случае ● Возможны следующие варианты: ○ Требовать одинакового присутствия каждой метки в фолдах ○ Требовать одинакового присутствия каждой комбинации меток ○ Комбинировать два предыдущих варианта* 13/33*-lpis.csd.auth.gr/publications/sechidis-ecmlpkdd-2011.pdf Выбрали плохо Выбрали лучше Кросс-валидация Отложеннаявыборка Кросс-валидация Отложеннаявыборка
  • 14. Возможные варианты решения ● Модификация моделей ○ Деревья и их ансамбли ● Модифицикация задачи ○ Binary Relevance ○ Classifier Chains ○ Label Powersets ● Нейронные сети ○ Fasttext ○ Общий случай 14/33
  • 15. Деревья и их ансамбли ● Выбираем сплит по среднему улучшению по всем меткам ● В листьях возвращаем несколько меток вместо одной ● Аналогично решается многозадачная регрессия ● Естественным образом работает и в ансамблях деревьев ● Плюсы: ○ Все задачи решаются одной моделью ○ Можно обобщить и на иерархическую классификацию* ● Минусы: ○ Ансамбли деревьев мало применяются во многих сферах возникновения задач 15/33 *-https://link.springer.com/article/10.1007/s10994-008-5077-3
  • 16. Модификация задачи: Binary Relevance 16/33 image: linkedin.com/pulse/multi-class-classification.. ● Давайте решать M задач бинарной классификации ○ По модели на класс ○ Каждая решает, относить ли объект к своему классу ● Плюсы: ○ Быстро и параллельно обучается ○ Любая разумная модель внутри ○ Отличное базовое решение ● Минусы: ○ Игнорирование взаимосвязи между классами ○ Не всегда достигается высокое качество
  • 17. Модификация задачи: Classifier Chains ● Выбирается случайный порядок меток ● Классификатор обучается отделять свою метку на: ○ Исходных признаках ○ Предсказаниях предыдущей модели в цепочке ● Плюсы ○ Получаем учет взаимодействий между классами ○ Все еще используем линейное число моделей ● Минусы ○ Нельзя учить модели параллельно ○ Нужно делать out-of-fold предсказания внутри ○ Для хорошей производительности нужно тренировать несколько цепей 17/33
  • 18. Модификация задачи: Classifier Chains ● Выбирается случайный порядок меток ● Классификатор обучается отделять свою метку на: ○ Исходных признаках ○ Предсказаниях предыдущей модели в цепочке ● Плюсы ○ Получаем учет взаимодействий между классами ○ Все еще используем линейное число моделей ● Минусы ○ Нельзя учить модели параллельно ○ Нужно делать out-of-fold предсказания внутри ○ Для хорошей производительности нужно тренировать несколько цепей 18/33 image: scikit-learn.org/stable/auto_examples/multioutput/plot_classifier производительность на yeast
  • 19. Модификация задачи: Classifier Chains ● Выбирается случайный порядок меток ● Классификатор обучается отделять свою метку на: ○ Исходных признаках ○ Предсказаниях предыдущей модели в цепочке ● Плюсы ○ Получаем учет взаимодействий между классами ○ Все еще используем линейное число моделей ● Минусы ○ Нельзя учить модели параллельно ○ Нужно делать out-of-fold предсказания внутри ○ Для хорошей производительности нужно тренировать несколько цепей 19/33 другая задача
  • 20. Модификация задачи: Classifier Chains ● Выбирается случайный порядок меток ● Классификатор обучается отделять свою метку на: ○ Исходных признаках ○ Предсказаниях предыдущей модели в цепочке ● Плюсы ○ Получаем учет взаимодействий между классами ○ Все еще используем линейное число моделей ● Минусы ○ Нельзя учить модели параллельно ○ Нужно делать out-of-fold предсказания внутри ○ Для хорошей производительности нужно тренировать несколько цепей 20/33 другая задача
  • 21. Базовое решение абстрактной NLP задачи ● Tf-Idf векторизация для построения признаков (TfIdfVectorizer) ○ Короткие шумные тексты: n-граммы символов ○ Длинные тексты: слова(их биграммы) + стандартная предобработка ○ min_df, max_df для регуляризация и уменьшения числа признаков ○ Не забываем удалять атрибут stop_words_ ● Binary Relevance как инструмент модификации задачи ● Логистическая регрессия в качестве базовой модели 21/33
  • 22. Нейронные сети: Fasttext ● Название полностью оправдывает себя ● Требует стандартной предобработки ● Строго говоря, softmax не подходит для многометковой задачи 22/33 image: https://arxiv.org/abs/1607.01759
  • 23. Нейронные сети: общий случай ● Делаем сети M выходов ● Активация - сигмоид на каждом выходе ● Оптимизируем среднюю (взвешенную?) бинарную кросс-энтропию ● Решаем все M задач одной сетью ● Приятный бонус - почти всегда параметров меньше, чем у Binary Relevance 23/33 Например TfIdf+LR+BR RNN 800к весов 200к весов
  • 24. Настройка порога принятия решения ● Индивидуально для каждой метки ● На независимой выборке ● Возможные варианты: ○ Так, чтобы плотность предсказанных меток совпадала с реальной ○ Так, чтобы доли меток совпадали ○ Так, чтобы хорошо решало вашу задачу 24/33
  • 25. Слайдик с какими-то выводами ● Внимательно анализируйте метки ● Пытайтесь свести задачу к более простой ● Аккуратно выбирайте способ валидации ● Считайте метрики качества бинарной классификации ● Начинайте с TfIdf + LR + Binary Relevance для базового решения ● Используйте Fasttext, если критично важна производительность ● Обучайте нейронные сети, если критично важно качество ● Индивидуально подбирайте порог принятия решения 25/33
  • 26. Несколько полезных библиотек ● Проект Meka1 ● Scikit-multilearn2 ● StarSpace3 - пока без коммерческой лицензии 26/33 1-http://meka.sourceforge.net 2-http://scikit.ml 3-https://github.com/facebookresearch/StarSpace
  • 27. Категоризация статей ● Датасет: статьи arXiv.org с исходным кодом в LaTeX ● Метки: разделы математики/информатики/физики/астрономии ● Количество документов: ~226 тысяч статей ● Число меток после предобработки: 29 ● Размер корпуса: ○ 17.8 гб сырой ○ 6.9 гб предобработанный 27/33
  • 28. Про word2vec и doc2vec ● Обязательный инструмент в NLP ● Моделирует семантические аналогии ● Часто требует обучения под домен ● Лемматизация + границы предложений для подготовки текстов 28/33 CBOW skip-gram images: https://arxiv.org/abs/1301.3781 vec(hochreiter) - vec(lstm)+ vec(cnn) ≈ vec(lecun)
  • 29. Некоторые решения ● Tf-Idf + LR + Binary Relevance ○ Только название и автореферат ○ Лемматизация и приведение к нижнему регистру ● 2 вида doc2vec + LR + Binary Relevance ○ Конкатенация 2-х векторов ○ Не совсем real-time: вектора новых статей требуют отдельного обучения 29/33 DBOW DM images: https://arxiv.org/abs/1405.4053
  • 30. Как это выглядит в 2D ● doc2vec - исходные вектора ● t-SNE - понижение размерности 30/33image: Anton Kulesh
  • 31. Комбинируем разнородные источники признаков ● RNN для чтения заголовка ● RNN для чтения автореферата ● Полносвязная сеть для doc2vec 31/33 ?
  • 32. Сравнение результатов Модель ROC-AUC F1 Время LR + TF-IDF (слова) 0.822 0.584 3 мин LR + TF-IDF (символы) 0.861 0.632 7 мин LR + DM 0.935 0.688 0.5 мин (+4ч) LR + DBOW 0.937 0.69 0.5 мин (+5ч) LR + DM + DBOW 0.944 0.694 0.5 мин (+9ч) LSTM без doc2vec 0.973 0.716 3.4 ч (+9ч) GRU без doc2vec 0.975 0.718 2.9 ч (+9ч) LSTM + doc2vec 0.977 0.737 3.6 ч (+13ч) GRU + doc2vec 0.982 0.741 3.1 ч (+13ч) lstm vs gru: http://proceedings.mlr.press/v37/jozefowicz15.pdf
  • 33. Благодарю за внимание! Алексей Тишуров Data Scientist a_tishurov@indatalabs.com alexeitishurov@gmail.com 33/33