Алгоритмы и технологии для машинного обучения в электронной коммерции Александр Сербул Руководитель направления Карл… Карл, я наконец понял «Дискриминантный анализ» Это очень круто, пап! Карл… Карл, я специалист по BigData…. Это очень круто, Но кому он к черту пап! нужен, КОМУ??? Лучше не видеть этот слайд… Линейная алгебра Теория вероятностей Высшая математика Computer Science Машинное обучение Программная инженерия Параллельные алгоритмы Обработка «больших данных» Математическая статистика Информация - «только для избранных» • Wikipedia • Google… • http://www.machinelearning.ru Уровень вхождения Межрассовое скрещивание Быстро всё забыли! Карате • Окинава, XIX век • Доступность • Массовость • Сила – не нужна • Разумный уровень вхождения • Эффективность против самураев! Данные • Целое: -4, 23 • Число с плавающей точкой: 1.34, 67.91 • Одно из значений (полиномиальное): «красный», «синий», «зеленый» • Биномиальный: да/нет, M/F • Даты • Графы Выбросы Базовая статистика • Статистика по данным: среднее, дисперсия • Линейная корреляция • Mutual Information, Maximal information coefficient (MIC) Визуализация Вектор атрибутов • Все, что есть! • Пол • Возраст • Статус • URLы, пути • Обращения в саппорт • Счетчики • Средние за квартал, месяц, день Виды моделей «Machine Learning: A Probabilistic Perspective», Kevin P. Murphy, The MIT Press 2012 Отличия моделей Генеративные: скорость обучения, добавляем классы без переобучения, пропущенные значения = ОК Дискриминативные: feature preprocessing, большая точность Параметрические – небольшой размер в памяти Непараметриеские – коллаборативная фильтрация, k-NN,… Софт для «чайников» • Rapidminer • SAS • SPSS •… Готовые блоки, серверные редакции (hadoop), графики «Хард» для «избранных» • Spark MLlib (scala/java/python) – много данных • scikit-learn.org (python) – мало данных •R Что можно делать с данными - Кластеризация Автоматически. Кто ваши клиенты? Уровень дохода, пол, возраст, местоположение, анкета… Целевой маркетинг, customer centric K-means, Hierarchical, … Что можно делать с данными - Классификация Разбиваем по группам, обучение • Бинарная • Мультиклассовая • Не путать! с кластеризацией Что можно делать с данными – Анализ графов PageRank Кластеризация (“connected components”, …) Triangle Counting «Машинное обучение на графах» Apache Spark GraphX Что можно делать с данными – Выявление причин «Что отличает платников от бесплатников?» • Дерево решений (CART, …) • Rule Induction • Дискриминантный анализ • Коэффициенты логистической регрессии, … Ensemble methods, deep learning, … Random forests, Boosting … «Берем количеством!» Есть в RapidMiner из коробки. Ensemble methods • Random Forest • Gradient Tree Boosting •… Последовательности событий… «Предсказать уровень лояльности» Hidden Markov Models Пользователь имеет статус лояльности. Пользователь выявляет статус действиями. Коллаборативная фильтрация Матрица: - Пользователь - Товар Похожие Пользователи Похожие Товары Профили. Information Retrieval. Пользователь. История интересов: «рыба:123», «яхта:12», «леска:2» Товар. Описание: «Леска для рыбалки на яхте» Релевантный поиск! Довольно теории! Коллаборативная фильтрация «Невозобновляемые» Товары: - фильмы, игры, … 1) Персональная рекомендация 2) С этим Товаром также покупают («похожие» колонки в матрице Пользователь - Товар) 3) Топ Товаров Пол, возраст, размер? Сервис: «1С-Битрикс BigData» Content-based рекомендации «Возобновляемые» Товары: - молоко, батарейки, носки, … 1) Облако интересов Пользователя (текст) 2) Теги и классификаторы 3) Описание Товаров Поисковик. Пол, возраст, размер? Релевантный поиск 1) Облако интересов Пользователя: «…, toyota: 12: ,…» 2) Ищет: «зимняя резина» 3) Находит: «резина toyota» вверху Поисковик. Машинное обучение. Предотвращение оттока клиентов «Кто уйдет в ближайшее время?» Для постоянных клиентов. • Собираем все, что есть • Интервальная агрегация • Binary classification: naïve bayes, logistic regression, SVM, … Анализируем причины. Программы «удержания». Удержать – дешевле, чем привлечь нового. CLV (customer lifetime value) «Кто принесет прибыль» Для постоянных клиентов. • Собираем все, что есть, интервальная агрегация • Binary classification: naïve bayes, logistic regression, SVM, … Программы «повышения лояльности». Большие скидки. Подарки. Релевантные предложения «Кому предложение будет интересно?» 1. Анализ анкет, предыдущих рассылок. 2. Binary classification 3. Определение наиболее заинтересованных клиентов. 4. Рассылка предложения. Sentiment analysis (анализ тональности) «Что о нас говорят?» 1. Специфика предметной области 2. Обучаем модель «настроениям» 3. Прогоняем данные из соцсетей 4. Ключевые слова «о нас» 5. Облачные сервисы Как доказать, что «оно» работает? 1. Научитесь мерить «random»! 2. TP, TN, FP, FN 3. Confusion matrix 4. Accuracy, AUC, kappa 5. A/B - тестирование ИТОГИ 1. Машинное обучение - работает эффективно! 2. Много открытого софта 3. A/B-тестирование 4. Не нужно бояться учиться новому 5. Не нужно знать высшую математику 6. Рабочие кейсы дадут 90% результата для 10% усилий Спасибо за внимание! Вопросы? Александр Сербул @AlexSerbul [email protected]