ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Buy It Again
    ML DL DS/papers 2022. 4. 3. 15:04

    Buy It Again!

    Rahul Bhagat et al. Buy It Agian Modeling Repeat Purchase Recommendations, KDD 2018 https://dl.acm.org/doi/pdf/10.1145/3219819.3219891

    2. Modeling Approach

    2.2 Problem Formulation


    Cj 고객이 Ai 상품을 K번 t1, t2, ... tk의 간격을 두고 구매했을 때, 구매확률밀도를 아래와 같이 예측하려고 한다.

    위 식에 대한 첫 번째 가정은 다른 상품에 대한 구매 사건은 서로 독립적이라는 가정을 한다.

    두 번째 가정은 위 식을 아래와 같이 두 요소로 분해할 수 있다는 것이다.

    • Q(Ai)Q(A_{i})는 고객이 k번 구매했을 때, (k+1)번 구매 확률이다.
    • RAiR_{A_i}는 기간 tk+1t_{k+1}의 Ai상품에 대한 조건부 분포이다.
    • RAi(tk+1t1,t2,...tk)RAi(tt1,t2,...tk)R_{A_i}(t_{k+1}|t_{1},t_{2}, ... t_{k}) \approx R_{A_{i}}(t|t_{1},t_{2}, ... t_{k})이며,

      0RAi(t)dt=1\int_{0}^{\infty} R_{A_{i}}(t)dt = 1이고, 0PAi(t)dt1\int_{0}^{\infty} P_{A_{i}}(t)dt \le 1 이다.

    3. Repeat Purchase Recommendations Models

    3.1 Repeat Customer Probability Model


    처음으로 고려할 시간 독립적인 빈도 기반 확률모델이며, 고객들에 대한 상품의 반복 구매 통계량을 사용한다.

    각 상품에 대해 아래와 같이 RCP를 구할 수 있다.

    PAi(tk+1t1,t2,...tk)P_{A_i}(t_{k+1}|t_{1},t_{2}, ... t_{k})RCPAiRCP_{A_i}에 의한 가정은 아래와 같으며, 이는 시간요소를 무시한 것이다.

    또한, 반복구매 추천의 품질을 확보하기 위해 RCP에 임계값을 적용하여 식 5를 충족하는 제품만 반복구매 가능하다고 간주하고 그 반대의 경우도 있다.

    최종적으로, 고객이 이전에 구입한 모든 반복 구매 가능 제품을 고려해 RCP를 사용하여 일정 시간 t에 추정 확률 밀도 PAiP_{A_i}의 내림차순으로 순위를 매겨 권장사항을 생성한다. 앞서 기술한 바와 같이 RCP 모델은 단순한 확률론적 모델이며 반복 구매 권장사항의 첫 번째 모델이다. 모델의 단순성을 고려할 때, RCP 모델을 후속 모델이 개선해야 하는 기준선으로 둔다.

    3.2 Aggregate Time Distribution Model


    분석 결과, 대부분의 고객은 특정 제품에 대해 몇 가지 반복 구매만 하는 것으로 나타났다. 다만, 많은 제품에 대해서, 그 제품을 반복해 구입하고 있는 고객이 많이 있다. 이는 제품의 반복 구매 특성을 파악하기 위해 모든 반복 구매 고객에 걸쳐 제품의 반복 구매 행동을 종합적으로 사용하는 시간 기반 모델의 아이디어로 이어진다.

    특히, 우리의 목표는 제품의 반복 구매 시간간격 t에 대한 분포를 모든 반복 고객들에 걸쳐 결정하는 것이다. 이 분포를 결정하기 위해 제품의 무작위 샘플을 선택했다. 제품에 대해 해당 제품을 반복 구매한 모든 고객을 조사해 각 고객의 평균 반복 구매 시간 간격을 구했다. 그림 1은 무작위 추출한 소비 제품의 반복 구매 시간 간격 분포이다.

    단순성과 확장성 측면에서, 최대우도 원칙에 의해 파라미터가 결정되는 로그 정규 분포 및 감마 분포와 같이 잘 알려진 분포로 관측된 반복 구매 간격을 fitting하는 방향으로 연구했다. 경험적으로, 우리는 아래와 같이 정의된 로그 정규 분포가 대부분의 소비 제품에 가장 적합하다는 것을 발견했다.

    그림 2 는 반복 구매 시간 간격의 로그 정규 분포 적합도에 대한 QQ plot을 나타내고, 그림 3은 그림 1과 같은 소모품 제품에 대한 로그 반복 구매 시간 간격 분포를 보여준다. 따라서 반복 구매가 가능하다고 간주된 모든 제품에 대해 로그 정규 분포의 파라미터는 모든 반복 구매 고객에 걸쳐 반복 구매 시간 간격 t에 적합시킴으로써 경험적 방법[1]으로 추정된다.

    이를 통해 RAiR_{A_{i}}는 식 6으로 추정하는 단순한 추천 모델이 도출된다. 이 때, Q(Ai)Q(A_{i})는 제품 Ai에 대해 모든 시간 t에서 고정된 상수 q로 가정한다. 또한 앞에서 기술한 바와 같이, 식 5를 만족하는 제품에 대해서만 반복구매상품으로 간주한다. 마지막으로, 반복구매상품과 식 2를 사용하여 확률 밀도 PAi(t)P_{A_i}(t)가 큰 상품을 추천한다. 이 모델을 Aggregate Time Distribution(ATD) 모델이라고 부른다.

    [1] G. Casella. 1985. An Introduction to Empirical Bayes Data Analysis. Vol. 39. The American Statistician 39(2): 83-87, 1985.

    3.3 Poisson-Gamma Model


    개별 고객에 대해 추천상품 후보를 생성하고 순위를 매기는 데 모델은 음이항분포(NBD)에 기반한 모델[6, 10]이 있으며, 전제조건에 기초한다.

    • 고객의 반복 구매는 반복구매 비율 λ\lambda의 homogeneous Poisson’s prcess(동질 포아송과정)을 따른다고 가정한다. 다른 말로 성공적인 반복 구매는 서로 독립으로 가정한다.
    • 반복구매 비율 λ\lambda에 대해 감마 사전분포를 가정하며, 이는 모든 고객에 대해, shape α\alpha와 rate β\beta 파라미터를 갖는 감마분포를 가정한다.

    음이항분포 모델은 베이지안 모델로, 사건은 포아송분포와 λ\lambda에 대한 감마사전분포로 이루어진다. 따라서, 이를 PG(포아송-감마) 모델로 부른다.

    PG 모델에서 상품에 기반한 감마분포는 경험적[1]방법으로 추정하며, 반복구매 고객들의 구매비율에 대한 최대우도 추정치로 구한다. 고객의 구매비율의 베이지안 추정은 식 7을 이용한 사전분포와 고객 자신의 과거 구매 이력을 결합한 것이다.

    이 때, αAi,βAi\alpha_{A_{i}}, \beta_{A_{i}}는 Ai 상품에 대한 감마사전분포의 shape와 rate이다. k는 고객 Cj가 A를 구매한 횟수이며, t는 첫 구매시간과 현재 시간까지의 시간 경과이다.

    rate 파라미터는 식 7을 이용한 추천 모델 RAiR_{A_{i}}는 포아송 분포를 따른다고 가정하며, 확률질량함수는 식 8과 같다.

    m은 미래 기대 구매 횟수이다. ATD나, RCP와 유사하게, QAiQ_{A_i}는 고정 상수로 식 5를 만족하는 반복구매가능한 상품에 대한 상품만 취급한다. Q와 R을 결합한 식 2를 통해 시간간격 t에 대해 각 고객이 반복구매상품을 구매할 확률을 구해 추천하고 랭킹할 수 있다.

    데이터로부터 사전 분포를 추정하는 이 방법은 데이터가 제공되기 전에 사전 분포가 고정된 것으로 가정되는 표준 베이지안 방법과 대조되는 경험적 베이지안 방법(Empirical Bayesian method)로 알려져 있다. 좀더 자세히 말하면, PG 모델은 파라메트릭 경험적 베이즈 모델이며, 가능도 분포와 사전 확률분포가 파라메트릭 형태를 갖는 fully Bayesian hierarchical model의 근사로 볼 수 있다. 이 모형은 특정 고객의 특정 상품에 대한 총 구매를 활용해 개인화가 가능한 모델이다. [6], [10]은 이 모델을 사용한 첫 연구이다.

    [6]  A.S.C Ehrenberg. 1959. The Pattern of Consumer Purchases. Vol. 8. Journal of Royal Statistical Society, Series C (Applied Statistics). [10] 1. G.L. Graham. 1969. NBD Model of Repeat-Purchase Loyalty: An Empirical Investigation. Vol. 6. Journal of Marketing Research.

    3.4 Modified Poisson-Gamma Model


    본래 PG모델은 총 구매 행동을 예측하는 맥락에서 개발되었다. 따라서 개별 고객에 대한 예측을 위해 사용가능하지만, 일부 가정은 추천 측면에서 반직관적이다.

    특히, 동질 포아송 가정은 소모품과 같은 제품에서는 정확하지 않을 수 있다. 이론적으로 동질 포아송 과정이 사건 발생확률과 시간이 서로 독립이기 때문이다.

    cf) 포아송 과정: t시간동안 발생한 사건의 수인 확률 과정, 발생 사건의 수가 포아송 분포를 따름 https://analysisbugs.tistory.com/14?category=837870

    대부분의 제품에 대해 고객이 제품을 구매한 직후에 동일한 제품을 구매하는 필요성이 적고, 시간이 지남에 따라 필요가 달라지기 때문에, 고객의 구매 행동(사건)과 시간에 독립적이지 않다.

    동질포아송과정의 고정된 반복구매 비율 λ\lambda에 대한 과정이지만, 식 7로 구해지는 반복구매 비율은 시간에 따라 변한다. 반복구매 비율은 고객이 Ai라는 제품을 k번 구매 첫 구매 이후 지난 시간 t로 구해진다. λ\lambda의 k번째 구매 직전의 추정치는 k1+αt+β{k-1 + \alpha} \over {t^{-} + \beta} 이며, 구매 직후에는 k+αt++β{k + \alpha} \over {t^{+} + \beta} 이다. 즉, 반복 구매 비율의 추정치는 구매한 직후에 더 커지게 된다. 일정한 반복구매비율의 합리적 추정치이지만, 이를 추천을 위한 랭킹으로 사용하면 이전 구매 직후 제품의 추정 구매율이 가장 큰 상황이 발생한다. 이는 우리가 기대하는 것과 정반대이다.

    PG 모델의 또 다른 문제는 제품의 시간 분포를 모델링하는 동안, 반복구매고객 확률인 RCP를 포함하지 않는다는 것이다. PG모델은 RCP를 필터링하는 용도로만 사용하며, RCP는 추천모델에 통합할 수 있는 중요한 시간 독립적 신호이다. 이러한 문제를 해결하기 위해 Modified Poisson-Gamma(MPG) model을 제안하며 이는 아래와 같이 가정한다.

    • 고객의 구매들은 서로 상관관계가 있으며, 반복구매는 수정된 포아송 과정이라 부르는 과정을 따른다. 이 과정은 반복구매비율 λ\lambda를 사용하고 λ\lambda는 반복구매 상품을 마지막 반복구매한 시간에 의존하는 것이 동질 포아송과정과 다르다.
    • 반복구매 비율 λ\lambda에 대해 감마 사전분포를 가정하며, 이는 모든 고객에 대해, shape α\alpha와 rate β\beta 파라미터를 갖는 감마분포를 가정한다.

    PG모델과 같이 MPG도 제품마다 감마분포를 사용하며, 경험적[1]방법으로 추정한다. 하지만, 반복구매비율 계산식인 식 7을 수정하는 것을 제안한다. 제안하는 수정 방법은 고객이 해당 제품을 처음 마지막으로 구매한 것을 기준으로 특정 제품에 대해 알려진 평균 반복 구매 기간을 추정할 수 있다는 사실에 기반한다. 평균 반복구매 시간 간격 근처에서 가장 높은 반복구매율을 부여하고, 반평균반복 구매 시간이 지나면 반복구매율이 낮아지도록 설정한다.

    고객 Cj와 상품 Ai 에대하여,

    tpurcht_{purch}: 첫 구매와 마지막 구매의 시간간격

    tmeant_{mean}: 추정된 평균 반복구매 시간간격

    tt : 마지막 구매와 현재의 시간간격

    t<2tmeant < 2 t_{mean} 에 대하어 MPG모델의 반복구매비율은 아래와 같다.

    이 때, αAi,βAi\alpha_{A_{i}}, \beta_{A_{i}}는 Ai 상품에 대한 감마사전분포의 shape와 rate이다. k는 고객 Cj가 A를 구매한 횟수이다. 추가로, t2tmeant \ge 2t_{mean}인 고객과 상품에 대해서는 실 7로 반복구매배율을 설정한다. 2tmean2t_{mean} 이 PG모델과 MPG모델로 구분되는 지점이다. 해당 지점에서는 PG모델과 MPG모델이 같다. 시간이 지남에 따라 반복구매 비율은 서서히 감소한다.

    RAiR_{A_{i}}는 식8로 계산되며, Q(Ai)Q(A_{i})RCPAiRCP_{A_i}로 구한다. 그리고 PAi(t)P_{A_i}(t)가 가장 큰 제품을 순서로 추천한다.

    구현 예시


    댓글

Designed by Tistory.