Всем известно об эпохе машинного обучения и нейросетях, но мало кому понятно, как эти «гости из будущего» влияют на наш стандартный день.
Поисковые системы используют нейронные сети — технологию, которую называют искусственным интеллектом, так как она непрерывно обучается сама по себе, а также основана на принципе передачи информации и принятия решений, которые схожи с нейронами человеческого мозга.
Нейросетевые технологии предназначены для воспроизведения неосознанных мыслительных усилий человека (например, человек плохо знает, как он распознает цвет предмета). Такого рода технологии используются для распознавания каких-либо событий или предметов. С их помощью можно воспроизвести многочисленные связи между множеством объектов.
И этот самый машинный интеллект со многими задачами справляется лучше, чем такие алгоритмы, как
BM25, которые просто анализируют соответствие запроса тексту заголовка.
Сейчас нейросети крайне эффективны при поиске картинок и распознавании звуков в словах — графическая (или аудио-) информация преобразуется в вектор в N-мерном пространстве, и этот вектор сравнивают со многими другими векторами, которые также являются графической (или аудио-) информацией. Таким образом и находят подходящие картинки, преобразуют запись в написанный текст.
Однако при поиске текстовой информации все несколько иначе. Нельзя просто перевести текст в вектор.
Так, сначала текст разбивается на триграммы (палех = па, але, лех, ех), для каждой полученной единицы вводится свой уникальный код, и полученная информация уже представляется в виде вектора.Между различными векторами появляются неочевидные связи различной жесткости. Добавляя в нейронную сеть в качестве входящих данных пользовательский запрос и заголовки документов, алгоритм уже дает первые результаты. Затем модель многократно тренируется на различных входных данных, в том числе и на результатах прошлых тренировок.
В конечном итоге могут устанавливаться связи между словами запроса, всем запросом целиком и документами в поисковом индексе, а, поскольку алгоритм работает с векторами, соответствие может быть установлено даже между различными языками.