Персональные рекомендации Airbnb
Сценарий персонализированной рекомендации Airbnb
Сценарии использования Airbnb:
Двусторонняя платформа краткосрочной аренды жилья (клиенты, арендодатели)
Клиенты находят недвижимость через поиск или по рекомендации системы => Содействуйте 99% бронирований Airbnb
Клиент редко бронирует одно и то же объявление несколько раз.
Листинг может быть арендован только одним клиентом за раз
Данные имеют серьезную разреженность
List Embedding
Вставить каждый листинг => листинг
Набор данных состоит из N сеансов кликов пользователей, где каждый сеанс определяется как непрерывная последовательность M идентификаторов объявлений, на которые нажал пользователь.
Пока интервал времени между двумя последовательными кликами пользователя превышает 30 минут, это считается новой сессией.
Цель состоит в том, чтобы изучить d-мерное (32-мерное) представление вложения каждого листинга через множество S, чтобы подобные листинги были ближе в пространстве вложения.
Отрисовка алгоритма skip-gram в word2vec
Листинг встраивания, поставить каждого пользователя в рядщелкнулСеанс листинга рассматривается как предложение, каждый листинг рассматривается как слово, а встраивание листинга обучается.
Использование Word2Vec
• При встраивании пространство, в котором находится исходное слово, отображается в новое пространство, так что в этом пространстве семантически сходные слова находятся рядом друг с другом.
• Word Embedding => узнать весовую матрицу скрытого слоя
• Входной слой представляет собой горячее кодирование, а выходной слой представляет собой значение вероятности.
• Размер входного и выходного слоев равен размеру тезауруса.
• Количество нейронов в скрытом слое — hidden_size (размер встраивания).
• Для весовой матрицы W между входным и скрытым слоями размер равен [vocab_size, hidden_size].
• Выходной слой представляет собой вектор размером [vocab_size], каждое значение представляет вероятность вывода слова.
• Предположим, что имеется несколько обучающих выборок (сок, яблоко) (сок, груша) (сок, банан).
• Центральное слово — сок, а в указанном окне — яблоко, груша и банан, общий входной сок соответствует выходу разных слов. После обучения с этими образцами, полученные результаты вероятности, значения вероятности яблока, груши и банана будут относительно высокими => их параметры в соответствующих скрытых слоях аналогичны
• Вычислить косинусное сходство между векторами скрытого слоя, соответствующими яблоку, груше, банану, которое будет относительно высоким.
• word2vec может находить сходства и аналогии между словами
• В результате мы хотим получить не саму модель, а параметры скрытого слоя, то есть входной вектор преобразуется в новое вложение
•
Оценка внедрения списка
Автономная оценка встраивания списка:
Прежде чем использовать рекомендательную систему на основе встраивания для тестирования онлайн-поиска, необходимо провести несколько автономных тестов. Цель состоит в том, чтобы сравнить вложения, обученные с разными параметрами, определить размерность встраивания, идеи алгоритма и т. д.
Критерии оценки для проверки того, насколько вероятно, что последнее объявление, рекомендованное пользователем по клику, в конечном итоге приведет к бронированию.
Шаг 1, получите списки, которые пользователь недавно щелкнул, а также список кандидатов на списки, который необходимо отсортировать, и списки, которые пользователь наконец забронировал.
Шаг 2. Рассчитайте косинусное сходство между выбранным списком и списком кандидатов в пространстве встраивания.
Шаг 3, отсортируйте списки-кандидаты по сходству и наблюдайте за положением окончательных забронированных списков в сортировке.
Объявления в поиске ранжируются в соответствии со сходством вложений, а окончательно забронированные объявления ранжируются в соответствии со средним числом кликов перед каждым бронированием, возвращаясь к 17 кликам до бронирования.
Оценка внедрения списка:
Проверка правильности встраивания несколькими способами
K-означает кластеризацию, кластеризацию встраивания, а затем можно найти его степень дискриминации по географическому местоположению.
Косинусное сходство вложений
Косинусное сходство между разными типами листингов
Косинусное сходство между листингами в разных ценовых диапазонах
В дополнение к основным атрибутам (цена, географическое положение), которые, очевидно, можно получить напрямую, существуют также скрытые атрибуты, которые можно найти путем встраивания, например, культура дома.
Вычислите k ближайших соседей каждого встраивания листинга и сравните листинг и k ближайших соседей => Инструмент оценки встраивания
На YouTube есть специальное видео, которое доказывает, что встраивание полезно => Сделайте похожие списки ближе в пространстве для встраивания.
Холодный запуск внедрения списка
Рекомендация по похожим свойствам на основе встраивания в список
На каждой странице сведений об объявлении Airbnb есть карусель «Похожие объявления», в которой рекомендуются объявления, похожие на текущее объявление и доступные для бронирования в тот же период времени.
После встраивания списка было проведено A/B-тестирование, и рекомендации, основанные на встраивании, увеличили рейтинг кликов «похожих объявлений» на 21%, а количество бронирований, созданных через «похожие объявления», увеличилось на 4,9%.
В рекомендации на основе встраивания аналогичные списки получаются путем нахождения k ближайших соседей в пространстве встраивания списка.
Для встраивания изученного списка найдите все доступные для бронирования похожие объявления для данного списка, вычислив косинусное сходство с векторами всех объявлений из одного и того же пункта назначения (условиями являются даты заезда и выезда, объявления должны быть доступны для бронирования в пределах этого списка). период времени) => Окончательные k списков с наибольшим сходством образуют список похожих списков
Встраивание типов пользователей и встраивание типов листинга
Некоторые долгосрочные модели поведения, например, человек, который давно забронировал номер в другом городе, может по-прежнему хотеть забронировать номер того же типа в текущем городе.
Дальнейший захват этой информации из заранее определенного списка
Создайте набор данных: предыдущая последовательность кликов становится заранее определенной последовательностью, а набор данных представляет собой набор сеансов, состоящий из списков, запланированных пользователями N. Каждый сеанс можно выразить как
Существующие проблемы:
Набор обучающих данных будет небольшим, поскольку заранее определенные данные на порядок меньше кликов.
Многие пользователи бронировали только один раз в прошлом, и эти данные нельзя использовать для обучения модели.
Необходимо дополнительно удалить те объявления, которые в общей сложности бронируются на платформе несколько раз (например, объявления, которые меньше 5-10 раз)
Промежуток времени слишком длинный, возможно, предпочтения пользователя изменились.
Персонализированный поиск в режиме реального времени на основе встраивания
Вычислить косинусное сходство между внедрением пользовательского типа пользователя и внедрением типа списка кандидатов
Рекомендовать списки с высоким сходством с пользователями
Анализ финтех-данных
Сценарии применения финтеха
Финтех:
Финансы + технологии с помощью технологических средств делают финансовые услуги более эффективными
Финансовый бизнес: страхование, банки, компании по ценным бумагам и фонды должны поддерживаться технологиями. Кроме того, интернет-компании также развивают финансовый бизнес, например, Ant Financial.
Финтех-компании и развитие талантов
Финтех-индустрия набирает инженеров-программистов, работающих с технологическими компаниями, и сочетает таланты с цифровыми навыками и навыками бизнес-анализа в финансовой отрасли.
Типичные компании: Ant Financial, JD Finance, Grab, Sofi, Oscar Health, Nubank, Robinhood, Atom Bank, Lufax, Bloomberg, Factset, PayPal
Как использовать Python для количественной торговли
Количественная торговля (vnpy, JointQuant, Ricequant)