Slide 1

Slide 1 text

Лексин Василий Кластеризация волатильных объявлений с помощью EM-алгоритма

Slide 2

Slide 2 text

2 2 2 • 53 миллионов активных объявлений • 32 миллиона активных пользователей в месяц (каждый 4-ый житель России пользуется Авито каждый месяц) • 4 платформы: avito.ru, m.avito.ru, Android, iOS С какими объемами данных мы имеем дело?

Slide 3

Slide 3 text

3 3 3 На Авито есть все, что легально

Slide 4

Slide 4 text

4 4 4 • User-to-item: • Объявления, которые в настоящий момент ищет пользователь • Дополняющие товары/услуги • User-to-category: • Категории текущих интересов пользователя • Кросс-категориальные рекомендации • Item-to-item: • Рекомендации похожих объявлений • Дополняющие товары/услуги • Personalized search • Саджесты поиска • Персонализованный поиск Актуальные задачи рекомендаций

Slide 5

Slide 5 text

5 5 5 Рекомендации на главной странице

Slide 6

Slide 6 text

6 6 6 Рекомендации на главной странице

Slide 7

Slide 7 text

7 7 7 Письма и push-уведомления с рекомендациями

Slide 8

Slide 8 text

8 8 8 Рекомендации похожих и дополняющих товаров на карточке товара

Slide 9

Slide 9 text

9 9 9 Кросс-категорийные рекомендации в поисковой выдаче

Slide 10

Slide 10 text

10 10 10 Задача кластеризации 1 iPhone 6 16 Gb

Slide 11

Slide 11 text

11 11 11 • Пользователя, как правило, интересует типовой товар: • на который есть много активных объявлений, • объявления быстро закрываются • Большая размерность и разреженность user-item матрицы использования объявлений • Кластеризация позволяет существенно снизить время обучения модели • Мы можем рекомендовать пользователям объявления из интересующих их кластеров, что позволяет реже переобучать модель Предпосылки к созданию модели кластеризации

Slide 12

Slide 12 text

12 12 12 • Начинаем с самого нижнего уровня текущей инфомодели - микрокатегорий • Добавляем априорное знание о производителях (там, где они есть) • Кластеризуем объявления внутри производителя/ микрокатегории • Радуемся / расстраиваемся Устройство модели 1

Slide 13

Slide 13 text

13 13 13 • Загрузка данных об объявлениях (микрокатегория, заголовок, описание, цена, параметры): 53M объявлений, 11K микрокатегорий/производителей (по 4.5K на микрокатегорию, max 772K) • Предобработка текстовых данных: токенизация, фильтрация регулярными выражениями • Извлечение признаков: bag-of-words, отбор токенов, на выходе разреженные-матрицы • Кластеризация: EM-алгоритм (на основе подхода от eBay: Ye Chen, John F. Canny. Recommending ephemeral items at web scale) Подготовка данных 1

Slide 14

Slide 14 text

14 14 14 EM-алгоритм: исходные данные

Slide 15

Slide 15 text

15 15 15 EM-алгоритм: представление кластера

Slide 16

Slide 16 text

16 16 16 EM-алгоритм: функция правдоподобия

Slide 17

Slide 17 text

17 17 17 EM-алгоритм: максимизация правдоподобия

Slide 18

Slide 18 text

18 18 18 Expectation maximization (EM) алгоритм

Slide 19

Slide 19 text

19 19 19 • Консистентность кластеров: среднее значение веса слова p на top N=5 словах для кластера • Оптимизируем количество кластеров k методом локтя для каждой микрокатегории Оценка качества кластеризации

Slide 20

Slide 20 text

20 20 20 • 195К кластеров • В среднем 17 кластеров на микрокатегорию, максимум 2К • В среднем по 270 объявлении в кластере (максимум 10К) Результаты кластеризации

Slide 21

Slide 21 text

21 21 21 Пример хорошего кластера 2

Slide 22

Slide 22 text

22 22 22 Пример плохого кластера

Slide 23

Slide 23 text

23 23 23 • Обучение EM-алгоритма 1-2 часа с оптимизацией k • Весь pipeline ~8 часов (большая часть занимает предобработка данных) • Есть эффективный способ поместить новое объявление в существующий кластер, сложность • Ядро написано на Numpy/Scipy/Cython Эффективность алгоритма

Slide 24

Slide 24 text

24 24 24 • Неполные тексты • Добавление картиночных признаков • (Почти) в каждом селлере живет SEO-шник • Использовать более продвинутые методы nlp / text-mining • Сложно оценить качество кластеризации алгоритмически • Инструмент по визуализации • Большое количество неинтерпретируемых кластеров • Добавление supervised-разметки Проблемы и решения 2

Slide 25

Slide 25 text

25 25 25 • Модели рекомендаций • Дополнительные признаки в моделях машинного обучения • Расширение инфомодели • Улучшение поиска Как можно использовать кластеризацию? (и зачем) 2

Slide 26

Slide 26 text

Спасибо за внимание [email protected]