Система рекомендаций — полная архитектура и алгоритм (совместная фильтрация, скрытая семантика)

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

1. Что такое рекомендательная система

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

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

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

Общие поля рекомендаций: «Угадай, что тебе нравится» на Taobao, «Смотри и смотри», «Рекомендуемые продукты», «Рекомендации на главной странице Meituan», «Рекомендации поблизости» и т. д.

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

2. Общая архитектура

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

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

2.1 Офлайн-рекомендация

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

Как показано на рисунке ниже, типичная архитектура системы рекомендаций на основе автономного обучения состоит изОтчетность по данным, автономное обучение, онлайн-хранилище, вычисления в реальном времени и A/B-тестированиеЭти модули составляются. Среди них отчетность по данным и автономное обучение составляют систему обучения в обучении с учителем, а вычисления в реальном времени и A/B-тестирование составляют систему прогнозирования. Кроме того, в дополнение к модели существует модуль онлайн-хранилища для хранения модели и информации о функциях, требуемой моделью для вызова вычислительного модуля в реальном времени. Каждый модуль на рисунке представляет собой два потока данных обучения и прогнозирования.Поток обучающих данных собирает бизнес-данные и, наконец, генерирует модель и сохраняет ее в модуле онлайн-хранилища;поток прогнозируемых данных принимает запросы бизнес-прогнозирования и получает доступ к данным в реальном времени через модуль A/B-тестирования Модуль расчета получает результат прогноза.

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

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

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

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

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

  5. A/B-тестирование: A/B-тестирование — обязательный модуль для интернет-продуктов, и оно не является исключением для рекомендательных систем, которые помогают разработчикам оценить влияние новых алгоритмов на поведение клиентов. В дополнение к офлайн-индикаторам, прежде чем новый рекомендательный алгоритм появится в сети, он обычно проходит A/B-тестирование, чтобы проверить эффективность нового алгоритма.

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

2.2 Онлайн-обучение

Для бизнеса мы надеемся, что отзыв пользователя о последней рекламе (нравится или не нравится, есть ли клик или нет) может быть быстро использован для следующей рекламы. В рекомендации объявления. Это требует от нас использования другого метода для решения этой проблемы, и этот метод — онлайн-обучение.

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

  1. Обработка образцов: По сравнению с рекомендательной системой, основанной на офлайн-обучении, основное отличие онлайн-обучения на этапе представления данных отражается в обработке выборки. , для автономного обучения отчетные данные сначала сохраняются в распределенной файловой системе, а затем ожидают выполнения задач офлайн-вычислений для обработки образцов; для онлайн-обучения все, что нужно сделать, это расчет дедупликации, фильтрация и выборка образцов. в реальном времени.
  2. функции реального времени: Модуль функций в реальном времени создает обучающие выборки путем обработки выборочных данных в реальном времени и объединения необходимых функций для обучения, а обучающий модуль входной потоковой передачи используется для обновления модели. Основными функциями этого модуля являются сшивание признаков и разработка признаков.
  3. Потоковое обучение: основная роль модуля потокового обучения заключается в использовании обучающих выборок в режиме реального времени для обновления модели. Расчет инкрементной части обновления алгоритма рекомендаций обновляется посредством потокового расчета. Одним из преимуществ онлайн-обучения является разреженное хранилище, которое может поддерживать модель. С точки зрения обучения онлайн-модели не обязательно обучаются с нуля, но в качестве основы могут быть использованы параметры модели, полученные в результате офлайн-обучения, и на этой основе может выполняться инкрементное обучение.
  4. Хранение и загрузка модели: модели обычно хранятся на серверах параметров. После обновления модели файл модели помещается в онлайн-хранилище и динамически загружается модулем онлайн-сервиса.

3. Характеристики

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

  1. Типы поведения пользователей: на веб-сайте пользователи могут выполнять различные действия с элементами. Пользователи могут просматривать элементы, щелкать ссылки элементов, добавлять элементы в закладки, оценивать элементы, покупать элементы, комментировать элементы, маркировать элементы различными тегами, делиться элементами с друзьями, выполнять поиск по различным ключевым словам и т. д. Такое поведение будет влиять на вес функций элемента, но разные варианты поведения имеют разный эффект. В большинстве случаев трудно определить, какое поведение важнее. Общий стандарт заключается в том, что чем дороже платит пользователь, тем выше вес.
  2. время поведения пользователя: Вообще говоря, недавнее поведение пользователя более важно, в то время как поведение пользователя давным-давно относительно менее важно. Следовательно, если пользователь недавно приобрел предмет, соответствующая характеристика этого предмета будет иметь относительно большой вес.
  3. количество действий пользователя: Иногда пользователь воздействует на элемент много раз. Например, пользователи будут много раз слушать песню, смотреть много серий сериала и т. д. Следовательно, количество повторений одного и того же поведения пользователя в отношении одного и того же элемента также отражает интерес пользователя к элементу, а элемент с большим количеством вариантов поведения соответствует более высокому весу функции.
  4. Популярность товара: если пользователь воздействует на очень популярный элемент, это часто не отражает личность пользователя, потому что пользователь может следовать тренду и может не проявлять особого интереса к элементу, особенно когда у пользователя есть несколько случайных вхождений популярного элемента. элемент Когда это неважное поведение (например, поведение при просмотре), еще более показательно, что пользователь может не интересоваться этим элементом, это может быть просто потому, что ссылки на этот элемент находятся повсюду и по нему легко щелкнуть. И наоборот, если пользователь ведет себя с непопулярным элементом, это показывает индивидуальные потребности пользователя. Поэтому механизм рекомендаций будет увеличивать вес функций, соответствующих непопулярным элементам, при создании пользовательских функций.
  5. сушка данных: Уменьшите шум сэмпла. Для данных о мошенническом поведении, таких как свайп-заказы, смешанные с данными, их следует исключить из обучающих данных, иначе это напрямую повлияет на эффект модели; также следует иметь дело с отсутствующими значениями в выборке.
  6. Положительный и отрицательный баланс образца: Как правило, все данные о поведении, которые мы собираем у пользователей, представляют собой положительные образцы, вызывающие серьезный дисбаланс. Поэтому для пользователя некоторые элементы отбираются как отрицательные образцы из предметов, которые он не действовал, но при выборке обеспечивается равенство количества положительных и отрицательных образцов для каждого пользователя.
  7. Комбинация функций: Нам нужно рассмотреть взаимосвязь между функциями и функциями. Например, в поисковом рейтинге отелей Meituan продажи отелей, цены и уровень потребления пользователей являются сильно коррелированными факторами, возраст и местоположение пользователя могут быть слабо коррелированными факторами, а идентификатор пользователя — совершенно нерелевантным фактором. После определения того, какие факторы могут быть связаны с целью прогнозирования, нам необходимо представить эту информацию в виде числового типа, что представляет собой процесс извлечения признаков. Кроме того, записи о просмотрах, транзакциях и других действиях пользователей в приложении содержат много информации, а извлечение функций в основном извлекает из этой информации соответствующие факторы и представляет их в виде числовых переменных. Обычно используемые статистические функции включают функции подсчета, такие как количество просмотров, количество заказов и т. д.; функции отношения, такие как рейтинг кликов, коэффициент конверсии и т. д.; статистические функции, такие как среднее значение цены, стандартное отклонение, квантиль. , асимметрия, эксцесс и т.д.

4. Алгоритм совместной фильтрации

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

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

4.1 Совместная фильтрация на основе элементов (ItemCF)

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

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

  1. Расчет списка пользователей на основе часто понравившихся элементов

    w_{ij}=\frac{|N(i)\cap{}N(j)|}{\sqrt{|N(i)|*|N(j)|}}

    Здесь в знаменателе N(i) — количество пользователей, купивших товар i, N(j) — количество пользователей, купивших товар j, а в числителеN(i)\cap{}N(j)— количество пользователей, которые приобрели товар i и товар j одновременно. . Видно, что суть приведенной выше формулы заключается в расчете доли людей, которые одновременно покупают этот продукт. Чем больше людей покупают эти два товара одновременно, тем выше их сходство. Стоит также отметить, что в знаменателе мы используем общее количество покупателей предмета в качестве штрафа, что означает, что предмет может быть очень популярным, что приводит к тому, что его часто покупают с другими предметами, поэтому разделите его на его общее количество. количество покупателей, которых нужно получить Снижает показатель сходства с другими товарами.

  2. Вычисление подобия на основе косинуса

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

    w_{ij}=cos\theta=\frac{N_i*N_j}{||N_i||||N_j||}=\frac{\sum_{k=1}^{len}(n_{ki}*n_{kj})}{\sqrt{\sum_{k=1}^{len}n_{ki}^2}*\sqrt{\sum_{k=1}^{len}n_{kj}^2}}

    вn_{ki}— оценка элемента i пользователем k или 0, если оценки нет.

  3. Наказание за популярные предметы

    Для задачи популярных предметов ее можно решить по следующей формуле:

    w_{ij}=\frac{|N(i)\cap{}N(j)|}{|N(i)|^\alpha*|N(j)|^{1-\alpha}}

    когда\alpha\in(0,0.5), чем меньше N(i), тем суровее штраф, который снизит показатель релевантности горячего элемента.

4.2 Пользовательская совместная фильтрация (UserCF)

Принцип совместной фильтрации на основе пользователей (User CF) на самом деле похож на совместную фильтрацию на основе элементов. Разница в том, что принцип совместной фильтрации на основе элементов заключается в том, что пользователь U покупает элемент A и рекомендует элементы B, C и D, которые аналогичны пользователям U и A. Совместная фильтрация на основе пользователей сначала вычисляет сходство между пользователем U и другими пользователями, а затем выбирает пользователей, наиболее похожих на U, и рекомендует пользователю U товары, которые они приобрели.

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

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

w_{ab}=\frac{|N(a)\cap{}N(b)|}{\sqrt{|N(a)|*|N(b)|}}

где N(a) представляет количество товаров, приобретенных пользователем a, N(b) представляет количество товаров, приобретенных пользователем b, а N(a)∩N(b) представляет количество товаров, приобретенных пользователями a и b. . Имея схожие данные о пользователях, выберите K наиболее похожих пользователей для пользователя U и порекомендуйте товары, которые U не купил, среди товаров, которые они купили, пользователю U.

4.3 Матричная факторизация

В приведенном выше расчете будет получена матрица подобия, а размер и широта этой матрицы очень велики, и ее необходимо уменьшить.Используется метод уменьшения размерности SVD.Подробности см. в методе уменьшения размерности, который я писал ранее. :2.5 Метод уменьшения размерности

Матричная факторизация на основе разреженного автоэнкодера

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

  1. Базовая структура автокодирования

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

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

  2. многослойная структура

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

5. Скрытая семантическая модель

5.1 Основная идея

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

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

Скрытые семантические модели широко используются в рекомендациях Top-N. Обычно используются латентные семантические модели, LSA (латентный семантический анализ), LDA (латентное распределение Дирихле), тематическая модель (Topic Model), матричная факторизация (Matrix Factorization) и так далее.

Во-первых, давайте разберем эту модель на примере. Например, есть два пользователя A и B, и есть списки чтения пользователей. Интересы пользователя A включают детективные романы, научно-популярные книги и некоторые книги по компьютерным технологиям, а интересы пользователя B более сосредоточены на математике и машинном обучении. Итак, как вы рекомендуете книги А и Б?

Для UserCF нам сначала нужно найти других пользователей, которые читали те же книги, что и они (пользователи со схожими интересами), а затем порекомендовать им другие книги, которые нравятся этим пользователям. Для ItemCF им нужно порекомендовать книги, похожие на те, которые они уже читали.Например, пользователь Б прочитал много книг по интеллектуальному анализу данных, поэтому он может порекомендовать книги по машинному обучению или распознаванию образов.

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

5.2 Понимание модели

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

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

LFM вычисляет интерес пользователя u к элементу i по следующей формуле:

preference(u,i)=r_{ui}=p_u^Tq_i=\sum_{f=1}^Fp_{u,k}q_{i,k}

в этой формулеp_{u,k}иq_{i,k}– параметры модели, гдеp_{u,k}измеряет взаимосвязь между интересом пользователя u и k-м скрытым классом, иq_{i,k}Он измеряет взаимосвязь между k-м скрытым классом и элементом i. Итак, следующий вопрос, как рассчитать эти два параметра.

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

6. Алгоритм сортировки

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

Этот процесс выберет сотни или тысячи наборов кандидатов из десятков миллионов элементов, а затем отберет 30 кандидатов для каждого пользователя на этапе сортировки. Эту сортировку можно понимать как функцию F (пользователь, элемент, контекст), вводом является пользователь, элемент, среда, а выводом является оценка от 0 до 1, и выбираются песни с наивысшей оценкой. Этот процесс часто называют оценкой CTR. Тогда общая форма операции функции F:

  1. Logistic Regression

    Самой простой является логистическая регрессия, обобщенная линейная модель. Возьмите пользовательский портрет (вектор) пользователя, например[3, 1], объединение изображения элемента, например[4, 0], плюс вектор, представляющий контекст[0, 1, 1]получить после[3, 1, 4, 0, 0, 1, 1], если пользователь имел контакт с элементом, метка равна 1, и в сумме они составляют положительную выборку.В то же время элемент, «пропущенный» пользователем, или популярный элемент, с которым пользователь не контактировал можно использовать как отрицательный образец. Метка 0. По такому вводу и выводу можно обучать алгоритм сортировки. Подробную модель см.:2. Логистическая регрессия

  2. GBDT

    Решение с использованием дерева принятия решений с повышением градиента (GBDT) также может решить эту проблему сортировки, но эта модель отличается от LR. В качестве ансамблевой модели GBDT будет использовать несколько деревьев решений, и каждое дерево будет соответствовать остатку предыдущего дерева, чтобы получить хороший эффект подгонки. Когда образец вводится в дерево, он спускается к конечному узлу в соответствии с условиями каждого узла, устанавливает значение этого узла в 1 и устанавливает остальные в 0. Подробнее об алгоритме модели см.3.2 GBDT

  3. GBDT+LR

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

  4. GBDT+FM

    GBDT не поддерживает многомерные разреженные признаки.Если в LR добавить многомерные признаки, то, с одной стороны, многомерные признаки нужно будет комбинировать вручную, а с другой стороны, размерность модели и вычислительная сложность возрастут при уровень O(N^2). Поэтому модель GBDT+FM спроектирована так, как показано на рисунке, а вместо LR используется модель Factorization Machines.

    Модель Factorization Machines (FM) выглядит следующим образом:

    \hat{y}(x)=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^n\sum_{j=i+1}^n<v_i,v_j>x_ix_j

    Имеет следующие преимущества ①Первые два элемента представляют собой линейную модель, которая эквивалентна роли модели LR. ②Третий элемент представляет собой элемент квадратичного пересечения, который может автоматически объединять функции. ③ Путем добавления скрытых векторов вычислительная сложность обучения и прогнозирования модели снижается до O(N) ④Поддержка разреженных функций.

    Несколько преимуществ делают GBDT + FM хорошей поддержкой разреженных функций. FM использует конечные узлы GBDT и разреженные функции (функции контента) в качестве входных данных. Схематическая диаграмма структуры модели выглядит следующим образом. После того, как модель GBDT + FM подключена к сети, по сравнению с GBDT +LR Эффект каждого индекса улучшается от 4% до 6%.

  5. DNN+GBDT+FM

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

    Архитектура ансамблевой модели DNN+GBDT+FM показана на рисунке.Слой FM является последним слоем модели, то есть слоем слияния.Его вход состоит из трех частей:последний скрытый слой DNN,выход листовой узел GBDT и многомерные разреженные функции. Архитектура ансамблевой модели DNN+GBDT+FM представлена ​​следующим образом: после запуска модели эффект улучшается на 4% по сравнению с GBDT+FM.

    Используйте распределенный TensorFlow для обучения, используйте микросервисы на основе TensorFlow Serving для онлайн-прогнозирования и оптимизатор Adam для ансамблевой модели DNN+GBDT+FM. Адам сочетает алгоритм адаптивного градиента (AdaGrad) и алгоритмы среднеквадратичного распространения (RMSProp). Он имеет лучшую скорость сходимости, и каждая переменная имеет свой размер шага по убыванию.Общий размер шага по убыванию будет регулироваться в соответствии с текущим градиентом, который может адаптироваться к зашумленным данным. В ходе экспериментов были проверены различные оптимизаторы, и эффект Адама оказался лучшим.

Статус-кво рейтинга DNN в отрасли

  1. Youtube запустил алгоритм сортировки DNN в 2016 году.
  2. Шанхайский университет Цзяо Тонг и UCL запустили нейронную сеть на основе продуктов (PNN) в 2016 году для прогнозирования кликов пользователей. PNN эквивалентен кроссоверу признаков на уровне DNN Наш подход заключается в передаче кроссовера признаков в FM, а DNN фокусируется на извлечении глубокой информации.
  3. Google запустил Wide And Deep Model в 2016 году, которая также является основой нашей текущей модели.На этой основе FM используется для замены Cross Feature LR, что упрощает вычислительную сложность и улучшает способность кросса к обобщению.
  4. В этом году Али запустил Deep Interest Network (DIN), используя механизм внимания для оценки кликабельности продуктов и оптимизации точности вектора встраивания, на котором стоит поучиться.

7. Оценочные тесты

7.1 A/B-тестирование

После запуска новой модели рекомендаций выполняется A/B-тестирование, чтобы сравнить ее со старым алгоритмом.

AB-тестирование — очень часто используемый экспериментальный метод для онлайн-алгоритмов оценки. Он случайным образом делит пользователей на несколько групп по определенным правилам, применяет разные алгоритмы для разных групп пользователей, а затем сравнивает разные алгоритмы, подсчитывая различные оценочные показатели разных групп пользователей, например рейтинг кликов разных групп пользователей. производительность различных алгоритмов по рейтингу кликов. Читатели, интересующиеся AB-тестированием, могут просмотреть веб-сайт http://www.abtests.com/, на котором приводится множество примеров повышения удовлетворенности пользователей веб-сайта с помощью фактического AB-тестирования, из которого мы можем узнать, как проводить разумные AB-тесты.

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

«Ортогональность» — термин, заимствованный из геометрии. Если две прямые пересекаются под прямым углом, то они ортогональны. В терминах вектора две линии независимы друг от друга.

На рисунке ниже показана простая тестовая система AB. После того, как пользователь заходит на сайт, система распределения трафика определяет, нужно ли пользователю тестироваться на АБ, и при необходимости система распределения трафика помечает пользователя, к какой группе он принадлежит в тесте. Затем пользователь просматривает веб-страницу, и поведение пользователя при просмотре веб-страницы будет отправлено обратно в базу данных журналов в фоновом режиме через систему журналов. На этом этапе, если у пользователя есть метка для тестовой группы, метка также будет отправлена ​​обратно в серверную базу данных. В фоновом режиме первая задача экспериментатора — настроить систему распределения трафика и решить, в каком тесте будут участвовать пользователи, соответствующие условиям. Во-вторых, экспериментатору необходимо подсчитать данные в базе данных журналов, создать экспериментальные отчеты различных групп пользователей через систему оценки, а также сравнить и оценить результаты экспериментов.

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

7.2 Другие методы оценки

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

8. Рекомендуемая проблема с холодным запуском системы

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

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

8.1 Пользовательский холодный запуск

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

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

8.2 Пункт Холодный запуск

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

  1. Используйте информацию о содержании и классификации элементов.
  2. Используйте экспертные аннотированные данные.

8.3 Холодный запуск системы

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

9. Ссылки

  1. Практика системы рекомендаций - Сян Лян
  2. Рекомендательные системы и глубокое обучение
  3. Практика машинного обучения Meituan

Машинное обучение легко понять серия статей


автор:@mantchs

GitHub:GitHub.com/NLP-love/ml…

Приглашаются все желающие присоединиться к обсуждению! Улучшайте этот проект вместе! Номер группы: [541954936]NLP面试学习群