Если попробовать найти через поисковик какую-либо фразу или значение слова, то вы, наверняка, сразу получите релевантный ответ. Поисковый сервис под вашим запросом просто выдаст: «Возможно, вы имели ввиду» и подскажет варианты написания фразы, даже если в поисковой строке было напечатано слово на русском языке, но в английской раскладке клавиатуры. В ранжировании запросов такой поисковый сервис опирается на миллионы просмотров результатов такого же запроса, а также ссылки с других источников или какие-либо другие материалы.
Совсем по-другому обстоит дело с поиском товара на сайте электронной коммерции. Запросы здесь ограничиваются поиском по ключевым фразам с учетом морфологической близости, но на этом функционал технологии поиска заканчивается. Подобный поиск не способен найти нужный товар если была допущена опечатка, перепутаны раскладки клавиатуры, использован транслит или все вышесказанное в комбинации. Чтобы решить эту проблему, в DAR создали свою систему «умного поиска» - новый поисковый компонент в составе сайта Forte Market. Платформа «Умного поиска» предлагает расширенные возможности по сравнению с простым поиском и включает в себя инструмент внутреннего индексирования сайта, который помогает пользователям находить нужные товары на сайте и получать релевантную выдачу запросов. Рассказываем подробней, что такое «умный поиск» и как он может помочь бизнесу.
Что это такое?
Умный поиск от DAR - это системное решение, которое включает в себя инструмент внутреннего индексирования сайта, часто напоминающего алгоритмы поисковых систем. Система учитывает опыт остальных пользователей, чтобы показывать наиболее подходящие предложения. Алгоритм понимает смысл написанного, даже если запрос напечатан в английской раскладке и выдает наиболее релевантные для пользователя предложения вверху списка. Кроме того, алгоритм умного поиска помогает не только индексировать слова или фразы, но и вносить новые слова в базу. В сравнении с обычным поиском через соответствующие сервисы, функционал умного поиска намного шире. В случае использования smart search в маркетплейсе, система учитывает совпадение позиции товара.
Как это работает?
Целью проекта Smart search стала возможность предоставить систему предложений (Search suggest) при поиске на сайте Forte Market. Система поиска при это должна была учитывать различные помехи, вызванные, к примеру, опечатками при наборе поискового запроса. Самым простым методом определения ошибки стал поиск слова в заранее созданном словаре, а в случае, если слово уже в нем присутствует, все еще остается вероятность, что оно содержит ошибку или было трансформировано в другое слово. Например, если при вводе «iPhone» пользователь мог пропустить первую «i», то мы уже получаем другое слово. В процессе исправления слова очень полезно наличие контекста, благодаря которому алгоритмы смогут предложить более качественные результаты.
Во время работы над «Умным поиском» были разработаны модели и реализованы алгоритмы для внедрения дальнейших улучшений в работу сервиса подсказок при поиске. Суммарно, все этапы работы состоят из улучшения поиска исправления ошибок, сохранения истории поиска, а также учета принадлежности товара определенному городу.
В качестве модели нахождения и исправления ошибок, был выбран вероятностный подход дополненный метрикой расстояния слов на основе алгоритмов Хемминга и Дамеро-Левенштейна. Изначально рассматривалась возможность применения фонетических алгоритмов, но после некоторых тестов было обнаружено, что такие алгоритмы более подвержены к выводу результатов-шумов.
Альтернативный подход
На данный момент популярно решать подобные задачи c применением искусственных нейронных сетей. Но с другой стороны, подход, связанный с использованием искусственных нейронных сетей, связан с проблемой подготовки большого набора обучающих данных, а программная генерация обучающего набора, может не отражать ошибки, которые допускают люди при использовании сервиса поиска. Тем не менее, не исключается, что на следующих этапах будет использованы наработки искусственных нейронных сетей для поиска исправления и выдачи подсказок. Именно для этого разрабатываемая версия сервиса поиска ошибок содержит модуль сохранения истории поиска.
Можно сказать, что специалисты по Big data и машинному обучению научили поиск «думать». Например, алгоритм без подсказки понимает, что в запросе «iphone Xs розовый» основная смысловая нагрузка содержится в словах «iphone Xs» и может предложить товар другого цвета при отсутствии товара розового цвета.
Структура сервиса «Умный поиск» состоит из нескольких модулей, так что запрос, введенный пользователем, проходит через следующие этапы: проверка раскладки клавиатуры, исправление ошибок и опечаток и генерация рекомендаций к конкретными товарами. В дополнение к опечаткам и определению корректной раскладки клавиатуры, сервис понимает транслит.
Модуль Keyboard layout check
Модуль предназначен для определения корректности соответствия набранного слова и текущей раскладки клавиатуры пользователя. Алгоритм модуля позволяет выявлять слова, которые были набраны с использованием некорректной раскладки и предлагать исправления написанного слова в корректном варианте. Например, если пользователь напечатает слово «фззду», изначально имея ввиду слово «apple», этот модуль определит, что слово «фззду» набрано неверно. Модуль использует статистические подходы, основанные на частоте встречаемости последовательности букв в русском и английских языках. После выполнения тестов слов из базы данных товаров Forte Market, было определено, что точность метода оценки корректности раскладки данным методом составляет до 96%. Результаты работы модуля, массив слов входного предложения-запроса передаются следующему модулю Spell correction.
Модуль Spell correction
Модуль предназначен для определения корректного состава входного запроса. При работе модуля используются метрики схожести со словами из словаря, а также используется подход Naive Bayes для расчета вероятности набора конкретного слова. Дополнительными метриками схожести является расстояние Хемминга и расстояние Дамеро-Левенштейна. Оба подхода находят величину min. edit distance, то есть сколько минимально нужно произвести операции для трансформации одного слова в другое. Например, в слове «samsun» система дополняет слово недостающей буквой «g», а в случае с опечаткой и утроенной буквой «p» в слове «appple», система удаляет лишние буквы. При работе модуля было учтено то, что в процессе набора некоторые слова могут быть не дописаны или для еще не полного предложения необходимо сделать подсказку.
Модуль TF-IDF showcase filter
Модуль предназначен для определения конкретных товаров из базы и их показа пользователям в виде showcase. Модель TF-IDF используется для выделения из предложения основных и вспомогательных элементов. Основными элементами здесь являются слова, которые однозначно способны идентифицировать товары, а вспомогательные элементы - это общие характеристики, которые способны в дальнейшем конкретизировать товары. К примеру, «apple iphone 7 белый 64GB». Здесь слова «apple», «iphone» и «7» относятся к основному классу, а вот слова «белый» и «64GB» - это вспомогательный класс.
После определения основных элементов в запросе и получения множества товаров, содержащих в своем описании вышеупомянутые элементы, происходит поиск пересечения множества товаров. В дальнейшем данное пересечения множества товаров опционально сокращается с использованием элементов из вспомогательного набора слов.
Как технология работает сейчас?
Несмотря на все разработки, нельзя сделать поисковую систему так, чтобы она хорошо искала то, что постоянно меняется, но сама была бы неизменной. Как раз поэтому DAR продолжает улучшать свою систему smart search, чтобы пользователям становилось лучше. В целом, новая версия сервиса поисковых подсказок представляет улучшения в виде отсутствия частого обращении к базе данных при определении раскладки клавиатуры, отсутствия таблиц биграмм-триграмм-n-грамм, то есть поисковая система не привязана к порядку слов в запросе, а также выполняет более быстрый поиск товара на сайте.