Расскажем о самых распространенных технологиях и алгоритмах добычи критичной для бизнеса информации из больших массивов данных. Отдельно коснемся темы рекомендательных сервисов и их эффективного применения.
План:
1) Откуда брать данные, тренды и концепции.
2) Основные алгоритмы и технологии их применения для обработки массивов данных: MapReduce, Spark.
3) Методика создания рекомендательного сервиса — этапы от концепции до работающей системы.
4. О ЧЕМ ПОГОВОРИМ
•Для менеджеров, без математики!
•Понятные алгоритмы и техники
•Полезные для электронной торговли
•В рамках Bigdata
Слайд 4
5.
6. Если слушать внимательно,
то мы сможем …
• Разобраться в обширной
терминологии
• Понять и простить алгоритмы и их
пользу для бизнеса
• Оценить и организовать
эффективный процесс в компании
• В деталях понять, как мы сделали
сервис «1С-Битрикс: BigData» и как
хотим его развивать дальше
9. Кратко о себе
• Люблю писать работающий,
лаконичный код к дедлайну
• Java, Scala, Python, PHP, C, Bash
• Люблю unix и интернет
• Так и не научился ООП
• Говорю много и быстро
10. Что происходит вокруг?
• Шумиха вокруг «больших
данных»
• Продукты и сервисы для
извлечения прибыли из Bigdata
• Очень высокий уровень
вхождения
• Непонимание разных областей
11. Заголовок слайда
• Текст слайда, рисунки. Старайтесь не захламлять текст
лишними данными, параметрами. Вот немного тезисов:
• Для демонстрации используются экраны с
соотношением сторон 4x4!;
• Залы будут длинными (в среднем около 20 метров),
поэтому текст должен быть заметным;
• Код на слайде – плохая идея, он плохо читается
издалека;
• Не забывайте выделять ключевые моменты;
• Предпочтительные форматы презентации – Microsoft
Power Point и PDF.Нас соблазняют, в прямом
смысле!
14. Как соблазнять?
• Не персональные «крючки»:
- Топ продаж (best sellers)
- С этим Товаром покупают (аксессуары)
- С этим Товаром смотрят
- Другие смотрят сейчас
- Скидка на очень популярный товар
Небольшой набор товаров. Хвост. Спам –
для некоторых.
15. Как продать из «хвоста»?
«Mining of Massive Datasets», 9.1.2: Leskovec,
Rajaraman, Ullman (Stanford University)
16. Как соблазнять?
• Персональные «крючки»:
Рекомендуем именно вам в данный
момент:
- Купить, посмотреть
- Люди, похожие на вас («близкие
по духу»)
- «Хорошая» скидка, «хорошая»
цена
- Полезный контент
- Релевантный поиск
32. Отличия моделей
• Генеративные: скорость обучения,
добавляем классы без переобучения,
пропущенные значения = ОК
• Дискриминативные: feature
preprocessing
• Параметрические – небольшой размер в
памяти
• Непараметрические – коллаборативная
фильтрация, k-NN,…
33. Сбор данных для анализа
• Хиты на сайте (логи)
• События, привязанные к cookie
(через «счетчик»)
• Логи работы
• Мультиканальность
34. Что собираем мы
• Кука Пользователя
• Хэш лицензии
• Домен
• ID товара
• Название Товара
• Категории Товара
• ID рекомендации
• ряд других
Событие
Просмотр
товара
Добавление
в корзину
Заказ Оплата
Заказа
35. Технологии
• Нагрузка на «счетчик» -
nginx/lua, NoSQL-решение, …
• Amazon Kinesis, Apache Kafka …
• Много данных – нужен кластер
для обработки:
hadoop+spark/amazon/…
• Реализация: дни
44. Content-based рекомендации
• Купил пластиковые окна –
теперь их предлагают на всех
сайтах и смартфоне, в Windows
10 и во сне.
• Купил Toyota, ищу шины,
предлагают шины к Toyota
вверху списка
• Vector space model, tf/idf
• word2vec
47. Content-based рекомендации –
технологии
• Поисковый «движок»: Sphinx,
Lucene (Solr)
• «Обвязка» для данных
• Хранение профиля Клиента
• Реализация: неделька. Риски –
объем данных, языки.
48. Коллаборативная фильтрация
• Предложи Товары/Услуги,
которые есть у твоих друзей
(User-User)
• Предложи к твоим Товарам
другие, связанные с ними
Товары (Item-Item): «сухарики к
пиву»
55. Text shingling
Shingle – «черепица»
Устойчивость к вариантам, опечаткам
«Штаны красные махровые в полоску»
{«штан», «таны», «аны », «ны к», «ы кра»,
«крас», …}
«Красные полосатые штаны»
56. Векторизация описания
Товара
Текст: «Штаны красные махровые в
полоску»
Вектор «bag of words»: [0,0,0,1,0,…0,1,0] –
~ 10000 -1000000 элементов (kernel hack)
Minhash-сигнатура после shingling:
[1243,823,-324,12312,…] – 100-500
элементов, совместима с LSH
57. Locality-Sensitive Hashing (LSH)
Вероятностный метод снижения
размерности
Использовали для minhashed-векторов
Banding:
b – корзины, r – элементов в корзине.
P{ “Векторы совпадут хотя-бы в одной
корзине” }:
58. Кластеризация каталога
Apache Spark
2-3 часа, 8 spot-серверов
10-20 млн. Товаров => 1 млн. кластеров
Адекватные по смыслу кластера
Персональные рекомендации - стали в
разы «лучше»
DynamoDB – хранение кластроидов
60. Цифры - кратко
Тысячи запросов в секунду к сервису
~20 тысяч интернет-магазинов
Ощутимый рост конверсии – до 50-80%, зависит
от размера магазина
Активное использование «С этим Товаром
покупают»!?
1 сервер рекомендаций (70G ОЗУ) + небольшой
кластер Spark
Обсчитываем событий: > 855 миллионов
Уникальных посетителей: > 332 миллиона
61. Куда развиваться
Пол, возраст, ценовая категория клиента –
машинное обучение
Разные виды товаров: возобновляемые, не
возобновляемые
Цена товара
Внутренние циклы (готов покупать), модели
Маркова
Классификация групп лояльности, кластерный
анализ
Релевантный поиск
65. Кластерный анализ
•Сегментация клиентов, типов
использования сервиса, …
•Кластеризация «общего» товарного
каталога
•Кластеризация графа связей сайтов
(пересечение аудитории)
• Маркетинг работает с целевыми
группами, информация разбита на
«смысловые облака».
68. Классификация
•Не путать с кластеризацией!
•Кластеризация –
автоматическая и если повезет
•Классификация – учим
компьютер сами и «везет» чаще
•Пример: фильтрация спама,
которую доучиваем
69. Классификация
•Удержание: найти клиентов,
которые скоро уйдут (churn-rate)
•Найти клиентов, готовых стать
платными
•Найти клиентов, которые готовы
купить новую услугу
•Найти готовых уволиться
•Определить у клиента – пол!
73. •Собираем данные (хиты, логи,
анкетирование)
•Строим дерево решений
•В Rapidminer – полчаса
•В Spark MLlib – чуть больше.
А что влияет на конверсию в
…?
74. ИТОГИ
• Инструменты - доступны
• Алгоритмы – монетизируются
• 20-30% бигдаты содержат
ценную инфу
• 30% моделей – работают,
хорошо