세션 간 디바이스 매칭의 수학적 원리
변화하는 신호를 넘어 디바이스를 매칭하는 수학적 기반 — AI 기반 분석이 신호 드리프트에도 재방문자를 어떻게 다시 연결하는지.
디바이스 지문(fingerprinting)은 근본적인 난제에 직면한다. 신호가 변한다는 것이다. 브라우저가 업데이트되고, 사용자가 설정을 바꾸며, 폰트가 설치되고 삭제된다. 엄격한 비교는 변한 신호마다 새로운 디바이스로 취급하여 식별 정확도를 무너뜨린다. 우리의 세션 간 매칭 시스템은 정확한 동일성을 요구하는 대신 유사도를 정량화하는 AI 기반 기법을 사용하여 이 문제를 해결한다.
문제: 신호 드리프트
어제 지문이 채취된 뒤 오늘 브라우저 업데이트를 거쳐 다시 찾아온 디바이스를 생각해 보자. user agent 문자열이 바뀌었다. 이제 두 개의 새로운 CSS 기능이 지원된다. WebGL 확장이 하나 추가되었다. 캔버스 렌더링은 동일하게 유지된다(같은 GPU, 같은 드라이버). 오디오 지문도 동일하다. WebGL 파라미터도 새 확장을 제외하면 동일하다.
정확한 매칭이라면 이 디바이스는 인식되지 않을 것이다 — 결합된 지문이 바뀌었기 때문이다. 하지만 직관적으로 우리는 이것이 동일한 디바이스임을 안다. 하드웨어 신호가 동일하고, 소프트웨어 변화는 브라우저 업데이트와 일관된다. 우리의 세션 간 매칭 시스템은 이 직관을 형식화한다.
특성 신호를 위한 집합 기반 비교
많은 브라우저 신호는 자연스럽게 집합으로 표현된다. 지원되는 CSS 기능의 집합, 사용 가능한 폰트의 집합, WebGL 확장의 집합이 그렇다. 이러한 신호에 대해 우리는 집합 기반 유사도 지표로 중첩을 측정한다. 두 집합 A와 B에 대해, 공유되는 원소 수와 전체 원소 수의 비율을 계산한다.
어제 45개의 CSS 기능을 갖고 오늘 47개를 가지며(그중 44개가 공통) 디바이스는 높은 유사도 점수를 얻는다. 이는 브라우저 업데이트를 거친 동일 디바이스임을 나타내기에 충분하다. 완전히 다른 디바이스라면 CSS 기능을 30개만 공유하여 훨씬 낮은 유사도 점수를 낼 수 있다. "동일 디바이스"와 "다른 디바이스"를 가르는 임계값은 라벨링된 데이터로부터 학습된다.
효율적인 후보 생성
모든 디바이스 쌍 사이의 유사도를 계산하는 것은 대규모 환경에서 감당할 수 없을 만큼 비용이 크다. 우리의 후보 생성 시스템은 유사한 항목을 높은 확률로 같은 조회 버킷으로 매핑하는 고급 인덱싱 기법을 사용하여, 잠재적 매칭을 상수 시간에 찾아낸다.
이 접근법은 후보 생성 단계에서 비교의 99.9%를 제거하여, 수십억 개의 디바이스 프로필 규모에서도 시스템을 효율적으로 만든다.
복잡한 신호를 위한 AI 기반 분석
일부 신호는 집합으로 깔끔하게 분해되지 않는다. 캔버스 지문, 오디오 처리 출력, WebGL 파라미터 벡터는 단순한 집합 비교가 적용되지 않는 복잡한 데이터다. 이러한 신호에 대해 우리는 디바이스 프로필을 유사한 디바이스끼리 가까이 놓이는 표현으로 매핑하는 AI 기반 분석을 사용한다.
AI 모델은 신호 간의 명확하지 않은 관계를 포착한다. 예를 들어, WebGL 렌더러 문자열이 한 GPU 모델에서 같은 모델의 약간 상위 버전으로 바뀌는 것은 동일 기기에서의 GPU 업그레이드를 나타내는 반면, 완전히 다른 GPU 제조사로 바뀌는 것은 전혀 다른 디바이스를 나타낸다는 것을 학습한다.
기법들의 결합
우리의 프로덕션 시스템은 여러 기법을 캐스케이드로 사용한다. 첫째, 효율적인 후보 생성이 잠재적 매칭을 식별한다. 둘째, 집합 기반 비교가 특성 기반 신호에 대해 중첩을 정밀하게 측정한다. 셋째, AI 기반 분석이 하드웨어 의존적 신호의 유사도를 점수화한다. 최종 신뢰도 점수는 모든 방법의 가중 결합이며, 가중치는 라벨링된 데이터로 튜닝된다.
이 캐스케이드 아키텍처는 정확하면서도 효율적이다. 재방문자에 대한 전체 매칭 시간은 평균 5ms 미만이다.