11.11 Большая распродажа облачных сервисов. Получите непревзойденные предложения со скидкой до 90% на облачные серверы и скидку до 300 долларов на все продукты! Нажмите здесь, чтобы узнать больше.

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

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

Реконструкция модуля поискового ранжирования

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

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

Подобно системам поиска общей информации, служба предложений делится на две фазы: отзыв документов и ранжирование (в LBS документы также называются POI). На этапе ранжирования взвешенные оценки сортируются на основе текстовой релевантности между запросами и документами, а также функций (таких как веса и клики) документов.

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

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

Проблемы: построение выборки и оптимизация модели

LTR применяет машинное обучение для решения проблем ранжирования в поисковых системах. Обычно используется модель GBRank, в то время как парная модель чаще всего используется для решения потерь. Здесь мы следуем этим практикам. Когда мы применяем LTR для решения реальных проблем, нам необходимо решить первостепенную проблему — как получить образцы.

AMAP имеет огромный ежедневный объем доступа, который обслуживается огромным количеством POI-кандидатов, что делает невозможным получение образцов посредством ручной аннотации.

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

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

В предыдущих случаях данные о кликах для моделирования недоступны. Даже если пользователь щелкнет POI, он/она не обязательно будет удовлетворен.

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

Моделирование системы

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

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

Сведения о решении

Выполните следующие шаги, чтобы успешно реализовать решение для оптимизации модели:

1. Конвергенция данных: интеграция нескольких таблиц журналов на сервере, включая поисковые подсказки, результаты поиска и навигацию.
2. Разделение сеансов: разделение и очистка сеансов.
3. Очистка сеансов: подсчет кликов во время последний запрос сеанса ввода и обобщить результат расчета для всех запросов конкретного сеанса, чтобы минимизировать сеанс ввода. См. следующую иллюстрацию.

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

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

Что касается функций, мы рассматриваем следующие четыре требования к моделированию и предлагаем решение по проектированию функций для каждого требования.

  • Существует несколько ссылок отзыва, таких как города и пиньинь. Для обеспечения сопоставимости различных ссылок отзыва требуется решение по проектированию функций.
  • Целевые POI динамически меняются при постоянном вводе данных пользователем. Функция необходима для представления динамических потребностей различных запросов.
  • Апостериорные функции, такие как низкочастотные длинные запросы и отсутствие кликов, должны быть дополнены априорными функциями.
  • LBS требует высокой степени региональной персонализации. Требования пользователей сильно различаются в зависимости от региона. Для персонализации регионов мы используем алгоритм Geohash для разделения географического пространства на шарды, каждому из которых присваивается уникальный идентификатор. Затем собираем статистику по идентификатору (шарду).

На следующем рисунке подробно показан дизайн функции.

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

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

Давайте посмотрим на важность функции модели с помощью следующей диаграммы:

После анализа мы определяем следующие основные причины дисбаланса в изучении функций:

  • Во многих случаях перекрестный запрос-щелчок отсутствует. Значение признака для 60% выборок равно 0. Этот признак имеет небольшой выигрыш от разделения узлов дерева и не может быть выбран. На самом деле, когда существует достаточное количество кликов, клик по запросу больше соответствует реальным намерениям пользователей, чем клик по городу.
  • Функция подобия текста всегда доступна, но имеет относительно низкую положительную и отрицательную последовательность. Следовательно, он имеет меньший выигрыш от разделения узла дерева по сравнению с кликом по городу и также не может быть выбран.

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

  • Метод 1. Выполните передискретизацию для выборок с разреженными функциями и низкочастотными запросами, чтобы увеличить усиление разделения. Этот метод прост, однако он изменяет реальное распределение выборок и не поддерживает гибкую целевую настройку, поскольку избыточная выборка эффективна для всех признаков.
  • Метод 2: мы используем этот метод для этого урока. Требуется вызвать функцию потерь. Отрицательный градиент (остаточный) модифицируется на основе разницы значений признаков между двумя выборками для дальнейшего изменения усиления следующего разделения признака. Например, потеря генерируется, когда возникает ошибка при изучении образца с функцией запроса-щелчка. Вы можете вызвать эту потерю, чтобы добавить к ней штраф loss_diff. Прибыль от разделения следующего дерева увеличивается по мере того, как генерируется больше потерь. Это увеличивает вероятность выбора функции запроса-щелчка в качестве разделяемого узла. Формула выглядит следующим образом:

Предыдущая формула представляет собой отрицательный градиент функции кросс-энтропийных потерь. loss_diff эквивалентен переводу сигмовидной функции.

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

После определения убытка мы переобучаем модель, чтобы получить улучшение MRR на две точки для тестового набора на основе исходной модели. Скорость решения для исторических ранжированных случаев увеличивается с 40% до 70%, что является значительным улучшением.

Вывод

Learning to Rank (LTR) заменяет основанный на правилах метод ранжирования службы предложений AMAP и устраняет необходимость связывания политик и исправлений в дополнение к нескольким существенным преимуществам. Модель GBRank запускается для покрытия требований ранжирования запросов со всеми частотами.

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

Оригинальный источник