Matematiken bakom enhetsmatchning över sessioner
De matematiska grunderna för att matcha enheter trots föränderliga signaler — hur AI-driven analys återkopplar återvändande besökare vid signaldrift.
Enhetsfingeravtryck står inför en grundläggande utmaning: signaler förändras. Webbläsare uppdateras, användare ändrar inställningar, typsnitt installeras och tas bort. En strikt jämförelse skulle behandla varje förändrad signal som en ny enhet och förstöra identifieringens träffsäkerhet. Vårt system för matchning över sessioner löser detta genom AI-drivna tekniker som kvantifierar likhet i stället för att kräva exakt likhet.
Problemet: signaldrift
Betrakta en enhet som fick ett fingeravtryck i går och återvänder i dag efter en webbläsaruppdatering. Strängen för user agent har ändrats. Två nya CSS-funktioner stöds nu. Ett WebGL-tillägg har lagts till. Canvas-renderingen är oförändrad (samma GPU, samma drivrutin). Ljudfingeravtrycket är identiskt. WebGL-parametrarna är identiska förutom det nya tillägget.
Med exakt matchning skulle den här enheten inte kännas igen — det sammansatta fingeravtrycket har ändrats. Men intuitivt vet vi att det är samma enhet. Hårdvarusignalerna är identiska, och programvaruförändringarna är förenliga med en webbläsaruppdatering. Vårt system för matchning över sessioner formaliserar den intuitionen.
Mängdbaserad jämförelse för funktionssignaler
Många webbläsarsignaler representeras naturligt som mängder: mängden av CSS-funktioner som stöds, mängden av tillgängliga typsnitt, mängden av WebGL-tillägg. För dessa signaler mäter vi överlappning med mängdbaserade likhetsmått. För två mängder A och B beräknar vi förhållandet mellan delade element och totalt antal element.
En enhet med 45 CSS-funktioner i går och 47 i dag (varav 44 gemensamma) har en hög likhetspoäng. Det räcker för att tyda på samma enhet med en webbläsaruppdatering. En helt annan enhet kanske bara delar 30 CSS-funktioner, vilket ger en mycket lägre likhetspoäng. Tröskeln mellan ”samma enhet” och ”annan enhet” lärs in från märkta data.
Effektiv kandidatgenerering
Att beräkna likhet mellan varje par av enheter skulle vara oöverkomligt dyrt i stor skala. Vårt system för kandidatgenerering använder avancerade indexeringstekniker som avbildar liknande objekt till samma uppslagshink med hög sannolikhet, vilket gör att vi kan hitta potentiella matchningar på konstant tid.
Detta tillvägagångssätt eliminerar 99,9 % av jämförelserna i kandidatgenereringsfasen, vilket gör systemet effektivt även vid miljarder enhetsprofiler.
AI-driven analys för komplexa signaler
Vissa signaler bryts inte snyggt ned i mängder. Canvas-fingeravtryck, utdata från ljudbehandling och WebGL-parametervektorer är komplexa data där enkel mängdjämförelse inte fungerar. För dessa signaler använder vi AI-driven analys som avbildar enhetsprofiler till en representation där liknande enheter ligger nära varandra.
AI-modellen fångar icke-uppenbara samband mellan signaler. Den lär sig till exempel att en förändring i WebGL-renderarens sträng från en GPU-modell till en något uppgraderad version av samma modell motsvarar en GPU-uppgradering på samma maskin, medan en förändring till en helt annan GPU-tillverkare motsvarar en helt annan enhet.
Att kombinera teknikerna
Vårt produktionssystem använder flera tekniker i en kaskad. Först identifierar effektiv kandidatgenerering potentiella matchningar. Sedan ger mängdbaserad jämförelse ett exakt mått på överlappning för funktionsbaserade signaler. Därefter poängsätter AI-driven analys likheten hos hårdvaruberoende signaler. Den slutliga konfidenspoängen är en viktad kombination av alla metoder, med vikter justerade utifrån märkta data.
Denna kaskadarkitektur är både träffsäker och effektiv. Den totala matchningstiden för en återvändande besökare är under 5 ms i genomsnitt.