Как стать автором
Поиск
Написать публикацию
Обновить

Я могу один раз ошибиться! Как разработать нейронку для исправления опечаток в поиске

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.1K
Всего голосов 8: ↑8 и ↓0+10
Комментарии5

Комментарии 5

Как данная нейросеть работала бы на примере опечатки 'дырококл'?

Данный запрос модель исправляет в "дырокол".

Интересная статья. А насколько критичной была проблема опечаток, были ли какие-то метрики по которым отслеживали насколько они уменьшали продажи? Просто увидел замедление алгоритма в 13 раз (и я так понял вам это ок), и стало интересно сколько такой трейдофф оправдан на более высоконагруженных сервисах - то есть не окажется ли так, что после перехода на мл решение затраты на дополнительные вычислительные мощности превысят ожидаемые профиты?

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

Про замедление алгоритма - нам такое время работы было "ок", чтобы запустить А/Б тест и посмотреть на онлайн метрики. Всегда увеличение времени ответа негативно сказывается на пользовательском опыте, но в оффлайне такое невозможно оценить, поэтому будем смотреть на метрики после А/Б и работать над ускорением алгоритма в любом случае.

Спасибо за публикацию. Вы не сравнивали качество своего решения с моделями SAGE v1.1.0 (https://www.youtube.com/watch?v=XRp0aGWwz4w)? Не могли бы описать, почему время исправления опечаток (500 миллисекунд ) вы считаете критичным - каково соотношение количества уникальных опечаток ко всем опечаткам в имеющихся у вас наборах данных (логов и т.п.), ведь если за года работы накопилась приличная база опечаток-исправлений (+прогнать синтетическую генерацию-исправление опечаток по критичным для поиска сущностям) и поместить её в кеш (от memcached, redis и т.п.) или прямо в словари mapping'a текстовых полей в elasticsearch (синонимы/поисковые подсказки), то задержки будут минимальны, а качество контролируемо (для кеша/словарей можно будет легко вручную раз в день/неделю/месяц валидировать/вносить/накапливать корректировки, как для ошибочных исправлений, так и для новых, внезапно появившихся популярных понятий (например, "массажеры для тапания хомяка"), на которых модель не училась и не сможет адекватно исправить), при этом, если опечатка окажется уникальной (в очень небольшом % случаев, т.к. в словах возможных опечаток не бесконечно с учетом длины слов и расположения использующихся клавиатуры и со временем кеш будет полнее, а уникальных опечаток меньше), то пользователь получит свой результат поиска, а "лишних 400 миллисекунд подождать" будут не так огорчительны и мотивировать писать правильно.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий