Upgrade to Pro — share decks privately, control downloads, hide ads and more …

“Вы продоете "теплых кросовок"? Или как работает поиск в Lamoda”

Yuliya
December 06, 2021

“Вы продоете "теплых кросовок"? Или как работает поиск в Lamoda”

Yuliya

December 06, 2021
Tweet

More Decks by Yuliya

Other Decks in Technology

Transcript

  1. Александр Желубенков
    DS Lead, Ranking & Navigation
    Вы “продоёте теплых кросовок”?

    или как работает поиск в Lamoda

    View Slide

  2. Поиск

    в Lamoda
    Популярный инструмент

    > 100.000 уникальных запросов в день


    Важный продукт

    20% - доля выручки из поиска


    В большом числе кейсов это единственный
    эффективный способ найти релевантные товары:
    d если есть конкретная потребность

    “кеды air force черные”
    d если трудно ориентироваться в каталоге

    “шапки” лежат в категории “Аксессуары”

    View Slide

  3. Особенности
    поиска в fashion-
    сегменте

    Простой язык
    запросов Есть и сложные запросы из
    низкочастотного хвостаa
    H “босоножки женские без
    каблука с открытым носомB
    H “красовка калсниеB
    H “подушки колбасой”
    Структура потока:


    “бренд“

    “категория + гендер”



    “категория + гендер + цвет”
    25%
    22%
    1%

    View Slide

  4. Особенности
    поиска в fashion-
    сегменте

    Узкая предметная
    область
    Какому запросу релевантны все эти товары?







    View Slide

  5. Особенности
    поиска в fashion-
    сегменте

    Узкая предметная
    область
    Какому запросу релевантны все эти товары?







    Американка
    водолазка

    без рукавов
    мужская
    куртка бомбер
    американская
    пройма

    View Slide

  6. Особенности
    поиска в fashion-
    сегменте

    Структура

    в описании
    документов
    Короткие и частично структурированные
    описания товаров
    Контролируем контент - можем управлять
    атрибутами товаров!

    View Slide

  7. поиск “в лоб” не работает?
    Почему

    View Slide

  8. Особенности
    Пользователи привыкли, что поиск должен найти релевантные
    результаты, даже если ввести запрос в неправильной
    раскладке или с ошибками
    “штаны”

    нужна синонимия
    “красовки”,
    “yfqr”(найк)

    опечатки, транслиты,
    раскладка
    “футболки и поло”

    учет сложных

    паттернов
    “условия доставки”

    сервисные запросы

    View Slide

  9. К какому

    решению мы
    пришли
    Два модуля, в которых сосредоточена
    основная логика поиска
    отвечает за понимание
    и разбор запроса
    отвечает за логику
    индексации товара

    View Slide

  10. К какому

    решению мы
    пришли
    Общая логика поиска глазами data scientist-а



    ТОВАР

    и его описание

    View Slide

  11. К какому

    решению мы
    пришли
    Общая логика поиска глазами data scientist-а



    ТОВАР

    и его описание
    КУПИТЬ ТЕПЛЫХ
    КРОСОВОК

    View Slide

  12. К какому

    решению мы
    пришли
    Общая логика поиска глазами data scientist-а



    КУПИТЬ ТЕПЛЫХ
    КРОСОВОК
    ТОВАР

    и его описание

    View Slide

  13. Анализатор запросов
    Как мы понимаем запросы

    пользователей
    Часть 1

    View Slide

  14. Зачем нам

    Search Query Analyzer
    Хотим понимать и разбирать запросы
    пользователей, чтобы:
    Лучше искать (синонимия,
    опечатки, транслиты,
    сервисные запросы, ...)
    На качественном уровне
    анализировать структуру
    потока запросов
    Гибко управлять тем, в
    каких атрибутах следует
    вести поиск

    View Slide

  15. Tokenizer &

    Spell Corrector
    Named Entities
    Extractor
    Entities Tree

    Builder
    Attributes Tree

    Builder
    Этапы логики Search Query Analyzer

    View Slide

  16. Этап 1
    Токенизация
    Раскладка, опечатки
    Нормализация
    “rhjccjdrb” → “кроссовки”

    “кроссовкиnike” → “кроссовки nike”

    “кросовок” → “кроссовок”
    “кроссовок” → “кроссовки”

    “теплых” → “теплый”
    Как работает: словарь
    частотных опечаток + ML
    Как работает: pymorphy2

    View Slide

  17. Выделение
    сущностей
    Переход от слов к именованным сущностям
    Зачем? Чтобы далее на уровне сущностей:
    Этап 2
    … настраивать синонимиy
    … управлять, в каких атрибутах нужно искать разные сущности
    Как работает: внутренняя онтология (база знаний) + поиск по ней с
    учетом транслитов

    View Slide

  18. Синонимия

    и дерево
    сущностей
    Расширение запроса:
    Этап 3
    худи = толстовки (двусторонние синонимы)

    мех → утепленный (односторонние синонимы)
    Как работает: внутренняя онтология (база знаний)

    View Slide

  19. Дерево атрибутов
    В каких атрибутах следует искать сущности:
    Этап 4
    category – {name: 1.0}

    material – {materials: 1.0}

    is_warmed – {attributes: 1.0, description: 0.3}
    Как работает:
    отдельный ручной
    маппинг

    View Slide

  20. В каких атрибутах следует искать сущности:
    category – {name: 1.0}

    material – {materials: 1.0}

    is_warmed – {attributes: 1.0, description: 0.3}
    Как работает:
    отдельный ручной
    маппинг

    Дерево атрибутов
    Этап 4

    View Slide

  21. Индексация и поиск товаров
    Как обогащаются атрибуты товаров и по какой
    логике формируется запрос к Elasticsearch
    Часть 2

    View Slide

  22. Зачем нам

    Search Enricher
    Хотим гибко управлять

    атрибутами товара:
    Обогащать товар
    новыми атрибутами
    Часть логики перенести на
    сторону формирования
    индекса:
    – сложные правила, которые тяжело
    учесть в Search Query Analyzer
    – нормализация текстовых
    атрибутов

    View Slide

  23. Два типа атрибутов

    и логика Search Enricher
    Keyword-атрибуты – для поиска
    по точному совпадению
    Пример - формирование атрибута
    is_warmed:
    Text-атрибуты – для
    полнотекстового поиска
    По текстовым полям будем искать
    нормализованными словами

    IF

    material_filler is not empty

    AND

    ["нет утеплителя", "без утеплителя"] not in material_filler

    THEN

    {"key": "is_warmed", "value": "утепленный"}

    «Футболка выполн из тонк трикотаж »

    → «футболка выполнить из тонкий трикотаж»
    ена ого а

    View Slide

  24. Search enricher
    Keyword fields
    Text fields

    View Slide

  25. Формирование запроса к Elasticsearch
    ВСЕ значимые слова запроса должны быть
    найдены в атрибутах товара (напрямую или
    через синонимию)

    View Slide

  26. Формирование запроса к Elasticsearch
    ВСЕ значимые слова запроса должны быть
    найдены в атрибутах товара (напрямую или
    через синонимию)

    View Slide

  27. Формирование запроса к Elasticsearch
    ВСЕ значимые слова запроса должны быть
    найдены в атрибутах товара (напрямую или
    через синонимию)

    Rel = 1.0 Rel = 0.3

    View Slide

  28. Какие кроссовки показывать

    выше в каталоге?
    “КУПИТЬ ТЕПЛЫХ
    КРОСОВОК”
    Search Logic

    View Slide

  29. Какие кроссовки показывать

    выше в каталоге?
    “КУПИТЬ ТЕПЛЫХ
    КРОСОВОК”
    Search Logic
    Правильного
    ответа нет!
    Правильного
    ответа нет!

    View Slide

  30. Ранжирование каталога строится
    на основании прогноза

    ML-модели, в которой
    используются:
    исторические продажи и конверсии товаров
    доступность размерной сетки
    цены, скидки и другие атрибуты товара
    релевантность товара запросу (при наличии
    поискового запроса)

    View Slide

  31. Развитие поисковой системы

    важно для Lamoda
    Поиск – важный инструмент и в большом числе кейсов это наиболее
    эффективный способ найти релевантные товары
    Успешные A/B-эксперименты
    подтверждают, что мы не только
    помогаем пользователям
    находить товары их мечты,

    но и позитивно влияем

    на показатели бизнеса.
    КУПИТЬ ТЕПЛЫХ
    КРОСОВОК

    View Slide

  32. Над чем работаем сейчас
    и какие есть планы на будущее
    Часть 3

    View Slide

  33. Использование поведенческих
    данных в поиске
    Тельняшки = полосатые кофты + поведенческие данные
    Пример:

    “Тельняшки”

    View Slide

  34. Рекомендации
    на пустой
    поисковой
    выдаче Альтернативные
    запросы
    Товарные
    рекомендации

    View Slide

  35. Не у всех товаров хорошо заполнены
    атрибуты. Обогатим атрибуты, используя
    Computer Vision, и улучшим качество поиска.



    Выделение
    атрибутов

    по фото

    View Slide

  36. Резюмируем
    Поиск в Lamoda – продукт, которым пользуются сотни тысяч
    пользователей ежедневно
    Особенности fashion-сегмента: простой язык запросов, короткие описания товаров и
    узкая предметная область

    View Slide

  37. Резюмируем
    Поиск в Lamoda – продукт, которым пользуются сотни тысяч
    пользователей ежедневно
    Особенности fashion-сегмента: простой язык запросов, короткие описания товаров и
    узкая предметная область
    Основная логика поиска сосредоточена в двух модулях:
    Š Search Query Analyzer - отвечает за разбор и трансформацию запроса пользователя
    в фильтрующий запрос к Elasticsearcr
    Š Search Enricher - отвечает за логику индексации товара

    View Slide

  38. Резюмируем
    Поиск в Lamoda – продукт, которым пользуются сотни тысяч
    пользователей ежедневно
    Особенности fashion-сегмента: простой язык запросов, короткие описания товаров и
    узкая предметная область
    Основная логика поиска сосредоточена в двух модулях:
    Š Search Query Analyzer - отвечает за разбор и трансформацию запроса пользователя
    в фильтрующий запрос к Elasticsearcr
    Š Search Enricher - отвечает за логику индексации товара
    Развитие поисковой системы важно для Lamoda, ведь помогая
    пользователям находить товары их мечты, мы позитивно влияем на
    показатели бизнеса

    View Slide

  39. a.zhelubenkov lamoda.ru
    @
    E-mail
    @topspin26
    Telegram

    View Slide