Как сделать процесс идентификации инвариантным к изменению характеристик браузера
Что проверяют
Умеете ли вы превратить расплывчатую задачу в ML-постановку: что считать объектом, что меткой, как мерить качество. Заодно смотрят, помните ли вы про дрейф отпечатка и про закон. Следом обычно спрашивают, откуда возьмётся разметка.
Как отвечать
Сформулируйте задачу как связывание: пришёл новый отпечаток, нужно решить, принадлежит ли он уже известному устройству.
Каркас решения:
- разделение признаков: стабильные (платформа, число ядер, часовой пояс, рендеринг canvas и WebGL) и волатильные (полная версия браузера, размер окна, шрифты). Волатильные нормализуются: мажорная версия вместо полной, разрешение бакетами;
- модель сходства: пары «новый отпечаток, кандидат» с признаками вида «совпало ли поле», «насколько изменилось», разница во времени. Правила отсекают невозможные пары (другая ОС), затем градиентный бустинг или сиамская сеть даёт вероятность, что это одно устройство;
- цепочки: связываете отпечаток с последним известным состоянием устройства, а не с первым, так модель переживает постепенный дрейф;
- разметка: залогиненные пользователи и стабильная cookie дают метки «одно устройство»;
- детерминированные сигналы первыми: при cookie или логине модель не нужна, она запасной путь.
Метрики: precision и recall связывания и время жизни цепочки без ложного разрыва. Проверка только на временном сплите.
Назовите и ограничения. Chrome урезал User-Agent в пользу Client Hints, Safari, Firefox и Brave в части режимов прячут или рандомизируют признаки. Фингерпринтинг требует согласия по GDPR и ePrivacy, а в России отпечаток, привязанный к человеку, может считаться персональными данными по 152-ФЗ.
Где спотыкаются
Предлагают хешировать все признаки разом. Такой идентификатор разваливается после первого обновления браузера.
Делают случайный сплит пар. Утечка по времени завышает метрики, а в проде модель встречает версии браузеров, которых не видела.
Забывают про коллизии: одинаковые корпоративные ноутбуки или iPhone одной модели дают почти одинаковые отпечатки, и модель склеивает разных людей. Порог выбирают с оглядкой на цену ложной склейки.