Предварительное исследование применения машинного обучения в агрегации отелей Ma Honeycomb

машинное обучение

В путешествии бронирование отеля является неотъемлемой частью путешествия. Жить в чистоте и комфорте очень важно для всех, кто находится вдали от дома.

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

Сила способности отеля к агрегированию определяет «плотность» цены, которую пользователь может выбрать при бронировании отеля, что, в свою очередь, влияет на персонализированный и разнообразный опыт бронирования для пользователя. Чтобы сделать агрегацию в отелях более оперативной, точной и эффективной, почти 80% задач агрегации в гостиничном бизнесе Mafengwo выполняются машинами автоматически. В этой статье будет подробно рассказано о том, что такое агрегация отелей и как современная технология горячего машинного обучения применяется в агрегации отелей.

Часть 1 Сценарии применения и проблемы

1. Сценарии применения гостиничной агрегации

Платформа Mafengwo Wine Travel имеет доступ к большому количеству поставщиков.Разные поставщики предоставят много одинаковых отелей, но описание одного и того же отеля может отличаться, например:

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

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

2. Вызов

(1) Точность

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

На приведенном выше рисунке пользователь хочет открыть «Отель Jingtu» в приложении, но система, возможно, забронировала «бутик-отель», предоставленный для пользователя поставщиком E. Мы называем этот тип отеля с неправильным агрегированием «магазином AB». . Вполне возможно, что когда вы придете в магазин и обнаружите, что заказа нет, это, несомненно, окажет катастрофическое влияние на пользовательский опыт.

(2) В режиме реального времени

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

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

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

Часть 2. Исходная схема: алгоритм подобия косинусов

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

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

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

  1. Введите отель А для агрегирования;

  2. ES ищет N онлайн-отелей с наибольшим сходством в пределах 5 км от отеля A;

  3. N отелей и A отелей начинают попарное сравнение;

  4. Рассчитать косинусное подобие общего имени, косинусное подобие общего адреса и расстояние до отеля попарно;

  5. Искусственно формулируя пороги сходства и расстояния, получается вывод о том, одинаковы ли гостиницы или нет.

Общая схема процесса выглядит следующим образом:

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

Но именно потому, что эта схема слишком проста, проблема столь же очевидна, давайте рассмотрим следующий пример (данные на рисунке вымышлены, просто для удобства):

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

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

Наконец, только около 30 % могут быть обработаны машиной автоматически в этой версии решения, а остальные 70 % по-прежнему необходимо обрабатывать вручную, а показатель точности автоматической машинной агрегации составляет около 95 %, т. е. вероятность того, что магазин AB будет создан, равна 5. Нет единого магазина, и опыт регистрации очень плохой.

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

Часть 3 Применение машинного обучения в гостиничном агрегировании

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

3.1 Обработка сегментации слов

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

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

3.1.1 Словарь сегментации слов

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

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

Здесь мы используем статистику, используя машинный + искусственный способ быстрого ведения словаря слов:

  1. Случайным образом выберите более 100 000 отелей, чтобы получить данные об их названиях;

  2. Вырежьте имена сзади наперед и спереди назад одно за другим;

  3. Каждый разрез получает слово сокращения и частоту появления слова сокращения +1;

  4. Слова, которые появляются чаще, часто являются словами бренда отеля или типичными словами.

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

3.1.2 Причастие имени

Представляете, как кто-то сравнивает названия двух отелей? Например:

  • A: Отель 7 дней (Цисяньцяо)

  • B: Home Inn (Ванцзин)

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

  • 7 дней ---> Домашний

  • Отель--->Отель

  • Магазин Jiuxianqiao ---> Магазин Ванцзин

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

Подчеркивать "Введите первые 2 слова" поле. Предположим, нам нужно токенизировать следующие 2 названия отелей:

  • Отель 1: Longmen Nankunshan Country Garden Zilai Longting Hot Spring Resort Villa

  • Отель 2: Longmen Nankunshan Country Garden Hanmingju Hot Spring Resort Villa

Эффект сегментации слов заключается в следующем:

Мы видим, что сходство каждого поля после сегментации слов очень велико. Но первые 2 символа типа:

  • Первые 2 слова типа отеля 1: Dragon Court

  • Первые 2 слова отеля 2 типа: известная резиденция

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

3.1.3 Сегментация адресов

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

Ниже показан конкретный эффект сегментации слов:

резюме

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

Ручная формулировка правил и пороговых значений имеет много недостатков, например:

  1. Правила различаются. При объединении 20 измерений сравнения появится N правил, и охватить все эти правила вручную невозможно;

  2. Ручная установка порогов легко ведет к «эмпиризму» и склонна к ошибочным суждениям.

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

Давайте подробнее рассмотрим процесс построения признаков и машинного обучения.

3.2 Конструкция признаков

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

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

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

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

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

  2. Уровень покрытия почтового ящика низкий и в настоящее время не используется.

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

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

3.3 Выбор алгоритма: дерево решений

Чтобы судить, одинаковы ли отели, очевидно, что это контролируемая задача с двумя категориями.Критерии оценки таковы:

  • Помеченный вручную обучающий набор, проверочный набор и тестовый набор;

  • Введите два отеля, результаты, возвращаемые моделью, делятся только на два типа: «одинаковые» или «разные».

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

(Источник: __ «Арбузная книга по машинному обучению»)

3.3.1 Ada Boosting OR Gradient Boosting

Конкретный алгоритм, который мы выбираем, — Boosting. Фраза «Три марионетки, превосходящие Чжугэ Ляна» — хорошее описание повышения. Бустинг похож на экспертную консультацию: решение одного человека может быть неопределенным и допускать ошибки, но ошибка в окончательном решении группы людей обычно очень мала.

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

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

Вообще говоря, Gradient Boosting более широко используется в отрасли, и мы также используем Gradient Boosting в качестве основы.

3.3.2 XGBoost OR LightGBM

XGBoost и LightGBM являются эффективными системными реализациями Gradient Boosting.

Мы сравнили использование памяти, точность и время обучения соответственно.Использование памяти LightGBM было значительно уменьшено, и точность в основном такая же, но время обучения также значительно сократилось.

Сравнение использования памяти:

Сравнение точности:

Сравнение затрат на обучение:

(Источник: Microsoft Research Asia)

Основываясь на приведенном выше сравнительном справочнике данных, мы, наконец, выбрали LightGBM для быстрого итеративного обучения модели.

3.4 Итерации обучения модели

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

Обучение модели в основном сосредоточено на двух аспектах:

  • Анализ результатов обучения

  • Настройка гиперпараметров модели

3.4.1 Анализ результатов обучения

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

3.4.2 Настройка гиперпараметров модели

Здесь мы в основном представляем некоторый опыт настройки гиперпараметров. Сначала поговорим о более важных параметрах:

(1) максимальная глубина и количество листьев

maxdepth и numleaves — важные параметры для повышения точности и предотвращения переобучения:

  • maxdepth: как следует из названия, это «глубина дерева», слишком большое значение может привести к переоснащению.

  • numleaves Количество листьев в дереве. LightGBM использует листовой алгоритм, этот параметр является основным параметром для управления сложностью модели дерева.

(2) feature_fraction и bagging_fraction

feature_fraction и bagging_fraction могут предотвратить переоснащение и повысить скорость обучения:

  • feature_fraction: случайный выбор некоторых функций (0

  • bagging_fraction случайным образом выбирает часть данных (0

(3) лямбда_l1 и лямбда_l2

И lambda_l1, и lambda_l2 являются условиями регуляризации, которые могут эффективно предотвращать переоснащение.

  • lambda_l1: термин регуляризации L1

  • lambda_l2 : член регуляризации L2

3.5 Модельный эффект

После нескольких итераций, оптимизации и проверки наша модель агрегации отелей стабилизировалась.

Оценка эффекта программы обычно основывается на двух показателях «скорость точности» и «коэффициент полноты». Однако в бизнес-сценарии гостиничного агрегирования необходимо обеспечить абсолютно высокий показатель точности (ошибки агрегирования приводят к тому, что магазины AB влияют на заполняемость пользователей), а затем более высокий коэффициент отзыва.

После нескольких раундов проверки точность текущей модели может достигать более 99,92%, а уровень отзыва также достиг более 85,62%:

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

3.6 Краткое содержание программы

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

После вышеуказанного исследования мы примерно понимаем:

  1. Решения представляют собой процесс постепенной эволюции, и итерации выполняются, когда обнаруживается, что требования не могут быть выполнены;

  2. Сегментация слов устраняет недостаток слишком грубой детализации сравнения и имитирует человеческое мышление для сегментации предложений и сегментации слов;

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

Часть 4 написана в конце

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

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

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

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

**Автор этой статьи: **Лю Шучао, инженер по исследованиям и разработкам центра транзакций и поиска отелей; Хэ Сялонг, Кан Вэньюнь, инженер по разработке интеллектуального среднего офиса и контента.