Продуктовый подход в век победившего ИИ: как сделать удобные подсказки в товарном поиске​

Сооснователь и CEO Detectum Лев Гершензон — о том, из какого сора могут вырастать новые продукты в технологических командах.

Мы занимаемся поиском, товарным поиском для интернет-магазинов. И задача, которую мы решаем, очень простая — сделать так, чтобы каждый посетитель магазина мог быстро и легко найти и купить необходимые товары. Эта задача старая, известно множество метрик, по которым можно оценивать качество поискового движка.

Развитие и улучшения возможны в основном в технологической области — как оптимально использовать для алгоритмов поиска и ранжирования различные пласты по-настоящему больших данных, накопленных тысячами магазинов и миллионами их посетителей.

Но я сегодня хочу рассказать о том, что и в этой скучной области есть место продуктовому творчеству. Метрики — необходимый набор измерительных инструментов, которые позволяют постоянно настраивать ваш поисковый и навигационный двигатель, понимать, стало ли лучше и насколько.

Но если не забывать, в каких ситуациях и сценариях оказывается пользователь, какую задачу ему нужно решить, можно не только находить и придумывать новые метрики, способные точнее описывать результаты, но и открывать новые способы её решения.

Рассмотрим один модуль поисковой системы — поисковые подсказки, или саджест. Это блок, который появляется из поисковой строки, когда пользователь начинает вводить запрос.

Изначально саджест появился в поисковых системах и представлял список поисковых запросов, начинавшихся с уже введённой пользователем последовательности букв. Запросы отсортированы в порядке убывания частотности в логе — чем чаще запрос задавали другие пользователи, тем выше вероятность, что именно его хотят задать и в этом случае.

Если задача поиска в целом — сократить и облегчить путь пользователя до желаемого ответа или товара, то саджест помогает правильно сформулировать запрос. Его главная магия — угадать мысли с первых введённых букв (потому что правильная формулировка задачи — это половина дела).

Вскоре стало ясно, что можно отойти от жёсткого принципа совпадения начала подсказок с введённой пользователем подстрокой. Алгоритмы научились понимать, когда запрос задаётся в другой раскладке или когда вероятна опечатка в уже введённой части — в этих случаях среди подсказок стали показываться правильно написанные запросы.

Но когда саджест заработал и им стали активно пользоваться, разработчики догадались, что на часть запросов можно давать ответы сразу, минуя традиционную поисковую выдачу. Так появился саджест, обогащённый ответами.

Отдельный вид саджеста — «ответный», а не «запросный»: в выпадающем списке показаны объекты определённого типа, названия которых начинаются с введённых пользователем букв или содержат их. Хорошим примером тут может быть Linkedin, в котором ищут в основном людей или компании по именам и названиям.

Поисковый саджест в электронной коммерции

Товарный поиск в интернет-магазинах и маркетплейсах, будучи частным случаем, имеет три существенных особенности.

  • Конечная цель пользователя, как правило, не получить ответ или найти документ с нужной информацией, а совершить покупку.

  • Все объекты лежат в каталоге, и навигация по каталогу — последовательный переход по дереву категорий, без введения запроса в поисковую строку — всё ещё популярный способ найти нужный товар даже в очень больших магазинах с миллионами товаров.
  • Каждый товар имеет частично структурированное описание, кроме категории, это как минимум бренд или производитель.

Эти особенности не только отразились на виде поисковой выдачи (наличие фильтров, например, уже обязательно в любом ecommerce-проекте), но и повлияли на блок с подсказками при наборе запроса.

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

Правда, не всегда в этом просматривается практическая ценность:

Большая аудитория со своими привычками — мощный фактор, сдерживающий инновации и эксперименты. Страшно предложить что-то новое, когда и старое вроде работает. Есть риск, что новое ухудшит работающее старое (анекдот про сына программиста, который спрашивает у отца, почему солнце встаёт на востоке, а садится на западе, явно родился из жизненного опыта).

Самое хитрое и сложное — изменяя пользовательские интерфейсы, не потерять ничего, что хорошо и удобно работало раньше, и при этом добавить новые возможности, чтобы лучше решать старые проблемы.

Молодым игрокам в этом отношении несколько проще: у них нет этого гнёта большой инертной аудитории, зато, наоборот, есть необходимость выделиться. Особенно активны тут компании индустрии fashion, где визуальное восприятие сильнее вербального.

Тут я бы выделил несколько решений. Во-первых, это instant search от компании Algolia. Это и не подсказки вовсе, а сразу появляющиеся результаты поиска.

Безусловный плюс этого подхода в том, что если машина по первым буквам угадала ваш запрос, то по сравнению с обычным саджестом, магия усиливается — вы сразу видите нужные товары.

Тут же, как это часто бывает, скрыто и его уязвимое место: если, как в моём случае, пользователя не поняли (я хотел посмотреть парки от Lacoste, а не товары разных категорий со словом Paris в названии), не будет ни релевантных товаров, ни нужного запроса среди подсказок.

Насколько оправданно такое решение для конкретного магазина, можно сказать, только проанализировав лог запросов и сравнив успешные и ложные срабатывания. Ещё любопытно узнать, почему компания Google, которой мы и обязаны этим продуктом, от instant search отказалась.

Встречается instant, скрещённый с категорийной выдачей и фильтрами:

Правда, мало кто кроме Algolia умеет делать его по-настоящему быстрым, и есть риск получить одни минусы без плюсов. И логика категорийных и брендовых фильтров тут отличается от традиционных — они не имеют никакого отношения к показанным ниже товарам.

Бывают и просто названия брендов и категорий в форме саджеста:

Как мы уже писали выше, если в магазине преимущественно задают запросы категорийные и брендовые, такое решение может быть вполне оправданным, оно сокращает время и усилия пользователя от идеи продукта до получения релевантных предложений на экране.

Разнообразия скорее всего больше, мы не претендуем на исчерпывающее исследование, но не можем пройти мимо «особого русского пути». На российском рынке получил распространение такой комбинированный запросно-ответный саджест, содержащий запросы, названия брендов, категорий, превью товара (или товаров) — какую-то комбинацию из вышеназванного или всё вместе.

Тут надо отметить два существенных недостатка у предложенных решений. В «ответном» саджесте — когда показываются модели, содержащие введённые пользователем символы, — в случае широкого запроса, например названия категории (сравни «телевизор»), будут показаны названия, скажем, десяти товаров из имеющихся десятков и тысяч.

И даже если эти товары отсортированы по популярности, вероятность того, что пользователь купит один из предложенных, минимальна. Тем более список названий моделей никак не помогает выбрать между ними.

Запросно-категорийно-товарный саджест очевидно ближе к решению пользовательской задачи. Категории (для категорийных запросов) помогают в навигации, товары (при достаточно специфичном запросе) могут оказаться именно тем, что пользователь искал.

Если ни то ни другое не сработало, то остаётся блок с традиционными запросными подсказками. Основная проблема здесь в том, что теряется лёгкость и скорость использования: три блока никак не связаны между собой, каждый нужно изучать, чтобы понять, есть ли там то, что тебе нужно. В отличие от традиционного списка запросов, который просматривается сверху вниз.

Тут уже можно сформулировать две основные сложности, которые стоят на пути попыток обогатить саджест дополнительной информацией. Во-первых, теряются лёгкость и прозрачность традиционного подхода — сканирование списка запросов до нужной формулировки.

Во-вторых, красивое решение, которое может быть удобным и полезным для определённого класса запросов (например, поиск конкретной модели), часто оказывается неудобным для другого (например, выбора из большого ассортимента товаров определённого типа).

Попробуем детализировать, что полезного может сделать саджест в ecommerce-проекте:

  • Как можно быстрее угадать и показать запрос, который был в голове у пользователя.
  • Если в голове не было чёткой формулировки, подсказать подходящую.
  • Дать понять, есть ли в наличии нужные товары или товары, которые могут подойти.

  • Если потребность слишком неопределённая («нужен пылесос»), то показать, как её можно уточнить.
  • Если нужен какой-то конкретный товар и этот товар есть в наличии, показать превью товара с важной для принятия решения информацией, возможность перейти на карточку или сразу положить товар в корзину.

Как видно даже из этого короткого перечня, к основной задаче — чтению мыслей пользователей — добавились и две базовых поисковых задачи: быстро понять, есть ли в ассортименте нужные или похожие на нужные товары, и уточнить широкий запрос (за это на странице выдачи отвечают фильтры).

И если вторая задача решается алгоритмически — кластеризацией похожих запросов, дающих одинаковые или похожие результаты, — то первая помогла придумать простое интерфейсное решение.

Суть его в том, чтобы сохраняя фокус на угадывании запроса, снабдить каждую подсказку превью выдачи топовыми товарами и (по желанию) фильтрами по бренду.

Вот простая реализация только с товарами.

Если вернуться к нашему списку задач, то видно, что фокус на подсказках самых вероятных запросов, соответствующих введённому префиксу, сохраняет главную магию саджеста — угадывать недосформулированный вопрос пользователя.

Наличие формулировки в подсказках говорит о том, что у магазина есть релевантные ответы — за это отвечает алгоритм формирования подсказок, который отбирает из пользовательского лога только те, на которые есть высокорелевантные ответы в актуальной базе.

При этом добавление топовых товаров справа даёт представление о том, что пользователь увидит, кликнув по подсказке, эти товары будут в топе выдачи. И топовыми товарами снабжён каждый запрос в списке, то есть перемещаясь по списку кнопками, стрелками или мышкой, пользователь за секунды может увидеть превью десятка запросов.

Такое решение и позволяет сэкономить клик пользователю, если алгоритм ошибся, и предлагает запрос, по которому нет релевантных товаров.

​По картинкам и названиям товаров видно, что чашки с блюдцем и сахарницы по запросу «чайная пара и сахарница» не получить

Также можно сократить на один шаг путь к цели в другом крайнем случае: если все релевантные запросу товары поместились в блоке саджеста, можно сразу перейти к карточке товара, вообще минуя поисковую выдачу, она ничего нового не добавит.

​Видно, что в магазине есть всего две жёлтых кружки

Разумеется, все наши соображения, почему хорош и удобен наш подход (а главное в нём — это сохранение фокуса на запросах с иллюстрацией каждого топовыми товарами) и почему не очень хорошо показывать в блоке саджеста два-три не связанных между собой блока — всего лишь гипотезы, предположения.

Их надо проверять А/В-тестами, а каждое решение измерять метриками — как общими в электронной коммерции (конверсия, стоимость сессии, оборот), так и (в идеале) специальными саджестовскими (конверсия блока саджеста, время до клика в блок саджеста, количество набранных символов до клика и так далее).

Но разнообразие вариантов реализации очень велико (видно даже из этого текста, хотя мы совсем не претендуем на полноту), а качественный А/В-тест — дорогое удовольствие как по ресурсам на реализацию, так и по времени проведения.

Поэтому моделирование сценариев использования продукта, основанное на анализе пользовательских логов, с проверкой прототипа на соответствие сформулированным задачам, — необходимый этап. Особенно если у вас нет бесконечных человеческих и временных ресурсов, чтобы, как Марисса Майерс, обосновывать и проверять каждый пиксель тестом на пользователях :)

Для предварительной оценки жизнеспособности решения перед запуском А/В-теста можно предложить подход, который широко используется для офлайновой оценки качества поисковых алгоритмов. Выделить (или взять уже готовые) корзины запросов определённых классов (модельные, категорийные, тип и вендор и другие), для каждой взять несколько запросов и посмотреть, насколько предложенное решение облегчает и ускоряет достижение цели.

Внимательный читатель, дойдя до этого места, заметит, что все примеры и скриншоты касались десктопных версий, тогда как жизнь в интернете во всём мире в основном происходит на мобильных устройствах.

Для электронной коммерции это также верно: не только основной трафик, но и большинство покупок во всём мире приходится на смартфоны, а в отдельных регионах этот показатель уже превышает 90%. Поисковый опыт на мобильных сильно отличается от десктопного из-за конструктивных отличий устройства: меньший экран, существенная часть которого при наборе занята клавиатурой.

При этом, если правильно сформулировать задачи и смоделировать ситуации использования, можно постараться и тут найти оптимальное решение.

Вот наш вариант, в котором мы попытались совместить подсказки запросов и показ превью выдачи для первого запроса. (Вариант с показом превью по тапу на запросы ниже показался слишком сложным, но и он заслуживает теста.)

Но и тут явно есть возможности для создания чего-то нового и прекрасного. В заключение хотелось бы сказать, что, конечно, не стоит изобретать велосипед.

Но хорошие метрики с качественным анализом пользовательских сценариев лучше, чем просто хорошие метрики. И если входные данные и условия эксплуатации меняются, то можно доработать даже такое гениальное изобретение, как велосипед.

P. S. Нам повезло: мы получили статистически значимое подтверждение преимущества нашего запросно-товарного саджеста в эксперименте. Теперь можно, немного выдохнув, заниматься реализацией десятка намеченных улучшений.

Вот так выглядит заветная мечта каждого экспериментатора — А/А-тест сошёлся, а экспериментальный сегмент показывает рост более 10% по основным «продающим» метрикам.

​Нам такую картинку удаётся получить нечасто, поэтому невозможно было ей не поделиться
0
8 комментариев
Написать комментарий...
Виктор Курганов

У вас какой период тестирования был?

Ответить
Развернуть ветку
Lev Gershenzon
Автор

В этом случае хватило 2 недель, чтобы аа-тест сошёлся.

Ответить
Развернуть ветку
Виктор Курганов

У вас есть мануал по настройке АБ тестирования через Google Analytics?

Ответить
Развернуть ветку
Lev Gershenzon
Автор

Вот есть такой полезный документ от коллег

https://retailrocket.ru/blog/podvodnyie-kamni-a-b-testirovaniya-ili-pochemu-99-vashih-split-testov-provodyatsya-neverno/

Ответить
Развернуть ветку
Виктор Курганов

Спасибо! 
А есть пошаговый план, что куда кликать как делать для новичков?

Ответить
Развернуть ветку
Константин Леонтьев

Тоже буду благодарен за ссылку на подробное руководство

Ответить
Развернуть ветку
Николай Истомин

Интересная штука!

На сайте цен нет — это решается индивидуально?

Решение только для крупных игроков, типа М’Видео, или мелкие магазины тоже могут быть вашими клиентами?

Ответить
Развернуть ветку
Lev Gershenzon
Автор

Спасибо. Стандартные тарифы есть, но оптимальное предложение стараемся делать индивидуально.

Чем крупнее магазин, тем быстрее и заметнее будет эффект от хорошего поиска, но никаких ограничений у нас нет. Среди наших клиентов есть магазины и с тысячей запросов в день. 

Ответить
Развернуть ветку
5 комментариев
Раскрывать всегда