Эта статья основана на содержании речи, произнесенной Чжаем Итао, старшим техническим экспертом Meituan, на Глобальной конференции по разработке программного обеспечения QCon 2018, и содержание было изменено.
введение
31 декабря 2018 года отель Meituan превысил 2 миллиона ночей за один день, снова установив новый отраслевой рекорд, и поиск отелей сыграл в этом очень важную роль. В этой статье сначала будут представлены бизнес-характеристики поиска отелей.Как разновидность поиска O2O, поиск отелей сильно отличается от традиционной сортировки поиска. Вторая часть знакомит с применением глубокого обучения в НЛП поиска отелей. В третьей части будет представлен путь эволюции модели глубокого ранжирования в поиске отелей.Из-за особенностей гостиничного бизнеса и исторических причин путь эволюции модели поиска отелей Meituan может отличаться от пути большинства компаний. Последняя часть — резюме.
Бизнес-функции поиска отелей
Миссия Meituan — помочь всем «лучше питаться, жить лучше», а то, что она делает, — соединять людей и услуги. Пользователи могут найти нужные им услуги на платформе Meituan, а продавцы могут продавать свои услуги на платформе Meituan, и поиск играет в ней роль «соединителя». Большинство пользователей начинают искать отели через приложение Meituan. Поиск обеспечивает большую часть заказов и является крупнейшим порталом трафика. Нажмите значок «Размещение в отеле» на главной странице Meituan, и вы войдете в строку поиска в правой части изображения выше.Пользователи могут выбрать город и время регистрации и начать поиск.
Работа технической группы по поиску отелей включает не только сортировку поиска, но и руководство по запросам, рекомендации и т. д., руководство по запросам, такое как интеллектуальные подсказки поиска, исправление ошибок запросов и т. д. Причина, по которой все еще существует рекомендательная работа, заключается в том, что многие пользователи не приводят слова запроса при запуске поиска, что по сути является рекомендацией.Кроме того, есть рекомендации для немногих и отсутствие результатов в определенных сценариях. Эта статья в основном знакомит с работой поискового ранжирования.
Сравнение разных поисков
Теперь все знакомы с поиском.Обычными являются веб-поиск, такой как Google, Baidu, Sogou и т. д., товарный поиск, такой как Tmall, Taobao, Jingdong и т. д., и поиск O2O (онлайн-офлайн), как правило, в отелях. поиск. Хотя все они являются поисковыми, пользователи используют поисковые запросы для разных целей, включая поиск информации, продуктов, услуг и т. д. Существуют также большие различия между различными поисковыми запросами.
На приведенном выше рисунке показано простое сравнение различных поисковых запросов, которые можно расширить из 5 измерений. Первый – это целевое измерение. Поскольку пользователи ищут информацию, основное внимание в веб-поиске уделяется обеспечению релевантности результатов запроса и намерений пользователей.В поиске товаров и гостиниц основная цель пользователей – найти товары или услуги и, наконец, совершить транзакцию. цели совсем другие.. Пользователи используют разные поисковые запросы для разных целей, что приводит к различным требованиям к степени персонализации в разных поисковых запросах. Поиск атрибутов транзакций, включая поиск товаров и гостиниц, требует относительно высокой степени персонализации, поскольку разные пользователи имеют разные уровни потребления и предпочтения.
На техническом уровне также есть много отличий. Веб-поиск будет индексировать данные всей сети.Эти данные не производятся сами по себе, а источники данных очень разнообразны, включая новости, страницы загрузки, страницы видео, страницы музыки и другие различные формы, поэтому все данные неструктурированы, и отличия тоже очень разные.большие. Это означает, что веб-поиск должен иметь две технические возможности: возможность сбора данных и возможность анализа данных, которые должны сканировать веб-страницы и анализировать их для формирования структурированных данных. На этом уровне поиск отелей и поиск товаров относительно «счастлив», потому что данные представляют собой структурированные данные, представленные продавцами, которые относительно более стандартизированы.
Кроме того, в качестве услуги O2O пользователи размещают заказы онлайн и, в конечном итоге, должны выходить из сети для потребления, поэтому существует ограничение на местоположение, а ограничения на местоположение также приводят к ограничениям на стороне предложения.Ограничения, предложение может быть только рядом с определенным местом. . Например, отели в пределах нескольких километров от Пекинского университета. Эти два ограничения не учитываются при веб-поиске и поиске товаров, и веб-страницы можно читать неограниченное количество раз. Поиск товаров выигрывает от быстрого развития индустрии экспресс-доставки.Товары из Чжэцзяна также можно приобрести в Пекине, а ограничения со стороны предложения относительно невелики.
Ознакомившись с характеристиками различных поисковых продуктов, давайте посмотрим на цели оптимизации различных поисковых продуктов. Целью оптимизации общего поиска является релевантность, а индикаторами оценки являются DCG, NDCG, MAP и другие индикаторы, а результаты запроса должны быть связаны с намерениями пользователя. Для товарного поиска цели оптимизации различных платформ электронной коммерции различны. Некоторые цели заключаются в максимизации GMV, а некоторые — в максимальном показателе кликов. Этого можно достичь технически.
Для поиска отелей, поскольку он относится к бизнес-форме O2O, онлайн-заказу и офлайн-потреблению, требуется, чтобы результаты поиска были «сильно связаны» с намерением запроса пользователя. Эта «сильная корреляция» включает в себя два значения: явную корреляцию и неявную корреляцию. Например, если пользователь ищет «Пекинский университет», то его запрос очень четкий, то есть найти отель рядом с «Пекинским университетом», который относится к запросу местоположения, который пользователь четко сообщает платформе. Однако, если пользователь ищет «Seven Days» локально, даже если пользователь не указывает конкретное местоположение отеля, мы знаем, что пользователь может искать «Seven Days Hotel», который находится относительно близко к нему. на этот раз нам нужно смоделировать скрытые требования пользователя в отношении сексуальной позиции.
Meituan — это торговая платформа.Большинство пользователей используют Meituan для совершения транзакций, поэтому необходимо оптимизировать покупательский опыт пользователя. Основным бизнес-показателем, который описывает покупательский опыт пользователя, является частота посещений и покупок, которая используется для описания того, успешно ли пользователь совершил покупку в Meituan.Необходимо оптимизировать частоту посещений и покупок. Подводя итог, поиск отелей должен не только решать вопрос релевантности, пытаться оптимизировать покупательский опыт пользователей, оптимизировать посещаемость и другие показатели, но и учитывать потребности бизнеса.
Согласно приведенному выше анализу, всю поисковую систему поиска отелей можно разделить на три модуля: поиск, сортировка и бизнес-правила. Слой поиска состоит из двух частей: понимания запроса и отзыва, и в основном решает проблему релевантности. Что делает понимание запроса, так это понимает намерение пользователя и вспоминает связанные отели в соответствии с намерением пользователя.Эти два тесно связаны и должны быть объединены. Ядром поиска является семантическое понимание. Например, когда пользователь ищет «Пекинский университет», платформа знает, что пользователь ищет «гостиницы рядом с Пекинским университетом». Поэтому метод оптимизации этого модуля ориентирован на проблему, и он постоянно находит и решает проблемы.
Далее отели, извлеченные из модуля поиска, уже являются отелями, отвечающими потребностям пользователя. В приведенном выше примере «Пекинский университет» модуль поиска нашел сотни отелей рядом с «Пекинским университетом», и все они связаны со словом запроса пользователя «Пекинский университет». А как насчет первого ряда? Это то, что делает модуль сортировки.
Модуль сортировки использует машинное обучение и технологию глубокого обучения, чтобы предоставить результаты сортировки «тысячи людей, тысячи лиц». Для пользователей с относительно высоким уровнем потребления и высокими требованиями к отелям модуль сортировки ставит высококлассные отели на первое место и может быть настроен для каждого пользователя. Сортировка — это типичный модуль, управляемый технологиями, а целью оптимизации является количество посещений и покупок.Этот технический индикатор используется для того, чтобы побудить техническую команду постоянно выполнять итерации и оптимизацию.
Последний уровень бизнеса.Например, некоторые продавцы будут обманывать Meituan, и этим продавцам нужно уменьшить свои права.
общая структура
На приведенном выше рисунке представлена общая схема поиска, а вот подробное описание процесса вызова:
- API поиска отвечает за получение условий запроса пользователя и отправку их в центр управления поиском.
- Центр управления отправляет полученный запрос в модуль поиска и намерения. Термин поиска сначала проходит через модуль анализа запроса для анализа намерения запроса пользователя. После анализа результат анализа намерения запроса пользователя будет отправлен обратно в бизнес Поисковый модуль Поисковый модуль формирует условия запроса по результатам распознавания намерений, а затем переходит к базовому поисковому терминалу для запроса результатов.
- После того как базовый индекс доступа к извлечению получает результат запроса, результат возвращается на верхний уровень.
- После того, как модуль бизнес-поиска получит основные результаты поиска, он вызовет некоторые внешние службы, такие как службы состояния номеров, для фильтрации некоторых отелей с полными номерами, а затем вернет результаты в центр управления.
- В настоящее время все результаты, полученные центром управления, тесно связаны с намерением запроса пользователя.В настоящее время для сортировки необходимо использовать технологию машинного обучения. Модуль прогнозирования используется для прогнозирования скорости покупки каждого отеля.После того, как центр управления получает результаты ранжирования модуля прогнозирования, он вносит некоторые коррективы в соответствии с бизнес-логикой и, наконец, возвращает результаты в поисковый API.
Видно, что деление на модули согласуется с идеей, описанной выше.Модуль поиска в основном решает проблему распознавания и отзыва намерений пользователя, то есть решает корреляцию. Модуль прогнозирования прогнозирует скорость покупки, а бизнес-логика реализована в центре управления поиском. Далее мы представим некоторые методы глубокого обучения, связанные с модулем понимания и ранжирования намерений.
Давайте сначала рассмотрим проблему понимания запросов.Этот модуль постоянно обнаруживает и решает проблемы с помощью анализа данных и анализа случаев для итеративной оптимизации. Причины отсутствия результатов, обнаруженных в предыдущих оценках, в основном включают следующее:
- Ключевое слово: например, пользователь ищет «Международный научно-исследовательский парк Ванцзин», но на заднем фоне нет отеля, который содержит слова «Международный научно-исследовательский парк Ванцзин». На самом деле пользователь ищет отель рядом с Ванцзин. Международный научно-исследовательский парк.
- Структурированный запрос: например, в описании отеля за 7 дней рядом с Шаояоцзю нет слова «поблизости», а качество поиска относительно низкое. Это требует компонентного распознавания слов запроса, отбрасывания неважных слов и использования разных поисковых доменов для терминов разных категорий.
- Удаленный запрос: пользователь безрезультатно ищет "Большая пагода диких гусей" в Пекине. На самом деле, реальное намерение пользователя - найти отель рядом с Большой пагодой диких гусей в Сиане. Это требует определения удаленных потребностей и удаленного запроса. Прыжок.
- Синонимы: Поиск «Средняя школа № 1» в Пекине и поиск «Средняя школа № 1 в Пекине» на самом деле имеют одно и то же значение, и необходимо изучить синонимы.
В ответ на эти типы проблем мы проделали следующую работу:
- Нацеленный на проблему слов-ориентиров, он обеспечивает распознавание намерений ориентиров и стратегии ориентиров, а также изменяет слова запроса категорий ориентиров для кругового поиска по широте и долготе.
- В ответ на проблему структурированного запроса мы определили компоненты слов запроса и разработали многоуровневую архитектуру поиска, когда результатов мало или нет.
- Для проблемы внешнего запроса выполните распознавание намерений за пределами сайта и руководство по переходу за пределы сайта.
- Для проблемы семантического запроса сделайте синонимы и перепишите запрос.
Каждый модуль здесь использует машинное обучение и технологию глубокого обучения, В этой статье мы выбираем две специальные проблемы в поиске отелей, чтобы представить их.
Проблема ориентира — типичная проблема в O2O-поиске, и она менее распространена как в веб-поиске, так и в поиске товаров. Когда пользователь выполняет поиск по такому слову запроса, как «Wangjing International R&D Park», поскольку релевантность поиска рассчитывается на основе текста, необходимо, чтобы в описании отеля был соответствующий текст. Например, отель Kuntai, хотя и находится рядом с Международным научно-исследовательским парком Ванцзин, не имеет в своем описании информации «Международный научно-исследовательский парк Ванцзин», поэтому его нельзя получить, что приведет к ухудшению взаимодействия с пользователем.
После анализа мы обнаружили, что существует тип слова-запроса, который направлен на поиск определенного места.Обращение пользователя состоит в том, чтобы найти отель рядом с определенным местом.В этом случае высока вероятность совпадения текста и нет нет результата. Решение этой проблемы состоит в том, чтобы перейти от «сопоставления текста» к «сопоставлению координат» для этого типа слова запроса. Во-первых, проанализируйте, имеет ли слово запроса ориентиры. Если да, оно не будет проходить сопоставление текста, а будет использовать координату вместо этого совпадающие. Вы можете искать отели рядом с этой координатой. В это время возникают две проблемы: во-первых, как определить, какие слова запроса имеют ориентиры, во-вторых, как получить информацию о широте и долготе.
В ответ на эту проблему мы разработали знаменательную стратегию, шаги которой заключаются в следующем:
- Получите наборы-кандидаты, которые могут содержать знаковые слова из нескольких каналов. Эти наборы-кандидаты включают слова-запросы с небольшим количеством пользователей и без результатов, а также информацию описания, предоставленную некоторыми отелями.
- Распознавание именованных объектов (NER) выполняется для набора кандидатов, и может быть получен тип каждого именованного объекта, а тип, помеченный как «ориентир», является предполагаемым словом ориентира.
- Поместите подозрительные слова-ориентиры в картографический сервис Meituan, чтобы получить широту и долготу. После ручной проверки они сохраняются в онлайн-базе данных; когда делается запрос онлайн-запроса, сначала будет сопоставлена точная база данных ориентиров. Если совпадение успешно, это указывает на то, что слово запроса Это намерение ориентира.В это время поиск текста не выполняется, а поиск широты и долготы выполняется непосредственно на уровне службы намерения.
- Точная база данных ориентиров, которая была проверена вручную, дополняется обучающими данными модели NER, и модель NER постоянно оптимизируется.
Здесь упоминается модель NER, а подробное введение в нее дается ниже.
NER называется распознаванием сущностей, что представляет собой проблему маркировки последовательностей в машинном обучении. Например, если вы введете «Семь дней возле Пекинского университета», будут отмечены компоненты каждого слова. Здесь «Пекинский университет» — ориентир, а « Seven Days» — гостиничный бренд. Категории здесь определяются в соответствии с характеристиками бизнеса.В гостиничном бизнесе существуют разные категории, такие как достопримечательности, бренды и деловые районы. По сравнению с проблемой классификации текущая прогнозируемая метка в задаче маркировки последовательностей связана не только с текущим входным объектом, но также связана с предыдущими прогнозируемыми метками, то есть между последовательностями прогнозируемых меток существует сильная взаимозависимость.
Классической моделью для решения проблемы маркировки последовательностей является CRF (Conditional Random Field), которую мы только что начали пробовать. Условное случайное поле можно рассматривать как сериализованную версию логистической регрессии, логистическая регрессия — это лог-линейная модель для классификации, а условное случайное поле — это лог-линейная модель для сериализованной маркировки, которую можно рассматривать как классификацию, учитывающую контекстную модель. .
Решение задачи машинного обучения — «данные + модель + функции».В терминах данных сначала определяются несколько категорий сущностей в соответствии с бизнес-характеристиками, а затем пакет данных размечается методом «ручной + правила». Извлечение функций включает части речи, функции текста терминов и т. д., а также определены некоторые шаблоны функций. Шаблоны функций — это некоторые двоичные функции, определенные вручную в CRF. С помощью этих двоичных функций можно получить характеристики внутренней и контекстной композиции именованных объектов. После того, как помеченные данные, модели и функции станут доступными, можно обучить модель CRF, что является первой версией онлайн-задачи NER.
С развитием глубокого обучения с использованием вектора слова Word Embedding в качестве входных данных метод укладки блоков нейронной сети постепенно стал новым направлением исследований в области НЛП. Метод, основанный на двунаправленном LSTM (долговременная кратковременная память) + CRF, стал основным методом NER. Этот метод использует двунаправленный блок LSTM в качестве экстрактора признаков для замены исходных искусственных признаков, не требует специальных знаний предметной области, а рамки тоже общие. Внедрение входных данных также имеет различные формы, которые могут быть векторами слов, векторами слов или объединением векторов слов и векторов слов.
Мы попробовали двунаправленный LSTM+CRF и внесли некоторые изменения в практическое применение: поскольку на этапе CRF была накоплена партия искусственных признаков, оказалось, что добавление этих признаков более эффективно. Двунаправленный LSTM + CRF с искусственными функциями является основной моделью для задачи NER поиска отелей.
Конечно, в метод LSTM+CRF было внесено много улучшений.Например, есть еще один метод NER, который сочетает в себе CNN+LSTM+CRF.Главным улучшением является наличие дополнительного модуля CNN для извлечения функций на уровне слов. Ввод CNN представляет собой встраивание на уровне слов, а функции на уровне слов извлекаются с помощью таких операций, как свертка и объединение, а затем объединяются с встраиванием на уровне слов и помещаются в LSTM. Этот метод показал наилучшие результаты на двух общедоступных наборах данных и является одним из направлений будущих попыток.
Чтобы решить проблему отсутствия или отсутствия результатов, мы разработали многоуровневую архитектуру поиска, как показано на рисунке выше, которая в основном разделена на 4 уровня: базовый поиск, вторичный поиск, поиск основных слов и поиск за пределами сайта. .
- При базовом поиске будет выбрана конкретная стратегия поиска в соответствии с назначением слов запроса, например поиск ориентиров по широте и долготе, а поиск намерений бренда — только домен бренда и название компании.
- Если основных поисков мало и нет результатов, будет проведен вторичный поиск.Вторичный поиск также делится на намерения.Разные типы намерений будут иметь разные стратегии поиска.Намерения ориентиров ищут по широте и долготе, и радиусу поиска необходимо расширить во время второго поиска.Ключевые слова, потому что многие бренды не открыли магазины в некоторых городах, например Шангри-Ла, которая не открыла магазины во многих малых городах.В настоящее время лучше порекомендовать лучший отели в городе для пользователей.
- Если результатов по-прежнему мало, будет выполнен поиск по основному слову, и останется только поиск по основному слову. Есть много способов отбросить неосновные слова: один — удалить некоторые операционально определенные бессмысленные слова, а другой — сохранить основные типы сущностей, идентифицированные моделью NER. Кроме того, существует модель TermWeight, которая имеет важный вес для каждого слова, что позволяет отбрасывать некоторые неважные слова.
- Если результата еще нет, вы выберете поиск «удаленный + общенациональный», то есть смените город или поиск по стране.
После того, как была запущена многоуровневая поисковая архитектура, количество онлайн-отсутствий результатов значительно сократилось.
Сортировать
Сортировка на самом деле является типичной технической проблемой.Наиболее широко используемые в отрасли включают сортировку объявлений и сортировку рекомендаций, сортировку объявлений, такую как сортировка объявлений Google и Baidu по ключевым словам, а также сортировку медийной рекламы Toutiao и Tencent. Рекомендуемая сортировка, например платформы коротких видео, такие как Kuaishou и Douyin, а также информационный поток основных приложений и браузеров. Целью оптимизации рейтинга рекламы и рекомендаций является рейтинг кликов, и стек технологий также аналогичен, включая модели LR / FTRL, FM / FFM, GBDT, DNN и другие.
По сравнению с двумя вышеупомянутыми приложениями сортировки, сортировка отелей имеет свои собственные бизнес-характеристики, поскольку Meituan Hotel имеет атрибуты LBS и атрибуты транзакций, и она рождается со многими непрерывными характеристиками, такими как цена отеля, рейтинг отеля, удаленность отеля от пользователей и т. д. Непрерывные функции являются наиболее важным фактором, определяющим покупательское поведение пользователей. Цели оптимизации также различаются: в большинстве сценариев целью оптимизации поиска отелей является количество посещений и покупок, а в некоторых сценариях целью оптимизации является рейтинг кликов. На техническом уровне общий стек технологий ранжирования отелей аналогичен рекламе и рекомендациям, и можно использовать такие модели, как LR/FTRL, FM/FFM, GBDT и DNN.
проблемы
Что касается работы по сортировке отелей, мы сталкиваемся с некоторыми различными проблемами, в основном в том числе со следующими 4 пунктами:
- Данные скудны. Пребывание в отеле само по себе является поведением с низкой частотой, и большинство пользователей останавливаются только один или два раза в год, что приводит к низкому охвату многих функций.
- Много бизнеса. Meituan Hotel включает в себя внутренний гостиничный бизнес, зарубежный гостиничный бизнес, а также долгосрочную аренду, почасовую аренду и другие виды бизнеса, а также имеет два разных приложения: Meituan и Dianping.
- Сцена сложная. В зависимости от местоположения пользователя его можно разделить на местные и разные места, а в соответствии с требованиями пользователя его можно разделить на несколько категорий, таких как бизнес, туризм и местный отдых Различия между этими пользователями очевидны. Например, у бизнес-пользователей будет большое количество повторных покупок. Типичным примером является командировка сотрудников Meituan. Штаб-квартиры Meituan находятся в Шанхае и Пекине. Если студенты Meituan едут в Шанхай по делам, они, скорее всего, будут выбраны в стандарты путешествия компании.Отель, расположенный рядом с компанией, вызовет много повторных покупок в том же отеле, но если он путешествует, он редко посещает одно и то же место повторно.
- ограничения поставок. Предложение в гостиничном бизнесе быстро меняется. Количество номеров в гостинице ограничено, а количество ночей в номере, которое может быть предоставлено в день, фиксировано. Если все номера забронированы, пользователи не будут предоставлять новые номера, если они поднять цену.Такая ситуация происходит в День труда и Национальный день.Этот праздник особенно заметен.
В правой части приведенного выше рисунка представлена общая схема архитектуры сортировки, которая разделена на три части: офлайн, онлайн и ближняя очередь. Автономная часть в основном занимается настройкой и оценкой автономной модели, а онлайн-часть — прогнозированием. Что особенного здесь, так это ближняя часть.Мы проделали большую работу на уровне реального времени, включая поведение пользователей в реальном времени, цены на отели в реальном времени, инвентарь в реальном времени и т. д., чтобы справиться с характеристиками быстрого изменения предложения.
Вот относительно уникальная проблема, вызванная особенностями бизнеса:Сегментация модели. Meituan Hotel имеет множество бизнес-сценариев, включая местные отели, зарубежные отели, долгосрочную аренду, почасовую аренду и т. д.; есть также два приложения, приложение Meituan и приложение Dianping; есть два сценария поиска и проверки, и поиск содержит слова-запросы, в фильтре нет слов-запросов, и два сценария сильно различаются; по географическому измерению его также можно разделить на два сценария: локальный и удаленный.
Столкнувшись с таким количеством бизнес-сценариев, первый вопрос заключается в том, как спроектировать модель, использовать ли единую большую модель или разделить ее на множество разных малых моделей? Мы можем использовать большую модель, чтобы охватить все сценарии, и использовать функции, чтобы различать различия между различными сценариями.Преимущество заключается в том, что затраты на обслуживание и оптимизацию унифицированной модели низки. Его тоже можно разделить на множество мелких моделей.Вот лучшая аналогия.Консультация нескольких специалистов лучше, чем врач общей практики. После разделения модели можно избежать взаимного влияния между сервисами с большими различиями, а также удобно проводить специальную оптимизацию для особых сценариев.
При сегментации модели в основном учитываются три фактора:
- Во-первых, различия между предприятиями. Например, существует большая разница между долгосрочной арендой и зарубежным бизнесом, а также очень велика разница между отечественным отелем и зарубежным бизнесом, который необходимо разделить.
- Во-вторых, объем данных после сегментации. Чем тоньше сцена, тем меньше объем данных, что приводит к двум проблемам: во-первых, еще больше сокращается охват признаков, во-вторых, когда объем данных становится меньше, это не способствует последующей модели. итерации Некоторые сложные модели требуют большого объема данных. Мы попробовали это. В сценарии внутреннего отеля два приложения, Meituan и Dianping, имеют большой объем данных, и пользователи очень разные, поэтому мы сделали разделение модели; однако зарубежные отели, потому что они новые бизнес-данные, имеют относительно большой объем данных. Небольшой, нет дальнейшего подразделения.
- В-третьих, все подчиняется онлайн-показателям. Мы проведем много экспериментов, чтобы увидеть, как лучше разделить текущий объем данных.Например, в отечественных отелях приложения Meituan мы обнаружили, что поиск и фильтрация разделены, и результаты лучше; из-за большого объем данных, разделение Стоимость и внешние эффекты также лучше, но если сцена поиска разделена на локальную и внешнюю модели, дополнительных преимуществ нет. В конце концов, все зависит от реальной производительности онлайн.
Эволюция модели
Далее я представлю процесс эволюции модели сортировки.Из-за бизнес-характеристик и исторических причин модель сортировки поиска отелей пошла по другому пути эволюции. Вы можете увидеть эволюцию моделей рейтинга кликов других компаний в отрасли.Многие из них начинают с LR/FTRL, а затем переходят к FM/FFM или используют GBDT+LR, чтобы получить комбинацию функций, а затем начинают Широкая и глубокая.
Эволюция поиска отелей не одинакова. Гостиничный бизнес рождается с большим количеством непрерывных признаков, таких как цена отеля, расстояние между отелем и пользователем, рейтинг отеля и т. д. Поэтому на начальном этапе используется древовидная модель, дружелюбная к непрерывным признакам. При изучении модели глубокой сортировки, поскольку уже существует большое количество оптимизированных непрерывных функций, вся наша идея отличается.Мы в основном учимся на идеях некоторых моделей и пытаемся объединить бизнес-характеристики.Ниже приведено введение. одним.
На начальном этапе в сети использовалась модель XGB (XGBoost, eXtreme Gradient Boosting). В качестве усовершенствования GBDT XGB реализует нелинейную и автоматическую комбинацию функций. Разделение узлов дерева на самом деле реализует нелинейность.Иерархическая структура дерева реализует автоматическую комбинацию различных функций, а модель дерева очень включает в себя функции.Разбиение дерева осуществляется путем оценки относительного размера, а не каких-либо специальных функций. Обработка, подходящая для непрерывных функций.
Эти характеристики древовидной модели действительно очень подходят для таких сценариев, как отели с множеством непрерывных функций.До сих пор XGB была основной моделью для сценариев с небольшим объемом данных. Однако оптимизация древовидной модели столкнулась с узкими местами на более позднем этапе, например, польза от разработки признаков стала меньше, а от увеличения объема данных не было дополнительной пользы, кроме того, проблема в том, что древовидная модель не пригодные для онлайн-обучения становились все более серьезными. Пользователи отелей по-разному ведут себя в праздничные дни, такие как День труда и Национальный день. В настоящее время модель необходимо быстро обновить. Мы пытались обновить только несколько последних деревьев, но эффект не очень хороший. С учетом дальнейшего развития бизнеса в будущем необходимо модернизировать модель.
Принцип исследования модели заключается в постепенном накоплении опыта от простого к сложному, поэтому я сначала попробовал многослойный персептрон MLP (Multiple-Layer Perception) с относительно простой структурой, то есть полносвязной нейронной сетью. Нейронная сеть представляет собой модель с более высоким «потолком», чем модель дерева.«Потолок» имеет два значения: первый уровень означает, что есть больше возможностей для оптимизации и улучшения, таких как онлайн-обучение и многоцелевое обучение; Второй уровень значения заключается в том, что модель имеет большую емкость и больший «аппетит» и может «съесть» больше данных. Кроме того, его выразительная способность сильнее, он может соответствовать любой функции, а структуру и параметры сети можно регулировать в большем пространстве. Однако его преимущества также являются его недостатками, потому что его сетевая структура, параметры и т. д. могут быть отрегулированы в большем пространстве, а нейронная сеть должна выполнять большую настройку параметров и структуры сети.
На приведенном выше рисунке показана схема сетевой структуры MLP, включая входной уровень, несколько скрытых уровней и выходной уровень. Долгое время при тех же характеристиках MLP не был так эффективен, как XGB, поэтому существует временная шкала, в которой используется модель слияния XGB и MLP. Позже, после большой настройки структуры сети и настройки параметров, опыт настройки параметров становился все более и более богатым, и MLP постепенно превзошел XGB. Вот дополнительное объяснение, в поиске отелей есть небольшое количество функций ID-типа.В первой версии MLP функции ID-типа напрямую обрабатываются как непрерывные функции. Например, идентификатор города, отношение порядка идентификатора имеет определенный физический смысл, идентификатор большого города, как правило, меньше, а идентификатор маленького города позже, а идентификатор больше.
На этапе MLP мы провели много экспериментов со структурой сети и попробовали три сетевых структуры: параллельную структуру, ромбовидную структуру и пирамидальную структуру. Во многих работах упоминается, что тройка имеет лучший эффект по сравнению с параллельной структурой, но поскольку данные поиска отелей не совпадают, эксперимент показал, что пирамидальная структура работает лучше всего, то есть сетевая структура «1024». -512-256" в крайнем правом углу рисунка выше. В то же время также было проверено влияние различных слоев сети на эффект.Эксперимент показал, что сетевой эффект 3-6 слоев лучше, а более глубокая сеть не имеет дополнительных преимуществ, и время онлайн-ответа будет медленнее. Следующие исследования модели основаны на 3-6-уровневой пирамидальной сетевой структуре.
После запуска MLP мы начали думать о следующем направлении разведки. На этапе древовидной модели группа поиска отелей провела много исследований непрерывных функций, и трудно иметь относительно большие возможности для улучшения с точки зрения непрерывных функций. также на дискретных функциях, поэтому дискретные функции должны быть следующим шагом.
Существует два типа методов обработки дискретных признаков в модели глубокой сортировки: один заключается во внедрении дискретных признаков, чтобы дискретные признаки можно было представить в виде непрерывных векторов и поместить в нейронную сеть, а другой — Wide&Deep, который напрямую интегрирует дискретные функции. Добавлено на широкую сторону. Сначала мы попробовали первый метод, то есть метод встраивания дискретных признаков, который основан на идее БНС. На самом деле идея дискретных признаков как Embedding появилась очень рано.FM заключается в представлении дискретных признаков в виде K-мерных векторов и повышении способности к обобщению модели за счет представления дискретных признаков высокой размерности в виде векторов малой размерности.
В реальных условиях мы внесли некоторые изменения, в ходе эксперимента мы обнаружили, что эффективность использования предобучения FM невысока, поэтому мы попытались случайным образом инициализировать Embedding без предобучения, а затем позволить Embedding обучаться с сетью. , Тренировочный эффект еще лучше. Последний подход заключается в том, чтобы не использовать FM для предварительного обучения, позволить встраиванию инициализироваться случайным образом и обучаться в сети.На рисунке выше показана онлайн-модель V3.
Успешный запуск FNN доказывает, что направление встраивания дискретных функций заслуживает глубокого изучения, поэтому мы затем поэкспериментировали с DeepFM. Улучшение DeepFM по сравнению с Wide&Deep очень похоже на улучшение FM по сравнению с LR.Все они думают, что искусственное совмещение функций в LR части - дело затратное по времени и трудозатраты, а FM модуль может напрямую получить функции комбинации второго порядка через векторный внутренний продукт. DeepFM использует FM для замены LR в Wide&Deep. Встраивание дискретных функций «подается» в нейронную сеть и FM одновременно. Эта часть встраивания является общей. Встраивание обучается автоматически в процессе оптимизации сети и не требует предварительной подготовки.В то же время слой FM Он содержит комбинацию признаков первого порядка и признаков второго порядка и обладает более сильной выразительной способностью. Мы попробовали DeepFM, и наблюдалось увеличение офлайн-флуктуаций и онлайн-флуктуаций, но это не соответствовало онлайн-стандарту и, наконец, не имело полной суммы.
Хотя DeepFM не был успешно запущен, это не поколебало нашей уверенности в Embedding, и затем мы попробовали PNN. Сеть PNN фокусируется на Продукте. При оценке CTR считается, что связь между функциями больше похожа на связь И "и", чем на связь Добавить "плюс". Например, пол - мужской, а используется мобильный телефон Huawei. ., выше вероятность того, что он находится в сценарии командировки при бронировании отеля.
PNN использует Product Layer для явной комбинации функций второго порядка. В правой части приведенного выше рисунка показана схема структуры сети PNN. Встраивание по-прежнему выполняется на дискретных функциях. Вектор встраивания одновременно отправляется на скрытый слой и на слой продукта. Продукт выполняет явное перекрестное преобразование второго порядка. на функции с помощью внутреннего продукта или внешнего продукта, а затем отправляет его позже.В скрытый слой нейронной сети он может достичь явной комбинации второго порядка и неявной комбинации функций высокого порядка. Пересечение признаков реализуется на основе операции умножения, и существует два способа: внутренний продукт и внешний продукт. Мы попробовали метод внутреннего продукта, и небольшой прирост в оффлайне также колебался в онлайне, и он не соответствовал онлайн-стандарту, поэтому в итоге он не вышел в онлайн в полном объеме.
После PNN мы подумали, что Embedding может повторить попытку, поэтому мы попробовали DCN (Deep&Cross Network). DCN представляет перекрестную сеть для явного пересечения функций более высокого порядка. Правая сторона приведенного выше изображения - это изображение в документе. Вы можете видеть, что Deep&Cross использует два типа сетей, глубокую сеть и кросс-сеть. Две сети параллельны, вход один и тот же, и они сложены вместе в последний слой.
Глубокая сеть такая же, как и предыдущие сети, включая встраивание непрерывных функций и дискретных функций. Кросс-сеть является функцией DCN. В кросс-сети явное пересечение функций высокого порядка реализовано благодаря продуманному дизайну. Посмотрите на схематическую диаграмму структуры Cross в левом нижнем углу рисунка выше, где x — это вход каждого слоя, то есть выход предыдущего слоя. Часть Feature Crossing включает в себя исходный ввод x0, транспонирование ввода x этого слоя и вес w, Умножение трех элементов фактически делает перекрестие признака ввода этого слоя и исходного ввода, а x1 содержит перекрестная информация второго порядка.x2 содержит кроссоверную информацию третьего порядка, а порядок кроссовера можно явно контролировать, контролируя количество слоев перекрестия.
Я должен сказать, что DCN прекрасен в теории, и мы попробовали его. Тем не менее, жаль, что произошло увеличение офлайн-флуктуаций и онлайн-флуктуаций, но он все еще не соответствовал онлайн-стандартам, и, наконец, не смог выйти в онлайн в полном объеме.
После крещения DeepFM, PNN и DCN мы начали размышлять о том, почему модели, которые особенно эффективны в академических кругах, не могут быть полностью запущены в сценарии поиска отелей? Они улучшились как в офлайне, так и в онлайне, но в онлайне. Маленькие и изменчивые.
После тщательного анализа мы обнаружили, что причин может быть две: во-первых, влияние непрерывных функций.В эпоху XGB было опробовано более 600 непрерывных функций, а фактическое онлайн-использование непрерывных функций приближается к 400, что слишком сильный; во-вторых, дискретных функций слишком мало, а дискретных функций всего миллионы, но встраивание особенно подходит для ситуаций с большим количеством дискретных функций. Следующее направление очень ясно: класс дополняющих дискретных признаков.
В конце концов, мы снова обращаемся к Wide&Deep. Wide&Deep одновременно обучает линейную модель на широкой стороне и нейронную сеть на глубокой стороне.Широкая часть обеспечивает способность памяти и обращает внимание на историческое поведение пользователя.Глубокая часть обеспечивает возможность обобщения и обращает внимание к некоторым элементам без исторического поведения. Предыдущая работа в основном была сосредоточена на глубоком обнаружении, и выражение признаков низкого порядка отсутствовало, поэтому мы добавили модуль LR для увеличения выражения признаков низкого порядка.Глубокая часть такая же, как и в предыдущей версии V3. В начале использовалось лишь небольшое количество признаков ID, и эффект был средним. Позже было добавлено большое количество искусственных перекрестных признаков, и эффект значительно улучшился после того, как размерность признака достигла уровня 100 миллионов. На изображении ниже показана наша модель V4:
Далее мы представим итеративный процесс цели оптимизации (эта часть содержания будет рассмотрена MTL позже). Бизнес-цель поиска отелей заключается в оптимизации покупательского опыта пользователя. Индикатором оптимизации модели является реальный уровень потребления пользователя. Как оптимизировать эту цель? Анализируя путь поведения пользователя, поведение пользователя можно разобрать на >клик->Заказ -> оплата -> потребление" и еще пять ссылок, каждая из которых может привести к потере пользователя. Например, после того, как некоторые пользователи завершат платеж, поскольку некоторые продавцы медлят с подтверждением, пользователи не могут дождаться отмены .
Вначале мы использовали схему 1 для моделирования каждой ссылки (реальная скорость потребления = частота кликов пользователя × скорость заказа × скорость оплаты × скорость потребления). Преимущество в том, что это очень просто, понятно и логично, каждый модуль имеет четкое разделение труда, и легко определить, в чем проблема. Недостатки также очевидны.Во-первых, функции повторяются.Четыре модели имеют одинаковые функции в измерении пользователя и торговца.Во-вторых,модели умножены и количество слоев слишком велико, что легко вызвать ошибки для передачи слой за слоем.Кроме того, четыре модели также имеют одинаковые характеристики.Увеличенные затраты на эксплуатацию и техническое обслуживание. Позже он постепенно превратился в метод «сквозной» схемы 2, который напрямую прогнозирует реальный уровень потребления пользователей.В настоящее время в качестве фактического образца потребления необходимо установить только положительный образец, и одной модели достаточно. , а затраты на разработку, эксплуатацию и техническое обслуживание относительно высоки.Он небольшой, и функции между моделями могут быть повторно использованы.Недостатком является то, что ссылка относительно длинная, и проблема джиттера измерения AB часто возникает при подключении к сети.
После переключения модели на нейронную сеть может быть выполнено многозадачное обучение.В предыдущей эпохе древовидной модели предсказывался только реальный уровень посещения и покупки «От начала до конца».Нейронная сеть может одновременно предсказывать отображение CTR частота кликов и скорость потребления кликов CVR посредством многозадачного обучения. Многозадачное обучение обучает две сети одновременно с помощью жесткого совместного использования.Параметры функций, слоев внедрения и скрытых слоев являются общими, а разные задачи различаются только на выходном уровне. На приведенном выше рисунке показана текущая онлайн-модель поиска отелей, основанная на многозадачном обучении, проведенном Wide&Deep.
Путь эволюции сетевой структуры
На приведенном выше рисунке показан путь эволюции модели глубокой сортировки для сортировки при поиске отелей.Начиная с MLP, она превратилась в FNN путем встраивания дискретных функций.В середине я пробовал DeepFM, PNN, DCN и другие модели, а позже добавил Wide Слой для развития до Wide&Deep, текущая версия. Это MTL-версия Wide&Deep, и каждый модуль является кумулятивным.
В дополнение к моделям, упомянутым выше, мы также исследовали это:
Это разработанная нами гибридная сеть, которая сочетает в себе преимущества различных сетей, таких как FNN, DeepFM, PNN, DCN, Wide&Deep и т. д., и одновременно реализует функции первого порядка, явные комбинации функций второго порядка, явные комбинации функций высокого порядка. комбинации функций и неявные комбинации функций высокого уровня и т. д., заинтересованные студенты могут попробовать это.
Экспериментальные результаты различных моделей
Вышеприведенное изображение представляет собой экспериментальные результаты различных моделей, где BP является базовой точкой, 1BP = 0,01%. XGB является базовой линией, и после длительного периода отладки MLP превосходит XGB.Модель слияния MLP и XGB также очень эффективна.Однако для облегчения обслуживания модель слияния окончательно заменена на FNN. На начальном этапе Wide&Deep не сильно улучшился, но после добавления комбинированных функций эффект стал лучше. Наши попытки встраивания, включая DeepFM, Deep&Cross и т. д., улучшили офлайн- и онлайн-флуктуации, но они не соответствовали онлайн-стандартам и в конечном итоге не завершились.
Что касается предварительной обработки признаков, то для непрерывных признаков были опробованы кумулятивная нормализация распределения, стандартизация и ручные преобразования, такие как преобразование квадратного корня, логарифмическое преобразование и т. д. Особенности и диапазон распределения Очень широкая нормализация кумулятивного распределения более эффективна для сценариев поиска отелей.
Что касается дискретных функций, мы попробовали встраивание функций и кросс-комбинацию дискретных функций, соответствующих FNN и Wide&Deep соответственно. Здесь особо упоминается параметризация пропущенных значений, потому что гостиничный бизнес — это низкочастотный бизнес с низким охватом признаков, а большое количество выборок имеет пропущенные признаки.
В плане настройки параметров соответственно пробуются функции активации, оптимизаторы и т.д. Функция активации пробовала Sigmoid, ReLU, Leaky_ReLU, ELU и т. д. Оптимизатор также экспериментировал с Adagrad, Rmsprop, Adam и т. д. Судя по экспериментальным результатам, лучше всего работает функция активации ReLU+Adam. В начале были добавлены слой Batch Normalization и Dropout, позже выяснилось, что эффект лучше после его удаления, что может быть связано с объемом данных и характеристиками данных поиска отелей. Структура сети и количество скрытых слоев представляют собой пирамидальные сети с количеством слоев от 3 до 6. Опыт скорости обучения показывает, что небольшая скорость обучения лучше, но она приведет к более медленному обучению, и необходимо найти баланс.
Процесс эволюции архитектуры онлайн-обслуживания модели глубокой сортировки описан ниже.На начальном этапе учащиеся в группе индивидуально исследовали и использовали различные инструменты с открытым исходным кодом, такие как Keras, TensorFlow и т. д., и соответственно реализовывали их онлайн. Код предсказания и другие коды объединяются, что сложно поддерживать, и их нельзя использовать повторно.
Позже группа решила исследовать вместе.Все использовали TensorFlow и TF-Serving онлайн.Онлайн и оффлайн могут быть легко связаны, а код прогнозирования и функциональный модуль также были разделены. Теперь мы переходим к платформе MLX. MLX — это сверхкрупномасштабная платформа машинного обучения, разработанная Meituan. Она настроена для сортировки таких задач, как поиск, рекомендации и реклама. Она поддерживает десятки миллиардов функций и потоковых обновлений. и имеет полную архитектуру онлайн-обслуживания, что значительно повышает производительность студентов-алгоритмов.
Наконец, я расскажу о нашем понимании ритма технологии сортировки при поиске, которая просто делает разные вещи на разных этапах.
На приведенном выше рисунке горизонтальная ось представляет техническую глубину.Чем правее, тем больше техническая сложность, больше трудозатрат и выше требования к людям. Вертикальная ось — бизнес-стадия. Воздействие бизнес-этапа на технологию включает два аспекта: объем данных и ценность для бизнеса. Размер объема данных может определять, что делать, потому что некоторые технологии мало что значат, когда объем данных мал; не говоря уже о ценности для бизнеса, чем выше ценность для бизнеса, тем больше стоит «больших инвестиций».
-
Начальный этап: на начальном этапе данных еще нет. В настоящее время хорошо выполнять простую сортировку, например, сортировку по цене или расстоянию. Цель состоит в том, чтобы ускорить весь процесс и предоставить самые основные услуги. . Например, в 2017 году бизнес долгосрочной аренды Meituan находился в зачаточном состоянии.
-
Ранняя стадия бизнеса: с развитием бизнеса он вступает в раннюю стадию развития бизнеса, количество заказов растет медленно, и есть некоторые данные.В это время могут быть добавлены некоторые эвристические правила или простые линейные модели, и модель поиска также может быть добавлена. Однако, поскольку объем данных все еще относительно невелик, нет необходимости развертывать очень сложную модель.
-
Стабильный этап роста: после дальнейшего развития бизнеса он входит в стадию стабильного роста.В это время объем заказов уже очень большой, и объем данных тоже очень большой.В этот период времени, когда пора чтобы «подготовить уроки», вы можете добавить модули, которые вы намереваетесь понять. Модель сортировки также будет развиваться до нелинейной модели, такой как XGB, которая будет выполнять множество функций разработки, функций в реальном времени и в реальном времени. На этом этапе преимущества проектирования функций огромны.
-
Период технического узкого места: характеристика этого этапа заключается в том, что основные вещи завершены, и становится трудно улучшить эффект в рамках исходной технической структуры. В настоящее время необходимо обновить, например, обновить традиционную семантическую модель до глубокой семантической модели, начать пробовать модель глубокой сортировки и начать изучать обучение с подкреплением, слияние нескольких моделей и многоцелевое обучение.
В Китае есть поговорка: «Убить курицу — значит использовать бычий нож». На самом деле, то же самое относится и к технологиям.Разные этапы бизнеса и разные объемы данных подходят для разных технических решений.Нет необходимости чрезмерно гнаться за передовыми технологиями и высокоуровневыми моделями.Лучше выбрать наиболее подходящее техническое решение по к характеристикам бизнеса и этапам бизнеса. Мы верим,Нет лучшей модели, есть только правильная сцена.
Суммировать
Как разновидность поиска O2O, поиск отелей имеет много отличий от традиционной поисковой сортировки.Он не только должен решить проблему релевантности поиска, но также предоставляет результаты сортировки «тысячи людей», оптимизирует покупательский опыт пользователя, а также удовлетворить потребности бизнеса. Благодаря разумному разделению на модули эти три типа проблем могут быть разделены, и три технических модуля поиска, сортировки и бизнеса выполняют свои собственные обязанности. Что касается поиска и понимания намерений, мы внедрили ориентировочную стратегию, модель NER и многоуровневую архитектуру поиска, чтобы обеспечить релевантность результатов запроса; модель ранжирования сочетает в себе бизнес-характеристики поиска отелей и учится на передовых идеях в отрасли. и пробует различные глубины.Модель сортировки пошла по другому пути эволюции модели. В то же время, контролируя технический ритм, мы можем уловить ритм технического выбора и итерации различных предприятий в целом, сопоставить различные технические решения с разными этапами бизнеса и выбрать только правильные, а не дорогие.
использованная литература
- [1] John Lafferty et al. Conditional random fields: Probabilistic models for segmenting and labeling sequence data.ICML2001.
- [2] Guillaume Lample et al Neural architectures for named entity recognition. NAACL2016.
- [3] Zhiheng Huang, Wei Xu, and Kai Yu. 2015.
- [4] Bidirectional LSTM-CRF models for sequence tagging. arXiv preprint arXiv:1508.01991.
- [5] Xuezhe Ma et al.End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF.ACL2016.
- [6] T Chen, C Guestrin. XGBoost: A scalable tree boosting system. KDD2016.
- [7] Weinan Zhang et al. Deep Learning over Multi-Field Categorical Data: A Case Study on User Response Prediction. ECIR 2016.
- [8] Huifeng Guo et al. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction. IJCAI2017.
- [9] Yanru Qu et al. Product-based neural networks for user response prediction. ICDM2016.
- [10] Heng-Tze Cheng et al. 2016. Wide & deep learning for recommender systems. 2016.In Proceedings of the 1st Workshop on Deep Learning for Recommender Systems.
- [11] Ruoxi Wang et al. Deep & Cross Network for Ad Click Predictions. ADKDD2017.
об авторе
- И Тао, старший технический эксперт Meituan, присоединился к Meituan в 2016 году и в настоящее время отвечает за технологию поиска и сортировки гостиничного бизнеса Meituan. Он окончил Институт вычислительных технологий Китайской академии наук в 2010 году. Он работал в таких компаниях, как NetEase Youdao, и последовательно занимался исследованиями и разработками в области веб-поиска, поиска покупок и вычислительной рекламы. Он занял второе место в «Конкурсе классификации спутниковых изображений Kaggle» и является звездным лектором QCon.