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