Genel

18 Ara 2018

FRAUCTIVE: Yapay Zekâ ile Dolandırıcılık Nasıl Engellenir?

İnternet ağının genişlemesiyle birlikte günden güne devleşen e-ticaret dünyasında, ulaşılabilirlik, hız ve rahatlık gibi konularda birçok ilerleme katedilirken, güvenlik konusunda da bazı zafiyetler ortaya çıkabiliyor. “Fraud” yani dolandırıcılık adı verilen, kredi kartlarının illegal bir şekilde ele geçirildikten sonra e-ticaret sitelerinde kullanılması durumu, son zamanlarda online satıcıları fazlasıyla düşündürmekte. Experian’ın sunduğu raporda [1] 2017 yılında 16,7 milyon kişi fraud sebebiyle dolandırıldığını belirtmiş ve bu sayı 2016 yılında dolandırılanların %30 daha fazlasına tekabül ediyor.

Yapay zekâ teknolojisi ile geliştirilen “Frauctive”, ödeme esnasında çalışıyor ve ödemenin risk skorunu belirliyor. Yapay zekâ modeli başlangıçta benzer sahtecilik davranışlarının tespit edildiği milyonlarca veri ile eğitiliyor ve sonrasında milisaniyeler içinde ödemenin sahte olup olmadığına karar verip, bankaya gitmeden ödemeyi reddedebiliyor.

 

Veri Toplama

Geçmişten günümüze kadar olan başarılı-başarısız bütün ödemelerin kaydı PCI-DSS’e [3] uygun bir şekilde veritabanına kaydedildiği için, milyonlarca kayıt içerisinden modelin eğitilmesi için gereken veri toplanır. Burada ödeme bilgisinden sepet bilgisine, alıcıdan satıcıya kadar birçok bilgi, feature extraction (öznitelik seçimi) adımı için toplanır. Veri toplama adımı, modelin performansı için çok önemlidir. Çünkü veri kümesinin çokluğu ve kullanılan verinin kalitesi, modelin çeşitli fraud davranışlarını daha iyi anlamasına ve canlı ortamda daha iyi öngörülerde bulunmasına sebep olur. Örnekleme (sampling) aşaması adlı özet veri kümesinin, bütün veri kümesini çok iyi bir şekilde temsil etmesi gerekir ki bütün davranışları anlayabilsin. Bu yüzden donanımdan, modelin algoritmasına kadar bütün bölümler ve teknolojiler ne kadar iyi olursa olsun, iyi bir veriyle çalışılmazsa, yapay zekâ yarardan çok zarar verebilir.

 

Öznitelik Seçimi (Feature Extraction)

Feature extraction, Türkçesi’yle öznitelik seçimi, ham veriyi modelin anlayacağı bir biçime dönüştürme işlemidir. Örneğin ödeme tarihi olan “21-08-2016 22:15:59”, model için anlamlı bir bilgi değilken, buradan çıkarılan “ayın 21. günü” ya da “gece” gibi bilgiler model için oldukça anlamlı olabilir. Bu özniteliklere göre model fraud girişimleri içerisinden ortak bir davranış çıkartabilir. Bir yapay zekâ modelinde öznitelik sayısının çok fazla olması, model performansının da aynı şekilde çok yüksek olacağının garantisini vermez. Performans ölçümünden sonra aslında aynı farklı özniteliklerin aynı katkıyı verdiği de çıkartılabilir. Bu seçilen öznitelikler her model eğitimi sonrasında tek tek değerlendirilmiş ve performans metriklerine göre modele eklenmiştir. Şu an için de bu sayıyla sınırlı olmayıp, modele hala yeni öznitelikler eklemekteyiz. Üretilen öznitelikler modele gelişigüzel olarak eklenmiyor, çünkü başarılı olduğunu düşündüklerimiz modele zarar veriyor da olabilir. Bu yüzden, bir davranış modele kesin faydalı olur denmeden, kontrollü deneylerle modele eklenmelidir.

 

Model Eğitimi

Bu kısımda toplanan veri model artık öğrenmeye başlıyor. Model eğitimi kısmının gerçekleşebilmesi için yüksek performanslı donanıma ihtiyaç duyulur. Basitçe anlatmak gerekirse; model denilen kısım y = f(x) formülündeki f() fonksiyonudur. X kısmı ödeme bilgilerinden çıkartılan özellikler, y de ödemenin fraud olduğu veya olmadığıdır. Fonksiyon da modelin kendisidir ve modeli eğitme ile oluşturulur. Modelin performansına göre karar ağaçlarından yapay sinir ağlarına kadar birçok model algoritmasını denenip, en iyi performansı gösteren öğrenme algoritma kullanılır.

Kural bazlı çalışan uygulamalarla aradaki farkın oluştuğu kısım burasıdır. Çünkü kural bazlı uygulamalarda seçilmiş bir kurala göre sonuç çıkartılırken, yapay öğrenmeli sistemlerde birden çok kurala (davranış demek daha doğru olabilir) göre bir sonuca varılır. Aslında her davranışın bir katsayısı(önemi) vardır ve bu katsayıya göre sınıflandırma problemiyse bir sınıf, regresyon problemiyse sayısal bir değer çıkartılır. Öğrenme her ne kadar başarıyla sonuçlansa da test ve doğrulama adımı olmadan modelin performansı tam olarak ölçülemez. Doğrulama adımı modelin parametrelerini optimize etmek için ve en iyi modeli seçmek için kullanılır. Bu adımdan sonra en iyi öğrenme algoritması ve en optimal parametreler seçilir ve test aşamasına geçilir.

 

Test – Performans

Model, eğitim esnasında fraud davranışlarını çok iyi bir şekilde öğrenmiş olabilir ancak performansını tam olarak ölçebilmek için, modelin ilk kez gördüğü bir veri kümesi ile modelin test edilmesi gerekmektedir. Bu yüzden veri datasına performansa bağlı olarak 70-30 ya da 80-20 gibi oranlarla eğitim ve test verisi olarak ikiye ayrılır. Veri kümesini ayırma aşamasında en fazla dikkat edilmesi gereken bölüm, ayrılan verinin hiçbir ortak elemanı olmaması gerektiğidir.

Test fazında modele ödeme bilgileri verilir ve sonucu incelenir. Modelin verdiği doğru veya yanlış cevaplara göre performans ölçümü yapılır ve 4 ana metrik ortaya çıkar:

  • False positive (FP): Fraud olmayan ancak fraud olarak işaretlenen ödemeler.
  • True positive (TP): Fraud olan ve fraud olarak işaretlenen ödemeler
  • False negative (FN): Fraud olan ancak fraud değil olarak işaretlenen ödemeler.
  • True negative (TN): Fraud olmayan ve fraud değil olarak işaretlenen ödemeler.

Yukarıda gördüğünüz 4 değeri kullanarak modelin performansı ölçümlenir. Bu performans değeri belirlenen eşik değerinin üzerindeyse test kısmı tamamlanır. Eğer değilse duruma göre model eğitimi, feature extraction ya da veri toplama adımlarına geri dönüp döngüye tekrar girilir.

Ayrıca bu sayısal değerler sadece yüzdesel değerler olarak değil, hacimsel olarak da değerlendirilir. Örneğin 1 yıl içerisindeki geçmiş ödemelerden TP değerinden FP değerini çıkartıp, fraud olarak işaretlenip engellenen ödemelerden şirkete ne kadar hacim kazandırıldığını hesaplayarak, bütün şirket için ortak dil çıkartılır. Bu sayede kompleks istatistik değerlere sahip olan bu modeli tartışmak daha kolay ve verimli bir hale gelir.

 

Canlıya Alma

Test aşaması bittikten sonra, modeli direkt olarak canlıya alınmıyor, test amaçlı olarak model “Listen Mode” adı verilen ödemeye etki etmeyen kısımda çalıştırılır. Çünkü test aşamasında olduğu gibi canlı ortamda da canlı veriyle test yapılır. Bu durum aynı anda iki modelin test edilmesine olanak sağlar. Doğrulama ve test adımına rağmen model overfit [4] etmiş olabilir. Overfit, modelin toplanan datayı çok iyi öğrendikten sonra test aşamasında çok iyi performans verip başka bir veri kümesiyle çalıştığında kötü sonuçlar vermesidir. Bir nevi veri kümesini ezberlemek de denebilir. Her ne kadar doğrulama aşaması overfit durumunu ortadan kaldırmaya çalışsa da model canlı ortamda test edilerek bu durum tamamen ortadan kaldırılır. Gelen ödeme isteği yeni oluşturduğumuz modele iletiliyor ve çıkan sonuçla canlıda çıkan modelin verdiği cevap karşılaştırılıp belirli bir zaman diliminden sonra modelin tepki süresi, fraud performansı gibi birçok metrik göz önünde tutulduğu modeller arası karşılaştırma sonucu yeni model, eskisiyle değiştiriliyor.

 

Canlı Ortamdaki Model Performansı

Canlıya alınan model ödeme bilgilerini alıp, ödemenin ne kadar fraud olduğuna dair 0-1 arasında bir değer döner. Dönen değer 1’e ne kadar yakınsa o kadar fraud’a yakın, 0’a ne kadar yakınsa daha güvenilir olarak yorumlanır. Modelin canlıdaki fraud bulma performansı yaklaşık olarak %85 bandındadır. Ancak modelin performansı sadece %85 oranıyla değerlendirilmeyip, kazanılan ve kaybedilen ödemeler olarak da değerlendirilir. Örneğin model 100 tane 5 TL’lik fraud ödemesini engelleyebilir ancak 3 tane 300 TL’lik fraud olmayan ödemeyi fraud diye işaretleyebilir ve reddeder. Bu ve benzeri durumlarda, modelin performansı yüzdesel olarak başarılı gözükse de hacim olarak değerlendirildiğinde 400 TL’lik bir zarar gözlemlenir. Bu tür durumlardan kaçınmak için, önceden de belirtildiği gibi hacim bazında performans ölçümleri yapmak oldukça faydalıdır.

Fraud performansı dışında modelin çalışma performansı da fazlasıyla önemlidir. Frauctive, bankaya gitmeden önce çalıştığı için, hesaplama süresinin uzunluğu, ödemenin uzunluğuna doğrudan etki etmektedir. Canlıda çalışan modelin ortalama tepki süresi 0,05 saniye (50 ms) olarak ölçülmektedir. Bütün uygulamalarda olduğu gibi Frauctive’de de kötü senaryo düşünülmelidir. Bu sebeple belirli bir süre içerisinde herhangi bir cevap dönülmezse, ödeme adımları yoluna devam ediyor ve Frauctive tarafında yaşanan hiçbir olumsuzluktan etkilenmemektedir.

 

Yukarıda gördüğünüz temel adımlar, diğer yapay zekâ uygulamalarında olduğu gibi Frauctive uygulanırken özen gösterilen adımlar. Bu aşamalardaki herhangi bir problem veya performans eksikliği akışı bir önceki adıma, hatta veri toplama adımına kadar geri götürebilir. Çünkü bu aşamalarda problemli olan herhangi bir adım, şirketlere finansal durum ve saygınlık açısından zarar verebilir. Örneğin üzerinizden geçen ödemelerdeki fraud oranı %1’in üzerindeyse, ödeme lisansınız Mastercard ve Visa tarafından iptal edilebilir. [5] Bu durum, internet üzerinden satış yapan şirketlerin başına gelebilecek en kötü durumlardan biridir. Çünkü ödeme lisansının iptal edilmesi demek, üzerinde Mastercard ve Visa logosu bulunan kartlardan ödeme geçememesi demektir.

 

Frauctive Nasıl Çalışır?

Frauctive, öde tuşuna basılma ile kart bilgilerinin bankaya gönderilmesi arasındaki kısımda çalışır. Geliştirilen model, milisaniyeler içinde 0 ile 1 arasında bir skor üretir. Üretilen bu skor, ödemeyi önceden belirlenmiş eşik değerlerine göre fraud değil olarak işaretleyebilir, şüpheli işlem olarak gri alan adı verilen, fraud uzmanlarının 7-24 gözlemledikleri alana düşürebilir ya da fraud olarak işaretlenerek ödeme reddedilir. Model performansında da belirtildiği gibi, eğer belirli bir süre içerisinden Frauctive’den herhangi bir cevap alınamazsa, ödemeye önceden belirlenen bir sonuç dönülür. Netflix’in geliştirdiği Hystrix [6], Frauctive’den yanıt alınana kadar ödeme adımına önceden belirlenen değeri döner ve arka planda Frauctive’den yanıt almaya çalışır. Yanıt aldığı anda Frauctive’den dönen sonucu ödemeye yansıtır ve karar mekanizması eski haline döner. Dağıtık sistemlerde, bir uygulamanın çökmesi, en kötü senaryoyla da olsa sistemin çalışabilir durumda olması gerekmektedir. Kısaca özetleyecek olursak, bankalar çalıştığı sürece her ödemenin bankaya iletilmesi gerekmektedir.

 

Kaynaklar:

  1. https://www.experian.com/decision-analytics/identity-and-fraud/ecommerce-attack-rates.html
  2. https://www.creditcards.com/glossary/term-false-positive.php
  3. https://www.pcisecuritystandards.org/pci_security/
  4. https://elitedatascience.com/overfitting-in-machine-learning
  5. https://www.moneris.com/~/media/Files/Fraud%20and%20Chargeback%20Risk%20Program%20Thresholds.pdf
  6. https://github.com/Netflix/Hystrix