Как некоторые из вас, возможно, уже знают, я занимаюсь ИИ более 4 лет. Моя диссертация была основана на моделях Seq2Seq, которые в то время были бумом обработки естественного языка (NLP).

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

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

Что это на самом деле значит? Зачем нам это нужно? В чем сила нейронного поиска? Каков потенциал Джины?

Что ж, чтобы ответить на все эти вопросы, мне сначала нужно, чтобы вы подумали о том, сколько раз вы что-то ищете в Интернете. Вам могут прийти в голову моменты, когда вы ищете мем в браузере или информацию о вашем любимом исполнителе. Тем не менее, поиск не ограничивается поиском чего-либо в Google.

Если у вас есть учетная запись Twitter, вы, возможно, искали пользователя или тенденцию хэштега в окне поиска Twitter, или, может быть, вы похожи на меня, и вам нравится искать в Instagram «места, доступные для instagram», чтобы добавить их в свой пост. список ведра пандемии.

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

Я спросил своих друзей, что они ищут в своих повседневных задачах на работе, и, как я ожидал, поиск является важным компонентом их успеха и продуктивности. Один из них - дизайнер; он создает веб-страницы, а также разрабатывает маркетинговые кампании для крупных компаний. Он постоянно ищет стоковые фотографии, чтобы использовать их в своих проектах. Другой друг - инженер-механик в многонациональном автопроизводителе. Он каждый день ищет автозапчасти и инструменты.

Но какое это имеет отношение к нейронному поиску?

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

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

Как это работает?

Предположим, мы являемся розничной компанией, которая только что интегрировала Jina с функцией поиска в веб-браузере.

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

В идеальном мире пользователь пишет все правильно и аккуратно, но, к сожалению, в реальном мире это не так. Действительно, очень часто пользователи допускают такие ошибки:

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

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

Все эти общие проблемы решаются системными архитектурами, такими как Jina.

Сначала в архитектуру нейронной сети Джины поступают входные данные. Это означает не только текст, который написал пользователь, но и дополнительную информацию, которая может потребоваться системе поиска нейронной информации для интерпретации и представления в векторном пространстве, например атрибутов или изображений. Затем некоторые кодеры вступают в действие, преобразуя эту информацию в векторы, которые затем используются для вычисления их сходства в метрическом слое. Поскольку мы не только хотим знать, насколько они похожи или несходны, но и как они ранжируются, слой потерь вычисляет разницу их парных сходств, которая используется в качестве обратной связи для обучения кодировщиков с помощью обратного распространения.

Такой подход к поиску выгоден для всех:

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

Это было всего лишь краткое введение в Neural Search и Jina. Если вы хотите узнать больше о Jina, загляните в их документацию и примеры.

Если вы хотите получить более техническое представление о нейронном поиске, проверьте этот пост. Если вы хотите сравнить нейронные поисковые системы с символьными поисковыми системами, отметьте это.

[1] Что такое Jina и Neural Search?
[2] Создание кросс-язычного сквозного поиска продуктов с помощью Tensorflow