Leveraging fine-grained transaction data for customer life event predictions

2021. 6. 14. 08:37algorithm/Supervised Learning

Leveraging fine-grained transaction data for customer life event predictions
https://www.sciencedirect.com/science/article/abs/pii/S0167923619302611

1. Life event란?
family lifecycle theory에 다르면, 같은 라이프스테지에 있는 고객 행동은 유사하며, 다음 stage로의 이동은 detectable EVENTS에의해 야기된다
이런 events 중 통상적으로 중요한 것을 'Life Event'라고 칭한다

life event가 발생하면, 소비자의 니즈와 행동에 급작스런 변화가 있다. (ex 부모가 되면 외식을 덜하고 건강 식단을 더 구매한다)

2. 기업에서 Life event의 의미
기업에서 이러한 Life event를 감지하려는 이유는, cross- or upselling offers와 relevant targeting으로 고객의 engage를 높일 수 있기 때문이다

정교한 고객 profiling이 가능

이전에는 reactive하게 감지했었지만, 이제는 proactive하게 감지하려고 노력하고 있다

data-drevien decision making 시스템을 구축할 수 있다(그리고 이런 방식으로 일하는 회사가 훨씬 재무적/사업적 성과가 좋다고 이미 입증되어 있음)



3. 예측 모델 개요

1) 모델의 목적
- 미래 라이프 이벤트에 대한 고객 historical data를 기반으로 계산한 유사성을 바탕으로한 고객 스코어링

2) 지금까지의 에측 모델
- 주로 축약된 형태의 정형 데이터를 사용
Typically, these variables reflect information about customer
demographics, variables summarizing the customer relationship, such as length of relationship or
purchase history, and customer–company interactions; they generally are referred to as
aggregated or structured variables
1) 고객 프로파일 - socio-demographical charateristic
2) 해당 고객에 대한 접촉이력 contact history
3) 고객 행동 이력 historical customer behaviors
! 고객 행동 이력을 통해 얻어낸 RFM 변수 포함 (RFM = recency, frequency and monetary value)

- 기업에서의 한계점
1) 대부분의 라이프이벤트가 기업 외부에서 발생

2) 예측을 위한 머신러닝 모델을 학습시키기 위해서는, prior 라이프 이벤트에 대한 정보가 필요한데, 이는 통상적인 기업 행위에서 얻어지는 게 아니라 추가적인 노력과 투자를 해야 알 수 있는 부분

3) 대부분의 라이프 이벤트는 드문 일이다


3) 해당 논문의 예측 모델
- 데이터의 확장
4) 기존에 다루던 데이터 1)2)3) + 'fine-grained data' 활용
기존 집계된 데이터와 세분화된 트랜잭션 데이터 결합시 보다 높은 예측 성능을 얻을 수 있다

! fine-grained data = facebook likes, paymenth istory, online displace ad networkd,
They provide logs of every event (e.g., likes, payments) involving each
counterparty (e.g., Facebook page, merchant), which can reveal novel insights into customers’ lifestyles [27]. In section 2, a detailed overview of fine-grained transaction data is presented, which is the type of fine-grained data used in this study

- 방법론
예상되는 한계점) 데이터가 많아도 고객 레벨에 대한 정보로 축약하기 어려운 것이 high dimensionality and sparsity 때문
해결방안) pseudo-social network(PSN)을 통해 고객의 행동 유사성을 스코어링 함
'행동 유사성'을 계산하기 위해서는 동일한 거래상대방으로부터의 거래내역(과 RFM 변수)을 보는데, fine-grained data도 사용

기존에는 fine-grained data를 다루면서 continuous input data연속값의 경우 이진 형태로만 사용했는데, 이 논문에서는 보다 확장된 방법으로 사용
pseudo-social network(PSN)로부터 파생된 행동 유사성 측정지표를 사용
We extent the existing methodology for fine-grained data, which only allowed for binary input data,  for continuous input data. This allows us to explore and demonstrate the added value of the incorporation of RFM information of transactions in behavioral similarity measures derived from the PSN.


4. pseudo-social network(PSN) 이란?
a social network because cusomers are linked with one other. 다만, "pseudo"라는 표현을 쓰는 이유는, 실제 소셜 네트워크와는 달리, 강하게 연결된 고객끼리 서로 모를 수도 있기 때문에, 실제가 아니라는 느낌을 전달하기 위한 것


5. fine-grained data의 활용바법
1) 여기에서의 fine-grained data란?
고객의 여러 상대방과의 트랜잭션 혹은 결제 로그 정보 the logs of transactions or payments

2)   fine-grained data로 변수 생성
2-1) Fine-grained transaction data 의 representation
= 정교하게 세분화된 데이터(e.g. 거래 데이터)에서 변수를 추출하기 위한 representation
  (그림 참고 - figure 2)

(step1) 매트릭스 형태로 매우 많은(수천명에 달하는) 상대방과의 거래 내역 정보(수천~수백만에 달하는 records) 를 binary값으로 기록 (binary logs화)

더 쉽게 설명하면 대규모 행렬 M1 은 rows = 각 고객, columns = 고객의 거래 상대방으로 구성되며 xij는 i번째 고객이 j번째 거래상대방과 거래가 있었는지 여부를 1,0으로 표현한 값

함의 : 라이프 이벤트 정보는 개별적인 binary vector로 표현되게 된다. 즉 각 라이프이벤트마다 각기의 모델을 가지는 셈.

(step2) M1을 bi-graph 형태로 adjacency matrix 인접행렬로 구성

더 쉽게 설명하면, 고객과 거래상대방이 bi-graph 상의 두 개의 노드로 구성되며, 거래가 있었다면 두 노드가 이어지게 된다. 즉 edges는 고객과 거래상대방 사이의 non-zero values만 표현하게 됨

(step3) 2단계의 bi-graph를 통해 uni-graph를 만든다. uni-graph에는 거래상대방의 유사성(거래상대방과 관련한 유사한 거래행동)을 바탕으로 고객간의 PSN이 표현된다.  

더 쉽게 설명하면, 어떤 고객이 이케아를 이용했다고 하면, 이케아를 이용한 다른 고객들과 (그들끼리 실제로 아는 사이가 아님에도) 거래 유사성 때문에 연결되게 된다.

2-2) 행동 유사성 behavioral similarity score

- 고객간의 유사성 가중치를 기반으로 네트워크 내의 고객들에 대해 행동 유사성 점수 산출 Behavioral similarity scores, based on similarity weights between customers

- 이는 어떠한 고객들이 PSN에서 강한 연결관계를 가지고 있으면, 유사한 판매자와 거래한다는 뜻이고, 중요한 라이프이벤트 있었다거나 or 같은 제품을 구매하는 것처럼, 비슷하게 행동한다는 것이다

- 고객간의 유사성 가중치란?
첫번쨰, 거래상대방이 많이 겹칠수록(share할수록) 더 높은 가중치를 얻는다
두번쨰, 인기있는 거래상대방(e.g. energy provides, 세무소)의 경우 가중치를 낮춘다

- 최근에 라이프이벤트를 경험한 고객을 'seed'로 본다
그리고 찾고자하는 고객focal customer과 average seed customer간의 유사성을 score로 나타냄
(그림 - table 1와 식 1,2,3)
최근 같은 라이프이벤트를 경험한 victori와 ramon을 seed로 두고
emma와 jacob의 유사도 점수를 구해보자

emma와 jacob의 결제행동이 seeds 고객과 얼마나 유사한지 식(2)와 같은 유사도 점수를 구하기 위해서는,
Xi번째 고객의 행동 유사성 점수는 Xi가 한번 이상 지불한 모든 거래상대방 j에 대한 경험적 확률 Ej (식1)의 합이다 -- 식(3) 참조

거래상대방 j에 대한 경험적 확률 Eij = j가맹점에서의 시드고객의 수 / j가맹점에서의 전체고객의 수

유사성 점수 식(2)는 다른 방법으로도 구할 수 있다
- seed 고객에 대한 behavioral similarity는 다르게 계산된다
- 인기있는 판매자의 가중치를 낮춘다
식(4)와 같은 inverse
consumer frequency (ICF) 방식이나 식(7)과 같은 a cross-validated beta distribution 방식으로
- 모든 계산은 대규모행렬 M1에 표현된 payment거래의 binary logs만 고려함




2-3) RFM 컨셉으로 행동 유사성 확장 Extension of behavioral similarity with RFM
앞서 기술한 방법은 거래가 있었는지 여부 1,0만 기록하다보니 중요한 정보 손실이 있을 수 있음
-> 따라서 RFM 방식으로 matrix 구성

이를 위해, 대규모 행렬 M2는 fine-grained trasaction data를 monetary value를 축약하여 구성
쉽게 설명하면, 대규모 행렬 M2에서 Xij는 i번째 고객(행)의 j번째 거래상대방(열)에서의 지출액


seed와의 유사성 볼 때 얼마나 많이, 얼마나 자주, 얼마나 최근에 썼는지 까지 보겠다는 것

featurization
식(10) i번째 고객의 j번째 가맹점에서의 Deviation = abs( the average monetary value for all seed customers of a counterparty j - xij )
식(11) i번째 고객의 j번째 가맹점에서의 Deviation = abs( the average monetary value for all "non-seed" customers of a counterparty j - xij )
calculating the deviations between a client’s value and the average values for seed and non-seed
clients. T
식(12) 경험적 확률 Rij - j번째 거래상대방에 대해서 non-seed 고객의 deviation / 시드고객의 deviation ratio를 각각 log1p 방식으로 넣어서 계산
식(13) 최대값 Maxj  =  the average monetary value for all "non-seed" customers 와 the average monetary value for all "seed" customer 차이의 절대값을 log1p 방식으로 계산
식(14) 최소값 Minj
식(15) Normalization R'ij - 모든 값을 0과 1사이로 축약
식(16) i의 Similarity 계산 = xji>0이상인, 즉, i가 거래한 적이 있는 모든 가맹점에 대해서 R'ij을 모두 더함


식(17) 행동 유사성 계산
식(18) 거래상대방의 가중치를 ICF 방식으로 조정
식(18) 거래상대방의 가중치를 교차검증 베타 분포 방식으로 조정


3) data pre-processing and modeling step에 반영하기
aggregated data 의 data pre-processing
- categorical variables 처리 : v개의 범주형 변수는 v-1개의 더미변수로 변환
- outliers
-winsorization로, 변수의 평균으로부터 3*표준편차 three standard deviation range 내에서 변환  
- missing values
- imputation by zero, the median, or the modus
- 누락 여부 자체가 잠재적으로 중요한 정보이므로 새로운 더미변수로 사용
- imbalanced data : small positive dataset 이므로 (최소 1.61% 정도) random undersampling. 다만, training data셋만 event 발생/미발생율을 동일하게 맞추고, test는 실제 현실 그대로 나타내도록 함


6. 실험 설계 상세
유럽 대규모 금융 서비스 제공 업체의 은행 거래 데이터를 사용
고객수 132703명

과거 1년간의 transaction 데이터로 다음 6개월 내에 {거주지 이전, 자녀 출산, 관계start, 관계 end }을 예측하는 모델

학습/테스트 데이터 split시 10-fold cross- validation 사용 (9개의 train / 1개의 test set으로 구분하여 교차검증)
학습 데이터를 다시 training( 3분의 2)와 validation(3분의 1)로 나눠서 hyper parameter tuning에 사용
학습용 데이터셋 내에서 특정한 life event 사건에 직면한 고객을 해당 life event의 seeds 고객으로 간주

데이터 종류
socio-demographic information (e.g.,
age, gender), customer purchase history (e.g., relationship length, monetary value, product possession), and customer–company contacts (e.g., number of consults, number of complaints).

the raw transaction records - 약 60 million debit transactions by all customers, involving more than 1.5 million different merchants, over a one-year perio

모형 : logistic regression with forward variable selection

coefficient 추정에 training data의 validation set 사용

평가지표:
ROC-AUC
top decile lift (TDL)

모델간 성능 차이의 유의성 검정 - non-parametric Wilcoxon signed-ranks tests : to
assess the pairwise differences among the models, it rank performance differences between two classifiers and compare the ranks for positive and negative differences

7. 결과
보다 많은 변수를 사용하면 binary classification 모델 성능이 향상된다

변수 중요도
거주지 이전 : 거래이력rfm
자녀출산 : 거래이력rfm과 demo 정보
결혼/동거 : 거래이력rfm과 demo 정보
관계 종료 : demo > 거래이력rfm

출처 : https://pdf.sciencedirectassets.com/271653/1-s2.0-S0167923620X00029/1-s2.0-S0167923619302611/am.pdf?X-Amz-Security-Token=IQoJb3JpZ2luX2VjECsaCXVzLWVhc3QtMSJIMEYCIQCcUGNAyNB5iZtrk9p%2BMMhlAzYPTT7BoT2OW6x7eOrQkwIhAIeB2DVbwux8g5J2xUhXrGiC9NEk3aCwj2tfJUIDZaJ0KoMECOT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQBBoMMDU5MDAzNTQ2ODY1IgwPGV0BZt08KZ4XO6Aq1wOOz7I1nz%2B2LIrmfmGG35KlDKWgXlQooo%2B7zrynbbEKYivaMLN7lv%2B5v3uViGZyKR3y9Of2%2BV6ZapRyBxEqJaqDVkbUBaSdZXbjBCfQwhzPSlQfxvVIf1LLm22nIjpgpVfxoSxe5PJfw42ABySoQJP%2Be6We3OIi%2BEvCOPADu47coIxMsxW06QUrHneqa0WsikABU9kmiVR1cDmulq83dRGZTKxF6n6xSPJGIz2ucC78q3%2FnMVtQ3c6ROVC3NZ0sjfGxgvc9r1giIdwpSMQgpeAarNNoHxYi0umRbSgioxUFZgc1MnSrDX4rJIFVoBuwT9u25R1YUIUFKzz2Ho4N9RA%2FFYF%2F3T8Ebp65lG6HTWcOqe3jmGILJE7OUG0JmMR%2FikwSmXjUNW0BOccIptCNZQ2fbfo01eaOm9VLS9QLdUT4TiaJM%2BaWkR6WpVqvFaAfnKqVQIFcuXSQE4YYKxSldXdls%2BmYHPhjSzhs8XqXHtoSqw2QiR7BN17a4C6eW%2FfvEko3blYbtcpfxtsaoC72j0qRNOA4rIPYUu%2FJ%2BydWcMNxqstyYIs9md6MQnEZQEoxslYc0ZKLrLD053%2FXYEnLU8WgFLGC5FmXPt8QpP42JwdWpWeI7gO6gLMwj9%2BVhgY6pAHeuxGixCE0UQUvDRzt%2BDVUq2VohG5h8uyavYwqeKdjkmN87pcfRkEWF0%2BtQyMd6oaIa1F9BaXTAC%2FHSQPqP18kMDltbFzk3p%2BOdHO0RKofOPSHUT9ahbuvu5DhaYu751R2C3%2BlJqUs22FAxfKNFUwA6hwZFd%2Fza8MMI0FOFz2C1PJ26cgwfvlnKQ2z8ZfEzvb%2BQaO2rNI%2BODrZmZjq%2BrAMksvHBQ%3D%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20210613T025225Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Credential=ASIAQ3PHCVTY7IEMCLGM%2F20210613%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=0c0dd315ee1aafde800bf0828a3d94a49b1c2d50e661d0359a70dcc0d10dd2eb&hash=95a4e94b48a85ccac0973c8dc73acbd2da2869578f3d823fd7f1d0b09801b967&host=68042c943591013ac2b2430a89b270f6af2c76d8dfd086a07176afe7c76c2c61&pii=S0167923619302611&tid=pdf-8891e3e6-cbf6-4236-a15d-774c9275ae44&sid=7141ef62231ac8498909edd878bade21b50agxrqa&type=client

'algorithm > Supervised Learning' 카테고리의 다른 글

추천 - 협업 필터링의 한계  (0) 2021.09.10
Machine Learning 기초  (0) 2021.05.31