Plan recognition ya da plan tanıma, bir ajanı gözlemleyerek davranışlarından niyetini anlamaya yönelik yapılan işlemlerin tümüne verilen isim. Genel olarak plan ve niyet çıkarımı olarak adlandırılıyor. Takip eden çalışmaların çoğunluğu bunu temel aldığı için, New York Rochester Üniversitesi’nden Henry A. Kautz ve James F. Allen tarafından 1986’da yayınlanan “Generalized Plan Recognition” makalesi ile başladığını düşünmek yanlış olmaz. Daha sonra plan tanıma literatürü hakkında daha geniş bir yazı yazmayı planlıyorum.
Kautz ve Allen plan tanımayı gözlemlenen hareketleri en iyi açıklayan asgari üst seviye hareketler ya da hedefler olarak tanımlıyor. Bu tanımlamayı yaparken olası planları ters bir ağaç yapısını kullanıyorlar. Plan kütüphanesi olarak adlandırılan bu yapı, bir kullanıcının (ya da ajan/agent) olası hedeflerini en üst seviyede belirliyor, alt seviyelerde de bu hedeflere ulaşmak için gerekli işlemler ve onların kırılımlarını ifade ediyorlar. Böylece plan tanıma, plan kütüphanesinin oluşturulması ve izleme sırasında gözlemlenen hareketlerin ya da kanıtların yorumlanması şeklini alıyor.
Plan tanıma, doğal dil işlemeden psikolojiye birçok alanda kullanılmakta. Kullanım alanlarının bir çoğunda gözlemlenen kullanıcıyı anlayarak ona yardımcı olmaya çalışıyor, bu yüzden kullanıcının da anlaşılmak istediğini varsayıyoruz. Ancak kötü niyetli kullanıcıların niyetini anlamaya çalışan az sayıda çalışma da yok değil. Geib ve Goldman’ın “Probabilistic Plan Recognition for Hostile Agents” ve “Plan Recognition in Intrusion Detection System” bunlardan birkaçı. Biz de plan tanımayı geçiş kontrol sistemlerine uygulayarak kullanıcıların kötü niyetli hareketlerini (tehdit) algılamayı (tespit) hedefliyoruz.
Geçiş kontrol sistemi ile kontrol edilen bir binada kötü niyetli bir etkinlik yürütmek için kontrol sistemini aşmayı sağlayacak şekilde hareket etmek gerekir. Düzgün yürütülen bir kartlı sistemin devrede olduğunu var sayarsak, bu, kötü niyetli kullanıcının istediği yerlere girmesine izin veren bir karta sahip olduğu anlamına gelir. Düzgün yürütülen bir geçiş kontrol sisteminde alan ya da kapı bazlı yetkilendirme yapılmış olacağını var sayarsak, kötü niyetli kullanıcının başkasına ait bir kartla hareket etme ihtimali de yüksektir.
Hedefimiz böyle bir ortamda kötü niyetli bir kullanıcıyı bir tehdit oluşturmadan tespit edebilmek. Bunu yaparken bir çok iyi niyetli hareketi de şüpheli göreceğimizi biliyoruz, bu yüzden şüphe seviyesini derecelendirerek operatöre yardımcı olmak da hedeflerimizin arasında yer alıyor.
Event Gates geçiş kontrol sistemine entegre ettiğimiz çözümü bir örnek üzerinden anlatmak istiyorum. Bu yazının amacı, yaptığımız çalışmaları paylaşarak görüş almak, iyileştirme noktalarını tespit etmek; eğer konuya ilgi duyanlara incelemek için yeni bir alan sunarsak bundan da mutluluk duyacağız. Geçiş kontrolü, plan tanıma konusunda irdelenmemiş bir alan.
Daha önce plan tanımanın, plan kütüphanesini oluşturma ve gözlem bulgularını değerlendirme olarak nitelemiştik. Yapılan çalışmaların büyük çoğunluğu plan kütüphanesini belli bir alanda (domain) tanımlanmış üst seviye hedeflerden oluşturuyor. Örneğin Geib ve Goldman Plan Recognition in Intrusion Detection System makalesinde siber güvenlik alanında bilgisayar ağlarına sızma girişimlerini değerlendiriyorlar. Böyle bir alanda bir bilgisayar korsanının olası hedeflerini listelemek mümkün gözüküyor. Diğer taraftan geçiş kontrol sisteminde kullanıcıların tek bir hedefi var, bir noktaya ulaşmak; ancak bu noktalar ve onlara ulaşma yolları ortama bağlı olarak değişiyor. Bu sebeple plan kütüphanesinin oluşturulmasında olasılıklı ampirik bir yöntemi tercih etmemiz gerekiyor. Kütüphane oluşturma yöntemimiz, tanımlı kullanıcıların en çok tercih ettiği hedefler ve izledikleri yolların, geçiş kontrolünde bıraktıkları izlerden çıkarımını içeriyor.
Küçültülmüş bir örnekte, bir kullanıcı (kısmi de olsa) plan kütüphanesini de çıkardığımızı varsaydığımızda şöyle bir örnek üzerinde plan çıkarımını konuşmak mümkün oluyor. Önce yerleşim planımızı inceleyelim:
271 girişli odada GMY2 adlı bir kullanıcımız olsun. GMY2’nin (önceki hareketlerinden öğrendiğimiz) muhtelif tanımlı planları var. İşte onlardan biri, #101 nolu ön kapıdan giriyor ve ofisine gidiyor:
GMY2’ye ait plan kütüphanesinin aşağıdaki gibi olduğunu var sayalım:
P=0.415 (101 > 121 > 231 > 271)
P=0.415 (270 > 230 > 120 > 100)
P=0.01 (101 > 131 > 311 > 331)
P=0.01 (330 > 310 > 130 > 100)
P=0.01 (101 > 131 > 311 > 331 > 341)
P=0.01 (340 > 330 > 310 > 130 > 100)
P=0.02 (270 > 230 > 221)
P=0.02 (220 > 231 > 271)
P=0.03 (270 > 230 > 120 > 131 > 311 > 331)
P=0.03 (330 > 310 > 130 > 121 > 231 > 271)
P=0.01 (270 > 230 > 120 > 141 > 421)
P=0.01 (420 > 140 > 121 > 231 > 271)
Bu durumda GMY2 ana kapıdan (#101) girdiğinde nereye gidiyor olabilir?
gmy2 101
Score: 0
GMY2 - 271 -- 121 - 0,954022988505747
GMY2 - 331 -- 131 - 0,0229885057471264
GMY2 - 341 -- 131 - 0,0229885057471264
Gözlemci 101 kanıtını sunduğunda algoritma 3 olası hedef belirler: 271, 331, 334. Olasılıkları, kütüphanede yer alan önceki (a priori) olasılıklara göre tekrar hesaplar.
Peki kullanıcımız beklenmeyen bir şey yaparsa, mesela öncesinde geçmesi gereken yerleri pas geçip aniden bir yerde ortaya çıkarsa, üstelik bu yer onun olmasını beklemediğimiz bir yerse? Plana göre GMY2’nin #351 nolu odaya gitme alışkanlığı yok, üstelik buraya gitmesi için geçmesi gereken yollar var, aniden (mesela hemen #101’den sonra) #351’in kart okuyucusunu okuttuğunda:
gmy2 101
Score: 0
GMY2 - 271 -- 121 - 0,954022988505747
GMY2 - 331 -- 131 - 0,0229885057471264
GMY2 - 341 -- 131 - 0,0229885057471264
351
Score: 0,367879441171442
No active plans
Algoritma bu gelen kanıt karşısında afallamış durumda. Bu kullanıcı için tanımlı uygun bir plan yok, bulunduğu yerlerin hiçbiri bu iş için uygun değil, sözün özü bu işte bir iş var. Sistemin operatörü uyarması lazım. Bunun için utility function devreye giriyor.
Dorit Avrahami-Zilberbrand ve Gal A. Kaminka tarafından AAMAS2007’de yayınlanan “Utility-Based Plan Recognition: An Extended Abstract” ve Mao ve Gratch tarafından AAMAS2004’te yayınlanan “A Utility-Based Approach to Intention Recognition” adlı makalelerde, plan tanımada izleyicinin (observer) görüşlerinin dikkate alınması önerilmektedir. Bu görüş bir uygulamaya utility işlevince oluşturulan skorlama olarak yansımaktadır. Biz de bu öneriyi takip ederek, gözlemcinin planlara uymayan hareketlere tepkisini bir skor olarak yansıtmasını tercih ettik.Bu tepki gerektiği durumlarda erişilmeye çalışan kaynak, kullanıcının yetkileri ve çevre şartları gibi, gözlemlenenden bağımsız olarak gözleyenin görüşlerini yansıtacak parametrelerle de şekillenebilecektir.
Operatörü iyi yönlendirecek derecelendirme için kullandığımız bu skorlama işlevinin önemli özelliklerinden birin de, gözlemlenenin durumu olduğunu düşünüyoruz. Peş peşe doğru (beklenen) hareketleri yapan bir kullanıcının bir defalığına plandan sapmasını (örneğin yolda bir arkadaşının ofisine uğrayıp merhaba demesi), tamamen farklı ve bilinmeyen bir plana göre hareket edenle bir tutmamaya çalışıyoruz. Bu yüzden üssel bir skorlama işlevine, beklenen ve beklenmeyen hareket sayısını girdi olarak veriyoruz.
Böylece ofisine giderken yan ofise uğrayan kullanıcının skoru şu şekilde oluşurken:
gmy2 101
Score: 0
GMY2 - 271 -- 121 - 0,954022988505747
GMY2 - 331 -- 131 - 0,0229885057471264
GMY2 - 341 -- 131 - 0,0229885057471264
121
Score: 0
GMY2 - 271 -- 231 - 1
231
Score: 0
GMY2 - 271 -- 271 - 1
261
Score: 0,0497870683678639
No active plans
Tamamen yanlış bir yol izleyen kullanıcı için skor her adımda yükseliyor:
asst 101
Score: 0
Asst - 231 -- 121 - 1
131
Score: 0,367879441171442
No active plans
311
Score: 0,606530659712633
No active plans
331
Score: 0,716531310573789
No active plans
İşlev tekrar doğru güzergahına dönen kullanıcıyı da ödüllendirmelidir. İlk örnekte yan ofise uğrayıp tekrar kendi ofisine dönen kullanıcı gibi:
gmy2 101
Score: 0
GMY2 - 271 -- 121 - 0,954022988505747
GMY2 - 331 -- 131 - 0,0229885057471264
GMY2 - 341 -- 131 - 0,0229885057471264
121
Score: 0
GMY2 - 271 -- 231 - 1
231
Score: 0
GMY2 - 271 -- 271 - 1
261
Score: 0,0497870683678639
No active plans
260
Score: 0,22313016014843
No active plans
271
Score: 0,367879441171442
No active plans
270
Score: 0,263597138115727
GMY2 - 100 -- 230 - 0,873684210526316
GMY2 - 221 -- 230 - 0,0421052631578947
GMY2 - 331 -- 230 - 0,0631578947368421
GMY2 - 421 -- 230 - 0,0210526315789474
Geçerli bir plana kavuşan kullanıcının skoru yavaş yavaş düşmeye başlar.
Bu uygulama ile, fayda odaklı (utilty based) plan tanıma algoritmalarını geçiş kontrol sistemine uyarladık. Çözümü Event Gates geçiş kontrol sistemlerine entegre olarak sunuyoruz.