Доклад посвящен современным средствам обработки текстов на основе машинного обучения, применяемым для некоторых задач поиска в проектах Rambler&Co (портал, ЖЖ). Докладчик делится опытом разработки решений на основе векторного представления word2vec и нейронных сетей, обучаемых на реальных данных. Будут рассмотрены примеры использования библиотек fastText, Keras и Tensorflow.
Подписывайтесь на мой Telegram-канал: http://t.me/ai_review
3. О СЕБЕ
• 2009-2014 – аспирантура Казанского
федерального университета
• 2012-2013 – научная стажировка в группе
Е. Агиштейна (Университет Эмори, США)
• 2014 – основание Textocat
• 2016 – team lead в Quest.ai
• 2016 – защита кандидатской диссертации
• 2016 – аналитик данных Rambler&Co
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
5. СОДЕРЖАНИЕ
Векторное представление текста (word2vec)
Нейросетевые архитектуры для NLP
Примеры решений задач классификации поисковых запросов и оценивания
популярности постов в LiveJournal
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
7. WORD2VEC
Идея – представить слова в виде вещественных
векторов фиксированной размерности
Свойства векторов (embeddings):
• Небольшая размерность
• Каждая размерность – некоторая характеристика
• Похожие характеристики имеют близкие значения => обмен информации
• Слова с близкими векторами часто появляются в схожих контекстах
• Используются как входы для нейросетей в NLP (pre-training)
• Легко визуализировать (например, c PCA или t-SNE)
«
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
8. МЕТОДЫ ОБУЧЕНИЯ WORD2VEC
• Google Word2Vec (Mikolov et al., 2013)
- Самый популярный
- Эффективная реализация на C++
• Glove (Pennington et al., 2014)
- Для академических исследований
• Facebook’s fastText (Bojanowski et al. 2016)
- Особенно подходит для русского языка
- Реализация на C++
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
9. АЛГОРИТМ FASTTEXT
Аналогично word2vec (Mikolov et al, 2013):
• Максимизация правдоподобия словарного контекста
• Вероятность слова из контекста = softmax:
• На практике - бинарная классификация и NCE
Функция близости слов:
zg – векторы n-грамм в слове, включая само слово;
vc – вектор слова из контекста
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
10. FASTTEXT WORD2VEC НА ЖЖ
• > 50 млн. самых популярных постов ЖЖ за
последние 2 года
• Размерность векторов = 300
• Предобработка – очистка от разметки,
сегментирование на слова и фильтрация редких
слов
• Около 4 дней на машине 16 x 2.4 Hz CPU, 64Gb RAM
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
11. ПРИМЕРЫ ВЕКТОРОВ ИЗ LIVEJOURNAL
Случайная выборка из поисковых запросов ЖЖ
* Исходные векторы в 2D методом t-SNE
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
12. К ВЕКТОРАМ ДОКУМЕНТОВ
1. Для коротких фраз (запросов) – обычное или взвешенное (например, по
IDF) усреднение
2. Для предложений и коротких текстов:
- Paragraph2vec (Le, Mikolov, 2014)
- Пропустить последовательность векторов слов из текста через
обученную RNN и взять финальное состояние скрытого слоя RNN
3. Для сравнительно больших текстов:
- Пропустить последовательность векторов слов через CNN
- Выход CNN использовать как вход RNN
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
14. ОСОБЕННОСТИ
Более мощные нелинейные модели для задач
языкового моделирования
• В отличие от линейных моделей, обучаются на плотных векторах небольшой
размерности
• Обладают большей выразительностью: например, RNN – универсальная машина
• Найдены хорошие методы и техники для стабильного обучения
• Вычисление хорошо распараллеливается на современных CPU и GPU
«
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
15. MULTILAYER PERCEPTRON (MLP)
• Входы сети (x1, x2, …) – 1-hot векторы или word2vec
• Скрытые слои – значения нелинейных функций,
примененных поэлементно к линейным
преобразованиям выходов предыдущего слоя
• Выход сети (y1, y2, …) – бинарное значение или
распределение на классах, полученное с помощью
softmax
• => не учитывается порядок слов!
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
16. ОБУЧЕНИЕ MLP
• Функции потерь:
- hinge loss
- log loss
- cross-entropy
• Метод обучения – minibatch SGD
backprop – вычисление производных сложных
выражений с кэшированием промежуточных
результатов
размеры batch = 32, 64, 100… (эффективно на
GPU)
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
17. ОБУЧЕНИЕ MLP
• Шаг обучения (learning rate) для SGD подбирается по
кросс-валидации
• Адаптивные методы обучения:
Adam (Kingma, Ba, 2014)
Adadelta (Zeiler, 2012)
Adagrad (Duchi et al, 2011)
RMSProp (Tieleman, Hinton, 2012)
• Ранний останов (early stopping) – по достижению
сходимости на валидационном множестве
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
18. ОБУЧЕНИЕ MLP
• Регуляризация:
L2
Dropout (Hinton et al, 2012)
• Инициализация весов
для tanh: случайные значения из
(xavier / glorot инициализация)
для relu: из N(0, )
• Batch normalization
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
19. TENSORFLOW
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
• Фреймворк для машинного обучения: линейная
алгебра, нейронные сети + K-means, SVM,
RandomForest
• Зрелый, production-ready
• Кросс-платформенный
• Распределенное вычисление на CPU и GPU
• Реализация на C++ (XLA)
• Вызов из Python, Java, Go, Haskell
• Визуализация через Tensorboard
• Интеграция с Spark, YARN, HDFS
• Мощное community
20. KERAS
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
• Высокоуровневое API для нейронных сетей на
Tensorflow и Theano
• Python 2.7 - 3.5
• Облегчает модульную разработку deep learning
архитектур
21. TORCH
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
• Нейронные сети, линейная алгебра
• Активно разрабатывается Facebook AI Research
• Реализация на C
• LuaJIT, Lua 5.2+
23. CONVOLUTIONAL LAYER
• Применение нелинейной функции
(фильтра) к окну из k слов:
=> векторы размерности d
• Комбинирование полученных векторов
(pooling):
max-, hierarchical, dynamic pooling
• Параметры фильтра обучаются по SGD
=> Учитывает порядок слов и находит
информативные локальные предикторы
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
24. RECURRENT NEURAL NETWORK
• Сеть Элмана позволяет моделировать
последовательности произвольной
длины в виде вектора состояний:
• Обучается с помощью backpropagation
through time, т.е. разворачивание в виде
глубокой сети на k шагов и backprop
• Supervision: encoder и transducer
• Последовательности слов (Mikolov et al,
2010) или символов (Karpathy et al, 2015)
• Проблемы при обучении: затухание или
быстрый рост градиентов
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
30. LSTM
• LSTM решает проблему затухающего
градиента
• LSTM очень эффективен для задач
языкового моделирования (Zaremba,
2014)
• LSTM требователен к ресурсам
• GRU – релаксированный вариант LSTM и
достаточно успешный в машинном
переводе и языковом моделировании
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
31. AND MORE…
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
Идеи Приложения
Seq2seq, encoder-decoder архитектуры
Машинный перевод, саммаризация, чат-
боты
Attention Машинный перевод (особенно) и др.
Архитектуры с внешней памятью: memory
networks, NTM, stack-RNN
Text comprehension, QA
Recursive neural networks
Синтаксический анализ, анализ
тональности
33. КЛАССИФИКАЦИЯ КАРТИНОЧНЫХ
ЗАПРОСОВ
• Бинарная классификация поискового запроса
• Данные:
На основе пользовательских сигналов
составлены три сбалансированных
непересекающихся множества из запросов после
порнофильтра:
Тренировочное (январь – июль 2016),
валидационное (август – октябрь 2016)
и тестовое (ноябрь 2016 – январь 2017)
Всего более 60 тыс. запросов
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
34. МОДЕЛИ
• Словарный мэтчинг + словарь вручную
• RandomForest над 1-hot векторами
• Линейный классификатор с FastText
word2vec на ЖЖ
=> около 3х мин на 16 x 2.4Hz, 64Gb RAM
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
35. Модель Accuracy (вал.) Accuracy (тест.)
Словарный мэтчинг 61.42% 60.24%
RandomForest 65.72% 61.12%
fastText + word2vec 78.11% 70.33%
fastText + word2vec pre-trained
на ЖЖ
87.88% 76.69%
РЕЗУЛЬТАТЫ
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
36. Запрос fastText RandomForest Google Яндекс
украина карта tp tp + +
хаски порода собак tp tp + +
ремонт холодильников tn fp - -
яшими на какую букву
ударение
fp fp - +
васнецов богатыри tp fn - +
пират fn fn + +
кижи fn fn + +
ПРИМЕРЫ
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
37. ОЦЕНИВАНИЕ ПОПУЛЯРНОСТИ ПОСТА ЖЖ
• Предсказать популярность поста по
текстовым характеристикам
• Регрессия на количество просмотров
• Данные:
посты, созданные с февраля по апрель
2016 года, с количеством просмотров по
состоянию на 10 марта 2017 года
тренировочное/валидационное/тестовое
(80-10-10%)
Всего более 6 млн. постов
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
38. ФАКТОРЫ
1) Базовые
• Длина текста (в байтах)
• Количество слов в заголовке
• Количество слов в теле
• Количество картинок
• Количество URL
• Взрослая тематика
2) Лексические
• 1-hot вектор тэгов
• Word2vec заголовка
• Word2vec тела
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
39. МОДЕЛИ
• Линейная регрессия со спрямлением факторов
забраковано на валидационном множестве
• RandomForest
• GBRT
• XGBoost
лучше результаты, чем у GBRT, RandomForest
• MLP c двумя слоями по 200 ReLU
для лексических факторов
=> около 5 мин на Nvidia GTX Titan Black
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
40. Модель MSE R2
MLP на тэгах 1.6942 19.98%
MLP на word2vec заголовка 1.4343 32.25%
MLP на word2vec тела 1.1984 43.40%
XGBoost на базовых
факторах
1.4972 29.29%
XGBoost на базовых +
оценках трех MLP
1.0169 51.97%
РЕЗУЛЬТАТЫ
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
41. ВЫВОДЫ
Интегрируйте
подходы на
основе машинного
обучения
Ищите экспертов,
оценивайте
инфраструктурные
затраты и
понимайте риски
Пробуйте новые
модели, не
обязательно
сложные
Для data scientists Для разработчиков Для бизнеса
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ