SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
Современные средства NLP
в поисковых задачах
Никита Жильцов,
аналитик данных Рамблер/Поиск
УСПЕХИ NLP
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
О СЕБЕ
•  2009-2014 – аспирантура Казанского
федерального университета
•  2012-2013 – научная стажировка в группе
Е. Агиштейна (Университет Эмори, США)
•  2014 – основание Textocat
•  2016 – team lead в Quest.ai
•  2016 – защита кандидатской диссертации
•  2016 – аналитик данных Rambler&Co
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
ПОИСКОВЫЕ ЗАДАЧИ В РАМБЛЕРЕ
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
СОДЕРЖАНИЕ
Векторное представление текста (word2vec)
Нейросетевые архитектуры для NLP
Примеры решений задач классификации поисковых запросов и оценивания
популярности постов в LiveJournal
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
ВЕКТОРНОЕ ПРЕДСТАВЛЕНИЕ
ТЕКСТА
Word2vec, fastText, векторы слов из ЖЖ
WORD2VEC
Идея – представить слова в виде вещественных
векторов фиксированной размерности
Свойства векторов (embeddings):
•  Небольшая размерность
•  Каждая размерность – некоторая характеристика
•  Похожие характеристики имеют близкие значения => обмен информации
•  Слова с близкими векторами часто появляются в схожих контекстах
•  Используются как входы для нейросетей в NLP (pre-training)
•  Легко визуализировать (например, c PCA или t-SNE)
«
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
МЕТОДЫ ОБУЧЕНИЯ WORD2VEC
•  Google Word2Vec (Mikolov et al., 2013)
- Самый популярный
- Эффективная реализация на C++
•  Glove (Pennington et al., 2014)
- Для академических исследований
•  Facebook’s fastText (Bojanowski et al. 2016)
- Особенно подходит для русского языка
- Реализация на C++
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
АЛГОРИТМ FASTTEXT
Аналогично word2vec (Mikolov et al, 2013):
•  Максимизация правдоподобия словарного контекста
•  Вероятность слова из контекста = softmax:
•  На практике - бинарная классификация и NCE
Функция близости слов:
zg – векторы n-грамм в слове, включая само слово;
vc – вектор слова из контекста
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
FASTTEXT WORD2VEC НА ЖЖ
•  > 50 млн. самых популярных постов ЖЖ за
последние 2 года
•  Размерность векторов = 300
•  Предобработка – очистка от разметки,
сегментирование на слова и фильтрация редких
слов
•  Около 4 дней на машине 16 x 2.4 Hz CPU, 64Gb RAM
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
ПРИМЕРЫ ВЕКТОРОВ ИЗ LIVEJOURNAL
Случайная выборка из поисковых запросов ЖЖ
* Исходные векторы в 2D методом t-SNE
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
К ВЕКТОРАМ ДОКУМЕНТОВ
1.  Для коротких фраз (запросов) – обычное или взвешенное (например, по
IDF) усреднение
2.  Для предложений и коротких текстов:
- Paragraph2vec (Le, Mikolov, 2014)
- Пропустить последовательность векторов слов из текста через
обученную RNN и взять финальное состояние скрытого слоя RNN
3. Для сравнительно больших текстов:
- Пропустить последовательность векторов слов через CNN
- Выход CNN использовать как вход RNN
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
НЕЙРОСЕТЕВЫЕ АРХИТЕКТУРЫ
ДЛЯ NLP
MLP, CNN, RNN, LSTM, Keras, Tensorflow
ОСОБЕННОСТИ
Более мощные нелинейные модели для задач
языкового моделирования
•  В отличие от линейных моделей, обучаются на плотных векторах небольшой
размерности
•  Обладают большей выразительностью: например, RNN – универсальная машина
•  Найдены хорошие методы и техники для стабильного обучения
•  Вычисление хорошо распараллеливается на современных CPU и GPU
«
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
MULTILAYER PERCEPTRON (MLP)
•  Входы сети (x1, x2, …) – 1-hot векторы или word2vec
•  Скрытые слои – значения нелинейных функций,
примененных поэлементно к линейным
преобразованиям выходов предыдущего слоя
•  Выход сети (y1, y2, …) – бинарное значение или
распределение на классах, полученное с помощью
softmax
•  => не учитывается порядок слов!
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
ОБУЧЕНИЕ MLP
•  Функции потерь:
- hinge loss
- log loss
- cross-entropy
•  Метод обучения – minibatch SGD
backprop – вычисление производных сложных
выражений с кэшированием промежуточных
результатов
размеры batch = 32, 64, 100… (эффективно на
GPU)
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
ОБУЧЕНИЕ MLP
•  Шаг обучения (learning rate) для SGD подбирается по
кросс-валидации
•  Адаптивные методы обучения:
Adam (Kingma, Ba, 2014)
Adadelta (Zeiler, 2012)
Adagrad (Duchi et al, 2011)
RMSProp (Tieleman, Hinton, 2012)
•  Ранний останов (early stopping) – по достижению
сходимости на валидационном множестве
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
ОБУЧЕНИЕ MLP
•  Регуляризация:
L2
Dropout (Hinton et al, 2012)
•  Инициализация весов
для tanh: случайные значения из
(xavier / glorot инициализация)
для relu: из N(0, )
•  Batch normalization
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
TENSORFLOW
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
•  Фреймворк для машинного обучения: линейная
алгебра, нейронные сети + K-means, SVM,
RandomForest
•  Зрелый, production-ready
•  Кросс-платформенный
•  Распределенное вычисление на CPU и GPU
•  Реализация на C++ (XLA)
•  Вызов из Python, Java, Go, Haskell
•  Визуализация через Tensorboard
•  Интеграция с Spark, YARN, HDFS
•  Мощное community
KERAS
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
•  Высокоуровневое API для нейронных сетей на
Tensorflow и Theano
•  Python 2.7 - 3.5
•  Облегчает модульную разработку deep learning
архитектур
TORCH
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
•  Нейронные сети, линейная алгебра
•  Активно разрабатывается Facebook AI Research
•  Реализация на C
•  LuaJIT, Lua 5.2+
ПРИМЕР НА KERAS
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
CONVOLUTIONAL LAYER
•  Применение нелинейной функции
(фильтра) к окну из k слов:
=> векторы размерности d
•  Комбинирование полученных векторов
(pooling):
max-, hierarchical, dynamic pooling
•  Параметры фильтра обучаются по SGD
=> Учитывает порядок слов и находит
информативные локальные предикторы
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
RECURRENT NEURAL NETWORK
•  Сеть Элмана позволяет моделировать
последовательности произвольной
длины в виде вектора состояний:
•  Обучается с помощью backpropagation
through time, т.е. разворачивание в виде
глубокой сети на k шагов и backprop
•  Supervision: encoder и transducer
•  Последовательности слов (Mikolov et al,
2010) или символов (Karpathy et al, 2015)
•  Проблемы при обучении: затухание или
быстрый рост градиентов
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
LSTM
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
LSTM
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
LSTM
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
LSTM
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
LSTM
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
LSTM
•  LSTM решает проблему затухающего
градиента
•  LSTM очень эффективен для задач
языкового моделирования (Zaremba,
2014)
•  LSTM требователен к ресурсам
•  GRU – релаксированный вариант LSTM и
достаточно успешный в машинном
переводе и языковом моделировании
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
AND MORE…
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
Идеи Приложения
Seq2seq, encoder-decoder архитектуры
Машинный перевод, саммаризация, чат-
боты
Attention Машинный перевод (особенно) и др.
Архитектуры с внешней памятью: memory
networks, NTM, stack-RNN
Text comprehension, QA
Recursive neural networks
Синтаксический анализ, анализ
тональности
ПРИМЕРЫ РЕШЕНИЙ ЗАДАЧ
Классификатор поисковых запросов, оценивание
популярности постов в ЖЖ
КЛАССИФИКАЦИЯ КАРТИНОЧНЫХ
ЗАПРОСОВ
•  Бинарная классификация поискового запроса
•  Данные:
На основе пользовательских сигналов
составлены три сбалансированных
непересекающихся множества из запросов после
порнофильтра:
Тренировочное (январь – июль 2016),
валидационное (август – октябрь 2016)
и тестовое (ноябрь 2016 – январь 2017)
Всего более 60 тыс. запросов
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
МОДЕЛИ
•  Словарный мэтчинг + словарь вручную
•  RandomForest над 1-hot векторами
•  Линейный классификатор с FastText
word2vec на ЖЖ
=> около 3х мин на 16 x 2.4Hz, 64Gb RAM
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
Модель 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 В ПОИСКОВЫХ ЗАДАЧАХ
Запрос fastText RandomForest Google Яндекс
украина карта tp tp + +
хаски порода собак tp tp + +
ремонт холодильников tn fp - -
яшими на какую букву
ударение
fp fp - +
васнецов богатыри tp fn - +
пират fn fn + +
кижи fn fn + +
ПРИМЕРЫ
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
ОЦЕНИВАНИЕ ПОПУЛЯРНОСТИ ПОСТА ЖЖ
•  Предсказать популярность поста по
текстовым характеристикам
•  Регрессия на количество просмотров
•  Данные:
посты, созданные с февраля по апрель
2016 года, с количеством просмотров по
состоянию на 10 марта 2017 года
тренировочное/валидационное/тестовое
(80-10-10%)
Всего более 6 млн. постов
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
ФАКТОРЫ
1) Базовые
•  Длина текста (в байтах)
•  Количество слов в заголовке
•  Количество слов в теле
•  Количество картинок
•  Количество URL
•  Взрослая тематика
2) Лексические
•  1-hot вектор тэгов
•  Word2vec заголовка
•  Word2vec тела
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
МОДЕЛИ
•  Линейная регрессия со спрямлением факторов
забраковано на валидационном множестве
•  RandomForest
•  GBRT
•  XGBoost
лучше результаты, чем у GBRT, RandomForest
•  MLP c двумя слоями по 200 ReLU
для лексических факторов
=> около 5 мин на Nvidia GTX Titan Black
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
Модель 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 В ПОИСКОВЫХ ЗАДАЧАХ
ВЫВОДЫ
Интегрируйте
подходы на
основе машинного
обучения
Ищите экспертов,
оценивайте
инфраструктурные
затраты и
понимайте риски
Пробуйте новые
модели, не
обязательно
сложные
Для data scientists Для разработчиков Для бизнеса
СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
СПАСИБО!
НИКИТА ЖИЛЬЦОВ
@NZHILTSOV
T.ME/AI_REVIEW
/NZHILTSOV

Weitere ähnliche Inhalte

Ähnlich wie Современные средства NLP в поисковых задач - Стачка 2017

Распределенные мультикластерные вычислительные системы и параллельное мультип...
Распределенные мультикластерные вычислительные системы и параллельное мультип...Распределенные мультикластерные вычислительные системы и параллельное мультип...
Распределенные мультикластерные вычислительные системы и параллельное мультип...
Mikhail Kurnosov
 
20120226 information retrieval raskovalov_lecture03-04
20120226 information retrieval raskovalov_lecture03-0420120226 information retrieval raskovalov_lecture03-04
20120226 information retrieval raskovalov_lecture03-04
Computer Science Club
 
Speech technologies
Speech technologiesSpeech technologies
Speech technologies
NLPseminar
 
Чему мы можем научиться у Lisp'а?
Чему мы можем научиться у Lisp'а?Чему мы можем научиться у Lisp'а?
Чему мы можем научиться у Lisp'а?
Vsevolod Dyomkin
 
Анализ текста на основе лексико-синтаксичеких шаблонов c сокращением многов...
Анализ  текста на основе лексико-синтаксичеких  шаблонов c сокращением многов...Анализ  текста на основе лексико-синтаксичеких  шаблонов c сокращением многов...
Анализ текста на основе лексико-синтаксичеких шаблонов c сокращением многов...
Alexey Noskov
 
лекции 3 4 тема 1
лекции 3 4 тема 1лекции 3 4 тема 1
лекции 3 4 тема 1
Noobie312
 
Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...
Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...
Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...
Tech Talks @NSU
 
Back to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодняBack to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодня
Tech Talks @NSU
 
Hse project introduction_22012015
Hse project introduction_22012015Hse project introduction_22012015
Hse project introduction_22012015
Ekaterina Chernyak
 

Ähnlich wie Современные средства NLP в поисковых задач - Стачка 2017 (20)

Распределенные мультикластерные вычислительные системы и параллельное мультип...
Распределенные мультикластерные вычислительные системы и параллельное мультип...Распределенные мультикластерные вычислительные системы и параллельное мультип...
Распределенные мультикластерные вычислительные системы и параллельное мультип...
 
20120226 information retrieval raskovalov_lecture03-04
20120226 information retrieval raskovalov_lecture03-0420120226 information retrieval raskovalov_lecture03-04
20120226 information retrieval raskovalov_lecture03-04
 
Speech technologies
Speech technologiesSpeech technologies
Speech technologies
 
Devconf-2014: Ноотропы для BigData
Devconf-2014: Ноотропы для BigDataDevconf-2014: Ноотропы для BigData
Devconf-2014: Ноотропы для BigData
 
Чему мы можем научиться у Lisp'а?
Чему мы можем научиться у Lisp'а?Чему мы можем научиться у Lisp'а?
Чему мы можем научиться у Lisp'а?
 
Back to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодняBack to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодня
 
Deep Learning and Convolutional Networks
Deep Learning and Convolutional NetworksDeep Learning and Convolutional Networks
Deep Learning and Convolutional Networks
 
Анализ текста на основе лексико-синтаксичеких шаблонов c сокращением многов...
Анализ  текста на основе лексико-синтаксичеких  шаблонов c сокращением многов...Анализ  текста на основе лексико-синтаксичеких  шаблонов c сокращением многов...
Анализ текста на основе лексико-синтаксичеких шаблонов c сокращением многов...
 
лекции 3 4 тема 1
лекции 3 4 тема 1лекции 3 4 тема 1
лекции 3 4 тема 1
 
NoSQL - взрыв возможностей
NoSQL - взрыв возможностейNoSQL - взрыв возможностей
NoSQL - взрыв возможностей
 
Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...
Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...
Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...
 
Back to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодняBack to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодня
 
Новые технологии в поисковом ранжировании
Новые технологии в поисковом ранжированииНовые технологии в поисковом ранжировании
Новые технологии в поисковом ранжировании
 
РИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigDataРИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigData
 
Про качественный поиск
Про качественный поискПро качественный поиск
Про качественный поиск
 
Ruwikt
RuwiktRuwikt
Ruwikt
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parser
 
Автоматическое формирование базы знаний для задачи анализа мнений
Автоматическое формирование базы знаний для задачи анализа мненийАвтоматическое формирование базы знаний для задачи анализа мнений
Автоматическое формирование базы знаний для задачи анализа мнений
 
Hse project introduction_22012015
Hse project introduction_22012015Hse project introduction_22012015
Hse project introduction_22012015
 

Современные средства NLP в поисковых задач - Стачка 2017

  • 1. Современные средства NLP в поисковых задачах Никита Жильцов, аналитик данных Рамблер/Поиск
  • 2. УСПЕХИ NLP СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
  • 3. О СЕБЕ •  2009-2014 – аспирантура Казанского федерального университета •  2012-2013 – научная стажировка в группе Е. Агиштейна (Университет Эмори, США) •  2014 – основание Textocat •  2016 – team lead в Quest.ai •  2016 – защита кандидатской диссертации •  2016 – аналитик данных Rambler&Co СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
  • 4. ПОИСКОВЫЕ ЗАДАЧИ В РАМБЛЕРЕ СОВРЕМЕННЫЕ СРЕДСТВА 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+
  • 22. ПРИМЕР НА KERAS СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
  • 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 В ПОИСКОВЫХ ЗАДАЧАХ
  • 25. LSTM СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
  • 26. LSTM СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
  • 27. LSTM СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
  • 28. LSTM СОВРЕМЕННЫЕ СРЕДСТВА NLP В ПОИСКОВЫХ ЗАДАЧАХ
  • 29. LSTM СОВРЕМЕННЫЕ СРЕДСТВА 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 Синтаксический анализ, анализ тональности
  • 32. ПРИМЕРЫ РЕШЕНИЙ ЗАДАЧ Классификатор поисковых запросов, оценивание популярности постов в ЖЖ
  • 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 В ПОИСКОВЫХ ЗАДАЧАХ