Как лидер отрасли в области конфиденциальности и рекламы, Criteo этим летом провела открытый конкурс ML Competition Prediction ML Competition, основанный на агрегированных и зашумленных данных. Методы агрегирования и добавления шума, основанные на Дифференциальной конфиденциальности, были вдохновлены API отчетности, предложенным в тестовой среде Google Privacy Sandbox. Полную информацию о задаче можно найти здесь: https://competitions.codalab.org/competitions/31485

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

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

Соревнование

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

Необработанный образец этого набора данных может выглядеть так:

Partner Id        Url         Ad size     … (*)   Clicked?  
 ------------ ---------------- --------- ------- ---------- 
          42   someurl.com      large       ...          0  
          43   someurl.com      large       ...          1  
          42   anotherurl.com   small       ...          0  
         ...   ...              ...         ...        ...

(*) Здесь мы показываем только 3 функции, набор данных содержит еще 16 функций. Также обратите внимание, что функции фактически анонимизированы, а их модальности хешированы.

Агрегированные данные

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

┌───────────┬────────────────┬───────────────────┬─────────────────┐
│ PartnerId │      Url       │ Count of examples │ Count of clicks │
├───────────┼────────────────┼───────────────────┼─────────────────┤
│        42 │ someurl.com    │             10000 │             600 │
│        42 │ someurl.com    │             55000 │            1000 │
│        43 │ anotherurl.com │             20000 │             500 │
│       ... │ ...            │               ... │             ... │
└───────────┴────────────────┴───────────────────┴─────────────────┘
┌───────────┬────────┬───────────────────┬─────────────────┐
│ PartnerId │ AdSize │ count of examples │ count of clicks │
├───────────┼────────┼───────────────────┼─────────────────┤
│        42 │ large  │            700000 │            8000 │
│        42 │ small  │            100000 │            1000 │
│        43 │ large  │            900000 │           10000 │
│       ... │ ...    │               ... │             ... │
└───────────┴────────┴───────────────────┴─────────────────┘
┌────────────────┬────────┬───────────────────┬─────────────────┐
│      Url       │ AdSize │ count of examples │ count of clicks │
├────────────────┼────────┼───────────────────┼─────────────────┤
│ someurl.com    │ large  │            300000 │            2000 │
│ someurl.com    │ small  │             40000 │             500 │
│ anotherurl.com │ large  │            200000 │            4000 │
│ ...            │ ...    │               ... │             ... │
└────────────────┴────────┴───────────────────┴─────────────────┘

«Счетчики» в этих таблицах относятся к количеству событий в большом обучающем наборе из 100 миллионов примеров.
Учитывая 19 функций, мы вычислили и предоставили одну таблицу агрегации, сгруппировав данные по каждой паре функций, так что всего ( 19 x 18) / 2 = 171 таблица.
Вдобавок к этим подсчетам был добавлен некоторый гауссов шум, чтобы предоставленные данные соответствовали требованиям дифференциальной конфиденциальности.

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

Дополнительные детализированные наборы данных

Однако мы также предоставили два меньших «детализированных» (т. Е. Неагрегированных) набора данных:

  • набор тестов из 1 млн строк, чтобы участник мог применить свою модель и отправить нам свои прогнозы.
  • небольшой обучающий набор из 100 тыс. строк, который мы решили включить, чтобы задача была легко доступной для многих участников. Таким образом, было возможно участвовать, обучая модель с некоторым «классическим» ML на небольшой обучающей выборке.

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

Две подзадачи: прогнозирование кликов или продаж.

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

(Таким образом, мы предоставили метки «сопоставленные продажи» и «клики» в небольшом обучающем наборе; а также количество сопоставленных продаж и кликов в таблицах агрегирования.)

Результаты конкурса

Горизонт

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

Полученные результаты

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

╔═══════════════════════╦═════════════════════════════╗
║         Model         ║ Click prediction metric (*) ║
╠═══════════════════════╬═════════════════════════════╣
║ Skyline               ║                        0.31 ║
║ Winner                ║                       0.295 ║
║ Second                ║                       0.292 ║
║ Third                 ║                       0.288 ║
║ Logistic, small train ║                        0.24 ║
║ Aggregated data only  ║                       0.265 ║
╚═══════════════════════╩═════════════════════════════╝

(*) указанная метрика - это оценка от 0 до 1, и чем выше оценка, тем лучше. Точнее, он определяется как «1 - LLH / энтропия», где LLH - логарифмическая вероятность прогнозов. Эту формулу можно интерпретировать как «Пропорцию энтропии лейблов, объясняемую моделью», также называемую «Улучшение против наивности» в таблицах лидеров соревнований. (Также обратите внимание, что это техническая метрика, влияние на бизнес-метрики, если бы мы использовали такие модели, неизвестно.)

╔═════════╦═════════════════════════╗
║  Model  ║ Sales prediction metric ║
╠═════════╬═════════════════════════╣
║ Skyline ║                    0.34 ║
║ Winner  ║                    0.32 ║
║ Second  ║                   0.306 ║
║ Third   ║                   0.303 ║
╚═════════╩═════════════════════════╝

Методы, используемые командами-победителями

Из этой проблемы возникли два основных семейства решений:

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

Обогащение небольшого обучающего набора

Идея здесь состоит в том, чтобы использовать большой набор агрегированных данных для добавления дополнительных столбцов в небольшой обучающий набор. Чтобы определить один такой столбец, мы можем выбрать пару функций. Назовем эти особенности F1 и F2. В строке небольшого обучающего набора мы можем посмотреть на модальности этих функций (модальности «42» и «A» в примере на рисунке ниже), и теперь мы можем запросить таблицы агрегации с этими модальностями. Таблицы агрегации дают нам количество примеров, в которых F1, F2 используют одни и те же модальности, и мы можем сообщить это количество как новый столбец в небольшом обучающем наборе. Аналогичным образом мы можем добавить столбец с количеством кликов или CTR для модальностей F1 и F2. И мы, конечно, можем вычислить такие дополнительные столбцы для каждой пары функций, давая нам сотни дополнительных столбцов.

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

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

Обратите внимание, что этот метод критически требует, чтобы был возможен набор помеченных детализированных данных.

Изучение логистической модели с агрегированными этикетками и детализированными образцами

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

Ключевой момент заключается в том, чтобы внимательно изучить формулу для этой производной. Предположим, что w - это вес, связанный со словом «партнеру 42». Тогда производная потерь по этому весу в точности равна:

Где yi - это метка в примере «i», ŷi - это прогноз модели в примере i, а суммы указаны в примерах, где вес w активен, то есть где партнер равен «42».

Первый член напрямую доступен в агрегированных данных.

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

Как только мы отметили этот факт, теперь мы можем оптимизировать логистическую модель с помощью градиентного спуска почти как обычно. Но напомним, что этот метод критически требует набора (немаркированных) детализированных данных.

Учиться только на агрегированных данных?

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

В Criteo мы начали работать над методами, использующими только агрегированные данные. Наш метод можно найти здесь: https://github.com/criteo-research/ad_click_prediction_from_aggregated_data. Чтобы представить это очень кратко, мы можем думать об этом как о создании поддельных гранулированных немаркированных выборок, которые соответствуют количеству примеров, наблюдаемых в таблицах агрегации, а затем применение метода победителя к этим поддельным образцам вместо тестовых образцов. Пока это единственный известный нам метод, который дает разумные результаты только с агрегированными данными, и мы представили результаты в таблице выше. Но очевидно, что он все еще сильно отстает от методов, имеющих доступ к (даже небольшому) детализированному набору данных.

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

Видео решений претендента

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

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



Присоединяйтесь к веселью, подайте заявку на открытые должности сегодня!