14
Классификация текстов: в поисках серебряной пули Юрий Макаров, Data Scientist, E-Contenta

Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Embed Size (px)

Citation preview

Page 1: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Классификация текстов: в поисках серебряной пули

Юрий Макаров, Data Scientist, E-Contenta

Page 2: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Коротко о задаче, и зачем оно нужно

С точки зрения бизнеса:1. Позволяет сегментировать интернет2. Помогает вытаскивать мета-информацию для более точных

персональных рекомендаций

С технической точки зрения:1. Задача обучения с учителем2. Увлекательный препроцессинг данных 3. Изучается, актуальна, есть state-of-the-art методы4. Высокие требования к нагрузкам

Page 3: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

На каких данных нам бы поучиться?

Проблемы:- Сложно добавлять новые темы- Сложно увеличивать количество обучающих

примеров- Время и финансы

Асессоры?

Page 4: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

На каких данных мы учимся?

Плюсы:- Не требуются асессоры- Легко добавлять новые темы- Можно увеличивать количество

обучающих примеров

Минусы:- Верим в правильность и

корректность поисковых запросов- Доверяем алгоритмам ранжирования

Поисковая выдача :)

Page 5: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Как измерить качество?

- Меткость (accuracy) по всем классам

- Меткость, точность (precision), полнота (recall) по каждому классу

- Что-то похитрее, если у классов есть взаимосвязь: метрика ближайшего общего предка (Least Common Ancestor Metrics)

https://arxiv.org/pdf/1306.6802v2.pdf

Page 6: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Общая схема работы модели

Page 7: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Проблемы обработки текста

- Очень много шума- Аббревиатуры- Опечатки- Сложность разбиения на предложения- Токенизация- Стоп-слова- ...

Page 8: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Основные способы векторизации текста

- Модель мешка слов (bag-of-words) - порядок слов не имеет значение

Предложение: Мама мыла раму.Мешок слов: Мама - 1 раму - 1 мыла - 1

- Фреймворк Word2Vec (word2vec paper)

Пример:король - королева = мужчина -

женщина

Page 9: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Данные готовы, время экспериментов!Модель LCA metrics

TF-IDF clusters for each node 0.15

Multinomial Naive Bayes (TF-IDF) 0.49

Multinomial Naive Bayes (binary features) 0.53

SVM (poly kernel, C=0.001, TF-IDF) 0.55

Logistic Regression (Ridge, C=1.0, TF-IDF) 0.41

DNN (2 layers, dropout, TF-IDF inputs) 0.62

LSTM (dropout, TF-IDF, 20 epoch) 0.66

LSTM (dropout, w2v, 20 epoch) 0.71

Page 10: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Что придумали мы?Идея коротко: обучили случайный лес (random forest) на

каждый класс (стратегия One-vs-All) с необычной обработкой признаков

+

Page 11: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Outperform it!Модель LCA metrics

TF-IDF clusters for each node 0.15

Multinomial Naive Bayes (TF-IDF) 0.49

Multinomial Naive Bayes (binary features) 0.53

SVM (poly kernel, C=0.001, TF-IDF) 0.55

Logistic Regression (Ridge, C=1.0, TF-IDF) 0.41

DNN (2 layers, dropout, TF-IDF inputs) 0.62

LSTM (dropout, TF-IDF, 20 epoch) 0.66

LSTM (dropout, w2v, 20 epoch) 0.71

Random Forest + great features 0.89

Page 12: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Важные идеи и итоги

- Экспериментируйте: идея из смежной области может сработать хорошо

- Garbage in - garbage out. - Ищите компромисс между временем и качеством

(http://www.aclweb.org/anthology/P12-2018)- Стоит заметить, что на “академических” датасетах

нейросети всех победили

Page 13: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Полезные ссылки- https://papers.nips.cc/paper/5782-character-level-convolutional-networks-for-text-classif

ication.pdf - классификация текстов с помощью CNN на символьном уровне - https://arxiv.org/pdf/1511.01432v1.pdf - semi-supervised learning для классификации

текстов- http://ling.go.mail.ru/static/models/ruscorpora_russe.model.bin.gz - word2vec,

обученный на национально корпусе русского языка- https://cs224d.stanford.edu/reports/BergerMark.pdf - про важность предварительного

обучения embedding слоя для нейросетей- https://arxiv.org/pdf/1506.00019v4.pdf - большая и содержательная статья про RNN - http://www.aclweb.org/anthology/P12-2018 - комбинация наивного Байеса и SVM

дает результат на несколько процентов хуже нейросетей на большинстве датасетов

- https://arxiv.org/pdf/1408.5882v2.pdf - CNN для классификации текстов на уровне слов, а не символов

- https://research.fb.com/wp-content/uploads/2016/11/bag_of_tricks_for_efficient_text_classification.pdf - FastText by facebook.

Page 14: Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках серебряной пули

Юрий МакаровData Scientist

(E-Contenta, SPbSEU)[email protected]

https://www.linkedin.com/in/lvoursl/