인공지능은 왜 이렇게 ‘예측’하고, 왜 이런 ‘결과’를 생성했을까? 🤔
안녕하세요, 카카오뱅크에서 XAI라는 주제를 관심을 가지고 연구하는 데이터 사이언티스트 Thomas입니다.
해당 글에서는 앞서 제가 던진 질문에 대해 답할 수 있는 방법 중 하나인 XAI 알고리즘의 개발하고 이를 다양한 사례에 활용해 본 경험을 소개드리고자 합니다.
머신러닝은 일반적으로 주어진 데이터의 패턴을 학습하여 결과를 산출합니다. 이러한 머신러닝은 매우 복잡한 알고리즘으로 구성되어 있어 보통의 사람이 그 작동방식을 이해하기는 매우 어렵습니다. 이것이 왜 문제가 될 수 있을지 예시를 통해 설명드리겠습니다.
AI를 활용한 뷰티솔루션 스타트업에서 매일 아침 본인의 외모를 평가해 주는 ‘얼굴 나이 예측 스마트미러(가칭) 앱’을 개발했다고 가정하겠습니다. 해당 앱은 외모 평가의 중요 요소인 ‘나이‘를 얼굴 사진으로부터 추정하여 사용자에게 알려주는 기능이 탑재되어 있습니다. 제품 테스트를 위해 알고리즘 개발에 참여하지 않은 영업팀 나얼짱 사원👱♂️이 해당 앱을 직접 사용해 보았습니다.
스마트미러🪞: (...) 삐빅! 오늘은 30대 후반으로 보이네요. 외출 전 톤업 크림으로 화사함을 더해보세요!
나얼짱 사원👱♂️: 뭐? 왜 내 실제 나이보다 많아 보이는 건데? 🤬
스마트미러🪞: (...) 삐빅! 안 알려줌, 휴먼ㅋ 🤖
이런! 안타깝게도 나얼짱 사원은 외모에 관심이 많은 20대 남자 직원입니다. 만약 해당 시나리오가 실제 앱 사용자의 경험이었다면 어땠을까요?
옆에서 이를 구경하던 영업팀 김참견 과장🧔♂️과 피부관리사 자격증을 보유한 **박피부 대리👩**가 한 마디씩 거듭니다.
박피부 대리👩: 맞아요. 피부가 푸석푸석할수록 생기가 없어 보이고 주름도 도드라지니깐 나이가 더 많아 보일 수 있어요.
나얼짱 사원👱♂️: ... (최근 술 약속이 많긴 했는데, 보습에 더 신경을 써야겠다 😓)
테스트를 해보고 난리가 난 영업팀은 개발팀에게 당장 알고리즘을 고치라고 하는데요. 어떻게 개선해 볼 수 있을까요?
- 김참견 과장의 분석처럼 결과와 함께 그 이유를 설명할 수 있다면 사용자 경험이 달라지지 않을까요?
- 박피부 대리가 진단한 것처럼 전문가의 도메인 지식과 경험이 알고리즘에 잘 반영되었는지 점검해 볼 수 있진 않을까요?
이러한 질문에 대답하는 데 있어 설명가능한 인공지능 즉, XAI가 활용될 수 있습니다.
그런데 잠깐, XAI란 무엇인가요? 🙋
XAI는 eXplainable Artificial Intelligence의 약자로, 설명가능한 인공지능을 뜻하며 주어진 알고리즘을 분석하여 설명하는 방법론을 의미합니다.
그런데 ‘인공지능을 설명한다’는 게 무얼 의미하는 걸까요? 이 근본적인 물음에 답하기 위해 우리는 우선 ‘인공지능이 무엇인지‘를 정의 내려야 합니다. 인공지능은 무엇일까요? 인공지능 하면 가장 대표적으로 떠오르는 AI 알고리즘 몇 가지를 살펴보며 답을 찾아보도록 하겠습니다.
1. 추천 알고리즘
- 고객의 거래와 행동 데이터를 입력받아, 고객의 미래 관심사가 될 만한 추천 안을 출력해 주는 방식으로 동작합니다.
2. 번역 알고리즘
- 한글 → 영어로 번역해 주는 알고리즘을 예로 들 수 있겠습니다. 해당 알고리즘은 한글 문장을 입력받아, 번역 결과를 영어로 출력합니다.
3. 안면인증 알고리즘
- 해당 알고리즘 역시 고객의 얼굴을 입력받아, 해당 얼굴이 본인이 맞는지 확인한 결과를 출력해 줍니다.
4. 이상거래탐지 모델
- 카카오뱅크는 AML 시스템과 FDS 시스템에 이상거래를 탐지하는 머신러닝 모델을 적용하여 운영하고 있습니다. 이상거래탐지 모델은 거래 이력을 입력받아, 해당 거래의 이상거래 여부를 출력해 줍니다.
위의 AI 알고리즘들은 모두 ‘입력(Input)을 받아 출력(Output)을 해준다’는 공통점이 있습니다. 조금 감이 오셨나요? 네. AI 알고리즘은 큰 틀에서 보면 $\hat{f}(x)=\hat{y}$ 와 같은 함수입니다. 관심 있는 대상의 데이터를 입력 값으로 받아 특정 목적의 형태로 출력해 주기 때문입니다.
따라서 ‘인공지능을 설명한다‘는 것은 ‘함수를 설명한다’와 같은 말입니다. 그렇다면 ‘함수를 설명한다‘는 또 무슨 의미일까요? 이는 함수의 입력과 출력의 상관관계를 설명한다는 것입니다. 왜냐하면 함수는 입력에 따라 뭔가를 처리하여 결과를 출력하기 때문인데요. 따라서 입력과 출력의 상관관계를 설명하는 일이 곧 ‘함수의 처리 과정에 따른 결과를 함축적으로 설명하는 일’이라고 볼 수 있습니다.
그런데 대부분의 인공지능 함수는 매우 복잡하기 때문에, 입력과 출력의 상관관계를 설명하기 무척 어렵습니다. 그래서 XAI 방법론들은 입력과 출력의 상관관계 대신, 출력에 대한 입력의 기여도로 대체해서 분석하는 접근 방식을 주로 채택하고 있습니다.
출력에 대한 입력의 기여도
출력에 대한 입력의 기여도를 도출하면 어떤 장점이 있을까요?
- i) 함수에 대한 입력과 출력 사이의 선형 관계식을 추정하여 얻을 수 있습니다.
- ii) 선형 관계식은 사람이 해석하기에 매우 친숙한 함수입니다.
예를 들어, 다음 식 $(1)$과 같이 어떤 사람의 $\text{신용점수}$ 라는 출력 결과물은 그 사람의 소득이 $\hat{\beta_1}$ 만큼 기여했고, 기보유대출이 $\hat{\beta_2}$ 만큼 기여했고, 연체이력이 $\hat{\beta_p}$ 만큼 기여해서 산출되었다고 해석할 수 있습니다.
$$ \tag{1} \text{신용점수} = \hat{\beta_0}+\hat{\beta_1}I(소득)+\hat{\beta_2}I(보유대출)+…+\hat{\beta_p}I(연체이력)\text{ ?} $$
지금까지 XAI의 정의와 그 특징을 소개해드렸는데요. 이어서 4가지 사례를 통해 XAI의 활용 방안과 필요성에 대해 말씀드리겠습니다. 구체적인 기술과 관련된 내용은 글 후반부에 조금 더 자세하게 풀어보겠습니다.
XAI로 인공지능이 도출한 결과를 분석하여 개선점 찾아보기
아래 사례1과 사례2를 통해서 머신러닝 알고리즘에 XAI를 적용하는 것이 결과 해석과 개선점 도출에 어떻게 사용될 수 있는지를 보여드리겠습니다.
사례1. 얼굴 나이 예측 스마트미러🪞
다음 그림처럼 얼굴 사진을 촬영하거나 업로드하면 나이를 예측해 주는 스마트폰 앱이 있다고 가정해 보겠습니다. 얼굴 사진을 업로드하면, 특정 영역에 붉은색 또는 파란색이 표시됩니다. 각 색상은 연령대를 예측하는데 기여했다고 판단되는 단서입니다.
설명 해석 TIP을 참고해 보면, 업로드한 얼굴 사진이 20대로 예측된 데에는 ‘웃고 있는 입’이 가장 중요한 요소임을 알 수 있습니다. 반면, 40대로 예측되는 데 가장 크게 기여한 부위는 ‘코 끝’이었습니다. (아마도 사진 속 제 코에 있는 블랙헤드가 문제였던 것 같습니다. 😭)
XAI를 얼굴 나이 예측 스마트미러 앱에 적용해 보면 어떨까요?
결과 예측에 중요한 역할을 한 요인에 대한 설명은 물론이고 필요한 제품까지 추천해 주었네요. XAI가 앱에 적용된다면, 단순히 Computer Vision 모델의 알고리즘을 사용하여 결과만 전달하는 것보다 훨씬 좋은 사용자 경험을 제공할 수 있을 것 같습니다.
사례2. 출근길 마음 문장 감성분석 💡
자연어처리 알고리즘에도 XAI를 적용해 볼 수 있습니다. 저는 현재 서울시 마곡 인근에 거주하며 9호선을 타고 경기 남부에 위치한 판교로 출퇴근을 하고 있는데요. 출근길과 관련한 문장을 입력했을 때 과연 감성분석 모델이 제 감정상태를 잘 분석해 주는지, XAI를 활용하여 한번 들여다보았습니다.
i) 입력: “9호선 출근길은 오늘도 역시” ➡️ 출력: “joy”
- '오늘'이라는 단어 때문 joy로 예측되는 것을 확인할 수 있습니다.
- 아무래도 joy한 감정의 문장들에 '오늘'과 관련된 이야기가 많았던 것은 아닌지 훈련 데이터를 확인할 필요가 있어 보입니다.
- '출근길'은 감성 분석에 매우 중요한 단어일 수 있으므로, 별도의 토큰으로 부여해 성능 개선에 활용해 볼 수 있겠습니다.
- '오늘'과 '역시'라는 단어 때문에 joy로 예측된 것 같습니다.
- '병'은 joy가 아닐 것이라고 예측하는데 기여했지만, '골병'이라는 단어 역시 별도의 토큰으로 부여해 성능 개선에 활용해 볼 수 있겠습니다.
XAI로 인공지능이 전문가의 관점에 부합하는 결과를 산출하는지 확인하기
이어서 사례3과 사례4에서는 전문가의 도메인 지식과 경험이 XAI를 통해서 어떻게 인공지능 개발에 활용될 수 있는지 소개해드리겠습니다.
사례3. 이상거래 의심 기여도 분석 👮
카카오뱅크는 고객의 소중한 자산을 지키기 위해 계속해서 이상거래탐지 시스템을 고도화해나가고 있습니다. 그 과정에서 수많은 이상거래 사례들을 접하며 방대한 노하우와 가설들을 축적했는데요. 이렇게 쌓인 전문 지식들을 효과적으로 활용하고, 복잡·다변화하는 이상거래 패턴들에 보다 유연하게 대응하고자 머신러닝 모델을 이상거래탐지 시스템에 적용하여 운영 중에 있습니다. 자세한 내용은 킁킁!킁! 어디서 사기 냄새 안나요? : FDS 시스템에 AI 적용하기 에서도 확인 가능합니다.
위 그래프들은 현업 전문가의 대출사기 관련 가설을 토대로 이상거래탐지 알고리즘에 XAI를 적용하여 실험한 결과입니다. (알고리즘에 대한 상세한 공개가 어려운 점 양해 부탁드립니다. 🙏)
▴ y축(세로축): 사기탐지를 나타내는 정도로, 위에서 아래로 내려갈수록 정상거래가 아닌 이상거래일 가능성이 높다는 뜻입니다.
▴ 색상 축: 붉은 색에 가까울수록 특정 가설 패턴과 유사하고, 파란 색에 가까울수록 유사하지 않음을 의미합니다.
위 그래프는 모두 가로축이 커질수록 세로축이 작아지는 우하향 곡선을 띄고 있습니다. 즉, AI는 현업 실무자가 가지고 있는 이상거래의 경험적 가설과 유사하게 예측하고 있다고 해석할 수 있습니다.
중간에 위치한 교호작용 분석 그래프는 또 다른 이상거래 가설을 색상 축으로 추가하여 시각화한 결과입니다. 서로 다른 두 패턴이 이상거래 가능성에 어떤 시너지 효과를 내고 있는지 분석할 수 있습니다. 우측에 위치한 difference 분석 그래프는 정상거래 가설과의 차이를 색상 축으로 추가하여 시각화한 결과입니다. 일부 거래는 정상거래 패턴에 가깝더라도 이상거래 패턴과 매우 유사하다면 AI는 이상거래로 의심하고 있다고 해석할 수 있습니다.
이를 통해 AI 알고리즘이 현업 전문가의 도메인 지식이 어느 정도 부합한다는 것을 확인해 볼 수 있었습니다.
사례4. mini 카드 이상거래 탐지 💳
아래 내용은 금요일 새벽, 한 17세 남학생이 카카오뱅크 mini 카드로 아이스크림 할인점에서 약 7천 원을 결제한 건을 이상거래로 탐지한 사례입니다. 여기에 XAI를 적용한다면, 현업 전문가가 평소 모니터링을 통해 파악한 이상거래의 패턴과 유사한지 여러 요인들을 통해 살펴봄으로써 오탐률을 낮출 수 있습니다.
위의 2가지 사례를 통해 설명가능 인공지능, XAI를 활용하면 현업 전문가의 지식과 경험을 바탕으로 개발된 AI가 어떠한 과정을 거쳐 결과를 산출하는지 점검해 볼 수 있었습니다. 더 나아가 현업 전문가가 보유한 가설을 토대로 AI를 학습, 개발한 뒤 결과를 분석함으로써 알고리즘의 성능 또한 높일 수 있습니다. 이처럼 XAI는 AI 개발자와 현업 전문가 사이의 원활한 커뮤니케이션을 위한 도구로 사용될 수 있습니다.
XAI의 대표적인 알고리즘, SHAP 알아보기
지금까지 XAI 활용 사례들을 소개해드렸는데요. 기술적인 내용이 궁금하신 분들을 위해 XAI 분야의 대표적 알고리즘인 SHAP에 대해 다뤄보겠습니다.
SHapley Additive exPlanations (SHAP) 란?
SHAP은 협력게임이론(Coalitional Game Theory) 중에서 각 게임 참여자(player)에게 수익의 배당(payout)을 공정하게 배분하는 알고리즘인 Shapley Value를 기반으로 합니다. 참고로 Shapley Value는 게임 이론의 발전에 기여한 공로를 인정받아 1981년 폰 노이만 이론상, 2012년 노벨 경제학상을 수상한 수리경제학자 Lloyd Shapley가 제안한 방법입니다.
머신러닝 문제를 협력게임 문제로 비유하면, 예측값($\hat{y}$ $\rightarrow$ payout)을 산출하는 알고리즘($\hat{f}$ $\rightarrow$ coalitional game)에 변수가 입력($X_p$ $\rightarrow$ player)됐을 때, 각 입력변수가 예측값에 기여한 정도를 공정하게 측정한 결과($\hat{\beta_p}$ $\rightarrow$ Shapley Value)를 찾는 것입니다. 이와 같은 Shapley Value 방법론을 XAI 문제에 Practical 하게 응용한 알고리즘이 SHAP(SHapley Additive exPlanations) 입니다.
Shapley Values 란?
알고리즘의 핵심인 Shapley Value의 계산 수식을 살펴보겠습니다.
설명의 편의를 위해 SHAP 논문 [3]의 수식 $(4)$ 를 참조하되, Notation 등 일부 변형하였습니다.
$$ \tag{2} \hat{\beta_p}(f,x) = \sum_{S\subseteq{F\setminus{\{p\}}}} \binom{|F|}{1,|S|,|F|-|S|-1}^{-1} [f_{S\cup\{p\}}(x_{S\cup\{p\}})-f_{S}(x_{S})] $$
위 수식에서,
- $\hat{\beta_p}$는 $p$번째 입력 피쳐의 기여도 추정값인 Shapley Value를 의미합니다.
- $f$는 설명하고자 하는 함수이고, $x$는 설명하고자 하는 하나의 입력 데이터 포인트 입니다.
- $F$는 입력 피쳐의 전체 집합(full set)이고, $S$는 $p$번째 입력 피쳐 $X_p$를 제외한 $F$의 부분집합이며, $|F|, |S|$는 각 집합의 원소의 수 입니다.
수식을 하나씩 쪼개서 살펴보겠습니다.
- 먼저, $p$번째 관심 변수가 출력에 기여한 정도는 어떻게 추정할 수 있을까요?
간단하게 생각해 보면 입력 피쳐 조합에서 $p$번째 변수를 포함했을 때와 제외했을 때의 출력값 차이로 기여도를 추정할 수 있겠습니다.
이를 식으로 표현하면 다음과 같이 수식 $(2)$의 우측 부분이 됩니다: $f_{S\cup\{p\}}(x_{S\cup\{p\}})-f_{S}(x_{S})$ - 위 기여도 추정 방법을 다른 모든 입력변수의 조합에 대해 집계합니다.
이를 식으로 표현하면 다음과 같이 수식 $(2)$의 덧셈 연산자 부분이 됩니다: $\sum_{S\subseteq{F\setminus{\{p\}}}}$ - 위와 같이 각 입력 피쳐 조합에 따른 $p$번째 변수의 기여도를 집계할 때, 다항계수를 활용하여 가중평균을 취합니다.
즉, 입력 피쳐의 전체 집합 $F$ 에서 현재 관심 있는 $p$번째 변수 하나를 선택하고, 현재 계산 중인 피쳐 조합 $S$의 원소 수만큼 선택한 다음, 남은 피쳐를 선택하는 경우의 수의 역수를 가중치로 활용하는 것입니다.
이를 식으로 표현하면 다음과 같이 수식 $(2)$의 가중치 부분이 됩니다: $\binom{|F|}{1,|S|,|F|-|S|-1}^{-1}$
관심 변수 $X_p$가 제외된 전체 입력변수의 부분집합 $S$ 의 원소 수가 적거나 많을 때, 더 높은 가중치를 부여할 수 있게 됩니다.
- $|S|$가 작다: 모델에 입력되는 변수가 적다면 출력값의 변화량을 $X_p$ 의 기여도라고 해석할 수 있으므로, 높은 가중치 부여
- $|S|$가 크다: 모델에 입력되는 변수가 많음에도 출력값의 변화량이 크다면, $X_p$ 가 크게 기여했다고 해석할 수 있으므로 높은 가중치 부여
이번에 소개해드린 SHAP 외에도 인공지능을 설명하기 위한 다양한 방법론들이 존재하며, 현재도 인공지능 연구의 한 분야로서 다양한 XAI 알고리즘이 개발되고 있습니다. 카카오뱅크도 KAIST 설명가능인공지능센터(XAIC)와 산학협력을 체결하여 금융분야에 활용할 수 있는 XAI 알고리즘 연구·개발을 활발히 진행하고 있습니다.
마무리하며
설명가능 인공지능, XAI는 위의 사례들에서 소개한 바와 같이 제품과 서비스에 탑재되는 AI의 활용성을 높이는 데 기여할 수 있습니다.
정리하자면, XAI 방법론을 통해 우리는
- 결과에 대한 설명을 제공함으로써 AI의 신뢰성을 확보할 수 있으며,
- AI의 잘못된 결과를 분석하여 성능을 개선하는데 활용하거나,
- 전문가의 도메인 지식과 경험을 바탕으로 AI를 점검해 볼 수 있습니다.
다가올 AI 시대에는 수많은 영역에 인공지능이 활용될 것이라 생각하며, 앞으로도 XAI를 통해 같지만 다른 카카오뱅크만의 AI 제품 및 서비스를 개발하고 구축하는 데 기여하고자 합니다. 감사합니다.
References
참고 문헌
- Ribeiro, M. T., Singh, S., & Guestrin, C. (2016). “Why Should I Trust You?”: Explaining the Predictions of Any Classifier. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 1135–1144.
- Molnar, C. (2022). Interpretable Machine Learning: A Guide for Making Black Box Models Explainable. Lulu.com.
- Lundberg, S., & Lee, S. (2017). A Unified Approach to Interpreting Model Predictions. Neural Information Processing Systems, 30, 4768–4777.
- Shapley, L. S. (1953). 17. A Value for n-Person Games. Contributions to the Theory of Games (AM-28), Volume II, 307–318.
XAI 적용 테스트 모델
- Face Age Classification: https://huggingface.co/nateraw/vit-age-classifier
- Sentiment Analysis: https://huggingface.co/MilaNLProc/xlm-emo-t
- Bianchi, F., Nozza, D., & Hovy, D. (2022). XLM-EMO: Multilingual Emotion Prediction in Social Media Text. In Proceedings of the 12th Workshop on Computational Approaches to Subjectivity, Sentiment & Social Media Analysis, 195-203.