Рубрики
Без рубрики

Что такое нервный поиск и почему я должен заботиться?

Поиск с помощью AI с меньшими усилиями, большей гибкостью. Tagged с помощью машинного обучения, Python.

Короче говоря, нейронный поиск – это новый подход к получению информации. Вместо того, чтобы рассказывать машине набор правил, чтобы понять, что такое данные, нейронный поиск делает то же самое с предварительно обученной нейронной сетью. Это означает, что разработчикам не нужно писать каждое маленькое правило, экономя время и головные боли, в то время как система тренируется, чтобы стать лучше, когда оно продолжается. Одна из таких компаний, предоставляющих нейронную структуру поиска с открытым исходным кодом,-это Джина Анкет

Фон

Поиск – это большой бизнес, и с каждым днем становится все больше. Всего несколько лет назад поиск означал ввести что -то в текстовое поле (ах, те головы Yahoo! и Альтависта). Теперь поиск охватывает текст, голос, музыку, фотографии, видео, продукты и многое другое. Незадолго до начала тысячелетия было всего 3,5 миллиона поисков в Google в день. Сегодня (в соответствии с верхним результатом для поиска 2020 Google Searchs в день ), эта цифра может достигать 5 миллиардов и расти, более чем в 1000 раз больше. Это не говоря уже о всех миллиардах статей Википедии, продуктов Amazon и плейлистов Spotify, которые каждый день обыскивали миллионы людей со своих телефонов, компьютеров и виртуальных помощников.

Просто посмотрите на стратосферный рост в Google запросах – и это только до 2012 года!

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

Примечание: Эта статья основана на Пост Хан Сяо с его разрешения. Проверьте, если вы хотите более техническое введение в нейронный поиск.

Символический поиск: правила – это правила

Google-огромная поисковая система общего назначения. Другие компании не могут просто адаптировать его к своим потребностям и подключить к своим системам. Вместо этого они используют рамки, такие как Эластичный и Apache Solr , символические системы поиска, которые позволяют разработчикам писать правила и создавать трубопроводы для поиска продуктов, людей, сообщений или того, что нужно компании.

Давайте возьмем Shopify Например. Они используют Elastic для индекса и поиска миллионов продуктов по сотням категорий. Это не может быть сделано из коробки или с помощью поисковой системы общего назначения, как Google. Они должны принимать упругие и записать конкретные правила и трубопроводы для индекса, фильтрации, сортировки и ранжирования продуктов по различным критериям, и преобразовать эти данные в символы, которые система может понять. Отсюда и название, Символический поиск Анкет Вот Великие , популярный магазин Shopify для кроссовок:

Мы с вами знаем, что если вы ищете Red Nike КОНДЕКСА Вы хотите, ну, Red Nike Cranders. Это просто слова для типичной системы поиска, хотя. Конечно, если вы введете их в, вы надеемся, что получите то, о чем вы просили, но что, если эти кроссовки помечены как тренеры ? Или даже помечен как Скарлет в этом отношении? В таких случаях разработчик должен писать правила:

  • Красный это цвет
  • Скарлет является синонимом красного
  • Nike это бренд
  • Кроссовки тип обуви
  • Другое имя для кроссовок – тренеры

Или выражено в JSON как пары ключевых значений:

{
    "color": "red",
    "color_synonyms": ["scarlet"],
    "brand": "nike",
    "type": "sneaker",
    "type_synonyms": ["trainers"],
    "category": "footwear"
    }

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

Но что, если пользователь типы nikke вместо nike , или поиск рубашкиs ), а не рубашка ? В языке так много правил, и люди все время ломают их. Чтобы получить эффективные символы (то есть, зная, что nikke действительно означает {"Бренд": "nike"} ), вам нужно определить много правил и объединить их в сложный трубопровод:

Недостатки символического поиска

Вы должны объяснить каждый. Маленький. Вещь

Наш пример поискового запроса выше был Red Nike Sneaker Man Анкет Но что, если наш поисковик – британский? Британец будет вводить Красный Nike Trainer Man . Нам придется объяснить нашей системе, что кроссовки и тренеры – это одно и то же с разными именами. Или что кто -то ищет LV Сумочка ? Систему нужно будет сказать Lv означает Louis Vuitton Анкет

Делать это для каждого вида продукта, занимает навсегда И всегда есть вещи, которые падают между трещинами. А если вы хотите локализоваться на других языках? Вам придется пройти через это снова и снова. Это означает много тяжелой работы, знаний и внимания к деталям.

Это хрупкое

Текст сложный: как мы объяснили выше, если пользователь типит в Red Nikke Sneaker Man Классическая поисковая система должна признать, что они ищут красный (цветный) Nike (бренд с исправленным правописанием) (тип) для мужчин (подтип). Это делается путем интерпретации строки поиска и деталей продукта символам через конвейер, и эти трубопроводы могут иметь серьезные проблемы.

  • Каждый компонент в цепочке имеет выход, который подается в качестве входного вдоль следующего компонента. Так проблема в начале процесса и сломает всю систему
  • Некоторые компоненты могут принимать входные данные от нескольких предшественников. Это означает, что вы должны вводить больше механизмов, чтобы остановить их блокировать друг друга
  • Трудно улучшить общее качество поиска. Просто улучшение одного или двух компонентов может привести к отсутствию улучшения фактических результатов поиска
  • Если вы хотите искать на другом языке, вы должны переписать все языкозависимые компоненты в разработке, Увеличение стоимости технического обслуживания

Нейронный поиск: (до-). Объяснять

Более простым способом будет поисковая система, обученная существующим данным. Если вы готовите систему на достаточных различных сценариях заранее (то есть предварительно обученная модель), она разрабатывает обобщенную способность находить результаты, соответствующие входам, будь то цветы , Линии из Южного парка , или Покемон Анкет Вы можете подключить эту модель непосредственно к своей системе и сразу начать индексацию и поиск.

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

from jina.flow import Flow
f = (Flow()
        .add(name='my-encoder', image='jinaai/hub.examples.my_encoder',
             volumes='./abc', yaml_path='hub/examples/my_encoder/my_encoder_ext.yml', 
             port_in=55555, port_out=55556)

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

По сравнению с символическим поиском, нейронного поиска:

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

Нейронные поиски работают?

Поиск «работает», если он понимает и возвращает результаты качества для:

  • Простые вопросы: Как поиск «красный», «nike» или «кроссовки»
  • Составные запросы: Как “Red Nike Cronkers”

Если это даже не может сделать это, нет смысла проверять такие модные вещи, как проверка орфографии и способность работать на разных языках.

В любом случае, меньше говорить, больше поиска:

🇬🇧 nike
🇩🇪 nike schwarz (different language)
🇬🇧 addidsa (misspelled brand)
🇬🇧 addidsa trosers (misspelled brand and category)
🇬🇧 🇩🇪 kleider flowers (mixed languages)

Итак, как вы можете видеть, нейронный поиск хорошо справляется!

Сравнение символического и Нейронный поиск

Итак, как поиск нервных нейродов сравнивается с действующим чемпионом, который является символическим поиском? Давайте посмотрим на плюсы и минусы каждого:

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

Попробуйте НЕРО

Нет лучшего способа тестирования технологии, чем погружение и игра с ней. Джина предоставляет предварительно обученные изображения Docker и Jinabox.js , простой в использовании фронт-конце для поиска текста, изображений, аудио или видео. Там нет примера поиска продукта (пока), но вы может Ищите больше беззаботных вещей, таких как Ваш любимый покемон или Линии из Южного парка Анкет

Примечание: первоначально опубликовано в Середина

Оригинал: “https://dev.to/alexcg/what-is-neural-search-and-why-should-i-care-2gpd”