로지스틱 회귀(Logistic Regression)에서는 종속변수가 이항 카테고리일 때 사용하며, 각각의 가중치와 독립변수의 곱인 <w, x>을 로짓 스코어로 사용하고, 시그모이드 함수를 통해 성공할 확률인 p(y=1|x, w) = σ(η) 를 구했다. *볼드체의 w, x는 각각 가중치(w) 행렬과 독립변수(x)의 행렬을 말하며 <w, x>는 행렬의 곱인 내적을 의미한다. 본 개념이 헷갈리는 분들은 다시금 로지스틱 회귀 설명(링크)을 복습하고 오도록 하자.
이번에는 종속변수가 카테고리는 카테고리인데 예, 아니오 두 개가 아닌 여러 카테고리일 때 적용하는 소프트맥스 회귀(Softmax Regression)에 대해 알아본다. 소프트맥스 회귀는 또 다른말로는 다항 로지스틱 회귀(Multinomial Logistic Regression)이라고도 부른다. 즉, 로지스틱 회귀를 일반화한 것이 바로 소프트맥스 회귀이다.
■ 소프트맥스 회귀란 로지스틱 회귀의 일반화된 형태!
‘일반화’했다는 것이 무슨 말인고 하면… 고객은 수많은 ‘대안’ 중에서 우리의 제품을 선택하거나 선택하지 않는다. 로지스틱 회귀에서는 이 ‘대안’의 가지수를 2개- 산다/안산다, A브랜드를 산다/B브랜드를 산다 등으로 한정시킨 문제를 푼다.소프트맥스 회귀에서는 이 ‘대안’의 가지수가 카테고리 C만큼 늘어난다. 다시말해 소프트맥스 회귀 안에 로지스틱 회귀가 포함된다. 이러한 관계를 다르게 표현하면, ‘로지스틱 회귀를 일반화한 것이 소프트맥스 회귀다.’라는 것.
로지스틱 회귀와 마찬가지로 고객들은 여기에서도 C개의 대안 중에서 가장 높은 효용 가치(utility)를 내는 안을 선택할 것이다. 이를 수식적으로 표현하면 다음과 같다.
U_{nc} = wx'_{nc}+ ε_{nc}
Unc : 고객 n명이 카테고리 c를 선택할 때의 효용 가치
w : 알려지지 않은 파라미터
x’nc : 고객 n명에 대한 카테고리 c에 대한 종속변수의 행열
εnc : 오차값 (랜덤)
로지스틱 회귀와 비교하면 모든 게 똑같고 그저 c개의 카테고리만큼 늘어난 것만 확인할 수 있다. 이를 로짓 스코어로 다시 표현하자면 η1 = <w1, x>, η2 = <w2, x>, … , ηc =<wc, x> 인 것이고, 소프트맥스가 구하고자 하는 성공 확률은 결국 p(Y|x, w1, w2, …, wc)가 된다. 각각의 가중치과 독립변수는 행렬임을 주의하여 보자.
■ 예제로 알아보는 소프트맥스 함수 S(η)
η가 η1, η2, …, ηc로 이뤄진 행렬일 때, 소프트맥스 함수는 다음과 같다. ηc는 그저 행렬 wc와 행렬 x의 곱임을 잊지말자. (나 역시 처음 공부를 할 때만해도 같은 걸 이렇게 계속 다르게 표현해서 헷갈리게 하는 것에 불평이 많았는데, 나중에 보니 이렇게 표현하는게 쉽더라…)
S(η)_c =\frac{exp(η_c)}{\sum_{c'=1}^{C} exp(η_{c'})}
이쯤되면 나처럼 수식을 보는 게 익숙하지 않은 찐문과생들은 정신줄을 반쯤 놓는다. 예제를 통해 문제를 풀어보며 수식에 익숙해져보자.
고객이 선택할 수 있는 브랜드의 종류는 3가지, A, B, C가 있다(수식으로 대입하면, c = 3). 고객이 브랜드를 선택할 때 고려하는 독립변수 x 역시 3개로 가격, 디자인, 품질이 있다. 각각의 브랜드를 선택할 때 만족되는 독립변수는 다음의 행렬로 주어졌다.
xA = [0, 1, 0]
xB = [1, 0, 1]
xC = [1, 0, 0]
가중치 w는 문제에서 이미 다음과 같이 주어졌다고 하자.
브랜드 A에 대한 가중치는 독립변수 순서대로 각각 wA = [-.11, -2.1, -4.1]
브랜드 B에 대한 가중치는 독립변수 순서대로 각각 wB = [-.51, 1.2, -2.2]
브랜드 C에 대한 가중치는 독립변수 순서대로 각각 wC = [.48, -1.2, 2.1]
즉, wA 행렬에서 -.11은 독립변수 가격에 대한 가중치이고, -2.1은 디자인에 대한 가중치, -4.1은 품질에 대한 가중치인 셈이다.
자 이제 ηc를 구해보자. 먼저 ηA = < wA, xA > 를 계산해보자.
< w_A, x_A > = (0 * -.11) + (1*-2.1) + (0*-4.1) = -2.1
마찬가지로 계산하면 ηB= -2.7 이고 ηC = .48 이다. 이 숫자를 exp()에 넣으면 위 소프트맥스 함수 수식에서 분자를 구하게 된다.
exp(< w_A, x_A >) = exp(-2.1) = 0.1225
exp(< w_B, x_B >) = exp(-2.7) = 0.0672
exp(< w_C, x_C >) = exp(.48) = 1.6161
이제 간단한 계산만 남았다. 다시 소프트맥스 함수의 수식을 가져와서 풀어쓰면 다음과 같다.
S(η)_A =\frac{exp(η_c)}{\sum_{c'=1}^{C} exp(η_{c'})} = \frac{0.1225}{0.1225+0.0662+1.6161} = \frac{0.1225}{1.8048} = 0.0679
S(η)_B =\frac{exp(η_c)}{\sum_{c'=1}^{C} exp(η_{c'})} = \frac{0.0672}{1.8048} = 0.0372
S(η)_C =\frac{exp(η_c)}{\sum_{c'=1}^{C} exp(η_{c'})} = \frac{1.6161}{1.8048} = 0.8954
S(η)C 가 0.8954로 가장 크니 소비자는 브랜드 C를 선택할 확률이 가장 높다.
■ 소프트맥스 회귀와 IIA(Independence of Irrelevant Alternatives) 가정
소프트맥스 회귀는 εnc가 iid(independently and identically distributed, 독립 항등분포)를 가정한다. 이를 IIA 가정이라고도 하는데, IIA 가정을 충족한다는 의미는 어떤 카테고리를 선택할 확률은 다른 대안의 존재 여부와 관계없이 일정해야한다는 뜻이다.
하지만 대다수의 마케팅 문제에 이러한 가정을 엄격히 지킨다는 건 비현실적이다. 우리는 보통 아이폰과 갤럭시, 샤오미폰과 같은 한 핸드폰 카테고리 내에서 선택하지 ‘아이폰’, ‘포르쉐’, ‘비비고’ 와 같이 다른 카테고리의 브랜드를 총망라해서 고민하지 않기 때문이다.
이러한 문제를 해결하기 위해 다양한 방법이 도입된다. 먼저 하우스만 테스트(Hausman test)와 같이 통계적으로 IIA를 검증하고 만약 IIA 가정이 충족되지 않으면 attraction model 같은 다른 모델을 사용하면 된다고 한다. 하지만 계산이 상당히 복잡하다고 들었다. 또 다른 방법은 Rooderkerk et al. (2001)이 제안한 choice model이나 Nested Multinomial Logit(NMNL) model, Multinomial Probit (MNP) model 등이 있다.