9.5 Shapley Değerleri (Shapley Values)
Last updated
Last updated
Bir tahmin, örneğin her bir özellik değerinin, tahminin “ödeme” olduğu bir oyundaki “oyuncu” olarak ele alınmasıyla açıklanabilir. Shapley değerleri – koalisyonel oyun teorisinden gelen bir yöntem – “ödeme”nin özellikler arasında adil bir şekilde nasıl dağıtılacağını bize söyler.
Şu senaryoyu düşünün:
Bir apartman dairesinin fiyatını tahmin etmek üzere bir makine öğrenimi modeli eğittiniz. Belirli bir daire için modelin tahmini 300.000 € ve bu tahmini açıklamanız gerekiyor. Dairenin alanı 50 m², 2. katta bulunuyor, yakınında bir park var ve kedi beslemek yasak:
Bütün daireler için ortalama tahmin 310.000 €’dur. Bir özelliğin değeri, ortalama tahmine kıyasla tahmine ne kadar katkıda bulunmuştur?
Doğrusal regresyon modelleri için cevap basittir. Her özelliğin etkisi, özelliğin ağırlığının özelliğin değeriyle çarpılmasıdır. Bu, yalnızca modelin doğrusallığı sayesinde çalışır. Daha karmaşık modellerde farklı bir çözüme ihtiyacımız vardır. Örneğin, LIME etkileri tahmin etmek için yerel modeller önerir. Başka bir çözüm kooperatif (işbirlikçi) oyun teorisinden gelir: Shapley değeri, Shapley (1953)63 tarafından ortaya atılmış ve oyuncuların toplam ödemeye (payout) yaptıkları katkıya göre onlara ödeme atayan bir yöntemdir. Oyuncular bir koalisyonda işbirliği yapar ve bu işbirliğinden belirli bir kazanç elde ederler.
Oyuncular mı? Oyun mu? Ödeme mi? Makine öğrenimi tahminleri ve yorumlanabilirlik ile ne alakası var? “Oyun”, veri kümesindeki tek bir örnek için tahmin görevidir. “Kazanç”, bu örnek için gerçek tahmin ile tüm örneklerin ortalama tahmini arasındaki farktır. “Oyuncular”, belirli bir değeri tahmin etmek (= belirli bir değer öngörmek) için iş birliği yapan örneğin özellik değerleridir. Apartman örneğimizde, park-yakın, kedi-yasak, alan-50 ve kat-2 özellik değerleri 300.000 €’luk tahmini elde etmek için birlikte çalışır. Amacımız, gerçek tahmin (300.000 €) ile ortalama tahmin (310.000 €) arasındaki farkı açıklamaktır: -10.000 €’luk bir fark.
Cevap şöyle olabilir: Park-yakın 30.000 € katkıda bulundu; alan-50 10.000 € katkıda bulundu; kat-2 0 € katkıda bulundu; kedi-yasak -50.000 € katkıda bulundu. Bu katkılar, -10.000 €’luk farka (son tahmin ile tahmin edilen ortalama apartman fiyatı arasındaki fark) toplamda denk gelir.
Bir özellik için Shapley değeri nasıl hesaplanır?
Shapley değeri, bir özelliğin değerinin olası tüm koalisyonlar üzerindeki ortalama marjinal katkısıdır. Her şey şimdi anlaşılmış mıdır?
Aşağıdaki şekilde, park-yakın ve alan-50’den oluşan bir koalisyona kedi-yasak özelliğinin değeri eklendiğinde kedi-yasak’ın katkısını değerlendiriyoruz. Yalnızca park-yakın, kedi-yasak ve alan-50’nin koalisyonda olduğunu simüle etmek için verilerden rastgele başka bir apartman çekiyor ve onun kat değerini (özelliğini) kullanıyoruz. Kat-2 yerine rastgele çekilen apartmanda kat-1 değeri konuldu. Sonra bu kombinasyon ile apartman fiyatını tahmin ediyoruz (310.000 €). İkinci adımda, kedi-yasak’ı koalisyondan çıkarıyor, rastgele çekilen apartmandan kedi-izinli/yasaklı özelliğinin rastgele bir değerini (bu örnekte kedi-izinli) kullanıyoruz. Yine tahmin yapıyoruz, böylece park-yakın ve alan-50 koalisyonu ile apartman fiyatı 320.000 € çıkıyor. Kedi-yasak’ın katkısı 310.000 € - 320.000 € = -10.000 € olarak belirleniyor. Bu tahmin, kedi ve kat özellik değerleri için “verici” olarak kullanılan rastgele çekilen apartmanın değerlerine bağlıdır. Bu örnekleme adımını tekrarlar ve katkıları ortalamasını alırsak daha iyi tahminlere ulaşırız.
Bu hesaplamayı tüm olası koalisyonlar için tekrarlarız. Shapley değeri, tüm olası koalisyonlara yapılan marjinal katkıların ortalamasıdır. Özellik sayısı arttıkça hesaplama süresi üstel olarak artar. Hesaplama süresini yönetilebilir kılmanın bir çözümü, olası koalisyonlardan yalnızca birkaç örnek için katkıları hesaplamaktır.
Aşağıdaki şekil, kedi-yasak (cat-banned) için Shapley değerini belirlemek üzere ihtiyaç duyulan tüm özellik değeri koalisyonlarını göstermektedir. İlk satırda, hiçbir özellik değerinin olmadığı koalisyon görülür. İkinci, üçüncü ve dördüncü satırlar, artan koalisyon boyutuna göre “|” ile ayrılmış farklı koalisyonları gösterir. Sonuç olarak, aşağıdaki koalisyonlar mümkündür:
Özellik değeri yok
park-nearby
area-50
floor-2nd
park-nearby+area-50
park-nearby+floor-2nd
area-50+floor-2nd
park-nearby+area-50+floor-2nd
Bu koalisyonların her biri için, cat-banned özelliği değeriyle ve olmadan tahmin edilen daire fiyatını hesaplarız ve farkını alarak marjinal katkıyı elde ederiz. Shapley değeri, bu marjinal katkıların (ağırlıklı) ortalamasıdır. Makine öğrenimi modelinden bir tahmin almak için, koalisyonda bulunmayan özelliklerin değerlerini daire veri setinden rastgele seçilmiş özellik değerleriyle değiştiririz.
Bu yaklaşım ile, tüm özellik değerleri için Shapley değerlerini tahmin edersek, tahminin (ortalama tahminin eksiği) özellik değerleri arasında nasıl dağıldığını tamamen elde etmiş oluruz.
Bir özelliğin j değerine ait Shapley değerini yorumlarken: j-inci özelliğin değeri, veri setinin ortalama tahminine kıyasla, bu özel örneğin tahminine kadar katkıda bulunmuştur.
Shapley değeri, olasılıklarla çalışıyorsak sınıflandırma için de, regresyon için de kullanılabilir.
Rahim ağzı kanserini tahmin eden bir rastgele orman modelinin tahminlerini analiz etmek için Shapley değerini kullanıyoruz:
Bisiklet kiralama veri seti için, hava durumu ve takvim bilgileri kullanarak bir günde kiralanan bisiklet sayısını tahmin etmek üzere bir rastgele orman modeli de eğitiyoruz. Belirli bir güne ait rastgele orman tahmini için oluşturulan açıklamalar:
Shapley değerini doğru yorumlamak konusunda dikkatli olun: Shapley değeri, bir özellik değerinin farklı koalisyonlardaki tahmine ortalama katkısıdır. Shapley değeri, özelliği modelden kaldırdığımızda tahminde oluşacak fark değildir.
Bu bölüm, meraklı okuyucu için Shapley değerinin tanımı ve hesaplanması konusunda daha derine iniyor. Teknik detaylarla ilgilenmiyorsanız bu bölümü atlayabilir ve doğrudan "Avantajlar ve Dezavantajlar" kısmına geçebilirsiniz.
Amacımız, her bir özelliğin bir veri noktasının tahmini üzerindeki etkisini öğrenmektir. Doğrusal bir modelde bireysel etkileri hesaplamak kolaydır. İşte bir veri örneği için doğrusal model tahmininin nasıl göründüğüne dair bir gösterim:
Burada x, katkılarını hesaplamak istediğimiz örneği ifade eder. Her olmak üzere bir özellik değeridir. , j-inci özelliğe karşılık gelen ağırlıktır.
üzerindeki j-inci özelliğin katkısı ise şöyledir:
Burada, özellik 𝑗 için ortalama etki tahminini ifade eder. Katkı, özellik etkisi ile ortalama etki arasındaki farktır. Harika! Böylece her bir özelliğin tahmine ne kadar katkıda bulunduğunu biliyoruz. Eğer tek bir örnek için tüm özellik katkılarını toplarsak, sonuç aşağıdaki gibi olur:
Bu, veri noktası x için tahmin edilen değer ile ortalama tahmin edilen değerin farkıdır. Özellik katkıları negatif olabilir.
Aynı şeyi her model türü için yapabilir miyiz? Bunu modelden bağımsız bir araç olarak kullanabilmek harika olurdu. Genellikle diğer model türlerinde benzer ağırlıklara sahip olmadığımız için farklı bir çözüme ihtiyacımız var.
Beklenmedik bir yerden yardım geliyor: işbirlikçi (kooperatif) oyun teorisi. Shapley değeri, herhangi bir makine öğrenimi modeli için tekil tahminlere ait özellik katkılarını hesaplamada bir çözümdür.
Shapley değeri, SSS içindeki oyuncuların bir değer fonksiyonu val\text{val}val aracılığıyla tanımlanır.
Bir özellik değerinin Shapley değeri, olası tüm özellik değeri kombinasyonları üzerinden ağırlıklandırılıp toplanmış şekilde, o özelliğin “ödemeye” (payout) yaptığı katkıdır:
Burada, 𝑆, modelde kullanılan özelliklerin bir alt kümesidir; 𝑥 , açıklanacak örneğin özellik değerleri vektörüdür; ve 𝑝, özellik sayısıdır. ise, 𝑆 kümesinde yer alan özellik değerleri için tahmindir ve 𝑆 kümesinde olmayan özellikler üzerinde marjinalleştirme (ortalama etkisini alma) yapılır:
Aslında, SS kümesinde bulunmayan her özellik için birden fazla integrasyon gerçekleştirirsiniz. Somut bir örnek: Makine öğrenimi modeli, olmak üzere 4 özellikle çalışmaktadır ve biz, ve özellik değerlerinden oluşan S koalisyonu için tahmini değerlendiriyoruz:
Bu, doğrusal modeldeki özellik katkılarına çok benziyor!
“Değer” kelimesinin birçok kullanımından dolayı kafanız karışmasın: Özellik değeri, bir özelliğin ve örneğin sayısal veya kategorik değeridir; Shapley değeri, tahmine yapılan özellik katkısıdır; değer fonksiyonu (value function) ise oyuncuların (özellik değerlerinin) oluşturduğu koalisyonlar için ödeme fonksiyonudur.
Shapley değeri, Efficiency, Symmetry, Dummy ve Additivity özelliklerini karşılayan tek atıf (katkı) yöntemidir; bu özellikler bir arada adil bir ödemenin tanımı olarak kabul edilebilir:
Efficiency (Etkinlik): Özellik katkıları, x için tahmin ile ortalama tahmin arasındaki farka eşit olacak şekilde toplanmalıdır.
Symmetry (Simetri): İki özelliğin j ve k değerleri, tüm olası koalisyonlara eşit katkıda bulunuyorsa, katkıları da aynı olmalıdır. Eğer
tüm
sonra
Dummy (Etkisiz Öznitelik): Bir öznitelik jjj, hangi özellik kümesine eklenirse eklensin tahmin edilen değeri değiştirmiyorsa, bu öznitelik için Shapley değeri 0 olmalıdır. Eğer
tüm
sonra
Additivity (Toplanabilirlik) Bir val+val+\text{val} + \text{val}+val+val+ birleştirilmiş ödemeler oyununda ilgili Shapley değerleri şu şekildedir:
Varsayalım ki bir random forest (rastgele orman) eğittiniz, bu da tahminin birçok karar ağacının ortalaması olduğu anlamına gelir. Additivity (Toplanabilirlik) özelliği, bir özellik değeri için her ağaca ayrı ayrı Shapley değerini hesaplayıp ortalamasını aldığınızda, elde edeceğiniz sonucun o özellik değeri için tüm rastgele orman üzerindeki Shapley değeri olacağını garanti eder.
Shapley değerini anlamanın sezgisel bir yolu şöyledir: Özellik değerleri rastgele bir sırayla odaya girerler. Odaya girmiş olan tüm özellik değerleri oyuna katılır (= tahmine katkıda bulunur). Bir özellik değerinin Shapley değeri, söz konusu özellik değeri odaya katıldığında odada zaten bulunan koalisyonun aldığı tahminin ne kadar değiştiğinin ortalamasıdır.
j’inci özellik olmadan ve onunla birlikte, tüm olası özellik değeri koalisyonlarının (kümelerinin) değerlendirilmesi gerekir ki tam Shapley değeri hesaplanabilsin. Özellik sayısı birkaçdan fazlaysa, bu sorunun tam çözümü sorunlu hale gelir çünkü olası koalisyonların sayısı, eklenen her bir özellikle üstel olarak artar. Strumbelj ve arkadaşları (2014)64 bu soruna Monte Carlo örneklemesi yoluyla bir yaklaşım önermiştir:
burada , x için yapılan tahmindir ancak j-inci özellik değeri hariç rastgele seçilen bir veri noktası z'nin özellik değerleriyle değiştirilmiş bir dizi özelliğe sahiptir. x-vektörü ise, 'ye neredeyse özdeştir ancak değeri de örneklenen z'den alınır. Bu M yeni örneklerin her biri, iki örnekten birleştirilmiş bir tür “Frankenstein’ın Canavarı” gibidir. Şunu unutmayın ki aşağıdaki algoritmada, özelliklerin sırası gerçekte değiştirilmez – her özellik, tahmin fonksiyonuna geçilirken vektörde aynı konumda kalır. Burada sıra yalnızca bir “hile” olarak kullanılır: Özelliklere yeni bir sıra vererek, bize “Frankenstein’ın Canavarı”nı birleştirmemize yardımcı olacak rastgele bir mekanizma elde ederiz. özelliğinin solunda görünen özellikler için değerleri özgün gözlemden alırız, sağında kalan özellikler için ise rastgele bir örnekten alınan değerleri kullanırız.
Tek bir özellik değeri için yaklaşık Shapley tahmini:
Çıktı: j-inci özelliğin değeri için Shapley değeri Gerekli: Yineleme sayısı M, ilgi duyulan örnek x, özellik indeksi j, veri matrisi X ve yapay öğrenimi modeli f
Tüm iiçin:
Veri matrisi X'ten rastgele bir örnek z çekin
Özelliklerin rastgele bir sırası o seçin
x örneğini sıraya göre yeniden düzenleyin:
z örneğini sıraya göre yeniden düzenleyin:
İki yeni örnek oluşturun
j ile :
j olmadan:
Marjinal katkıyı hesapla:
Shapley değerini ortalama olarak hesapla:
Öncelikle, ilgi duyulan bir örnek x, bir özellik j ve yineleme sayısı M seçin. Her yinelemede, verilerden rastgele bir örnek z seçilir ve özelliklerin rastgele bir sırası oluşturulur. İki yeni örnek, ilgi duyulan örnek x ile örnek z’nin değerlerini birleştirerek oluşturulur. örneği, ilgi duyulan örnektir, ancak j özelliğinden sonra gelen sıradaki tüm değerler örnek z’den alınan özellik değerleriyle değiştirilir. ise ile aynıdır, ancak ek olarak j özelliği de örnek z’den alınan değerle değiştirilmiştir.
Siyah kutu modelinden elde edilen tahmin farkı şu şekilde hesaplanır:
Tüm bu farkların ortalaması alınır ve sonuç olarak
Tahminin ortalama tahmin üzerinden dağıtılması, X’in olasılık dağılımı tarafından dolaylı olarak ağırlıklandırılır.
Bu prosedür, tüm Shapley değerlerini elde etmek için her bir özellik için tekrarlanmak zorundadır.
Bir örnek için tahmin ile ortalama tahmin arasındaki farkın, örneğin özellik değerleri arasında adil bir şekilde dağıtılması (Shapley değerlerinin “Efficiency” özelliği) sağlanır. Bu özellik, Shapley değerini LIME gibi diğer yöntemlerden ayırır. LIME, tahmini özellikler arasında adil şekilde dağıtmayı garanti etmez. Shapley değeri, tam bir açıklama sunabilen tek yöntem olabilir. Yasanın açıklanabilirlik gerektirdiği durumlarda – örneğin AB’nin “açıklama hakkı” – Shapley değeri hukuken uyumlu olabilecek tek yöntem olabilir, çünkü sağlam bir teoriye dayanır ve etkileri adil bir şekilde dağıtır. Ben bir avukat değilim, bu yalnızca gereksinimlerle ilgili sezgimi yansıtıyor.
Shapley değeri karşıt (kontrastif) açıklamalara izin verir. Bir tahmini, tüm veri setinin ortalama tahminiyle karşılaştırmak yerine, bir alt küme veya tek bir veri noktasıyla karşılaştırabilirsiniz. Bu karşıtlık, LIME gibi yerel modellerde yoktur.
Shapley değeri, sağlam bir teoriye sahip tek açıklama yöntemidir. Aksiyomlar – etkinlik (efficiency), simetri (symmetry), etkisiz (dummy), toplanabilirlik (additivity) – açıklamaya makul bir temel sağlar. LIME gibi yöntemler, makine öğrenimi modelinin yerel olarak doğrusal davrandığını varsayar, ancak bunun neden işe yaraması gerektiğine dair bir teori yoktur.
Bir tahmini, özellik değerlerinin oynadığı bir oyun olarak açıklamak oldukça etkileyicidir.
Shapley değeri çok fazla hesaplama süresi gerektirir. Gerçek dünya problemlerinin %99,9’unda yalnızca yaklaşık (approximate) çözüm uygulanabilir. Shapley değerinin tam hesaplanması maliyetlidir, çünkü özellik değerlerinin oluşturduğu olası koalisyon vardır ve bir özelliğin “yokluğunu” simüle etmek için rastgele örnekler çekerek (bu da Shapley değerleri tahminindeki varyansı artırır) tahmin almak gerekir. Koalisyonların üstel sayısı, koalisyonları örnekleyerek ve yineleme sayısı M’i sınırlandırarak ele alınır. M’i azaltmak hesaplama süresini kısaltır ancak Shapley değerinin varyansını artırır. M için iyi bir pratik kural yoktur. M, Shapley değerlerini doğru şekilde tahmin edebilecek kadar büyük ama makul bir sürede hesaplamayı tamamlayacak kadar küçük olmalıdır. Chernoff sınırlarına (Chernoff bounds) dayalı bir M seçimi yapmak mümkün olmalıdır, ancak makine öğrenimi tahminleri için Shapley değerlerine yönelik böyle bir çalışmaya rastlamadım.
Shapley değeri yanlış anlaşılabilir. Bir özelliğin Shapley değeri, o özelliği modelden kaldırdıktan sonra elde edilen tahmin farkı değildir. Shapley değerinin yorumu şudur: Mevcut özellik değerleri kümesi göz önüne alındığında, bir özellik değerinin gerçek tahmin ile ortalama tahmin arasındaki farka yaptığı katkı, tahmini Shapley değeridir.
Seyrek (az sayıda özelliğe sahip) açıklamalar arıyorsanız, Shapley değeri yanlış bir yöntemdir. Shapley değeri yöntemiyle oluşturulan açıklamalar her zaman tüm özellikleri kullanır. İnsanlar, LIME’ın ürettiği gibi daha seçici açıklamaları tercih eder. LIME, alan dışı kişilerin anlaması gereken durumlarda daha iyi bir tercih olabilir. Başka bir çözüm de, Lundberg ve Lee (2016) tarafından sunulan ve Shapley değerine dayanan ancak az sayıda özellikle de açıklama sunabilen SHAP’tır.
Shapley değeri, özellik başına basit bir değer döndürür, ancak LIME gibi bir tahmin modeli döndürmez. Bu, girdideki değişiklikler için tahminde oluşacak değişikliklerle ilgili (“Yılda 300 € daha fazla kazansam kredi puanım 5 puan yükselir.” gibi) çıkarımlar yapılamayacağı anlamına gelir.
Son bir dezavantaj, yeni bir veri örneği için Shapley değerini hesaplamak isterseniz veriye erişmeniz gerekmesidir. Sadece tahmin fonksiyonuna erişmek yeterli değildir, çünkü ilgi duyulan örneğin bazı kısımlarını veri setinden rastgele çekilen örneklerin değerleriyle değiştirmeye ihtiyacınız vardır. Bu, ancak gerçek veri örneklerine benzeyen, ancak eğitim verilerindeki gerçek örnekler olmayan veri örnekleri oluşturabilirseniz önlenebilir.
Birçok başka permütasyon tabanlı yorumlama yöntemi gibi, Shapley değeri yöntemi de özellikler korelasyonlu olduğunda gerçekçi olmayan veri örneklerinin dahil edilmesinden muzdariptir. Bir özelliğin koalisyonda olmadığı durumu simüle etmek için, bu özelliği marjinalize ederiz. Bu, özelliğin marjinal dağılımından değerler çekilerek gerçekleştirilir. Özellikler bağımsız olduğu sürece bu sorun oluşturmaz. Özellikler bağımlı olduğunda, bu örnek için mantıklı olmayan özellik değerleri örnekleyebiliriz. Ama yine de bu değerleri kullanarak özelliğin Shapley değerini hesaplarız. Bir çözüm, korelasyonlu özelliklerin birlikte permüte edilmesi ve onlar için tek bir ortak Shapley değeri elde edilmesidir. Başka bir uyarlama ise koşullu örneklemedir (conditional sampling): Özellikler, hâlihazırda “takım”da bulunan özelliklere koşullu olarak örneklenir. Koşullu örnekleme, gerçekçi olmayan veri noktaları sorununu düzeltse de yeni bir sorun yaratır: Elde edilen değerler artık oyunumuza ait Shapley değerleri değildir, çünkü Sundararajan ve ark. (2019) ile Janzing ve ark. (2020) tarafından gösterildiği üzere, bu durum simetri aksiyomunu ihlal eder.
Shapley değerleri, R için iml ve fastshap paketlerinde uygulanmıştır. Julia’da Shapley.jl kullanılabilir.
Shapley değerleri için alternatif bir tahmin yöntemi olan SHAP, bir sonraki bölümde tanıtılacaktır.
Başka bir yaklaşım, breakDown adı verilen ve R’daki breakDown paketinde68 uygulanmış yaklaşımdır. breakDown da her bir özelliğin tahmine katkısını gösterir, ancak adım adım hesaplar. Aynı oyun benzetmesini yeniden kullanalım: Boş bir takımla başlarız, tahmine en çok katkıyı yapacak özellik değerini ekleriz ve tüm özellik değerleri eklenene kadar tekrarlamaya devam ederiz. Her özellik değerinin ne kadar katkıda bulunduğu, zaten “takım”da bulunan özellik değerlerine bağlıdır; bu da breakDown yönteminin en büyük dezavantajıdır. Shapley değerine göre daha hızlıdır ve etkileşimlerin olmadığı modellerde sonuçlar aynıdır.
Shapley, Lloyd S. “A value for n-person games.” Contributions to the Theory of Games 2.28 (1953): 307-317.↩︎
Štrumbelj, Erik, and Igor Kononenko. “Explaining prediction models and individual predictions with feature contributions.” Knowledge and information systems 41.3 (2014): 647-665.↩︎
Lundberg, Scott M., and Su-In Lee. “A unified approach to interpreting model predictions.” Advances in Neural Information Processing Systems (2017).↩︎
Sundararajan, Mukund, and Amir Najmi. “The many Shapley values for model explanation.” arXiv preprint arXiv:1908.08474 (2019).↩︎
Janzing, Dominik, Lenon Minorics, and Patrick Blöbaum. “Feature relevance quantification in explainable AI: A causal problem.” International Conference on Artificial Intelligence and Statistics. PMLR (2020).↩︎
Staniak, Mateusz, and Przemyslaw Biecek. “Explanations of model predictions with live and breakDown packages.” arXiv preprint arXiv:1804.01955 (2018).↩︎