Share
Embed
機械学習の解釈性に関する研究動向とシステム運用への応用 / A Survey on Interpretable Machine Learning and Its Application for System Operation
tsurubee
June 23, 2021
Transcript
43 slides
-
͘͞ΒΠϯλʔωοτגࣜձࣾ (C) Copyright 1996-2021 SAKURA Internet Inc ͘͞ΒΠϯλʔωοτݚڀॴ ػցֶशͷղऍੑʹؔ͢Δݚڀಈͱ
γεςϜӡ༻ͷԠ༻ 2021/06/23 ୈ12ճ͘͞ΒΠϯλʔωοτݚڀձ ా തจ -
2 1ɽػցֶशͷղऍੑʹؔ͢Δݚڀಈ ࣍ • ղऍੑ͕ٻΊΒΕΔഎܠ • දతͳख๏ͱͦͷྨ • ήʔϜཧʹجͮ͘ख๏ͷհɼetc. 2ɽҟৗͷݪҼஅʹؔ͢Δݚڀͷհ
• ҟৗͷݪҼஅͷઌߦݚڀ • ہॴతͳղऍख๏Λద༻ͨ͠ΞʔΩςΫνϟ • ݪҼஅ݁Ռͱ࣮ߦ࣌ؒͷධՁɼetc. -
4 ༻ޠͷఆٛɿղऍੑͱઆ໌ੑ ػցֶशͷʹ͓͍ͯɼղऍ(Մೳ)ੑ (Interpretability)ͱઆ໌(Մೳ)ੑ (Explainability) ͷ ౷Ұతͳఆٛͳ͘ɼಉٛͰΘΕ͍ͯΔ͜ͱ͋Δɽ ຊൃදͰɼجຊతʹʮղऍʯͱ͍͏දݱͰ౷Ұ͠ɼࢀߟࢿྉͷදݱʹΑͬͯదٓ ʮઆ໌ʯͱ͍͏දݱΛҙຯͷ۠ผͳ͘༻͍͍ͯΔɽ
[Linardatos+, Entropy2021] Explainable AI: A Review of Machine Learning Interpretability Methods • ղऍੑɼʮਓؒʹཧղՄೳͳݴ༿Ͱઆ໌·ͨఏࣔ͢ΔೳྗʯͰ͋Δɽ • Ұํɼઆ໌ੑͱɼػցֶशγεςϜͷ෦ͷϩδοΫΈʹؔ͢Δੑ࣭Ͱ͋Γɼ આ໌ੑΛͭϞσϧɼϞσϧͷֶशҙࢥܾఆͷࡍͷ෦ಈ࡞ʹ͍ͭͯਓ͕ؒཧղ Ͱ͖Δɽ • ղऍੑઆ໌ੑΑΓ͍༻ޠͰ͋Δɽ ྆ऀͷҧ͍ʹؔ͢ΔٞͷҰྫ [Linardatos+, Entropy2021] -
5 ػցֶशͷԠ༻ • ਂֶशΛ͡Ίͱ͢Δػցֶशٕज़ɼը૾ೝࣝࣗવݴޠॲཧͳͲ༷ʑͳλεΫͰ ߴ͍ੑೳΛൃش͠ɼ༷ʑͳͰԠ༻͕ਐΜͰ͍Δɽ • ಛʹɼҩྍɾϔϧεέΞࣗಈӡసɾϩϘοτ੍ޚɼϩʔϯ৹ࠪͳͲɼߴͳҙࢥܾఆ ͕ٻΊΒΕΔ໘ͷར༻͕֦େ͍ͯ͠Δɽ ਂֶशʹΑΔපੑບͷը૾அ [Beede+,
CHI2020] [Beede+, CHI2020] A Human-Centered Evaluation of a Deep Learning System Deployed in Clinics for the Detection of Diabetic Retinopathy -
6 ϒϥοΫϘοΫεͱͦͷղܾ ਂֶशͳͲͷػցֶशϞσϧɼͦͷ༧ଌஅͷࠜڌΛਓؒ が ཧղ͢Δ͜ͱ がで ͖ͳ͍ ʮϒϥοΫϘοΫεʯͰ͋Δ͜ͱ͕ࢹ͞Ε͍ͯΔɽ ྫ͑ɼҎԼͷΑ͏ͳ໘ʹ͓͍ͯɼ༧ଌஅͷࠜڌͷཧղ͕ཁ͞ΕΔɽ
ػցֶशͷղऍੑ ʹର͢Δཁͷߴ·Γ • ҩྍஅʹ͓͚Δҩࢣͷॴݟͱͷ߹ੑ֬ೝ • ࣗಈӡసͰࣄނ͕ى͖ͨ߹ͷݪҼڀ໌ • ެతػؔͰͷར༻ʹ͓͚Δެฏੑͷ୲อɼetc. • ࠃɿAI։ൃ ガ Π ド ϥΠϯҊ※1 (૯লɼ2017) • ಁ໌ੑͷݪଇ • ΞΧϯλϏϦςΟ (આ໌)ͷݪଇ • EUɿҰൠ デ ʔλอޢنଇ (General Data Protection Regulation: GDPR)※2 (2018) • GDPR ୈ22ʮAutomated individual decision-making, including pro fi lingʯ Ϣʔβʹର͢Δઆ໌ʹؔ͢Δ༰ ※1 https://www.soumu.go.jp/main_content/000499625.pdf ※2 https://gdpr-info.eu/ -
7 ݚڀͷོ • 2016ࠒ͔Βɼػցֶशͷղऍੑʹؔ͢Δจ͕ʑ૿Ճ͍ͯ͠Δ (Լਤ) • ػցֶशؔ࿈ͷֶձɾݚڀձͰղऍੑʹؔ͢Δηογϣϯ͕։࠵͞Ε͍ͯΔɽ • AAAI2019ͷνϡʔτϦΞϧɿ
Tutorial on Explainable AI: From Theory to Motivation, Applications and Limitations • NIPS2020ͷνϡʔτϦΞϧɿ Explaining Machine Learning Predictions: State-of-the-art, Challenges, and Opportunities • ୈ41ճIBISMLݚڀձ (2020)ͷηογϣϯɿ ʮػցֶशͷ༗ҙੑɼઆ໌ੑɼ҆શੑʯ • FAT/ML (Fairness, Accountability, and Transparency in Machine Learning) (2014~2018) -
9 ղऍੑ͔ΒಘΒΕΔ͜ͱ [Adadi+, IEEE Access2018]ͰɼҎԼͷ4ͭͷ؍͔ΒػցֶशͷղऍੑͷඞཁੑΛ ड़͍ͯΔɽ [Adadi+, IEEE Access2018] Peeking
Inside the Black-Box: A Survey on Explainable Arti fi cial Intelligence (XAI) Ϟσϧͷ༧ଌɾஅͷ ݁ՌΛਖ਼Խ͢Δ Ϟσϧͷ੬ऑੑܽؕΛಛఆ ͠ɼमਖ਼͢Δ(σόοά) ਓؒ-ϞσϧؒͰܧଓత ʹվળΛߦ͏ Ϟσϧͷֶश݁ՌΛཧղ͢Δ ͜ͱͰ৽ͨͳൃݟʹܨ͕Δ -
10 Explain to justifyɿਖ਼ԽͷͨΊͷઆ໌ ػցֶशΛ׆༻ͨ͠γεςϜ͕ɼภͬͨ݁Ռࠩผతͳ݁ՌΛͨΒ͢ͱ͍͏͜ͱ͕ ใ͡ΒΕ͍ͯΔɽ https://www.reuters.com/article/us-amazon-com-jobs-automation-insight-idUSKCN1MK08G ʮެฏੑٴͼಁ໌ੑͷ͋Δҙࢥܾఆͱͦͷ݁Ռʹର͢Δઆ໌ (ΞΧϯλϏϦ
ςΟ)͕దʹ֬อ͞ΕΔͱڞʹɼٕज़ʹର͢Δ৴པੑ (Trust)͕୲อ͞ΕΔඞཁ͕ ͋Δʯ(ֳ, ʮਓؒத৺ͷAI ࣾձݪଇʯΑΓ) https://queue.acm.org/detail.cfm?id=2460278 -
11 Explain to controlɿ੍ޚͷͨΊͷઆ໌ [Ribeiro+, KDD2016] "Why Should I Trust
You?": Explaining the Predictions of Any Classi fi er [Ribeiro+, KDD2016] σʔλͱ༧ଌΛݟ͚ͨͩͰҙਤ͠ͳ͍ ֶशΛߦ͍ͬͯΔ͜ͱΛಛఆ͢Δͷ͕ࠔ • ͱϋεΩʔͷը૾ྨΛߦ͏ϞσϧͰɼ ֶशʹ༻͍ͨͷը૾ʹഎܠʹઇ͕ࣸͬ ͍ͯΔ • എܠͷಛΛͱʹ͔ϋεΩʔ͔Λೝࣝ ͢ΔϞσϧ͕ߏங͞Ε͍ͯΔɽ ػցֶशϞσϧͷڍಈΛཧղ͢Δ͜ͱͰɼϞσϧͷ੬ऑੑܽؕΛѲͰ͖ɼϞσϧ ͷσόοάΛߦ͏͜ͱ͕Ͱ͖Δɽ -
12 ػցֶशͷղऍੑʹର͢Δ൷ • ղऍՄೳͳϞσϧΛ࡞ΔͷͰͳ͘ɼϒϥοΫϘοΫεԽͨ͠ϞσϧΛઆ໌ ͠Α͏ͱ͢Δ͜ͱةݥͰ͋Δɽ • ۙࣅతͳઆ໌ɼݩͷϞσϧͷػೳʹ࣮Ͱͳ͍આ໌Λఏڙ͢ΔՄೳੑ͕ ͋Δɼetc. Stop Explaining
Black Box Machine Learning Models for High Stakes Decisions and Use Interpretable Models Instead (2019) ͋ΒΏΔέʔεͰਖ਼֬ͳղऍઆ໌Λ༩͑Δສೳͳख๏ଘࡏ͠ͳ͍͜ͱ ɼಋೖͷࡍʹखݩͷσʔλͰݕূΛߦ͏ඞཁ͕͋Δ͜ͱͳͲͷೝ͕ࣝ ॏཁͰͳ͍͔ɽ -
13 ղऍख๏ͷྨ [Das+, arXiv2020] [Das+, arXiv2020] Opportunities and Challenges in
Explainable Arti fi cial Intelligence (XAI): A Survey -
14 ScopeɿGlobal or Local ղऍͷൣғ (Scope) ʹج͖ͮɼҎԼͷೋͭʹྨ͞ΕΔɽ 1ɽେҬతͳղऍ (Global)ɿ
ɹ ϞσϧࣗମʹղऍੑΛ༩͢Δख๏ 2ɽہॴతͳղऍ (Local)ɿ ɹ ݸʑͷσʔλͷ༧ଌ݁Ռʹର͠ղऍੑ ɹ Λ༩͢Δख๏ [Das+, arXiv2020] Opportunities and Challenges in Explainable Arti fi cial Intelligence (XAI): A Survey [Das+, arXiv2020] [Das+, arXiv2020] -
15 ͲͷΑ͏ʹղऍख๏͕։ൃ͞Ε͍ͯΔ͔ (Usage)ʹج͖ͮɼҎԼͷೋͭʹྨ͞ΕΔɽ 1ɽຊ࣭త (Intrinsic)ɿ ɹ ຊ࣭తʹղऍՄೳͳϞσϧͷར༻ઃܭ 2ɽޙ͚త (Post-hoc)ɿ
ɹ ϞσϧͷֶशޙʹղऍੑΛ༩ [Das+, arXiv2020] Opportunities and Challenges in Explainable Arti fi cial Intelligence (XAI): A Survey [Das+, arXiv2020] [Das+, arXiv2020] UsageɿIntrinsic or Post-hoc -
16 දతͳख๏ [Adadi+, IEEE Access2018] [Adadi+, IEEE Access2018] Peeking Inside
the Black-Box: A Survey on Explainable Arti fi cial Intelligence (XAI) Scope Usage Ϟσϧݻ༗ͷख๏͔Ϟσϧ ʹґଘ͠ͳ͍ख๏͔ -
γϟʔϓϨΠɿڠྗήʔϜཧ • ڠྗήʔϜཧʹ͓͍ͯෳϓϨΠϠʔͷڠྗʹΑͬͯಘΒΕͨརಘΛ֤ϓϨΠϠʔͷߩݙ ʹԠͯ͡ެਖ਼ʹ͢ΔͨΊͷखஈͷҰͭ • ۙɼػցֶशϞσϧͷ༧ଌ݁Ռʹର͢Δ֤ಛྔͷॏཁੑͷईͱͯ͠ɼ ͞Ε͍ͯ Δɽ ػցֶशʹஔ͖͑Δͱɼಛྔ͕ϓϨʔϠʔɼ༧ଌ͕རಘʹͳΔɽ ػցֶश
ήʔϜ ϓϨΠϠʔ རಘ ಛྔ ༧ଌ Ϟσϧ ڠྗήʔϜͱػցֶशͷରൺ 17 -
γϟʔϓϨΠɿڠྗήʔϜཧ • ڠྗήʔϜཧʹ͓͍ͯෳϓϨΠϠʔͷڠྗʹΑͬͯಘΒΕͨརಘΛ֤ϓϨΠϠʔͷߩݙ ʹԠͯ͡ެਖ਼ʹ͢ΔͨΊͷखஈͷҰͭ • ۙɼػցֶशϞσϧͷ༧ଌ݁Ռʹର͢Δ֤ಛྔͷॏཁੑͷईͱͯ͠ɼ ͞Ε͍ͯ Δɽ ػցֶशʹஔ͖͑Δͱɼಛྔ͕ϓϨʔϠʔɼ༧ଌ͕རಘʹͳΔɽ ػցֶश
ήʔϜ ϓϨΠϠʔ རಘ ಛྔ ༧ଌ Ϟσϧ ڠྗήʔϜͱػցֶशͷରൺ ച্ ఱؾ ؾԹ ༵ 18 -
γϟʔϓϨΠɿಛੑؔܗήʔϜ ۩ମྫɿ3ਓͷϓϨΠϠʔʢ1ɼ2ɼ3ʣ͕ڠྗͯ͠ήʔϜʹઓ͠ɼҎԼͷ͕ۚಘΒΕΔͱ͢Δ ࢀՃϓϨΠϠʔ ۚ 1 4 2 6 3 10
1, 2 16 1, 3 22 2, 3 30 1, 2, 3 60 ɿϓϨΠϠʔͷू߹ N = {1,2,3} = ͷ֤෦ू߹ N S ʹରͯ֫͠ಘͰ͖ΔརಘΛ༩͑Δؔ ྫɿ ɿಛੑؔ v N v({1,2}) = 16 શϓϨΠϠʔͷڠྗʹΑΓಘΒΕΔརಘ v({1,2,3}) = 60 ΛͲͷΑ͏ʹ͢Δ͔ʁ ಛੑؔܗήʔϜ (N, v) 19 -
γϟʔϓϨΠɿݶքߩݙͷಋೖ ݶքߩݙɿϓϨΠϠʔ ͕ࢀՃͨ͠ͱ͖ͷརಘͷ૿Ճ i v(S ∪ {i}) − v(S) ݶքߩݙϓϨΠϠʔ
͕ࢀՃͨ͠ॱ൪ʹґଘ͢Δ i ϓϨΠϠʔͷࢀՃॱ ֤ϓϨΠϠʔͷݶքߩݙ 1 2 3 1 → 2 → 3 4 12 44 1 → 3 → 2 4 38 18 2 → 1 → 3 10 6 44 2 → 3 → 1 30 6 24 3 → 1 → 2 12 38 10 3 → 2 → 1 30 20 10 γϟʔϓϨΠ 15 20 25 ࢀՃϓϨΠϠʔ ۚ 1 4 2 6 3 10 1, 2 16 1, 3 22 2, 3 30 1, 2, 3 60 v({1,2,3}) − v({1,2}) = 60 − 16 = 44 (44 + 18 + 44 + 24 + 10 + 10)/6 = 25 γϟʔϓϨΠɿશͯͷ෦ू߹ʹର͢ΔϓϨΠϠʔͷݶքߩݙͷฏۉ ϕi = ∑ S⊆N\{i} |S|!(n − |S| − 1)! n! (v(S ∪ {i}) − v(S)) |S| n ɿ෦ू߹ͷϓϨΠϠʔ ɿશϓϨΠϠʔ 20 -
ϓϨΠϠʔͷࢀՃॱ ֤ϓϨΠϠʔͷݶքߩݙ 1 2 3 1 → 2 → 3
4 12 44 1 → 3 → 2 4 38 18 2 → 1 → 3 10 6 44 2 → 3 → 1 30 6 24 3 → 1 → 2 12 38 10 3 → 2 → 1 30 20 10 γϟʔϓϨΠ 15 20 25 γϟʔϓϨΠɿݶքߩݙͷಋೖ ݶքߩݙɿϓϨΠϠʔ ͕ࢀՃͨ͠ͱ͖ͷརಘͷ૿Ճ i v(S ∪ {i}) − v(S) ݶքߩݙϓϨΠϠʔ ͕ࢀՃͨ͠ॱ൪ʹґଘ͢Δ i ࢀՃϓϨΠϠʔ ۚ 1 4 2 6 3 10 1, 2 16 1, 3 22 2, 3 30 1, 2, 3 60 v({1,2,3}) − v({1,2}) = 60 − 16 = 44 (44 + 18 + 44 + 24 + 10 + 10)/6 = 25 γϟʔϓϨΠɿશͯͷ෦ू߹ʹର͢ΔϓϨΠϠʔͷݶքߩݙͷฏۉ ϕi = ∑ S⊆N\{i} |S|!(n − |S| − 1)! n! (v(S ∪ {i}) − v(S)) |S| n ɿ෦ू߹ͷϓϨΠϠʔ ɿશϓϨΠϠʔ 21 15 + 20 + 25 = 60 = v(N) γϟʔϓϨΠͷ૯͕શϓϨΠϠʔͷ ڠྗʹΑΓಘΒΕΔརಘʹҰக -
γϟʔϓϨΠɿద༻࣌ͷ γϟʔϓϨΠ ϕi = ∑ S⊆N\{i} |S|!(n − |S| −
1)! n! (v(S ∪ {i}) − v(S)) 2 (ػցֶशʹద༻͢Δࡍͷ) Q. ͕େ͖͘ͳͬͨ߹ʹܭࢉྔ͕େʹ ͳΔ͜ͱΛͲ͏͢Δ͔ʁ 1 (ҰൠతͳγϟʔϓϨΠͷ) • શϓϨΠϠʔͷࢀՃॱͷΈ߹Θͤͷ ɹ ݸͰ͋Δɽ • ྫ͑ɼ ͷͱ͖ɼΈ߹Θͤͷ 362ສ௨ΓͱͳΓɼ ͕େ͖͘ͳΔʹ͍ɼ ݱ࣮తͳ࣌ؒͰͷܭࢉෆՄೳʹͳΔɽ n Q. ʹ͓͍ͯɼ͋Δಛྔ͕ଘࡏ͠ͳ͍ ߹ͷ༧ଌΛͲͷΑ͏ʹಘΔ͔ v(S) n! n = 10 n • ػցֶशϞσϧͷղऍʹద༻͢Δ߹ɼಛੑ ؔ ػցֶशϞσϧ ʹͳΔɽ • ௨ৗͰɼશͯͷಛྔ͕ଘࡏ͢Δ߹ͷػ ցֶशϞσϧͷ༧ଌ͔͠ಘΒΕͳ͍ͨΊɼ ಛఆͷಛྔ͕ଘࡏ͠ͳ͍෦ू߹ʹର͢Δ ༧ଌΛԿ͔͠Βͷํ๏Ͱ࠶ݱ͢Δඞཁ͕͋ Δɽ v f 22 -
SHAP (SHapley Additive exPlanation) • SHAPγϟʔϓϨΠʹجͮ͘ػցֶशϞσϧͷہॴతͳղऍख๏ͷҰͭͰ͋Γɼ Ϟσϧͷ༧ଌʹର͢Δ֤ಛྔͷߩݙΛఏࣔ͢Δ [Lundberg+, NIPS2017]
• Kernel SHAPલड़ͷγϟʔϓϨΠͷܭࢉ࣌ͷΛҎԼͷΑ͏ʹղܾ͢Δɽ 1ɿ ͕େ͖͘ͳͬͨ߹ʹܭࢉྔ͕େʹͳΔ͜ͱΛͲ͏͢Δ͔ʁ n 2ɿ ʹ͓͍ͯɼ͋Δಛྔ͕ଘࡏ͠ͳ͍߹ͷ༧ଌΛͲͷΑ͏ʹಘΔ͔ v(S) ॏΈ͖࠷খೋͱͯ͠ͷఆࣜԽ + ϞϯςΧϧϩۙࣅ Kernel SHAPͷ࣮※ɿӈਤͷॏΈ͕େ͖͍྆ (෦ू߹Λද͢όΠφϦϕΫτϧ ͷཁૉ͕શͯ0·ͨ1͔ΒҰͭͣͭస͍ͤͯ͘͞) ͔ΒαϯϓϦϯά͢Δɽ [Lundberg+, NIPS2017] A Uni fi ed Approach to Interpreting Model Predictions ※ https://github.com/slundberg/shap όοΫάϥϯυσʔληοτΛࢀরͱͯ͠ଘࡏ͠ͳ͍ಛྔΛஔ͖͑Δ Kernel SHAPͷ࣮※ɿόοΫάϥϯσʔληοτ Λෳࢦఆͨ͠߹ɼظΛͱΔ D x x′  ɿղऍ͍ͨ͠σʔλ ɿࢀর ( ͷதͷҰͭͷσʔλ) D 23 -
24 ओͳࢀߟࢿྉ • XAIͷओཁͳ֓೦ɼಈػɼݚڀಈͳͲ͕แׅతʹ·ͱΊΒΕͨαʔϕΠจ 1. https://ieeexplore.ieee.org/abstract/document/8466590 2. https://arxiv.org/abs/2006.11371
3. https://dl.acm.org/doi/10.5555/3295222.3295230 4. https://www.slideshare.net/SatoshiHara3/ver2-225753735 ※ https://www.youtube.com/watch?v=Fgza_C6KphU 1ɽPeeking Inside the Black-Box: A Survey on Explainable Arti fi cial Intelligence (XAI) (2018) 2ɽOpportunities and Challenges in Explainable Arti fi cial Intelligence (XAI): A Survey (2020) 4ɽػցֶशϞσϧͷஅࠜڌͷઆ໌ (Ver.2) (2020) • ਂֶशʹಛԽͨ͠XAIͷख๏͕·ͱΊΒΕͨαʔϕΠจ • 2020·ͰͷݚڀՌΛΧςΰϥΠζ͢Δํ๏ΛఏҊ͍ͯͯ͠શମ૾ΛѲ͍͢͠ɽ • େࡕେֶ ݪઌੜʹΑΔߨԋࢿྉ • XAIͷදతͳݚڀઆ໌ͷ৴པੑͳͲΛ·ͱΊΒΕ͍ͯΔɽ • ؔ࿈͢Δߨԋಈը͕YouTubeʹ͋Δ※ 3ɽA Uni fi ed Approach to Interpreting Model Predictions (2017) • SHAPͷఏҊจ (2017) -
27 ఏҊɿSHAPΛ༻͍ͨҟৗͷݪҼஅ ҟৗʹد༩ͨ͠ϝτϦοΫΛߩݙͱʹఏࣔ ࠶ܝɿڠྗήʔϜͱػցֶशͷରൺ ήʔϜ ϓϨΠϠʔ རಘ ಛྔ ༧ଌ Ϟσϧ
ػցֶश ϝτϦοΫ (ex. CPU usage) ҟৗείΞ -
28 ઌߦख๏ɿਂֶशͳͲͷػցֶशϕʔε ਂֶशͳͲͷػցֶशϞσϧΛ༻͍ͯγεςϜͷҟৗͷݪҼΛஅ͢Δख๏͕ఏҊ͞Ε͍ͯΔ※1ɽ ͜ΕΒɼγεςϜཧऀ͕ҟৗͷࠜຊݪҼΛߜΓࠐΉͨΊʹ׆༻͢Δ͜ͱ͕ظͰ͖Δɽ • ࣄલʹػցֶशϞσϧͷֶशߋ৽͕ඞཁͰ͋Δ͜ͱʹ͏՝͕ଘࡏ͢Δɽ • Ϟσϧͷֶशͱߋ৽ʹ͏ܭࢉίετ͕͔͔Δɽ • ϞσϧͷೖྗͱͳΔੳରͷϝτϦοΫΛࣄલʹࢦఆ͢Δඞཁ͕͋Δɽ
※1 C. Zhang et al, A Deep Neural Network for Unsupervised Anomaly Detection and Diagnosis in Multivariate Time Series Data, Proceedings of the AAAI Conference on Arti fi cial Intelligence, 2019. -
29 ઌߦख๏ɿ౷ܭతҼՌ୳ࡧϕʔε ࣄલʹϞσϧͷֶश͕ෆཁͰ͋ΓɼҟৗൃੜΛىʹݪҼΛஅͰ͖Δख๏ͱͯ͠ɼ౷ܭతҼՌ୳ࡧ Λ༻͍ͨख๏͕ఏҊ͞Ε͍ͯΔ※2,3ɽ͜ΕΒɼҼՌάϥϑʹΑΓҟৗͷൖܦ࿏ΛಛఆͰ͖Δɽ • طଘख๏Ͱ͋ΔMicroscope※2AutoMAP※3ɼੳରͷϝτϦοΫΛࣄલʹࢦఆ͓ͯ͘͠ ඞཁ͕͋Δ͜ͱ͕՝Ͱ͋Δɽ • γεςϜཧऀ͕બఆͨ͠ϝτϦΫεͷதʹҟৗͷࠜຊݪҼͱͳΔϝτϦοΫؚ͕·Εͣɼ அ݁Ռ͔ΒݪҼϝτϦοΫ͕আ֎͞ΕΔՄೳੑ͕͋Δɽ
※2 J. Lin et al, Microscope: Pinpoint Performance Issues with Causal Graphs in Micro-service Environments, International Conference on Service-Oriented Computing, 2018. ※3 M. Ma et al, AutoMAP: Diagnose Your Microservice-based Web Applications Automatically, Proceedings of The Web Conference 2020 (WWW '20), 2020. -
30 ݚڀͷత • ຊൃදͰɼࣄલʹϞσϧͷֶशରϝτϦοΫͷࢦఆΛඞཁͱͤͣɼػց ֶशϞσϧͷہॴతͳղऍख๏Ͱ͋ΔSHAP(SHapley Additive exPlanation)Λ ༻͍ͯγεςϜͷҟৗͷݪҼΛஅ͢Δख๏ͷݕ౼Λߦ͏ɽ • ہॴతͳղऍख๏Ͱ͋ΔSHAP͕γεςϜͷҟৗͷݪҼஅʹ׆༻Ͱ͖Δ͔
ݕূ͢Δɽ • ଈ࣌ੑ͕ٻΊΒΕΔڥʹ͓͍ͯɼہॴతͳղऍख๏͕࣮༻తͳ࣌ؒͰ ܭࢉՄೳ͔ݕূ͢Δɽ -
31 ہॴతͳղऍ • ہॴతͳղऍͱɼಛఆͷೖྗʹର͢ΔϞσϧͷ༧ଌஅͷࠜڌΛղऍ͢Δ͜ͱͰ͋Δɽ • දతͳख๏ͱͯ͠LIME※5SHAP※6͕ڍ͛ΒΕΔɽ • ͜ΕΒͷख๏ɼ༧ଌஅͷࠜڌͱͳͬͨಛྔΛఏࣔ͢Δख๏Ͱ͋Δɽ • ྫ͑ɼը૾ྨͷػցֶशϞσϧʹରͯ͋͠Δը૾Λ
༩͑Δͱɼͦͷը૾Λʮmeerkatʯͱஅͨ͠ͱ͢Δɽ LIMESHAPͰͦͷࠜڌͱͳΔಛྔʢը૾ͷ߹ ϐΫηϧʹ૬ʣΛஅͷد༩ͷ߹͍ͱͱʹఏࣔ ͢Δɽ ※5 M. T. Ribeiro et al., "Why Should I Trust You?": Explaining the Predictions of Any Classi fi er, Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining(KDD’16), 2016. ※6 S. Lundberg and S. I. Lee, A Uni fi ed Approach to Interpreting Model Predictions, Advances in Neural Information Processing Systems 30(NIPS 2017), 2017. https://github.com/slundberg/shap -
32 ہॴతͳղऍͱҟৗͷݪҼஅ • ہॴతͳղऍख๏ɼಛʹը૾ೝࣝͷͰଟ͘ͷݚڀ͕ใࠂ͞Ε͍ͯΔ͕ɼҟৗͷݪҼ அʹ͓͍ͯͦͷ༗༻ੑ͕ࣔ͞Ε͍ͯΔ※7-9ɽ • ྫ͑ɼSHAPͳͲΛ༻͍ͯPCA※7ΦʔτΤϯίʔμ※8ɼࠞ߹ΨεϞσϧ※9ɼมΦʔτ Τϯίʔμ※9ͳͲʹΑΔҟৗݕͷ݁Ռͷղऍ͕ɼଞͷख๏ͱൺֱͯ͠ɼݪҼͷಛఆਫ਼͕ ߴ͍ɼ͘͠ਓؒͷײʹ͍ۙղऍΛ༩͑ΔͳͲͷݚڀ͕ใࠂ͕͞Ε͍ͯΔɽ ※7
N. Takeishi, Shapley Values of Reconstruction Errors of PCA for Explaining Anomaly Detection, IEEE International Conference on Data Mining Workshops (ICDM Workshops), 2019. ※8 L. Antwarg et al., Explaining Anomalies Detected by Autoencoders Using SHAP, arXiv:1903.02407, 2019. ※9 N. Takeishi and Y. Kawahara, On Anomaly Interpretation via Shapley Values, arXiv:2004.04464, 2020. -
33 ΞʔΩςΫνϟ֓ཁ ࣄલʹϞσϧͷֶशରϝτϦοΫͷࢦఆΛඞཁͱ͠ͳ͍ݪҼஅख๏ͷ֓ཁਤ • ఏҊख๏ɼҟৗൃੜޙʹͦͷݪҼΛஅ͢ΔͨΊͷख๏Ͱ͋ΓɼҟৗݕʹɼService Level Objective (SLO)ϝτϦοΫ͝ͱʹઃఆͨ͠ᮢͳͲΛ༻͍Δ͜ͱΛఆ͍ͯ͠Δɽ • ఏҊख๏ɼҟৗൃੜ࣌ʹγεςϜཧऀʹݪҼஅ݁ՌΛఏࣔ͠ɼγεςϜཧऀ͕γεςϜ
Λҟৗঢ়ଶ͔Β෮چ͢ΔͨΊͷ࡞ۀΛࢧԉ͢Δ͜ͱΛࢦ͍ͯ͠Δɽ • ཁ݅ɿஅ݁ՌΛఏࣔ͢Δ·Ͱͷ͕͍࣌ؒ͜ͱ͕·ΕΔ -
34 Step 1ɿϝτϦοΫͷϑΟϧλϦϯά • ఏҊख๏ɼࣄલʹੳରͱͳΔϝτϦοΫΛࢦఆ͢Δඞཁ͕ͳ͍ͨΊɼҟৗൃੜޙʹରϝτ ϦοΫΛબఆͰ͖Δɽ • ҟৗൃੜ࣌ʹ΄ͱΜͲมಈ͕ͳ͍ϝτϦοΫͳͲɼͦͷҟৗͷؔ࿈ͷՄೳੑ͕͍ͷΛϑΟϧ λϦϯά͢Δ͜ͱɼݪҼஅͷਫ਼ͷ্ͱޙଓεςοϓͷ࣮ߦ࣌ؒͷॖʹ༗ޮͰ͋Δɽ •
ҟৗͷؔ࿈ੑ͕͍ϝτϦοΫΛϑΟϧλϦϯά͢Δख๏ͷҰͭͱͯ͠ɼҎલͷզʑͷݚڀՌ Ͱ͋ΔTSifter※10ͷ׆༻Λݕ౼͢Δɽ ※10 ௶ ༎थ, ా തจ, ݹ խେ, TSifter: ϚΠΫϩαʔϏεʹ͓͚Δੑೳҟৗͷ ਝͳஅʹ͍ͨ࣌ܥྻσʔλͷ࣍ݩݮख๏, ୈ13ճΠϯλʔωοτͱӡ༻ٕज़γϯϙδϜ(IOTS 2020). TSifterͷ֓ཁਤ※10 ఆৗੑͷݕఆ ֊తΫϥελϦϯά -
35 Step 2ɿϞσϧͷֶश • ఏҊख๏Ͱɼҟৗൃੜޙʹ؍ଌσʔλ͔ΒϞσϧΛֶश͢ΔͨΊɼߴʹֶशՄೳͳϞσϧ Λ༻͍Δඞཁ͕͋Δɽ • ҟৗݕͷϞσϧͱͯ͠ɼओੳ (PCA)ͷར༻Λݕ౼͢Δ
(ࠓޙɼඇઢܗͷϞσϧʹ֦ு ༧ఆ)ɽ • PCAΛ༻͍ͨҟৗݕͰɼ؍ଌσʔλʹର͢Δ࣍ݩݮʹΑΓਖ਼ৗ෦ۭؒΛٻΊɼςετ σʔλͱਖ਼ৗ෦ۭؒͱͷڑΛҟৗείΞͱ͢Δɽ • ఏҊख๏ͰɼPCAͰࢉग़͞ΕΔҟৗείΞΛҟৗݕͰͳ͘ɼݕޙͷݪҼஅʹ༻͍Δɽ ਖ਼ৗ෦ۭؒ ςετσʔλ (ϕΫτϧ) ಛۭؒ -
36 Step 3ɿҟৗͷߩݙͷܭࢉ • ఏҊख๏ͰɼҟৗͷݪҼஅΛߦ͏ͨΊʹɼ֤ϝτϦοΫͷҟৗͷߩݙΛܭࢉ͢Δɽ • ߩݙͷܭࢉʹɼڠྗήʔϜཧͷShapley Valueʹجͮ͘SHAPͷར༻Λݕ౼͢Δɽ • SHAPͷΞϧΰϦζϜͷதͰɼKernel
SHAP※6Λ࠾༻͢Δɽ • Model-agnostic (Ϟσϧඇґଘ) ͳղऍख๏ • Linear LIMEͱShapley ValueΛΈ߹ΘͤͨΞϓϩʔν Kernel SHAP ɿղऍ͍ͨ͠ෳࡶͳϞσϧ ɿઆ໌༻ͷ୯७ͳϞσϧ ɿ༧ଌʹର͢Δ֤ಛྔͷߩݙ Additive feature attribution methods※6 ※6 S. Lundberg and S. I. Lee, A Uni fi ed Approach to Interpreting Model Predictions, Advances in Neural Information Processing Systems 30(NIPS 2017), 2017. f g ϕ -
ධՁɿ࣮ݧڥ • Google Kubernetes Engine (GKE)্ʹϚΠΫϩαʔ ビ εͷ ベ ϯνϚʔΫΞ
プ Ϧέʔγϣϯ で ͋ΔSock Shop※Λߏஙͨ͠ɽ • Sock ShopΛߏ͢Δ11ίϯςφ͔ΒcAdvisorΛ༻͍ͯCPU༻ͳͲͷϝτϦοΫΛ5ඵ͓ ͖ʹऩूͨ͠ɽ • Sock ShopΞϓϦέʔγϣϯʹରͯ͠ɼٖࣅతͳෛՙΛੜ͢ΔͨΊʹɼLocustΛར༻ͨ͠ɽ • γεςϜͷҟৗΛ฿͢ΔͨΊʹɼuser-dbίϯςφʹCPUෛՙΛೖͨ͠ɽ 37 ※ https://microservices-demo.github.io/ Fron-end Catalogue Orders Carts User Payment Shipping Sock Shop Locust Prometheus ϚΠΫϩαʔϏεΫϥελ ੍ޚαʔό ֎෦ෛՙͷੜ CPUෛՙೖ ϝτϦοΫͷ ऩूɾอଘ stress-ng ղੳαʔό ϝτϦοΫ औಘϞδϡʔϧ ղੳϞδϡʔϧ 8core, 32GB -
1. ҟৗͷݪҼஅɿҟৗͷߩݙ 40 1λΠϜεςοϓʹ͓͚Δҟৗͷߩݙ (SHAPͷforce plot) ςετσʔλશମ(120λΠϜεςοϓ)ʹ͓͚Δ ҟৗͷߩݙ (SHAPͷsummary plot)
※ c-(ίϯςφ໊)_(ϝτϦοΫ໊) • ࠨਤͷ݁Ռɼࢉग़ͨ͠SHAPͷઈର ͷฏۉ͕େ͖͍ͷ͔Βॱʹ্͔Βฒͯ ͓ΓɼݪҼϝτϦοΫͷީิΛ্͔Βฒ ͍ͯΔ͜ͱʹ૬͢Δɽ • ຊ࣮ݧ݅ʹ͓͍ͯɼSHAPʹΑΔղऍɼ ࣮ࡍͷҟৗͷࠜຊݪҼͱҰகͨ݁͠ՌΛ༩ ͍͑ͯΔɽ -
1. ҟৗͷݪҼஅɿϕʔεϥΠϯͱͷൺֱ 41 • ݪҼஅͷϕʔεϥΠϯख๏ͱͯ͠ɼGaussian Based ThresholdingʢGBTʣΛ༻͍ͨɽ • GBTΛ༻͍ͨݪҼஅɼֶशσʔλͷฏۉͱςετσʔλͷฏۉͷ͕ࠩେ͖͍ॱ൪ʹ ҟৗͷߩݙ͕ߴ͍ͱ͢Δɽ
GBTʹΑΔҟৗͷߩݙ • ຊ࣮ݧʹ͓͚ΔࠜຊݪҼͰ͋Δuser-dbͷCPU ͷϝτϦοΫҟৗͷߩݙ͕7൪ͱͳͬ ͍ͯͨɽ • ͜ͷ݁Ռɼਖ਼ৗ࣌Ͱࢄ͕େ͖͍ϝτ ϦοΫ͕ɼۮൃతʹֶशσʔλͱςετσʔλ ͷฏۉͷ͕ࠩେ͖͘ͳͬͨ߹ɼͦΕΛ ҟৗʹΑΔมಈͱݟ͚Δ͜ͱ͕Ͱ͖ͳ͍͜ͱ ʹىҼ͢Δͱߟ͍͑ͯΔɽ -
42 2. ࣮ߦ࣌ؒ • ఏҊख๏ͷ࣮ߦ࣌ؒ64ඵͰ͋ΓɼSHAPͷܭࢉ͕ࢧతͰ͋Δ͜ͱ͕Θ͔ͬͨɽ SHAPͷܭࢉ ʹSHAPͷఏҊऀΒ͕։ൃ͍ͯ͠ΔPythonͷϥΠϒϥϦ※Λ༻͍ͨɽ • ఏҊख๏ͷ࣮ߦ࣌ؒɼରͱͳΔϝτϦοΫͷ૿େͱͱʹ͘ͳΔͨΊɼຊ࣮ݧ݅ΑΓ େنͳγεςϜରԠ͢ΔͨΊʹɼSHAPͷܭࢉͷߴԽ͕՝ͱͳΔɽ
※ https://github.com/slundberg/shap ࣮ߦεςοϓ͝ͱͷఏҊख๏ͷ࣮ߦ࣌ؒʢsummary plotͷܭࢉʣ 8ίΞͷαʔόͰλΠϜεςοϓ ͝ͱͷSHAPͷܭࢉΛฒྻԽͨ͠ -
43 ·ͱΊͱࠓޙͷల • ຊൃදͰɼࣄલʹϞσϧͷֶशରϝτϦοΫͷࢦఆΛඞཁͱͤͣɼػցֶशϞσϧͷہॴత ͳղऍख๏Ͱ͋ΔSHAPΛ༻͍ͯγεςϜͷҟৗͷݪҼΛஅ͢Δख๏ͷݕ౼ͨ͠ɽ • ࠓճͷ࣮ݧʹ͓͚Δҟৗύλʔϯʹ͓͍ͯɼఏҊख๏Ͱ࠾༻͍ͯ͠ΔSHAPͷํ͕ϕʔεϥΠϯ ख๏ΑΓྑ͍ݪҼஅͷ݁ՌΛ༩͑Δ͜ͱ͕Θ͔ͬͨɽ • ࠓճͷ࣮ݧ݅ʹ͓͍ͯɼఏҊख๏ͷ࣮ߦ࣌ؒ64ඵͰ͋ΓɼSHAPͷܭࢉ͕ࢧతͰ͋Δ͜ͱ͕
Θ͔ͬͨɽ • ఏҊख๏ͷ༗༻ੑΛࣔͨ͢Ίʹൣͳҟৗύλʔϯʹରͯ͠ݪҼஅͷਫ਼ΛఆྔతʹධՁ͢Δ༧ ఆͰ͋Δɽ • ରͱ͢ΔγεςϜ͕େنԽͨ͠ࡍʹɼఏҊख๏͕࣮༻ʹ͑͏Δ͔Λݕূ͢ΔɽͦͷͨΊʹɼ ϝτϦοΫ͕૿େͨ͠߹ͷݪҼஅͷܭࢉ࣌ؒͷධՁΛߦ͏ɽ • ࠓճͷ࠾༻ͨ͠PCAɼઢܗ͔ͭ࣌ܥྻͷใΛߟྀ͍ͯ͠ͳ͍୯७ͳϞσϧͰ͋ΔͨΊɼࠓޙɼ ඇઢܗͷϞσϧ࣌ܥྻʹରԠͨ͠ϞσϧΛ࠾༻͠ɼͦͷ༗ޮੑΛݕূ͢Δɽ ·ͱΊ ࠓޙͷల