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

Когда документы стали доступны в онлайн-репозиториях, количество проиндексированных документов начало расти, превышая пределы физического хранилища. То же самое относится к количеству продуктов, предлагаемых сайтами электронной коммерции, или к контенту, доступному через онлайн-сервисы потоковой передачи.

Пользователи, как правило, предпочитают находить все в одном месте, и большинству из них нравится выбирать из более подходящих альтернатив, поэтому поставщикам услуг необходимо адаптироваться. Глобальные сервисы (такие как Google, Amazon, Netflix, Spotify), где пользователи могут найти практически все, находятся на подъеме. Одним из самых мощных инструментов, обеспечивающих их глобальное господство, является их высокоразвитая персонализация на основе методов машинного обучения. Это рекомендательные системы и персонализированный поиск.

Рекомендательные системы позволяют пользователям находить в Интернете соответствующие документы, продукты или контент. Часто предметы, которые могут понравиться пользователям больше всего, спрятаны глубоко среди миллионов других предметов. Пользователи не могут найти такие предметы непосредственно через поисковую систему, потому что они редко знают их ярлык или могут даже не знать об их существовании.

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

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

Геолокация пользователя может значительно сузить возможные результаты поиска и рекомендаций. В Recombee вы можете, например, выбрать рекомендовать только те элементы, которые находятся в определенном радиусе от местоположения пользователя. Кроме того, вы можете повысить вероятность того, что элемент будет рекомендован, если он географически ближе к данному пользователю.

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

Некоторый процент пользователей (обычно менее 10% активных сеансов, в зависимости от доступности строки поиска, качества и видимости рекомендаций) желают сузить результаты поиска с помощью текстового запроса ( даже если это всего несколько символов). Их намерение может заключаться в том, чтобы найти определенную категорию элементов или найти конкретный напрямую, просто зная ярлык элемента, который они ищут. Вводимый ими текст называется запросом пользователя, и в этом сообщении блога обсуждается, как использовать запрос, чтобы помочь пользователю найти то, что он / она ищет. Сообщение в блоге начинается с теоретической части, за которой следует практическая.

Поиск информации

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

Традиционные методы пытаются сопоставить запрос с документами и получить релевантность на основе сходства. Методы машинного обучения решают проблему IR путем построения модели ранжирования на основе обучающих данных. Как могут выглядеть такие обучающие данные (для поисковой системы)? Как правило, это набор «правильно» ранжированных документов для каждого запроса.

Вот схема IR-системы, описанная в соответствующем блоге:

Система работает, сопоставляя запросы и документы и вычисляя их сходство. Большинство похожих документов возвращаются ранжированными по схожести с запросом. Сходство вычисляется, например. как косинусное подобие векторов TF-IDF.

Обучение ранжированию (LTR) - это приложение машинного обучения для ранжирования элементов в соответствии с ожиданиями человека. Модели LTR обычно обучаются с использованием данных, помеченных человеком.

На этапе отзыва модель LTR получает запрос и подмножество документов (элементов), созданных поисковыми системами, в качестве входных данных и выводит релевантность для каждого элемента. В конце концов, он может выводить ранжированный список документов (K-наиболее релевантных документов). Обратите внимание, что современные системы также могут принимать профили пользователей в качестве входных данных и выполнять персонализированное обучение для ранжирования (LTR) задач машинного обучения.

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

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

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

Оценка LTR и рекомендательных систем

Совокупная выгода измеряет, насколько релевантны самые популярные k элементов, которые были возвращены в результате обучения системе ранжирования или рекомендательной системе.

Например, мы можем суммировать релевантность 6 возвращенных элементов (обратите внимание, что элемент 4 не имеет значения).

Проблема CG в том, что она не принимает во внимание позицию элемента. Например, первая рекомендация может отображаться с гораздо большим изображением, чем остальные пять. Кроме того, пользователи склонны взглянуть на несколько пунктов вверху списка, и вероятность того, что они увидят элементы дальше по списку, намного меньше. По этой причине дисконтированная совокупная прибыль (DCG) более популярна, чем простая CG.

В DCG значение релевантности уменьшается логарифмически пропорционально положению результата.

В некоторых вариантах делается еще больший упор на поиск соответствующих документов в верхней части списка.

Предположим, что набор данных содержит N запросов. Обычной практикой является нормализация оценки DCG для каждого запроса и отчет о нормализованной оценке DCG (NDCG), усредненной по всем запросам. Это довольно приятно, иметь такую ​​красивую метрику оценки, но помните, что реальный мир жесток.

Традиционное обучение ранжированию алгоритмов

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

Вот несколько примеров алгоритмов LTR:

Алгоритм PRank использует персептрон (линейную функцию) для оценки оценки документа на основе вектора характеристик этого документа. Запрос добавляется к вектору признаков встраивания документа. Мы также можем классифицировать документы по классам релевантности (например, релевантные / нерелевантные). Функцию можно смоделировать практически любым методом машинного обучения. Большинство алгоритмов используют деревья решений и леса. Современные методы используют сети глубокого обучения.

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

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

Потери журнала могут быть вычислены путем суммирования штрафа за ноль и одну метку: --( y log (p) + (1 - y) log (1 - p))

Как видите, наибольшие потери приносят неверные уверенные ответы.

Rankboost напрямую оптимизирует ошибку классификации. Он является производным от Adaboost и работает с парами документов. Он тренирует слабые классификаторы, придавая больший вес парам, которые не были правильно классифицированы по ансамблю на предыдущем шаге.

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

Мотивация для использования списковых методов

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

Как получить данные обучения для системы LTR?

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

  • Степень релевантности - двоичный: релевантный или нерелевантный (подходит для поточечных)
  • Парное предпочтение - документ A более актуален, чем документ B.
  • Общий порядок - документы ранжируются как A, B, C, ... в соответствии с их релевантностью. (идеально подходит для списков, но исчерпывающий и трудоемкий)

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

Еще лучший подход - заменить описанный выше алгоритм LTR рекомендательной системой.

Новый взгляд на персонализированный поиск

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

Вместо применения классического обучения для ранжирования моделей машинного обучения (LTR), как описано выше, решение Recombee объединяет поисковую систему с нашей мощной системой рекомендаций. У такого подхода есть несколько преимуществ, и мы рассмотрим их в последующих публикациях в блоге.

Попробуйте полнотекстовое персонализированное поисковое решение Recombee с неограниченной 30-дневной пробной версией или бесплатным планом. Больше информации в нашей документации.