Математика сопоставления устройств между сессиями
Математические основы сопоставления устройств при меняющихся сигналах — как анализ на базе ИИ вновь связывает вернувшихся посетителей, несмотря на дрейф сигналов.
Фингерпринтинг устройств сталкивается с фундаментальной проблемой: сигналы меняются. Браузеры обновляются, пользователи меняют настройки, шрифты устанавливаются и удаляются. Строгое сравнение трактовало бы каждый изменившийся сигнал как новое устройство, разрушая точность идентификации. Наша система сопоставления между сессиями решает это, применяя техники на базе ИИ, которые измеряют схожесть, а не требуют точного равенства.
Проблема: дрейф сигналов
Рассмотрим устройство, отпечаток которого сняли вчера и которое возвращается сегодня после обновления браузера. Строка user agent изменилась. Теперь поддерживаются две новые CSS-фичи. Добавилось WebGL-расширение. Рендеринг canvas остался идентичным (тот же GPU, тот же драйвер). Аудиоотпечаток идентичен. Параметры WebGL идентичны, за исключением нового расширения.
При точном сопоставлении это устройство не было бы распознано — совокупный отпечаток изменился. Но интуитивно мы понимаем, что это то же самое устройство. Аппаратные сигналы идентичны, а программные изменения согласуются с обновлением браузера. Наша система сопоставления между сессиями формализует эту интуицию.
Сравнение на основе множеств для признаковых сигналов
Многие сигналы браузера естественно представимы в виде множеств: набор поддерживаемых CSS-фич, набор доступных шрифтов, набор WebGL-расширений. Для таких сигналов мы измеряем пересечение с помощью метрик схожести на основе множеств. Для двух множеств A и B мы вычисляем отношение общих элементов к общему числу элементов.
Устройство с 45 CSS-фичами вчера и 47 сегодня (при 44 общих) имеет высокую оценку схожести. Этого достаточно, чтобы указать на то же устройство с обновлением браузера. Совершенно другое устройство могло бы разделить лишь 30 CSS-фич, что даёт куда более низкую оценку схожести. Порог между «тем же устройством» и «другим устройством» выучивается из размеченных данных.
Эффективная генерация кандидатов
Вычисление схожести между каждой парой устройств было бы непозволительно дорогим в масштабе. Наша система генерации кандидатов использует продвинутые техники индексации, которые с высокой вероятностью отображают похожие элементы в одну корзину поиска, позволяя находить потенциальные совпадения за константное время.
Этот подход устраняет 99,9% сравнений на фазе генерации кандидатов, делая систему эффективной даже на миллиардах профилей устройств.
Анализ сложных сигналов на базе ИИ
Некоторые сигналы не раскладываются аккуратно на множества. Отпечатки canvas, вывод обработки аудио и векторы параметров WebGL — это сложные данные, где простое сравнение множеств неприменимо. Для таких сигналов мы применяем анализ на базе ИИ, который отображает профили устройств в представление, где похожие устройства расположены близко друг к другу.
ИИ-модель улавливает неочевидные связи между сигналами. Например, она выучивает, что смена строки рендерера WebGL с одной модели GPU на слегка обновлённую версию той же модели означает апгрейд GPU на той же машине, тогда как смена на совершенно другого производителя GPU означает уже другое устройство.
Объединение техник
Наша продакшн-система применяет несколько техник в каскаде. Сначала эффективная генерация кандидатов выявляет потенциальные совпадения. Затем сравнение на основе множеств даёт точную меру пересечения для признаковых сигналов. Далее анализ на базе ИИ оценивает схожесть аппаратно-зависимых сигналов. Итоговая оценка уверенности — это взвешенная комбинация всех методов, веса которой настроены на размеченных данных.
Эта каскадная архитектура одновременно точна и эффективна. Суммарное время сопоставления для вернувшегося посетителя в среднем составляет менее 5 мс.