AI 스타일리스트 Stitch Fix의 회원 전환 예측 모델링

Summary : “Time Dependent Classification” by Lingrui Gan

Nuree Chung
Almighty Data Science Bootcamp
10 min readMay 30, 2018

--

Stitch Fix: Your Online Personal Stylist

Stitch Fix는 최근 ‘의류업계의 넷플릭스’라고 불리며 각광받고 있는 의류 스타일링 기업입니다. AI와 전문 스타일리스트가 함께 고객의 취향이나 체형에 맞는 스타일을 파악하여 다섯 벌의 옷을 골라 배송해주는 서비스를 제공합니다. 배송비와 반송비 모두 무료여서 고객은 추천하여 배송된 옷을 입어보고 마음에 드는 옷만 구매하고 나머지는 반품하면 되는 획기적인 서비스를 제공하고 있습니다.

이번 글에서는 Stitch Fix에서 시간에 따른 변동성이 있는 변수를 고려하여 회원 전환(conversion) 예측 모델을 개발한 과정을 소개한 글, Time Dependent Classification(by Lingrui Gan)을 정리하여 소개하고자 합니다. 이 글에는 시간적 요소를 고려한 로지스틱 회귀모형 및 그에 맞는 다양한 규제 방법을 소개하고 있습니다.아래 내용은 원문의 내용+제가 이해한 내용이 섞여있습니다. 혹시 제가 잘못 이해한 부분이 있다면 댓글 부탁드립니다. 보다 자세한 내용은 원문을 참고해주세요 :)

Motivation

온라인 서비스에서 방문자가 가입 고객으로 전환되는 데 영향을 미치는 요인을 파악하여 전환 여부를 예측할 수 있다면, 서비스를 개선하는 데 도움이 될 것입니다. 전환 여부 예측은 전형적인 이진 분류의 문제로, 로지스틱 회귀모형을 만들어 예측할 수 있을 것입니다.

이 글의 글쓴이 Lingrui Gan은 온라인 사이트 이용자의 전환율을 예측하는 모델링에서는 한 가지 요소를 더 고려하면 예측력을 높일 수 있을 것이라고 합니다. 바로 ‘시간의 흐름에 따라 변화하는 변수’인데요.

가령 고객이 서비스에 가입할 확률에 영향을 미치는 요인으로 사용자의 방문시간, 방문자의 지리적 위치(IP주소로 파악), 사이트에 접속한 기기유형, 사용자 인터랙션 등의 변수를 사용한다고 해봅시다. 이때 사이트에 접속한 기기 유형은 시간의 흐름에 따라 큰 차이가 없을 수 있으나, 사용자가 사이트를 사용하면서 발생하는 인터랙션(interaction)은 시간의 흐름에 따라 변화할 확률이 높습니다. Stitch Fix 같은 경우 의류 스타일링을 하다보니 계절에 따라 더큰 차이가 있을 수도 있을 것입니다. 그렇다면 이를 고려하여 모델링을 해야 할 것입니다.

Method

Time-varying logistic regression

전통적인 머신러닝 기법인 정적 로지스틱 회귀(static logistic regression)에서는 모든 특성(features)의 영향이 시간의 흐름에 따라 안정적(stable)이라고 가정합니다. 즉, 회귀계수(coefficient)는 고정되어 있는 것이죠.

반면 시간 변동성을 고려한 로지스틱 회귀(time-varying logistic regression)에서는 어떤 특성은 시간의 흐름에 따라 영향력이 달라질 수 있다고 가정합니다. 시간의 흐름에 따라 회귀계수가 변할 수 있다는 것이죠. 앞서 말한 사용자 인터랙션 변수의 영향이 1월과 7월에 다를 수 있다고 보는 것이죠.

Regularization frameworks: Small difference penalty

더불어, 작은 변화(노이즈)는 무시하되 큰 변화가 일어나는 시점을 감지하기 위해 다양한 규제(regularization) 프레임워크를 적용했다고 합니다. “변화점(change-points)” 이 발생할 때까지 f_t 와 f_(t+1)의 차이가 매우 작은 경우는 노이즈로 보고 패널티(penalty)를 주어 모델을 단순화하는 것이죠. 이러한 시간 변동성을 고려한 로지스틱 회귀모델에서 규제 프레임워크를 적용하는 방식은 큰 변화점을 감지하고 노이즈는 0으로 만들기 위해 질병 진행 상황 연구, 경제학, 사회학 및 생물학 등 다양한 분야에서 활용되고 있다고 합니다.

(B_t는 t시점의 계수 메트릭스를 뜻합니다)

Result

Lingrui Gan은 이 전환 예측 모델을 개발하면서 라쏘(LASSO), 그룹 라쏘(Group LASSO), 릿지(Ridge), MCP, SCAD 등의 패널티 함수를 적용해보았다고 합니다.

1) Lasso, Ridge

먼저 좀 더 익숙한 라쏘와 릿지 패널티를 살펴보겠습니다. 라쏘는 대표적인 L1 규제 방법으로, “절대값을 최소화”하기 때문에 모든 변수를 동등하게 취급하여 동일한 조건으로 오차를 줄입니다. 따라서 작은 수치의 계수(영향력이 약한 변수의 계수)가 먼저 0으로 줄어들게 되어, 주된 변수(특성)만 살아남는다는 것이 특징입니다.

반면 릿지는 대표적인 L2 규제 방법으로, 계수의 “자승의 합을 최소화”하기 때문에 큰 수치의 계수(영향력이 큰 변수의 계수)의 영향력을 줄여줍니다. 틀리면(값 차이가 크면) 패널티가 크게 가해서 계수의 분산이 커지는 것을 규제하되, 변수(특성)가 골고루 살아남는다는 것이 특징입니다.

결과를 살펴보면 아래와 같습니다. Lasso(whole data)는 시간 변동성을 고려하지 않고 라쏘 패널티를 적용해 모델링했기 때문에, 시간에 따라 계수의 변화가 없는 것으로 결과가 나왔습니다. 두 번째 Lasso(weekly)는 주단위로 변동성을 고려하여 모델링했기 때문에 매 주마다 변수의 계수가 다르게 추정됨을 알 수 있습니다. t-1시점에서 t 시점으로의 변화에 라쏘 패널티가 가해 큰 변화가 나타나는 지점만 감지하게 하였습니다. 다만, 주단위로 시간 변동성을 고려하다보니 노이즈가 큰 단점이 있습니다. 세 번째 Ridge는 시간 변동성을 고려하여 모델링을 한 결과인데, t-1시점에서 t 시점으로의 변화가 크지 않아도 계수를 골고루 살리기 때문에 매끄럽게 이어지는 것을 확인할 수 있는데, 이때문에 릿지는 해석가능성이 우수하다고 합니다.

Stitch Fix의 회원 전환 예측 모델의 결과 — Lasso & Ridge (Credit)

2) Fused Group Lasso

더불어 그룹 라쏘 패널티도 시도해보았다고 합니다. 이 방법을 쓰게 되면 큰 변화가 발생하는 지점까지 해당 변수의 계수가 일정하게 유지된다고 합니다. 원문에서는 설명이 자세하지 않아 추가적인 자료를 찾아보았는데, 오른쪽의 “Fused Sparse Group Lasso”가 여기서 적용한 그룹라쏘 방식이라고 예상됩니다. 보시면 어떠한 변화가 발생하는 지점까지 계수(주황색)가 일정하게 유지되다가어떤 시점부터는 0이 되고, 그 전 시점부터 다른 계수(녹색)가 나타나는 것을 확인할 수 있습니다. 한편, “Temporal Group Lasso”는 어떤 변수의 영향력이 유의하지 않다고 판단되면 전체 시점에 대해 해당 변수(즉, 그룹)의 계수를 0으로 만들어버리는 특징을 가지고 있습니다. 원문에서 글 마지막에 각 모델의 결과를 보여주면서 “Fused Lasso”라는 이름의 결과를 보여주는 것으로 미루어 보아, 여기서 말하는 Group Lasso는 “Fused Group Lasso”일 것으로 예상됩니다.

Zhou, J., Liu, J., Narayan, V. A., Ye, J., & Alzheimer’s Disease Neuroimaging Initiative. (2013). Modeling disease progression via multi-task learning. NeuroImage, 78, 233–248.

StitchFix에서 Fused (Group) Lasso를 적용한 결과는 아래와 같이 나왔다고 합니다.

Stitch Fix의 회원 전환 예측 모델의 결과 — Fused Group Lasso(Credit)

3) MCP, SCAD

MCP(Maximum Concave Penalty), SCAD(Smoothly Clipped Absolute Deviation)는 라쏘와 마찬가지로 어떤 시점에 일부 계수만 변하는 것으로 패턴을 인코드한다고 합니다.

라쏘에 비해 MCP와 SCAD 패널티는 익숙하지 않아 추가 자료를 더 찾아보았습니다. 수식을 비교해보면 아래와 같습니다.

(Credit: https://www.slideshare.net/sahirbhatnagar/estimation-and-accuracy-after-model-selection)

좀 더 직관적인 비교를 위해 각각의 비용함수를 그래프로 그려보면 다음과 같이 나온다고 합니다. 이 그래프를 그린 Cao et al.(2015)에 따르면 high dimensional sparse modeling의 경우에는 라쏘보다 MCP나 SCAD 같은 folded-concave 패널티가 추정의 정확도(accuracy)나 일관성(consistency) 측면에서 더 나은 결과를 내는 논문이 많이 나오고 있다고 합니다.

Cao, W., Wang, Y., Yang, C., Chang, X., Han, Z., & Xu, Z. (2015). Folded-concave penalization approaches to tensor completion. Neurocomputing, 152, 261–273.

원문에서는 SCAD를 적용해보았다는 언급은 있지만, 결과는 MCP에 대해서만 제공하고 있습니다. 다른 패널티보다 MCP를 적용했을 때 정확도가 높았고, 변화지점을 잘 감지했다고 합니다.

Stitch Fix의 회원 전환 예측 모델의 결과 — MCP (Credit)

원문에서 글쓴이 Lingrui Gan는 Evolutionary patter에 대한 사전 지식이 없는 상황에서 모델링을 할 때, MCP 혹은 SCAD를 추천한다고 합니다. Lasso는 데이터에 노이즈가 많거나 공선성(co-linearity)이 있을 때(대부분의 시간 종속 변수를 사용하는 경우에는 이런 문제가 발생합니다) 패널티 적용 결과가 biased 될 수 있기 때문이라고 합니다.

저는 이 글을 읽으면서

  1. 실제 비즈니스 환경에서는 시간 변동성을 고려한 예측 모델링이 필요하다
  2. 릿지와 라쏘 외에도 다양한 패널티 함수가 사용된다

는 점을 배울 수 있었습니다.

여러분은 어떤 점을 새롭게 알게되셨나요?

*오역이나 내용에 대한 코멘트, 언제나 환영합니다! 감사합니다.

--

--

Nuree Chung
Almighty Data Science Bootcamp

데이터 분석가. 데이터 프로덕트 매니징과 데이터 사이언스를 통한 사용자 경험 개선 등에 관심이 많습니다.