2. Павел Никулин
• В SEO с 2009 года
• Руководитель отдела
аналитики в компании
Demis Group
• Резидент Skolkovo
• Участник соревнований по
Machine Learning на
площадке Kaggle и др.
3. О чем поговорим
Метрики и алгоритмы
• Поиск значимого текста на документе
• Коммерческость
• Спамность
• Водность
• Неестественность
Анализ Баден-Баден
Инструментарий
4. Метрики и алгоритмы
Поиск значимого текста на документе
Основная проблема - большой текст в каталоге или в других блоках
5. Метрики и алгоритмы
Поиск значимого текста на документе
Основная проблема - большой текст в каталоге или в других блоках
6. Метрики и алгоритмы
Поиск значимого текста на документе
Основная проблема - большой текст в каталоге или в других блоках
7. Метрики и алгоритмы
Поиск значимого текста на документе
Решение – подобрать нелинейную модель чтобы классифицировать
навигацию, каталог и текст.
Что используем:
• HTML код страницы
Факторы:
• Метрики о данных каждого блока на странице – кол-во слов, кол-
во точек/запятых, категории тегов, кол-во ссылок, и мн. др.
На чем обучаемся:
• Тестовая выборка блоков из документов размеченных вручную
Основные задачи: поиск текста для анализа, и подтверждение
необходимости текста на оптимизируемой странице.
8. Метрики и алгоритмы
Поиск значимого текста на документе
Решение – подобрать нелинейную модель чтобы классифицировать
навигацию, каталог и текст.
Модель:
• 210 факторов
• Алгоритм Random Forest
• Точность ~97%
После получения предсказания все блоки объединяются в определенные
классы.
9. Метрики и алгоритмы
Коммерческость запроса и документа
Что используем:
• Заголовок и аннотацию сниппета
• Характеристики хоста (нахождение в Яндекс.Каталоге, геопривязка и пр.)
• Характеристики страницы (комм./некомм. признаки в URL)
Модель:
• Алгоритм1 - логистическая регрессия по мешку слов собранного из корпуса
размеченных сниппетов
• Random Forest из факторов про страницу, хост и фактор Алгоритм1
• Точность ~95%
Модель работает и для документа где вместо аннотации сниппета выступает
значимый текст.
10. Метрики и алгоритмы
Спамность
Что используем:
• Корпус спамных / хороших текстов размеченных вручную
Модель:
• 24 фактора – кол-во текста, кол-во предложений, кол-во частых / редких
биграмм, униграмм и пр.
• Алгоритм Random Forest
• Точность ~96%
11. Метрики и алгоритмы
Водность
Что используем:
• Корпус частых биграмм и униграмм выделенных из большого корпуса
сеошных текстов, с поправкой на некоммерцию
Метрика:
• Взвешенное среднее водности всех биграмм и униграмм в тексте
12. Метрики и алгоритмы
Неестественность
Что используем:
• Корпус частых биграмм граммем (часть речи, время, падеж, число и пр.)
выделенных из большого корпуса запросов ([кирпич москва], [вылет
горящий тур]), с поправкой на некоммерцию
Метрика:
• Средняя неестественность всех биграмм граммем в тексте
16. Анализ Баден-Баден
Первые наблюдения до / после – спамность
Метрика – спамность в выдачах выросла в среднем на 0.021
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1
4
7
10
13
16
19
22
25
28
31
34
37
40
43
46
49
52
55
58
61
64
67
70
73
76
79
82
85
88
91
94
97
100
ТОП10 до
ТОП20 до
ТОП10 после
ТОП20 после
17. Анализ Баден-Баден
Первые наблюдения до / после – спамность
И вот почему
В среднем размер текста в выдачах уменьшился в 2.308 раза.
И поскольку наша метрика спамности коррелирует с размером текста
она - увеличилась.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
1 3 5 7 9 11 13 15 17 19 21 23 25 27
Размер текста до
Размер текста после
21. Анализ Баден-Баден
В отличии от позапросного, хостовый Баден-Баден
накладывается на весь хост, и не всегда понятно за
какие тексты. Даже не продвигаемая область сайта
вполне может служить поводом для фильтра.
22. Анализ Баден-Баден
В отличии от позапросного, хостовый Баден-Баден
накладывается на весь хост, и не всегда понятно за
какие тексты. Даже не продвигаемая область сайта
вполне может служить поводом для фильтра.
Поэтому, нужно создать метрику вероятности
наложения фильтра.
23. Метрики страницы
• Спамность
• Неестественность
• Водность
• Кол-во текста
• Коммерческость
• Уровень вложенности
• Комбинации факторов
• Пр.
Всего 14 факторов
Модель
• Алгоритм - градиентный бустинг посредством XGBoost , оптимизируем
метрику logloss
• Точность ~96.2%
Анализ Баден-Баден
24. Анализ Баден-Баден
ТОП факторов из модели
• Водность
• Размер текста
• Сумма водности, спамности, неестественности
• Спамность
• Размер текста * неестественность
…
• Коммерческость (последний фактор по значимости)
27. Инструментарий
Что используем мы
• Python 3.5 (Anaconda 3)
• Все семейство алгоритмов в scikit-learn
• Все семейство алгоритмов из gensim
• XGBoost
• LightGBM
• MXNet
• TensorFlow
• GloVe (аналог Word2Vec)
• ОС Linux / Windows
28. Инструментарий
У вас все может быть по другому!
• Другой язык или инструментарий
• Другие факторы
• Другие выборки
• Другие выводы
• Другие задачи
• …
Пробуйте!
29. Machine Learning в текстовом анализе
Никулин Павел Demis Group
Спасибо!
Вопросы?
http://www.demis.ru/ E-mail: nps@demis.ru