Sahtekârlık tespitinde asıl rakip model değil, karşı taraftaki insan

Çoğu tahmin probleminde veri sabit durur. Sahtekârlıkta durmaz — çünkü karşı tarafta, modelinin nasıl çalıştığını çözmeye çalışan biri var ve o da öğreniyor.

This post is in Turkish.

Sahtekârlık tespitini diğer tahmin problemlerinden ayıran tek bir şey var: veri sana karşı hareket ediyor.

Bir hava tahmini modeli kurduğunda atmosfer senin modelini öğrenmiyor. Bir öneri sistemi kurduğunda kullanıcı seni kandırmaya çalışmıyor. Sahtekârlıkta ise karşında, hangi davranışın engellendiğini deneyerek öğrenen ve buna göre yöntem değiştiren biri var.

Bu, problemi istatistikten oyun teorisine kaydırıyor.

Dengesizlik kuraldır

İlk zorluk sınıf dengesizliği. Binlerce işlemde bir tanesi sahte olabiliyor.

Tahmin yazısında değindiğim tuzak burada en keskin hâlinde: hiçbir şeyi işaretlemeyen bir model neredeyse mükemmel doğruluk alıyor. Ölçmen gereken şey doğruluk değil — yakaladıklarının kaçının gerçekten sahte olduğu, ve gerçek sahtelerin kaçını yakaladığın.

İkisi arasında da doğrudan bir takas var. Eşiği sıkarsan daha az kaçırıyorsun ama masum kullanıcıyı engelliyorsun. Gevşetirsen kullanıcıyı rahatsız etmiyorsun ama zarar geçiyor.

İki hatanın bedeli aynı değil

Ve bu takasın nasıl ayarlanacağı bir modelleme kararı değil, bir iş kararı.

Sperare'de yanlış alarmın bedeli somut: bir kullanıcı vize başvurusunun ödemesini yapamıyor, randevusunu kaçırıyor. Kaçırılan bir sahtekârlığın bedeli ise parasal ve genelde geri alınabilir.

Bu iki bedel karşılaştırıldığında eşik doğal olarak gevşiyor. Başka bir üründe tam tersi çıkabilir. Önemli olan, eşiği "model en iyi burada çalışıyor" diye değil, "hangi hatayı kime yaptırmayı göze alıyoruz" diye seçmek.

Sahtekârlık eşiği bir performans ayarı değil. Kimin mağdur olacağına dair bir tercih.

İkili karar yerine kademeli tepki

En işe yarayan yapısal değişiklik, kararı ikili olmaktan çıkarmak.

Geçir ya da engelle arasında bir sürü ara adım var: ek doğrulama iste, tutarı sınırla, bekletme süresi ekle, insana yönlendir, sadece işaretle ve izle. Riskin şiddetine göre tepkinin şiddeti değişiyor.

Bunun faydası şu — yüksek belirsizlikte kullanıcıyı kaybetmek zorunda kalmıyorsun. Tahminin zayıfsa daha ucuz bir sürtünme ekliyorsun, güçlüyse sert davranıyorsun.

Kaçınma bölgesi fikri burada da geçerli: modelin emin olmadığı vakalar otomatik karara değil, daha pahalı bir sürece gidiyor.

Kural mı, model mi

Pratikte en iyi sonuç ikisinin birlikte çalışması oldu.

Kurallar açıklanabilir, anında değiştirilebilir ve bilinen bir saldırıyı gece yarısı kapatmanı sağlıyor. Model ise kural yazmadığın deseni yakalıyor. Yalnızca kurallarla çalışan sistem yeni yöntemleri kaçırıyor; yalnızca modelle çalışan sistem bilinen bir saldırıya hızlı cevap veremiyor.

Bir de şu var: model kararının bir gerekçesi olmalı. Kullanıcı engellendiğinde destek ekibinin "sistem öyle dedi" demesi, hem kullanıcıyı hem ekibi çaresiz bırakıyor.

Geri bildirim döngüsü kapanmıyor

Son ve en sinsi problem: engellediğin işlemin gerçekten sahte olup olmadığını asla öğrenemiyorsun.

Geçirdiklerinde sonuç belli — itiraz geldi mi, gelmedi mi. Ama engellediklerinde sonuç yok. Model, kendi kararlarının doğruluğunu göremediği bir veri üzerinde eğitilmeye devam ediyor ve zamanla kendi önyargısını pekiştiriyor.

Bunu kırmanın tek yolu, küçük bir kesimi bilinçli olarak geçirmek ve sonucunu ölçmek. Maliyetli, rahatsız edici, ve sistemin dürüst kalmasının tek yolu.