คณิตศาสตร์เบื้องหลังการจับคู่อุปกรณ์ข้ามเซสชัน
รากฐานทางคณิตศาสตร์ของการจับคู่อุปกรณ์เมื่อสัญญาณเปลี่ยนไป — การวิเคราะห์ด้วย AI เชื่อมผู้เข้าชมที่กลับมาเข้าด้วยกันได้อย่างไรแม้สัญญาณจะเลื่อนไหล
การทำลายนิ้วมืออุปกรณ์ (device fingerprinting) เผชิญกับความท้าทายพื้นฐานอย่างหนึ่ง นั่นคือสัญญาณเปลี่ยนแปลงตลอดเวลา เบราว์เซอร์อัปเดต ผู้ใช้ปรับการตั้งค่า ฟอนต์ถูกติดตั้งและถูกถอนออก การเปรียบเทียบแบบเข้มงวดจะถือว่าสัญญาณที่เปลี่ยนทุกครั้งเป็นอุปกรณ์ใหม่ ซึ่งทำลายความแม่นยำในการระบุตัวตน ระบบจับคู่ข้ามเซสชันของเราแก้ปัญหานี้ด้วยเทคนิคที่ขับเคลื่อนด้วย AI ซึ่งวัดความคล้ายคลึงแทนที่จะบังคับให้เท่ากันเป๊ะ
ปัญหา: การเลื่อนไหลของสัญญาณ (Signal Drift)
ลองพิจารณาอุปกรณ์ที่ถูกทำลายนิ้วมือไว้เมื่อวานและกลับมาในวันนี้หลังการอัปเดตเบราว์เซอร์ สตริง user agent เปลี่ยนไปแล้ว มีคุณสมบัติ CSS ใหม่สองตัวที่รองรับเพิ่ม มีการเพิ่มส่วนขยาย WebGL หนึ่งตัว แต่การเรนเดอร์ canvas ยังคงเหมือนเดิม (GPU เดียวกัน ไดรเวอร์เดียวกัน) ลายนิ้วมือเสียง (audio fingerprint) เหมือนเดิม พารามิเตอร์ WebGL เหมือนเดิมทุกประการยกเว้นส่วนขยายที่เพิ่มเข้ามาใหม่
หากใช้การจับคู่แบบตรงเป๊ะ อุปกรณ์นี้จะไม่ถูกจดจำ เพราะลายนิ้วมือรวมได้เปลี่ยนไปแล้ว แต่โดยสัญชาตญาณเรารู้ว่านี่คืออุปกรณ์เดียวกัน สัญญาณฮาร์ดแวร์เหมือนกันทุกอย่าง และการเปลี่ยนแปลงฝั่งซอฟต์แวร์ก็สอดคล้องกับการอัปเดตเบราว์เซอร์ ระบบจับคู่ข้ามเซสชันของเราทำให้สัญชาตญาณนี้เป็นรูปธรรม
การเปรียบเทียบแบบเซตสำหรับสัญญาณคุณสมบัติ
สัญญาณของเบราว์เซอร์จำนวนมากถูกแทนด้วยเซตโดยธรรมชาติ ไม่ว่าจะเป็นเซตของคุณสมบัติ CSS ที่รองรับ เซตของฟอนต์ที่มีอยู่ หรือเซตของส่วนขยาย WebGL สำหรับสัญญาณเหล่านี้ เราวัดการทับซ้อนด้วยเมตริกความคล้ายคลึงแบบเซต สำหรับสองเซต A และ B เราคำนวณอัตราส่วนของสมาชิกที่ร่วมกันต่อสมาชิกทั้งหมด
อุปกรณ์ที่มีคุณสมบัติ CSS 45 ตัวเมื่อวานและ 47 ตัวในวันนี้ (โดยมีร่วมกัน 44 ตัว) จะได้คะแนนความคล้ายคลึงสูง ซึ่งเพียงพอที่จะบ่งชี้ว่าเป็นอุปกรณ์เดียวกันที่อัปเดตเบราว์เซอร์ ส่วนอุปกรณ์ที่แตกต่างกันโดยสิ้นเชิงอาจมีคุณสมบัติ CSS ร่วมกันเพียง 30 ตัว ซึ่งให้คะแนนความคล้ายคลึงต่ำกว่ามาก เกณฑ์ (threshold) ระหว่าง "อุปกรณ์เดียวกัน" กับ "อุปกรณ์ต่างเครื่อง" เรียนรู้มาจากข้อมูลที่มีป้ายกำกับ (labeled data)
การสร้างผู้สมัครอย่างมีประสิทธิภาพ
การคำนวณความคล้ายคลึงระหว่างอุปกรณ์ทุกคู่จะมีต้นทุนสูงเกินไปเมื่อทำในสเกลใหญ่ ระบบสร้างผู้สมัคร (candidate generation) ของเราใช้เทคนิคการทำดัชนีขั้นสูงที่แมปรายการคล้ายกันไปยังบัคเก็ตค้นหาเดียวกันด้วยความน่าจะเป็นสูง ทำให้เราสามารถหาคู่ที่เป็นไปได้ในเวลาคงที่ (constant time)
แนวทางนี้ตัดการเปรียบเทียบออกไป 99.9% ในขั้นการสร้างผู้สมัคร ทำให้ระบบมีประสิทธิภาพแม้มีโปรไฟล์อุปกรณ์นับพันล้าน
การวิเคราะห์ด้วย AI สำหรับสัญญาณที่ซับซ้อน
สัญญาณบางอย่างไม่สามารถแยกออกเป็นเซตได้อย่างเรียบร้อย ลายนิ้วมือ canvas ผลลัพธ์จากการประมวลผลเสียง และเวกเตอร์พารามิเตอร์ WebGL เป็นข้อมูลที่ซับซ้อนซึ่งการเปรียบเทียบแบบเซตอย่างง่ายไม่สามารถใช้ได้ สำหรับสัญญาณเหล่านี้ เราใช้การวิเคราะห์ด้วย AI ที่แมปโปรไฟล์อุปกรณ์ไปสู่การแทนค่า (representation) ที่อุปกรณ์คล้ายกันจะอยู่ใกล้กัน
โมเดล AI จับความสัมพันธ์ที่ไม่ชัดเจนระหว่างสัญญาณต่าง ๆ ตัวอย่างเช่น มันเรียนรู้ว่าการเปลี่ยนสตริงตัวเรนเดอร์ WebGL จาก GPU รุ่นหนึ่งไปเป็นรุ่นที่อัปเกรดขึ้นเล็กน้อยของรุ่นเดียวกันนั้นแทนการอัปเกรด GPU บนเครื่องเดิม ในขณะที่การเปลี่ยนไปเป็นผู้ผลิต GPU ที่ต่างกันโดยสิ้นเชิงแทนอุปกรณ์คนละเครื่องกันทั้งหมด
การผสานเทคนิคเข้าด้วยกัน
ระบบใช้งานจริงของเราใช้หลายเทคนิคในรูปแบบลำดับขั้น (cascade) ขั้นแรก การสร้างผู้สมัครที่มีประสิทธิภาพระบุคู่ที่เป็นไปได้ ขั้นที่สอง การเปรียบเทียบแบบเซตให้การวัดการทับซ้อนที่แม่นยำสำหรับสัญญาณที่อิงคุณสมบัติ ขั้นที่สาม การวิเคราะห์ด้วย AI ให้คะแนนความคล้ายคลึงของสัญญาณที่ขึ้นกับฮาร์ดแวร์ คะแนนความมั่นใจสุดท้ายเป็นการรวมแบบถ่วงน้ำหนักของทุกวิธี โดยน้ำหนักถูกปรับจูนบนข้อมูลที่มีป้ายกำกับ
สถาปัตยกรรมแบบลำดับขั้นนี้ทั้งแม่นยำและมีประสิทธิภาพ เวลารวมในการจับคู่ผู้เข้าชมที่กลับมาอยู่ที่เฉลี่ยต่ำกว่า 5ms