본문 바로가기

문돌이 존버/데이터 분석

(Explainable AI) Counterfactual Explanations

반응형

반사실적 설명(Counterfactual Explanation)

반사실적 설명은 "X가 발생하지 않았다면 Y가 발생하지 않았을 것"이라는 형태로 인과관계를 설명합니다. 예를 들어, "내가 뜨거운 커피를 한 모금 마시지 않았더라면 혀가 데이지 않았을 텐데"와 같습니다. 사건 Y는 혀가 데인 것이고, 원인 X는 뜨거운 커피를 마셨다는 것입니다. 반사실적 사고를 위해선 관찰된 사실에 반하는 가상의 현실(예: 뜨거운 커피를 마시지 않은)을 상상해야 합니다. 반사실적 사고 능력은 다른 동물에 비해 인간을 똑똑한 존재로 만들어주죠.

해석가능한 머신러닝에서는 반사실적 설명이 개별 인스턴스의 예측에 대한 설명으로 사용됩니다. "사건"은 인스턴스의 예측된 결과값이고, "원인"은 모델의 입력값으로 사용되어 특정 결과를 "유도"한 인스턴스의 특성값입니다.

설령 현실에서 입력값과 결과값의 관계가 인과관계가 아닐지라도, 우리는 모델의 입력값을 예측의 원인으로 생각합니다.

위의 간단한 그래프를 통해 머신러닝 모델의 예측에 대한 반사실적 요소를 시뮬레이션할 수 있습니다. 예측을 하기 전 인스턴스의 특성값을 변경하고 예측이 어떻게 변화하는지 분석합니다. 우리는 예측 클래스의 변경(신용 승인 혹은 거부)이나 예측이 특정 임곗값에 도달(암 발생 확률이 10%에 도달)하는 시나리오와 같은 적절한 방식으로 예측이 변화하는 시나리오에 관심이 있습니다. 반사실적 설명은 예측값을 사전 정의된 결과값으로 변경하는 특성값의 작은 변화를 설명합니다.

반사실적 설명 기법은 대체 모델(model-agnostic) 및 특정 모델(model-specific) 모두 지원하지만 본 글에선 모델의 입력과 출력에만 작동하는 대체 모델에 중점을 두겠습니다. 프로토타입과 다르게 반사실적 요소는 학습셋으로부터 나온 실제 인스턴스일 필요는 없지만, 특성값들의 새로운 조합이 될 수는 있습니다.

본격적인 반사실적 설명을 소개하기에 앞서 상황을 예로 들어보겠습니다. 

피터는 대출을 신청했지만 은행 소프트웨어에 의해 거절당했습니다. 그는 거절당한 이유가 궁금했고 어떻게 하면 대출을 받을 수 있을지 고민합니다. 여기서 "이유"가 반사실적 질문으로 공식화할 수 있습니다.

어떤 특성들(수입, 신용카드 갯수, 나이 등)의 작은 변화가 대출 거절에서 승인으로의 변화를 유도할까?

한 가지 가능성은 피터가 매년 1만 유로를 벌 수 있다면 대출을 받을 수 있다는 것입니다. 혹은 더 적은 신용 카드를 가지고 있다거나 5년 전에 대출금을 체납하지 않았다면 대출을 받을 수 있습니다.

또 다른 예제에선 반사실적 설명으로 연속적인 결과를 예측하는 모델을 설명하고자 합니다. 안나는 아파트를 임대하고 싶지만 가격을 예상할 수 없어 머신러닝 모델을 이용하고자 합니다. 갖가지 정보(크기, 위치, 애완동물 허용 등)를 입력하니 모델은 900유로라는 값을 내놓았습니다. 그녀는 1000유로 이상을 예상했지만 모델을 믿었고, 아파트 가치를 향상시킬 수 있는 방법이 있는지 특성값에 변화를 주고자 합니다. 아파트 크기가 $15m^2$보다 크면 임대료가 1000유로가 넘어갈 수 있다는 것을 발견했지만, 현실적으로 아파트 확장은 불가능합니다. 조작할 수 있는 선에서 보니 애완동물을 허용하고 더 나은 단열재로 창문을 설치하면 1000유로가 될 수 있습니다.

반사실적 설명은 직관적으로 사람들이 이해하기 좋지만, "라쇼몬 효과(Rashomon effect)"라는 문제점을 지니고 있습니다. 라쇼몬은 사무라이 살인사건이 다른 사람들에 의해 전해지는 일본 영화입니다. 각각의 이야기는 결론이 동일하지만, 디테일은 서로 모순됩니다. 반사실적 설명도 동일한 현상이 나타나는데, 어떤 결과가 어떻게 도달했는지에 대해서는 다른 "이야기"를 말합니다. 하나는 특성 A를 바꾸라고 하고, 다른 하나는 특성 A를 그대로 놔둔채 특성 B를 바꾸라고 할 수 있습니다. 이는 모든 반사실적 설명을 보고하거나 최선의 진리를 선택하는 기준을 갖고 평가하여 해결해야 합니다.

그렇다면 어떻게 좋은 반사실적 설명인지를 판단할 수 있을까요? 먼저, 반사실적 설명을 이용하는 사람이 인스턴스 예측의 적절한 변화(가상의 현실)를 정의합니다. 이때 필요한 것은 반사실적 인스턴스가 사전정의된 예측에 최대한 비슷하게 예측해야 한다는 것입니다. 항상 사전정의된 예측을 가지고 반사실을 찾아내는 것이 가능한 것은 아닙니다. 예를 들어, 이중 분류(불균형) 문제에서 모델은 항상 인스턴스를 빈도수가 높은 클래스로 예측할 것입니다. 특성값을 변화시킨다고 해서 빈도수가 적은 클래스로 분류될 가능성은 매우 적습니다. 따라서 반사실적 인스턴스의 예측이 반드시 사전정의된 결과와 완전히 동일할 필요는 없습니다. 분류 문제에서 빈도수가 적은 클래스로 예측될 확률을 (예를 들어) 2%에서 10%로 올리고 싶은 것입니다.

또 다른 기준은 반사실적 인스턴스가 최대한 기존 인스턴스와 비슷해야 한다는 것입니다. 두 인스턴스 간 거리는 맨해튼 거리(Manhattan distance)가워 거리(Gower distance) 등을 통해 계산될 수 있습니다. 반사실적 인스턴스는 기존 인스턴스와 가까워야 할 뿐만 아니라 최대한 특성을 덜 바꿔야 합니다. 해당 지표에서 반사실적 설명이 얼마나 좋은지 측정하려면 간단히 바뀐 특성 개수를 세거나 혹은 반사실적 인스턴스와 원본 인스턴스 간의 $L_0\ norm$을 계산하면 됩니다.

세 번째로 많은 가능성을 열어두기 위해 다차원의 다양한 반사실적 설명을 생성하는 것이 바람직합니다. 위의 대출 상황을 예로 들면, 한 가지 반사실적 설명은 대출을 받기 위해 소득을 2배 늘리거나, 다른 하나는 가까운 이웃 도시로 이사를 가고 소득을 조금 늘리는 것입니다. 두 가지 반사실적 설명 중 어느 것이 더 현실적인지는 사람마다 다를 것입니다.

반사실적 설명 생성

반사실적 설명을 만드는 간단하고도 순수한 접근은 시행착오를 통해 찾는 것입니다. 말 그대로 관심있는 인스턴스의 특성값을 랜덤하게 바꾸고 원하는 결과가 예측되었을 때 그만두는 것입니다. 하지만 이런 시행착오보다 더 좋은 방법이 있습니다. 먼저 우리는 위에서 언급한 기준에 근거하여 손실함수를 정의할 수 있습니다. 관심있는 데이터의 반사실적 인스턴스 그리고 원하는 결과를 입력으로 합니다. 그리고 최적화 알고리즘을 통해 손실을 최소화하는 반사실적 설명을 찾습니다.

본 글에서는 2가지 버전의 손실함수 및 최적화 방법론을 소개할 것입니다.

1. Wachter et al.(2017)이 소개한 설명가능한 방법으로써의 반사실적 설명[각주:1]

2. Dandl et al.(2020)이 소개한 위의 3가지 기준을 모두 만족하는 반사실적 설명[각주:2]

Wachter et al.의 방법

Wachter et al.은 아래의 손실함수를 제안합니다.

$L(x, x^\prime, y^\prime, \lambda)$ = $\lambda \times {(\hat{f}(x^\prime) - y^\prime)}^2 + d(x, x^\prime)$

첫 번째 항은 반사실적 $x^\prime$의 모델 예측과 원하는 결과 $y^\prime$ 간의 2차 거리이며, 이는 사전에 정의한 것입니다. 두 번째 항은 설명되어야 할 인스턴스 $x$와 반사실적 인스턴스 $x^\prime$ 간의 거리 $d$입니다. 손실은 반사실적 인스턴스의 예측된 결과가 사전정의된 결과와 얼마나 차이가 나는지, 그리고 반사실적 인스턴스가 관심있는 인스턴스와 얼마나 차이가 나는지를 측정합니다. 거리 함수 $d$는 역중위수 절대 편차(MAD, median absolute deviation)로 가중치가 매겨진 맨해튼 거리로 정의됩니다.

$d(x, x^\prime) = \sum_{j=1}^p {\left\vert x_j - x_j^\prime \right\vert \over MAD_j}$

총 거리는 모든 p개 특성의 거리를 합한 값, 즉 인스턴스 $x$와 반사실적 인스턴스 $x^\prime$ 간의 특성값의 절대적 차이를 말합니다. 특성값 거리는 아래와 같이 정의된 특성 $j$의 역중위수 절대 편차에 의해 스케일링됩니다.

$MAD_j = median_{i \in {\{1,...,n\}}} (\left\vert x_{i, j} - median_{l \in {\{1,...,n\}}} (x_{l, j}) \right\vert)$

제안된 거리 함수는 유클리디안 거리(Euclidean distance)보다 아웃라이어에 더 강건하다는 장점이 있습니다. MAD로 스케일링하는 것은 모든 특성을 동일한 스케일로 만들기 때문에 필요합니다.

파라미터 $\lambda$는 첫 번째 항의 예측 거리와 두 번째 항의 특성값 거리 간의 균형을 맞춥니다. $\lambda$가 클수록 반사실적 인스턴스의 예측이 원하는 결과 $y^\prime$에 가깝기를 선호한다는 것이며, 작을수록 반사실적 인스턴스 $x^\prime$가 $x$의 특성값과 비슷하기를 선호한다는 것입니다. $\lambda$가 매우 크다면, $y^\prime$과 가장 가까운 예측을 낸 인스턴스가 선택될 것입니다(기존 인스턴스 $x$와의 거리는 상관 X). 궁극적으로 예측 간의 거리가 가까워야 한다는 요구사항과 인스턴스 자체도 비슷해야 한다는 요구사항 간 어떻게 균형을 맞출지 결정해야 합니다.

Wachter et al.은 $\lambda$를 선택하는 대신 허용 오차 $\epsilon$($y^\prime$에서 예측이 얼마나 떨어져 있는지)를 선택하길 제안합니다. 이 제약은 아래와 같이 쓸 수 있습니다.

$\left\vert \hat{f}(x^\prime) - y^\prime \right\vert \le \epsilon$

위의 손실함수를 최소화하는 데 어떠한 최적화 알고리즘도 사용 가능합니다. 위 2가지 요구사항의 균형을 맞추는 반사실적 인스턴스를 찾기 위해 허용 오차 범위 내에서 $\lambda$를 서서히 늘려갑니다.

$arg\ \underset{x^\prime} {min}\ \underset{\lambda} {max}\ L(x, x^\prime, y^\prime, \lambda)$

정리하자면 반사실적 설명을 만드는 과정은 아래와 같습니다.

1. 설명하고자 하는 인스턴스 $x$, 원하는 결과 $y^\prime$, 허용 오차 $\epsilon$, 작은 값으로 초기화된 $\lambda$를 선택한다.
2. 랜덤 인스턴스를 초기 반사실적 인스턴스로 샘플링한다.
3. 손실함수를 최적화한다.
4. $while \left\vert \hat{f}(x^\prime) - y^\prime \right\vert > \epsilon$:
    - $\lambda$를 늘린다.
    - 현재 반사실적 인스턴스를 시작점으로 손실함수를 최적화한다.
    - 손실을 최소화하는 반사실적 인스턴스를 리턴한다.
5. 2 ~ 4 단계를 반복하면서 손실을 최소화하는 반사실적 인스턴스 리스트를 리턴한다.

단점

1. 오직 첫 번째와 두 번째의 기준만 생각하고 나머지 2개 기준은 고려하지 않습니다.(최소한의 특성 변화 및 현실 가능성 있는 특성값)
- $d$ 함수는 10개 특성을 1씩 증가하던, 1개 특성을 10 증가하던 동일한 거리로 계산되기 때문에 후자(sparse)를 선호하지 않음
- 비현실적인 특성 조합이 패널티를 받지 않음

2. 다양한 수준의 범주형 변수를 잘 핸들링하지 못합니다.
- 10개 유니크한 값이 있는 6개 범주형 변수가 있다면 100만 번 계산이 될 것임

Dandl et al.의 방법

Dandl et al.은 4개의 목적함수 손실을 동시에 최소화하는 방법을 제안했습니다.

$L(x, x^\prime, y^\prime, X^{obs}) = (o_1(\hat{f} (x^\prime), y^\prime), o_2(x, x^\prime), o_3(x, x^\prime), o_4(x^\prime, X^{obs}))$

4가지 목적함수는 위에서 언급한 4가지 기준 각각에 해당합니다. 첫 번째는 반사실적 인스턴스 $x^\prime$의 예측이 원하는 예측값 $y^\prime$와 가까워야 함을 나타냅니다. 아래는 맨해튼 거리($L_1\ norm$)로 계산된 거리입니다.

$o_1(\hat{f} (x^\prime), y^\prime)) = 0, \ if\ \hat{f} (x^\prime) \in y^\prime$

$=\underset {y^\prime \in y^\prime} {inf} \left\vert \hat{f}(x^\prime) - y^\prime \right\vert, \ else$

두 번째는 반사실적 인스턴스가 원본 인스턴스와 최대한 비슷해야 한다는 것을 나타냅니다. 이때 가워 거리를 사용합니다.

$o_2(x, x^\prime) = {1 \over p} \sum_{j=1}^p \delta_G (x_j, x_j^\prime)$

$p$: 특성 개수

$\delta_G$ 값은 $x_j$의 특성 유형에 따라 달라집니다.

$\delta_G(x_j, x_j^\prime) = {1 \over \hat{R_j}} \left\vert x_j - x_j^\prime \right\vert, \ if x_j\ numerical$

$=\amalg_{x_j \ne x_j^\prime}, \ if x_j\ categorical$

$\hat{R_j}$: 관측값 범위로 모든 특성에 대해 $\delta_G$값을 0과 1사이로 스케일링

가워 거리는 수치형과 범주형 변수 모두 처리할 수 있지만 몇 개의 특성이 바뀌었는지는 세지 않습니다. 따라서 우리는 $L_0\ norm$을 통해 세 번째 목적함수 $o_3$에서 특성 개수를 세줍니다.

$o_3(x, x^\prime) = \left\vert \left\vert x - x^\prime \right\vert \right\vert_0 = \sum_{j=1}^p \amalg_{x_j \ne x_j^\prime}$

$L_0\ norm$: 벡터가 0이 아닌 것의 개수를 의미
                   즉 $x$와 $x^\prime$가 같다면 0이 되고 $L_0\ norm$은 이를 세는 것

$o_3$를 최소화하면서 우리는 세 번째 기준인 최소한의 특성 변화를 만족할 수 있습니다.

네 번째 $o_4$는 반사실적 인스턴스가 현실 가능한 특성값 및 조합이어야 함을 나타냅니다. 우리는 하나의 데이터 포인트가 특정 학습셋에서 나온 "가능성"이 얼마나 있는지 추론하고 해당 데이터셋을 $X^{obs}$라고 표기합니다. 확률 근삿값으로 $o_4$는 $x^\prime$과 가장 가까운 관측 데이터 포인트 $x^{[i]} \in X^{obs}$ 간의 가워 거리 평균값을 측정합니다.

$o_4(x^\prime, X^{obs}) = {1 \over p} \sum_{j=1}^p \delta_G(x_j^\prime, x_j^{[1]})$

Wachter et al.과 달리 $\lambda$와 같은 균형/가중치 항이 없습니다. 우리는 4개의 목적함수들을 하나의 목적함수로 합치지 않고 동시에 4개의 항을 모두 최적화하길 원합니다. 이때 사용하는 것이 NSGA-ll(Nondomiated Sorting Genetic Algorithm)며, 이는 다윈의 법칙 "적자생존"에서 영감을 받은 알고리즘입니다.

반사실적 인스턴스의 적합도를 목적함수 벡터 $(o_1, o_2, o_3, o_4)$로 표기하고, 해당 값이 작으면 작을수록 더 적합한 것입니다. 알고리즘은 종료 조건(예: 최대 반복 횟수)이 만족할 때까지 4단계의 과정이 반복됩니다.

반사실적 인스턴스 후보들의 첫 번째 그룹은 설명되어야 하는 인스턴스 $x$의 몇 가지 특성들을 랜덤하게 바꿔 초기화됩니다. 위의 대출 상황을 예로 들면, 한 가지 반사실적 설명은 소득을 3만 유로까지 올리라 하고, 또 다른 하나는 지난 5년 동안 대출금을 체납하지 않은 동시에 10살 더 어려야 한다는 결론을 냅니다. 나머지 특성값들은 $x$와 동일합니다. 각 후보는 4개의 목적함수를 통해 평가됩니다. 우리는 몇 가지 후보들을 랜덤하게 선택하는데, 더 적합한 후보들이 선택될 가능성이 높습니다. 

이후 후보들은 수치형 변수값을 평균내거나 범주형 변수를 교차시켜 재조합함으로써 본인들과 비슷한 자식을 생성합니다. 추가로 자식들의 특성값을 변형시켜 전체 특성 공간을 탐색할 수도 있습니다.

이때 2개의 정렬 알고리즘을 사용하여 2가지 그룹(부모와 자식)에서 최적의 절반을 찾아내고 싶습니다. 다목적 알고리즘(nondominated sorting algorithm)은 목적함수 값들에 따라 후보들을 정렬하고, 만약 순위가 동일하다면 밀집도 거리(crowding distance) 알고리즘이 다양성에 따라 후보들을 정렬합니다.

2개의 정렬 알고리즘 순위에 근거하여 후보들 중 가장 유망하거나 다양한 그룹 절반을 선택합니다. 다음 세대(generation)를 위해 해당 데이터셋을 사용하며 선택, 재조합, 변형의 프로세스를 반복합니다.

예제

아래 소개하는 예제는 Dandl et al.(2020)에서 사용한 신용 데이터셋으로 캐글에서 다운로드 받을 수 있다고 합니다.

저자는 SVM을 학습하여 소비자의 신용 위험도를 예측했습니다. 관측치는 총 522개이며 9개의 특성으로 이루어져 있습니다. 우리의 목표는 아래 소비자에 대한 반사실적 설명을 찾는 것입니다.

SVM은 위의 특성을 가진 여성이 24.2%의 확률로 좋은 신용도를 지녔다고 예측했습니다. 반사실적 설명은 입력 특성값이 어떻게 변해야 50%가 넘는 확률을 가질 수 있을까에 대해 답해야 합니다.

처음 5개의 컬럼들은 특성값 변화를 나타내고, 다음 3개 컬럼들은 목적함수 값($o_1$은 모두 0으로 통일)을 나타냅니다. 마지막 컬럼은 예측된 확률을 표시합니다.

모든 반사실적 설명은 50%가 넘는 확률로 예측했고 어느 하나가 절대적이지 않습니다(nondominated). 이는 다시 말하면 어떠한 반사실적 설명도 모든 목적함수 값들이 다른 반사실적 설명보다 작지 않음을 의미합니다. 반사실적 설명을 트레이드 오프 솔루션의 집합이라고 생각하면 됩니다.

장점

1. 반사실적 설명은 해석하기 매우 명확합니다.
- 반사실적 설명에 따라 인스턴스의 특성값이 바뀐다면, 예측은 사전정의된 결과값으로 바뀔 것입니다. 이 이면에는 추가적인 가정이나 마법은 없습니다. 이는 곧 해석을 위해 지역 모델을 얼마나 추론해야 하는지 불명확한 LIME과 같이 위험하지 않다는 것을 의미합니다.

2. 반사실적 설명은 구현하기 상대적으로 쉽습니다.
- 반사실적 설명은 근본적으로 표준 최적화 라이브러리와 함께 사용 가능한 손실함수(하나 혹은 다수 목적함수)입니다. 물론, 특성값을 유효한 범위 내로 제한(아파트 크기는 양수)하는 정도의 추가적인 세부사항이 고려되어야 합니다.

단점

1. 라쇼몬 효과
- 각 인스턴스마다 다수의 반사실적 설명이 생길 수 있습니다. 우리는 복잡한 세계를 간단하게 설명하고 싶어하는데, 하나의 인스턴스에 23개 반사실적 설명이 생긴다면 어떻게 해야 할까요? 해당 질문에 대한 정답은 없으며, 매 프로젝트마다 다르게 판단되어야 합니다.
참조
https://christophm.github.io/interpretable-ml-book/counterfactual.html
728x90
반응형