طبق اصول مشتری مداری، وفاداری برای هر ســازمانی اهمیت استراتژیک دارد. اﻣﺮوزه، ﺷﻨﺎﺧﺖ و پیش بینی ﻧیازﻫﺎی ﻣﺸﺘﺮﻳﺎن ﺑﺮای سازمان ها از اهمیت ﺧﺎﺻـی ﺑﺮﺧﻮردار اﺳﺖ. ﻣﺸﺘﺮی ﺑﻪ ﻋﻨﻮان عاملی ﻛلیدی و ﻣﺤﻮری در ﺑﻘﺎی آﻧﻬﺎ اﻳﻔﺎی ﻧﻘﺶ می ﻛﻨﺪ وجهت گیری کلیه اهداف، اﺳﺘﺮاﺗﮋی ﻫﺎ و ﻣﻨﺎﺑﻊ ﺣﻮل ﻣﺤﻮر ﺟﺬب و ﻧﮕﻬﺪاری مشتری می ﺑﺎﺷﺪ. ﺣﻔﻆ و ﺗﻘﻮﻳﺖ وفاداری ﻣﺸﺘﺮﻳﺎن ﺑﺮای ﺷﺮﻛﺖ هایی ﻛﻪ دﻏﺪﻏﻪ ﺣﻔﻆ و ﺗﻮﺳﻌﻪ ﺟﺎﻳﮕﺎه رﻗـﺎبتی ﺧﻮﻳﺶ را در ﺑﺎزار دارﻧﺪ، ﭼﺎﻟش اﺳﺘﺮاﺗﮋﻳﻚ تلقی می ﺷﻮد؛ چالشی که با پیش بینی مشتری های وفادار می تواند تا حدی هموار گردد. بی تردید، مهم ترین وجه تمایز یک مشتری وفادار از یک خریدار عادی از دید فروشنده این است که مشتری برای خرید همواره به او مراجعه نماید. در این جا نشان داده می شود که چگونه از تکنیک های یادگیری ماشین و پیش بینی مبتنی بر یادگیری برای دستیابی به این مهم استفاده می شود. #مقدمه در سال های اخیر توجه به وفاداری مشتری به طور قابل توجهی افزایش یافته است به طوری که امروزه وفاداری مشتری به عنوان دستورالعملی برای افزایش کیفیت و درآمد مطرح است. نگهداری مشتریان موجود سودآورتر از جذب مشتریان جدید است. در طول توسعه نرمال روابط مشتری، هزینه بازاریابی و فروش به مشتریان موجود به تدریج کاهش می یابد و حاشیه کلی توسعه به طور بالقوه افزایش می یابد. چنین مواردی اهمیت پیش بینی مشتریان وفادار را دو چندان کرده است. به طور کلی پیش بینی مشتریان وفادار با توسعه یک مدل پیش گو [^1] آغاز می شود. اولین گام در توسعه چنین مدلی جمع آوری داده هایی خاص در مورد هر مشتری است که ماهیت این داده ها در بخش ۱.۳ توضیح داده خواهد شد. داشتن چنین داده هایی می تواند برای برآورد احتمال آنکه مشتری مجددا در یک بازه زمانی معین در آینده از فروشنده ای خاص خرید کند، کفایت نماید. ## بررسی مسئله ###هدف هدف مسئله پیش بینی آن است که چه مشتریانی برای خرید مجددا به یک فروشنده خاص باز می گردند. توجه شود که در این مسئله تعیین نوع وفاداری مشتری بخشی از هدف نیست، بلکه هدف آن است که وفادار بودن یا نبودن یک مشتری بررسی شود. برای آنکه منظور از نوع وفاداری مشخص شود، ذکر این نکته ضروری است که همواره وفاداری به صورت پیوستاری در نظر گرفته می شود که از وفاداری با ثبات تا وفاداری بی ثبات گسترده است. این موضوع در مثال زیر به خوبی بیان شده است. فرض کنید دو محصول مختلف A,B در یک فروشگاه وجود دارد. **۱ – وفاداری با ثبات : **مشتریانی که در تمام اوقات یک محصول یکسان را می خرند : A,A,A,A ، نشان دهنده این نوع وفاداری است. **۲ – وفاداری نسبی یا موقت : **خریدارانی که به دو یا سه محصول وفادار می مانند : A ، A ، B ، A ، B ، نشان دهنده این نوع رفتار خرید است. **۳ – وفاداری بی ثبات : **مشتریانی که پس از چند بار خرید از یک مارک یا محصول ، محصول یا مارک دیگر را خریداری می کنند A ، A ، A ، B ، B ، B در واقع در این مسئله تنها مشخص می گردد که آیا یک مشتری وفادار است یا خیر (و به عبارت دقیق تر ، میزان احتمال وفاداری برای یک فرد با روش های موجود تعیین می گردد)، اما آنکه اگر مشتری وفادار است کدام یک از رفتار های وفاداری را داراست (و به عبارتی به چه احتمالی خریدار از نوع وفادار با ثبات ، نسبی و بی ثبات است) جزئی از هدف در این مسئله نیست. در حالت کلی، این موضوع می تواند مسئله ای پیچیده تر و چالش بر انگیز تر از مسئله کنونی باشد و در حوزه مدل های توصیفی [^2] پیشگو قرار می گیرد. ###مدل * به طور کلی هر دو مدل توصیفی و پیشگو در حوزه فرگشاشناسی پیشگو قرار دارند. همان طور که پیشتر نیز اشاره شد، پیدا کردن مشتریان وفادار با توسعه یک مدل پیشگو صورت خواهد گرفت. در این قسمت به اختصار به تفاوت چنین مدلی با یک مدل توصیفی پرداخته می شود. **۱ – مدل پیشگو: **فرآیند به کارگیری یک مدل آماری یا یک الگوریتم داده کاوی بر روی یک داده خاص که با هدف پیش گویی مشاهدات آینده صورت گیرد. در واقع صرف نظر از دیدگاه پایه روش ها، هر روشی ( مانند بیز ) که در مورد خروجی مطلوبمان پیشگویی داشته باشد یک مدل پیشگو است. در این مدل ها، در حالت خاص بر پیش بینی غیرتصادفی[^3] تاکید می شود که در آن هدف پیش بینی مقدار متغیر خروجی فرضی y با در دست داشتن متغیر ورودی فرضی x برای مشاهدات جدید است[5]. **۲ – مدل توصیفی: **این مدل ها ارتباط بین داده ها را کمی می کنند به طوری که معمولا از آنها برای دسته بندی مشتریان استفاده می شود. بر خلاف مدل های پیشگو که بر آنالیز رفتاری یک مشتری خاص تمرکز دارند، مدل های توصیفی هرگونه ارتباط موجود میان مشتریان و محصولات را شناسایی می کنند. همچنین بر خلاف مدل های پیشگو، در مدل توصیفی این گونه نیست که هر مشتری بر اساس احتمال انجام یک عمل خاص ( مثلا خرید مجدد ) ارزش گذاری یا رتبه بندی شود. در عوض، از چنین مدل هایی به عناون مثال برای دسته بندی مشتریان بر اساس نوع محصولات مورد علاقه استفاده می شود[5]. ###دادگان بدیهی است که از دادگان موجود در صفحه مسابقه در این جا استفاده خواهیم کرد. البته با این تغییر که حجم بالای داده های مربوط به تراکنش ها که حدود 22 گیگابایت در حالت غیر فشرده و برابر 350 میلیون سطر است، به حدود 1 گیگابایت و 15 میلیون سطر کاهش می یابد. این کار با استفاده از یک [کد](https://www.kaggle.com/c/acquire-valued-shoppers-challenge/forums/t/7666/getting-started-data-reduction/) پایتون صورت می گیرد. ## اصطلاحات پیش از هر چیز، توجه به واژگان و اصطلاحات زیر حائز اهمیت است: * **نرخ ریزش[^4]: **میزان درصد مشتری را که یک موسسه در طول یک مدت معین ( عموما یک سال ) از دست می دهد نشان می دهد. به عنوان مثال زمانی که یک موسسه با نرخ ریزش ۲۰ درصد عمل می کند ( نرخ جذب ۸۰ درصد است )، به معنی جانشین شدن یک مشتری در هر ۵ سال است. به عبارت دیگر، تمام مشتریان درعرض یک مقطع ۵ سالــــه جایگزین می گردند. * **ارزش طول عمر[^5]: **مقطعی که در طول آن موسسه قادر به تولید درآمد از مشتری است ارزش طول عمر مشتری نامیده می شود و گاهی به اختصار آن را عمر [^6] مشتری می نامند. بدیهی است که این مقدار در مثال فوق برابر ۵ سال است. * **نرخ تراکنش [^7]: **منظور از نرخ تراکنش همان میزان خرید ( نرخ خرید ) است. ## داده های اساسی[^8] به طور کلی، برای انجام پیش بینی در مورد وفاداری مشتریان دانستن دو چیز در مورد آنها پر اهمیت است: ** ۱ – تاخر یا تازگی[^9]خرید: **آخرین تراکنشی که خریدار انجام داده است چه زمانی بوده است. ** ۲ – دفعات یا فرکانس[^10] خرید: **در یک بازه زمانی مشخص،خریدار چه تعداد تراکنش انجام داده است. تجربه نشان داده است که رفتار گذشته مصرف کننده بهترین پیش بینی کننده رفتار آینده وی است. خریداری که رفتار خرید خود را تکرار می کند یعنی بطور مثال برای چندمین بار از یک فروشگاه خرید می کند به احتمال بیشتری مجددا رفتار خود را تکرار خواهد کرد نسبت به فردی که تنها یک بار خرید داشته و تاکنون آن را تکرار نکرده است. در واقع فرکانس یا تعداد دفعات خرید می تواند عاملی مهم در تعیین احتمال مربوط به خرید مجدد باشد.اما اگر بخواهیم اقدامات آینده مشتری و ارزش وی را با دقت بیشتری پیش بینی نماییم، لازم است زمان انجام آخرین تراکنش ( خرید ) را نیز در نظر بگیریم. در نظر گرفتن عامل تاخر همیشه به ما این قابلیت را خواهد داد تا بفهمیم اکنون چه می گذرد چرا که آن چه که از همه چیز مهم تر است وضعیت فعلی است. در واقع می توان این گونه گفت که با ارزش ترین مشتری ها کسانی هستند که اخیرا خرید کرده اند و نیز رفتار تکرار خرید را دارا بوده اند. خریدارانی که پیشتر رفتار خرید تکراری خود را داشته اند امااخیرا خرید نکرده اند، از نظر ارزش در رده بعدی قرار می گیرند. # کارهای مرتبط تا به این جا سعی شد مسئله، هدف و اهمیت آن به خوبی تشریح گردد. همچنین مدل و داده های اساسی برای حل مسئله بیان شد. اکنون به معرفی روش های مختلفی می پردازیم که مسئله مورد نظر به کمک آنها حل خواهد شد. ## روش پارتو - توزیع دو جمله ای منفی[^11] یکی از رایج ترین و البته پیچیده ترین روش هایی که برای پیدا کردن مشتریان وفادار وجود دارد، استفاده از چارچوبی به نام پارتو- توزیع دو جمله ای منفی است که در سال 1987 توسط شخصی به نام اشمیت لین[^12] مطرح شد. بی تردید این روش یکی از قدرتمند ترین چارچوب ها برای انجام پیش بینی های لازم در زمینه وفاداری مشتریان است، اما پیاده سازی این مدل به ویژه به هنگام تخمین پارامتر ها بسیار دشوار و چالش برانگیز است و شاید به همین دلیل باشد که تا به امروز کمتر کسانی روی به پیاده سازی کامل این روش آورده اند[1]. ###بررسی روش در این چارچوب رفتار خرید مشتری مدل می شود ولی ریزش مشتری نادیده گرفته می شود. بدین معنا که در این چارچوب فرض بر این است که مشتریان در یک بازه زمانی مشخص با یک نرخ ثابت اما به صورت تصادفی[^13] خرید می کنند و سپس غیر فعال می شوند. منظور از غیر فعال شدن مشتری در این روش آن است که فرآیند خرید با یک نرخ ثابت از این پس ادامه پیدا نمی کند. بدیهی است که در مقابل فعال بودن مشتری به معنای آن است که مشتری از دست نرفته است و هنوز عمل خرید را با یک نرخ معینی انجام می دهد. لازم به ذکر است که در این روش زمان از دست رفتن یا ریزش با استفاده از مدل زمانی پارتو (ترکیب نمایی-گاما ) بیان می شود. همیچنین رفتار خرید مکرر به هنگام فعال بودن با استفاده از مدل شمارشی توزیع دوجمله ای منفی ( ترکیب پواسن- گاما ) شبیه سازی می گردد. به بیان ساده تر، در این روش برای آنکه مشخص شود آیا مشتری از دست رفته است یا خیر از یک سکه استفاده می کنیم و سپس از یک تاس تا مشخص شود که یک مشتری چه تعداد از اجناس یا اقلام را سفارش خواهد داد[1]. ###فرض ها مدل پارتو – توزیع دوجمله ای منفی مبتنی بر پنچ فرض اساسی است که درک آنها کمک زیادی به حل مسئله خواهد کرد: **1)** تا زمانی که یک مشتری فعال است، تعداد تراکنش هایی که در یک بازه زمانی به طول $t$ انجام می دهد یک توزیع پواسن با میانگین $\lambda t$ است. **2)** ناهمگنی[^14] در نرخ ترکنش $\lambda $ در بین مشتریان دارای یک توزیع گاما با پارامتر شکل[^15] $r$ و پارامتر مقیاس[^16] $\alpha $ است. **3)** هر مشتری طول عمری برابر با $\tau$ دارد. این نقطه از زمان که مشتری در آن غیر فعال می شود یک توزیع نمایی با نرخ ریزش ای برابر $\mu$ است. **4)** ناهمگنی در نرخ های ریزش در بین مشتریان دارای یک توزیع گاما با پارمتر شکل $s$ و پارامتر مقیاس $\beta$ است. **5)** نرخ تراکنش $\lambda $ و نرخ ریزش $\mu$ به طور مستقل از هم در بین مشتریان تغییر می کنند. ###شرح روش همانطور که در بخش ۱.۳ نیز اشاره شد، در هر مدلی از جمله مدل پارتو- توزیع دو جمله ای منفی دانستن آنکه در یک بازه معین، زمان آخرین تراکنش چه زمانی بوده و نیز چه تعداد تراکنش در آن بازه انجام شده است الزامی است. نمادی که برای نشان دادن این موضوع استفاده می شود به صورت $(X = x, t_{x} , T )$ است که در آن $x$ تعداد تراکنش های انجام شده در بازه زمانی $(0-T]$ می باشد و ($ t_{x}$ ($ T \ge t_{x} > 0 $ زمان انجام آخرین تراکنش است . با در دست داشتن این اطلاعات می توان موارد زیر را به بدین صورت تعریف کرد و آنها را محاسبه نمود: **۱) **مقدار $E(x(t))$ برابر است با تعداد تراکنش های مورد انتظار در یک بازه زمانی به طول $t$ **۲) **مقدار $P(X(t)=x)$ برابر است با احتمال آنکه در یک بازه زمانی به طول $t$، تعداد تراکنش هایی برابر $x$ انجام شود. در واقع احتمال آنکه در زمان $x$ ،$t$ تراکنش انجام شود. **۳) **مقدار $E(Y(t) | X=x, t_{x}, T)$ برابر است با تعداد تراکنش های مورد انتظار در یک بازه زمانی به طول $(T, T + t]$ برای یک نفر با رفتار $(X = x, t_{x} , T )$ در ادامه با در دست داشتن مقادیر فوق و انجام محاسبات ریاضی مربوطه[2]، تابع احتمال مدل پارتو - توزیع دو جمله ای منفی بصورت رابطه زیر بدست خواهد آمد: $$L(r,\alpha,s,\beta|x,t_{x},T)=\frac{\Gamma(r+x)\alpha^r\beta^s}{\Gamma(r)}(\frac{1}{(\alpha+T)^{r+x}(\beta+T)^s}+(\frac{s}{r+s+x})A_{0})$$ توجه نمایید که هر یک از پارامتر های موجود در رابطه فوق، در قسمت ۲.۱.۲ ( فرض ها ) بیان شده است. اکنون لازم است تا ضریب $A_{0}$ مشخص شود. در صورتی که $\alpha \ge \beta$ آنگاه ضریب $A_{0}$ به صورت زیر خواهد بود[2]: $$A_{0}=(\frac{F_{1}(r+s+x,r+x;r+s+x+1;\frac{\beta-\alpha}{\beta+t_{x}})}{(\beta+t_{x})^{r+s+x}}) - (\frac{F_{1}(r+s+x,r+x;r+s+x+1;\frac{\beta-\alpha}{\beta+T})}{(\beta+T)^{r+s+x}}) (*) $$ همچنین در صورتی که $\alpha \le \beta$ آنگاه ضریب $A_{0}$ به صورت زیر می باشد[2]: $$A_{0}=(\frac{F_{1}(r+s+x,s+1;r+s+x+1;\frac{\alpha-\beta}{\alpha+t_{x}})}{(\alpha+t_{x})^{r+s+x}}) - (\frac{F_{1}(r+s+x,s+1;r+s+x+1;\frac{\alpha-\beta}{\alpha+T})}{(\alpha+T)^{r+s+x}}) (**) $$ بدیهی است که در حالت تساوی متغیر های $\alpha$ و $\beta$، هر دو رابطه مربوط به محاسبه ضریب $A_{0}$ با یکدیگر برابر خواهند شد. در هر یک از روابط $(*)$ و $(**)$ تابع $F_{1}$ ، تابع فوق هندسی گاوس [^17] است که در منبع [2] در معادله شماره (1) بیان شده است. همانطور که مشاهده می کنید، تابع احتمال مدل پارتو - توزیع دو جمله ای منفی بسیار پیچیده و شامل چندین تقریب از تابع هندسه فضایی گاوس است.به همین دلیل امروزه، عموما از این روش در عمل استفاده نمی شود. در واقع، اگر چه این روش یکی از قدرتمند ترین روش ها برای انجام پیش بینی های لازم در زمینه وفاداری مشتریان است، اما پیاده سازی این مدل به دلیل پیچیدگی فرمول هایش بسیار دشوارتر از سایر روش های موجود است. در این میان، برخی از این روش ها می توانند با همان دقت و در عین حال با پیچیدگی کمتری خروجی را تولید کنند. در ادامه چنین روش هایی بیان خواهند شد. شایان ذکر است که در همه ی روش هایی که در ادامه مطرح می شود، بسیاری از فرض های موجود در روش پارتو - توزیع دو جمله ای منفی باز هم صادق است و بنابراین از تکرار توضیح آنها پرهیز می شود.در واقع، در هر روش ضمن تبیین نکات متمایز، نکات مشابه نیز بیان می شود اما تنها موارد اختلافی توضیح داده خواهند شد. ## روش بتا ژئومتریک - توزیع دو جمله ای منفی[^18] روش بتاژئومتریک – توزیع دو جمله ای منفی به طور کلی بیشتر جنبه های پارتو – توزیع دو جمله ای منفی را داراست و تنها تغیرات کوچکی اعمال شده است. اما همین تغییرات کوچک باعث می شود که فرمول ها بسیار ساده تر از روش قبل گردند و پارامتر های مختلف به آسانی بدست آیند. با این حال عموما نتایج گرفته شده بسیار به روش قبل نزدیک اند که شاید همین موضوع دلیلی بر ترجیج این روش بر روش قبلی باشد[1]. ###بررسی روش تنها تفاوت با روش پارتو- توزیع دو جمله ای منفی در این جاست که چگونه و چه زمانی مشتری ها غیر فعال می شوند. همان طور که پیشتر نیز توضیح داده شد، منظور از غیر فعال شدن مشتری در یک زمان خاص آن است که از آن زمان به بعد مشتری به انجام خرید با یک نرخ ثابت ادامه نمی دهد چرا که اصولا در این دو روش فرض بر این است که همواره مشتری با یک نرخ معین و ثابت به طور مداوم ( هر چند به صورت تصادفی ) اقدام به خرید می کند. در واقع، در مدل پارتو-توزیع دو جمله ای منفی فرض می شود که ریزش در هر نقطه ای از زمان، مستقل از زمان رخداد واقعی خرید ها، می تواند روی دهد. حال اگر در عوض فرض کنیم که ریزش بلافاصله پس از هر خرید روی می دهد می توانیم این فرآیند را با استفاده از یک مدل بتا ژئومتریک شبیه سازی کنیم. ###فرض ها مدل بتاژئومتریک - توزیع دوجمله ای منفی مبتنی بر پنچ فرض زیر اساسی است: **۱)** تا زمانی که یک مشتری فعال است، تعداد تراکنش هایی که در یک بازه زمانی به طول $t$ انجام می دهد یک توزیع پواسن با نرخ تراکنش $\lambda $ است. این معادل آن است که فرض کنیم زمان بین تراکنش ها دارای توزیع نمایی با نرخ تراکنش $\lambda $ است. یعنی: $$ f(t_{i} | t_{i-1} , \lambda) = \lambda e^{-\lambda(t_{i}-t_{i-1}) } , t_{i}> t_{i-1} \ge 0 $$ **۲)** ناهمگنی در $\lambda $ دارای یک توزیع گاما به صورت زیر است: $$f(\lambda | r , \alpha) = \frac{\alpha^r\lambda^{r-1}e^{-\lambda\alpha}}{\Gamma(r)} , \lambda > 0$$ **۳)** پس از هر تراکنش، مشتری با احتمال $p$ غیر فعال می شود. به عبارتی، احتمال آنکه بلافاصله پس از تراکنش $j $ ام مشتری غیر فعال شود به صورت زیر است: $$P(inactive-immediately-after- j_{th}-transaction) = p(1-p)^{j-1} , i = 1,2, 3, ... $$ ** ۴)** ناهمگنی در $p$ دارای یک توزیع بتا به صورت زیر است: $$f(p | a ,b ) =\frac{p^{\alpha-1}(1-p)^{b-1}}{B(a,b)} , 0 \le p \le 1 $$ که در آن $B$، همان تابع بتا است و برابر $\frac{\Gamma(a)\Gamma(b)}{\Gamma(a+b)}$ می باشد. ** ۵)** نرخ تراکنش $\lambda$ و احتمال ریزش $p$ به طور مستقل از هم در بین مشتریان تغییر می کنند. ###شرح روش فرض کنید یک مشتری $x$ تراکنش در بازه زمانی $(0-T]$ انجام داده باشد به طوری که تراکنش ها به ترتیب در زمان های $t_{1},t_{2},...,t_{x}$ انجام شده باشند. شکل ۱-۲ به خوبی چنین موضوعی را نشان می دهد. ![ شکل ۱-۲ تراکنش ها در بازه زمانی مفروض ](https://boute.s3.amazonaws.com/202-bg-nbd.png) حال با در نظر گرفتن موارد زیر تابع احتمال، به سادگی بدست خواهد آمد: * احتمال آنکه اولین تراکنش در زمان $t_{1}$ رخ دهد، یک توزیع نمایی استاندارد به صورت $\lambda e^{-\lambda t_{1}}$ است. * احتمال وقوع دومین تراکنش در زمان $t_{2}$ برابر احتمال فعال باقی مانده در $t_{1}$، ضرب در توزیع نمایی استاندارد مربوطه است که برابر است با: $$(1-p)\lambda e^{-\lambda(t_{2} - t_{1})}$$ و این روند همین طور برای هر تراکنشی ادامه می یابد تا آنکه به تراکنش $x$ ام می رسیم: * احتمال آنکه تراکنش $x$ ام در مکان $t_{x}$ روی دهد برابر احتمال فعال باقی مانده در $t_{x}$، ضرب در توزیع نمایی استاندارد مربوطه است که برابر است با: $$(1-p)\lambda e^{-\lambda(t_{x} - t_{x-1})}$$ * در نهایت، احتمال آنکه در بازه زمانی $(t_{x} - T]$ هیچ خریدی صورت نگیرد برابر احتمال آن است که یا مشتری در زمان $t_{x}$ غیر فعال شود و یا آنکه فعال بماند، اما در این بازه خریدی انجام ندهد که برابر است با: $$p + (1-p)e^{-\lambda(T-t_{x})}$$ در این روش نیز همانند روش پارتو - توزیع دو جمله ای منفی، فرض می شود که همه مشتریان در ابتدای کار فعال هستند لذا تابع احتمال برای خریداری که در بازه $(0-T]$ هیچ خریدی انجام نمی دهد به صورت تابع بقا[^19] نمایی استاندارد یعنی $e^{-\lambda t}$ است. از این رو، طبق آنچه که گفتیم می توان نتیجه گرفت تابع احتمال در روش بتاژئومتریک - توزیع دو جمله ای منفی به صورت زیر خواهد بود[1]: $$L(\lambda, p | X=x, T)=(1-p)^x\lambda^xe^{-\lambda T}+\delta_{x>0}p(1-p)^{x-1}\lambda^xe^{-\lambda t_{x} }$$ در رابطه فوق برای هر $ x > 0 $ داریم $\delta_{x>0} = 1$ و در غیر این صورت مقدار $\delta_{x>0}$ صفر است. ## مدل مرتبه ای بیز[^20] مدل مرتبه ای بیز یک مدل آماری است که در چند سطح مختلف به صورت سلسله مراتبی نوشته می شود و اصولا هدفش آن است که پارامتر های توزیع شرطی [پسین](https://en.wikipedia.org/wiki/Posterior_probability) [^21]را به کمک تئوری بیز برآورد کند. در واقع در این روش، زیر مدل ها با یکدیگر ترکیب می شوند تا یک مدل سلسله مراتبی ایجاد گردد. سپس از الگوریتم بیز برای همگام سازی آنها با داده های مشاهده شده استفاده می شود که در نتیجه ی آن توزیع احتمال پسین ایجاد می گردد که گاه از آن تحت عنوان برآورد احتمال بروز رسانی شده[^22] نیز یاد می شود. ذکر این نکته نیز خالی از لطف نیست که عموما مدلسازی مرتبه ای هنگامی استفاده می شود که اطلاعات در سطوح مختلف واحد های مشاهده قرار داشته باشند. در چنین شرایطی، تجزیه و تحلیل سلسله مراتبی به درک بهتر مسئله به ویژه مسئله های چند پارامتری کمک خواهد کرد. ### مراحل به طور کلی برای نگرش بیزی به مسئله، نخست باید مراحل زیر در نظر گرفته شود: * دانش موجود در مسئله را به طور احتمالاتی فرموله کنیم. برای این کار باید مقادیر کیفی دانش را به صورت توزیع احتمال، فرضیات استقلال و غیره مدل کرد. چنین مدلی دارای پارامتر های ناشناخته ای خواهد بود که برای هر یک از مقادیر ناشناخته توزیع احتمال اولیه ای در نظر گرفته می شود که بازگو کننده باور ما به محتمل بودن هر یک از این مقادیر بدون دیدن داده است. این توزیع احتمال اولیه را در اصطلاح توزیع احتمال [پیشین](https://en.wikipedia.org/wiki/Prior_probability) [^23] می نامند. * سپس با جمع آوری داده، بررسی و مشاهده آن مقدار توزیع احتمال ثانویه که توزیع احتمال پسین نیز نامیده می شود محاسبه می گردد. * حال با استفاده از توزیع احتمال پسین به یک نتیجه گیری در مورد [عدم قطعیت](https://en.wikipedia.org/wiki/Uncertainty) می رسیم و با میانگین گیری روی مقادیر احتمال ثانویه پیش بینی انجام می دهیم. ###اجزا مدل مرتبه ای بیز از دو مفهوم مهم در استخراج توزیع پسین یا ثانویه استفاده می کند: * ** ابر پارامتر[^24]:** پارامتر موجود در توزیع پیشین را ابر پارامتر می نامند. * ** توزیع احتمال ابر پیشین[^25]:** توزیع پارامتر موجود در توزیع پیشین را توزیع احتمال ابر پیشین گویند. فرض کنید متغیر تصادفی $Y$ دارای یک توزیع نرمال با میانگین $\theta$ و واریانس یک باشد. به عبارتی $Y | \theta- has- N(0,1)$ .حال هنگامی که می گوییم پارامتر $\theta$ یک توزیع پیشین دارد بدان معناست که دارای یک توزیع نرمال با میانگین $\mu$ و واریانس یک است یعنی $\theta | \mu -has- N(\mu,1)$. از طرفی پارامتر $\mu$ دارای یک توزیع دیگر است برای مثال توزیع نرمال $N(0,1)$. در چنین شرایطی پارامتر $\mu$ ابر پارامتر نامیده می شود و توزیع آن، که در این حالت همان $N(0,1)$ است را توزیع احتمال ابر پیشین می گویند. ###چارچوب اکنون به تشریح چارچوب کلی مورد استفاده در مدل مرتبه ای بیز می پردازیم. فرض کنید $Y_{j}$ یک مشاهده و $\theta_{j}$ پارامتر کنترل کننده فرآیند تولید $Y_{j}$ باشد. همچنین فرض کنید $\theta_{1}$،$\theta_{2}$،...، $\theta_{j}$ به طور تصادفی و جابجا پذیر از یک جامعه آماری مشترک با توزیع کنترل شونده توسط ابر پارامتر $\phi$ انتخاب گردند. توجه شود که در اینجا پارامتر های $\phi$ و $\theta$ همانند هر پارامتر دیگری تنها دو متغیر تصادفی هستند. در این صورت مدل مرتبه ای بیز شامل سلسله مراتب زیر خواهد بود: $$Stage-1: y_{j} |\theta_{j}, \phi - has - P(y_{j}| \theta_{j},\phi)$$ $$Stage-2: \theta_{j}|\phi - has - P(\theta_{j}|\phi)$$ $$Stage-3: \phi-has-P(\phi)$$ در مراحل فوق احتمال $P(y_{j}| \theta_{j},\phi)$ همان احتمال مطلوب می باشد و منظور از $P(\theta_{j},\phi)$ همان توزیع احتمال پیشین یا اولیه مربوطه است. بدیهی است که تابع احتمال مطلوب تنها از طریق متغیر تصادفی $\theta_{j}$ به $\phi$ وابسته است. حال با استفاده از قضیه بیز می دانیم: $$P(\theta_{j},\phi) =P(\theta_{j}|\phi)P(\phi)$$ که در آن $\phi$ ابر پارامتر و $P(\phi)$ توزیع احتمال ابر پیشین می باشد. لذا احتمال پسین یا ثانویه به صورت زیر خواهد بود: $$P(\phi,\theta_{j}|y)= P(y_{j}|\theta_{j}) P(\theta_{j},\phi)$$همانگونه که در قسمت ۲.۳.۱ نیز توضیح داده شد، اکنون که احتمال ثانویه بدست آمده است با میانگین گیری روی مقادیر احتمال آن می توان پیش بینی های لازم را انجام داد. ###بررسی و شرح روش پیش از آنکه ادامه دهیم، ابتدا لازم است با زنجیره مارکوف - مونت کارلو[^26] آشنا شویم. زنجیره مارکوف – مونت کارلو روشی است که از آن برای نمونه برداری از یک توزیع احتمال استفاده می شود که در آن یک [زنجیره مارکوف](https://en.wikipedia.org/wiki/Markov_chain) که دارای توزیع مورد نظر است طی چندین مرحله ساخته می شود. گفتنی است که این توزیع مورد نظر را در اصطلاح [توزیع تعادل](https://en.wikipedia.org/wiki/Markov_chain#Steady-state_analysis_and_limiting_distributions) زنجیره می نامند. در نهایت حالت زنجیره پس از چندین مرحله به عنوان نمونه ای از توزیع مطلوب در نظر گرفته می شود و هر چه تعداد گام های بیشتری برای نمونه برداری طی شود، کیفیت تقریب افزایش خواهد داشت. در شکل ۱-۳، زنجیره مارکوف – مونت کارلو، توزیع آبی رنگ را با توزیع نارنجی تقریب می زند. ![شکل۱-۳ تقریب با استفاده از زنجیره مارکوف - مونت کارلو](https://boute.s3.amazonaws.com/202-MCMC.jpg) همانگونه که مشاهده می شود، با افزایش تعداد نمونه ها، تعداد گام های بیشتری در زنجیره طی می شود و بنابراین خطای تقریب کاهش می یابد. اکنون که با مفهوم زنجیره مارکوف - مونت کارلو آشنا شدیم، شرح مدل مرتبه ای بیز را ادامه می دهیم. همانگونه که پیشتر نیز توضیح داده شد، تعداد تراکنش های انجام شده توسط مشتری $j$ ام دارای یک توزیع پواسن با نرخ $\lambda_{j}$ است. همچنین فرض کنید احتمال ریزش پس از هر بار خرید برابر $p_{j}$ در نظر گرفته شود. ایده کلی مدل مرتبه ای بیز برای پیدا کردن مشتری های وفادار در شکل ۲-۳ نشان داده شده است[4]. ![شکل ۲-۳ مدلسازی فرکانس تراکنش ها](https://boute.s3.amazonaws.com/202-BHM.png) در شکل فوق، $t_{1}$ زمان وقوع اولین تراکنش، $t_{x}$ زمان وقوع آخرین تراکنش و $x$ تعداد تراکنش های انجام شده است. گفتنی است که این سه داده می توانند برای نمونه گیری از توزیع های شرطی در زنجیره مارکوف - مونت کارلو کافی باشند[4]. بدیهی است که هر یک از داده های اخیر به راحتی از داده های مربوط به پیشینه تراکنش های مشتریان قابل استخراج می باشد. اکنون با میانگیری روی مقادیر احتمال پسین یا ثانویه (که پیشتر در قسمت ۲.۳.۳ بدست آمد) و نمونه گیری به کمک زنجیره مارکوف - مونت کارلو، هر یک از مقادیر $p_{j}$ و $\lambda_{j}$ برآورد می گردند. بنابراین احتمال آنکه مشتری $j$ ام در $k$ بازه زمانی بعدی خریدی انجام دهد برابر است با: $$(1-p_{j})(1-e^{-k\lambda_{j}})(B.H.M)$$ شایان ذکر است که مدل مرتبه ای بیز می تواند با دقتی خوب مشتریانی که مجددا برای خرید باز می گردند را شناسایی کند. با این حال هنگامی که تعداد مشتریان بسیار زیاد شود، این روش در عمل کارایی خود را ز دست می دهد زیرا برای هر مشتری، زنجیره مارکوف - مونت کارلو باید صد ها بار تکرار شود[4]. به همین دلیل معمولا از این روش هنگامی استفاده می شود که تعداد مشتریان چندان زیاد نباشد. اما در صورتی که تعداد مشتریان بسیار زیاد باشد، روش مرتبه ای بیز با استفاده از [تقریب مبتنی بر رگرسیون](https://en.wikipedia.org/wiki/Regression_analysis) [^27] توسعه داده می شود. در مدل توسعه یافته دو چند جمله ای با استفاده از اصول رگرسیون ساخته می شوند و از آنها برای تخمین پارامتر های $p_{j}$ و $\lambda_{j}$ استفاده می گردد. بدین منظور، ابتدا پارمتر های $p_{j}$ و $\lambda_{j}$ با استفاده از مدل مرتبه ای بیز برای تعدادی معین و محدود از مشتری ها تخمین زده می شوند و سپس لگاریتم برآورد این پارامتر ها به عنوان ورودی در چند جمله های یاد شده قرار می گیرد. هنگامی که مقادیر پارامتر های $p_{j}$ و $\lambda_{j}$ برای هر مشتری به صورت منحصر به فرد از مدل مرتبه ای بیز توسعه یافته با تقریب رگرسیون بدست آمد، به طور مشابه در رابطه (B.H.M) قرار می گیرند تا احتمال آنکه هر مشتری در k بازه زمانی بعدی حداقل یک خرید انجام دهد بدست آید. لازم به ذکر است که استفاده از تقریب مبتنی بر رگرسیون در حالتی که جامعه آماری مورد مطالعه بسیار بزرگ باشد، می تواند حدود 180 برابر سریع تر از مدل مرتبه ای بیز ابتدایی عمل کند[4]. # آزمایشها # کارهای آینده # مراجع [1] Peter.S.Fader , Bruce Hardie , Ka Lok Lee. (Vol. 24:No. 2, Spring 2007, pp. 275-284). “Counting your customers” the Easy Way: An alternative to thePareto/NBD model. Marketing Science. [2] Peter S. Fader, Bruce G.S. Hardie. ( November 2005 ). A Note on Deriving the Pareto/NBD Model and Related Expressions [3] Babak Sohrabi, Amir Khanlari. ( Spring 2007,Vol. 14 No. 47, pp 7- 20 ) Customer lifetime value (CLV) measurement based on RFM model [4] Biswajit Pal , Ritwik Sinha , Abhishek Saha , Peter Jaumann and Subhasish Misra1.(2012 ). Customer Targeting Framework: Scalable Repeat Purchase Scoring Algorithm for Large Databases - Proceedings of 4th International Conference on Machine Learning and Computing [5] Galit Shmueli. (2010, Vol. 25, No. 3, 289–31). To Explain or to Predict? [6] Andrew S. C. Ehrenberg. (2000). Repeat Buying ( part two , chapter 3): "The repeat-buying structure of a market" [7] Jayanta Kumar Pal, Abhisek Saha, Subhasish Misra.(No 85, July 2010). Customer repeat purchase modeling- A Bayesian HierarchicalFramework. HP Labs technical report. [8] Ehrenberg, A (2000) "Repeat Buying", Journal of Empirical Generalisations in Marketing Science, Vol 5, No.2 [9] Andrew S. C. Ehrenberg. (2000). Repeat Buying ( part four, chapter 7): "The NBD Theory" [10] Berger, P. D. and Nasr, N. I. (1998). "Customer lifetime value: marketing models and applications", Journal of Interactive Marketing, 12(1), pp.17- 30. [11] Pfeifer, P. E. and Carraway, R. L. (2000). "Modeling customer relationships as Markov Chains", Journal of Interactive Marketing, 14(2), pp.43- 55. [12] Gupta, S. and Lehmann, D. R. (2003). "Customers as assets", Journal of Interactive Marketing, 17(1), pp.9- 24. [13] Peter S. Fader Bruce G.S. Hardie Ka Lok Lee. (July 2004 ).RFM and CLV: Using Iso-value Curves for Customer Base Analysis [14] Wu, Couchen, Hsiu-Li Chen.(2000). Counting your customers: Compounding customer’s in-store decisions, interpurchase time, and repurchasing behavior. Eur. J. Oper. Res. 127(1) 109–119. **پیوندهای مفید** + [Kaggle Acquire Valued Shoppers Challenge](https://www.kaggle.com/c/acquire-valued-shoppers-challenge) + [Predicting repeat buyers using purchase history](http://mlwave.com/predicting-repeat-buyers-vowpal-wabbit/) + [Scoring your customers](http://www.thearling.com/text/scoring/scoring.htm) [^1]:Predictive Model [^2]:Descriptive Model [^3]:Non-Stochastic [^4]:Dropout/Churn Rate [^5]:Customer Lifetime Value [^6]:Customer Lifetime [^7]:Transaction Rate [^8]:Essential Data [^9]:Recency [^10]:Frequency [^11]:Pareto/NBD (Negative Bionomial Distribution ) [^12]:Schmittlein [^13]:Stochastic [^14]:Heterogeneity [^15]:Shape Parameter [^16]:Scale Parameter [^17]:Gaussian Hyper-Geometric Function [^18]:BG/NBD (Beta-Geometric / Negative Bionomial Distribution) [^19]:Survival Function [^20]:Bayesian Hierarchical Model(B.H.M) [^21]:Posterior Distribution [^22]:Updated Probability Estimate [^23]:Prior Distribution [^24]:Hyper-parameter [^25]:Hyper-prior Distribution [^26]:Markov chain Monte Carlo [^27]:Regression based Approximation