طبق اصول مشتری مداری، وفاداری برای هر ســازمانی اهمیت استراتژیک دارد. اﻣﺮوزه، ﺷﻨﺎﺧﺖ و پیش بینی ﻧیازﻫﺎی ﻣﺸﺘﺮﻳﺎن ﺑﺮای سازمان ها از اهمیت ﺧﺎﺻـی ﺑﺮﺧﻮردار اﺳﺖ. ﻣﺸﺘﺮی ﺑﻪ ﻋﻨﻮان عاملی ﻛلیدی و ﻣﺤﻮری در ﺑﻘﺎی آﻧﻬﺎ اﻳﻔﺎی ﻧﻘﺶ می ﻛﻨﺪ وجهت گیری کلیه اهداف، اﺳﺘﺮاﺗﮋی ﻫﺎ و ﻣﻨﺎﺑﻊ ﺣﻮل ﻣﺤﻮر ﺟﺬب و ﻧﮕﻬﺪاری مشتری می ﺑﺎﺷﺪ. ﺣﻔﻆ و ﺗﻘﻮﻳﺖ وفاداری ﻣﺸﺘﺮﻳﺎن ﺑﺮای ﺷﺮﻛﺖ هایی ﻛﻪ دﻏﺪﻏﻪ ﺣﻔﻆ و ﺗﻮﺳﻌﻪ ﺟﺎﻳﮕﺎه رﻗـﺎبتی ﺧﻮﻳﺶ را در ﺑﺎزار دارﻧﺪ، ﭼﺎﻟش اﺳﺘﺮاﺗﮋﻳﻚ
تلقی می ﺷﻮد؛ چالشی که با پیش بینی مشتری های وفادار می تواند تا حدی هموار گردد. بی تردید، مهم ترین وجه تمایز یک مشتری وفادار از یک خریدار عادی از دید فروشنده این است که مشتری برای خرید همواره به او مراجعه نماید. در این جا نشان داده می شود که چگونه از تکنیک های یادگیری ماشین و پیش بینی مبتنی بر یادگیری برای دستیابی به این مهم استفاده می شود.

۱. مقدمه

در سال های اخیر توجه به وفاداری مشتری به طور قابل توجهی افزایش یافته است به طوری که امروزه وفاداری مشتری به عنوان دستورالعملی برای افزایش کیفیت و درآمد مطرح است. نگهداری مشتریان موجود سودآورتر از جذب مشتریان جدید است. در طول توسعه نرمال روابط مشتری، هزینه بازاریابی و فروش به مشتریان موجود به تدریج کاهش می یابد و حاشیه کلی توسعه به طور بالقوه افزایش می یابد. چنین مواردی اهمیت پیش بینی مشتریان وفادار را دو چندان کرده است.

به طور کلی پیش بینی مشتریان وفادار با توسعه یک مدل پیش گو 1 آغاز می شود. اولین گام در توسعه چنین مدلی جمع آوری داده هایی خاص در مورد هر مشتری است که ماهیت این داده ها در بخش ۱.۳ توضیح داده خواهد شد. داشتن چنین داده هایی می تواند برای برآورد احتمال آنکه مشتری مجددا در یک بازه زمانی معین در آینده از فروشنده ای خاص خرید کند، کفایت نماید.

۱.۱. بررسی مسئله

۱.۱.۱. هدف

هدف مسئله پیش بینی آن است که چه مشتریانی برای خرید مجددا به یک فروشنده خاص باز می گردند.
توجه شود که در این مسئله تعیین نوع وفاداری مشتری بخشی از هدف نیست، بلکه هدف آن است که وفادار بودن یا نبودن یک مشتری بررسی شود. برای آنکه منظور از نوع وفاداری مشخص شود، ذکر این نکته ضروری است که همواره وفاداری به صورت پیوستاری در نظر گرفته می شود که از وفاداری با ثبات تا وفاداری بی ثبات گسترده است. این موضوع در مثال زیر به خوبی بیان شده است.

فرض کنید دو محصول مختلف A,B در یک فروشگاه وجود دارد.
۱ – وفاداری با ثبات : مشتریانی که در تمام اوقات یک محصول یکسان را می خرند : A,A,A,A ، نشان دهنده این نوع وفاداری است.
۲ – وفاداری نسبی یا موقت : خریدارانی که به دو یا سه محصول وفادار می مانند : A ، A ، B ، A ، B ، نشان دهنده این نوع رفتار خرید است.
۳ – وفاداری بی ثبات : مشتریانی که پس از چند بار خرید از یک مارک یا محصول ، محصول یا مارک دیگر را خریداری می کنند A ، A ، A ، B ، B ، B

در واقع در این مسئله تنها مشخص می گردد که آیا یک مشتری وفادار است یا خیر (و به عبارت دقیق تر ، میزان احتمال وفاداری برای یک فرد با روش های موجود تعیین می گردد)، اما آنکه اگر مشتری وفادار است کدام یک از رفتار های وفاداری را داراست (و به عبارتی به چه احتمالی خریدار از نوع وفادار با ثبات ، نسبی و بی ثبات است) جزئی از هدف در این مسئله نیست. در حالت کلی، این موضوع می تواند مسئله ای پیچیده تر و چالش بر انگیز تر از مسئله کنونی باشد و در حوزه مدل های توصیفی 2 پیشگو قرار می گیرد.

۱.۱.۲. مدل

  • به طور کلی هر دو مدل توصیفی و پیشگو در حوزه فرگشاشناسی پیشگو 3 قرار دارند. همان طور که پیشتر نیز اشاره شد، پیدا کردن مشتریان وفادار با توسعه یک مدل پیشگو صورت خواهد گرفت. در این قسمت به اختصار به تفاوت چنین مدلی با یک مدل توصیفی پرداخته می شود.
    ۱ – مدل پیشگو: فرآیند به کارگیری یک مدل آماری یا یک الگوریتم داده کاوی بر روی یک داده خاص که با هدف پیش گویی مشاهدات آینده صورت گیرد. در واقع صرف نظر از دیدگاه پایه روش ها، هر روشی ( مانند بیز ) که در مورد خروجی مطلوبمان پیشگویی داشته باشد یک مدل پیشگو است. در این مدل ها، در حالت خاص بر پیش بینی غیرتصادفی4 تاکید می شود که در آن هدف پیش بینی مقدار متغیر خروجی فرضی y با در دست داشتن متغیر ورودی فرضی x برای مشاهدات جدید است[5].
    ۲ – مدل توصیفی: این مدل ها ارتباط بین داده ها را کمی می کنند به طوری که معمولا از آنها برای دسته بندی مشتریان استفاده می شود. بر خلاف مدل های پیشگو که بر آنالیز رفتاری یک مشتری خاص تمرکز دارند، مدل های توصیفی هرگونه ارتباط موجود میان مشتریان و محصولات را شناسایی می کنند. همچنین بر خلاف مدل های پیشگو، در مدل توصیفی این گونه نیست که هر مشتری بر اساس احتمال انجام یک عمل خاص ( مثلا خرید مجدد ) ارزش گذاری یا رتبه بندی شود. در عوض، از چنین مدل هایی به عناون مثال برای دسته بندی مشتریان بر اساس نوع محصولات مورد علاقه استفاده می شود[5].

۱.۱.۳. دادگان

بدیهی است که از دادگان موجود در صفحه مسابقه در این جا استفاده خواهیم کرد. البته با این تغییر که حجم بالای داده های مربوط به تراکنش ها که حدود 22 گیگابایت در حالت غیر فشرده و برابر 350 میلیون سطر است، به حدود 1.6 گیگابایت و 27 میلیون سطر کاهش می یابد. این کار با استفاده از یک کد پایتون صورت می گیرد.

۱.۲. اصطلاحات

پیش از هر چیز، توجه به واژگان و اصطلاحات زیر حائز اهمیت است:

  • نرخ ریزش5: میزان درصد مشتری را که یک موسسه در طول یک مدت معین ( عموما یک سال ) از دست می دهد نشان می دهد.
    به عنوان مثال زمانی که یک موسسه با نرخ ریزش ۲۰ درصد عمل می کند ( نرخ جذب ۸۰ درصد است )، به معنی جانشین شدن یک مشتری در هر ۵ سال است. به عبارت دیگر، تمام مشتریان درعرض یک مقطع ۵ سالــــه جایگزین می گردند.

  • ارزش طول عمر6: مقطعی که در طول آن موسسه قادر به تولید درآمد از مشتری است ارزش طول عمر مشتری نامیده می شود و گاهی به اختصار آن را عمر 7 مشتری می نامند. بدیهی است که این مقدار در مثال فوق برابر ۵ سال است[10].

  • نرخ تراکنش 8: منظور از نرخ تراکنش همان میزان خرید ( نرخ خرید ) است.

۱.۳. داده های اساسی

به طور کلی، برای انجام پیش بینی در مورد وفاداری مشتریان دانستن دو داده اساسی9 در مورد آنها پر اهمیت است:

۱ – تاخر یا تازگی10خرید: آخرین تراکنشی که خریدار انجام داده است چه زمانی بوده است.
۲ – دفعات یا فرکانس11 خرید: در یک بازه زمانی مشخص،خریدار چه تعداد تراکنش انجام داده است.

تجربه نشان داده است که رفتار گذشته مصرف کننده بهترین پیش بینی کننده رفتار آینده وی است. خریداری که رفتار خرید خود را تکرار می کند یعنی بطور مثال برای چندمین بار از یک فروشگاه خرید می کند به احتمال بیشتری مجددا رفتار خود را تکرار خواهد کرد نسبت به فردی که تنها یک بار خرید داشته و تاکنون آن را تکرار نکرده است. در واقع فرکانس یا تعداد دفعات خرید می تواند عاملی مهم در تعیین احتمال مربوط به خرید مجدد باشد.اما اگر بخواهیم اقدامات آینده مشتری و ارزش وی را با دقت بیشتری پیش بینی نماییم، لازم است زمان انجام آخرین تراکنش ( خرید ) را نیز در نظر بگیریم. در نظر گرفتن عامل تاخر همیشه به ما این قابلیت را خواهد داد تا بفهمیم اکنون چه می گذرد چرا که آن چه که از همه چیز مهم تر است وضعیت فعلی است. در واقع می توان این گونه گفت که با ارزش ترین مشتری ها کسانی هستند که اخیرا خرید کرده اند و نیز رفتار تکرار خرید را دارا بوده اند. خریدارانی که پیشتر رفتار خرید تکراری خود را داشته اند اما اخیرا خرید نکرده اند، از نظر ارزش در رده بعدی قرار می گیرند[14,3].

۲. کارهای مرتبط

تا به این جا سعی شد مسئله، هدف و اهمیت آن به خوبی تشریح گردد. همچنین مدل و داده های اساسی برای حل مسئله بیان شد. اکنون به معرفی روش های مختلفی می پردازیم که مسئله مورد نظر به کمک آنها حل خواهد شد.

۲.۱. روش پارتو - توزیع دو جمله ای منفی

یکی از رایج ترین و البته پیچیده ترین روش هایی که برای پیدا کردن مشتریان وفادار وجود دارد، استفاده از چارچوبی به نام پارتو- توزیع دو جمله ای منفی12 است که در سال 1987 توسط شخصی به نام اشمیت لین13 مطرح شد. بی تردید این روش یکی از قدرتمند ترین چارچوب ها برای انجام پیش بینی های لازم در زمینه وفاداری مشتریان است، اما پیاده سازی این مدل به ویژه به هنگام تخمین پارامتر ها بسیار دشوار و چالش برانگیز است و شاید به همین دلیل باشد که تا به امروز کمتر کسانی روی به پیاده سازی کامل این روش آورده اند[1].

۲.۱.۱. بررسی روش

در این چارچوب رفتار خرید مشتری مدل می شود ولی ریزش مشتری نادیده گرفته می شود. بدین معنا که در این چارچوب فرض بر این است که مشتریان در یک بازه
زمانی مشخص با یک نرخ ثابت اما به صورت تصادفی14 خرید می کنند و سپس غیر فعال می شوند. منظور از غیر فعال شدن مشتری در این روش آن است که فرآیند خرید با یک نرخ ثابت از این پس ادامه پیدا نمی کند. بدیهی است که در مقابل فعال بودن مشتری به معنای آن است که مشتری از دست نرفته است و هنوز عمل خرید را با یک نرخ معینی انجام می دهد.
لازم به ذکر است که در این روش زمان از دست رفتن یا ریزش با استفاده از مدل زمانی پارتو (ترکیب نمایی-گاما ) بیان می شود. همیچنین رفتار خرید مکرر به هنگام فعال بودن با استفاده از مدل شمارشی توزیع دوجمله ای منفی ( ترکیب پواسن- گاما ) شبیه سازی می گردد. به بیان ساده تر، در این روش برای آنکه مشخص شود آیا مشتری از دست رفته است یا خیر از یک سکه استفاده می کنیم و سپس از یک تاس تا مشخص شود که یک مشتری چه تعداد از اجناس یا اقلام را سفارش خواهد داد[1].

۲.۱.۲. فرض ها

مدل پارتو – توزیع دوجمله ای منفی مبتنی بر پنچ فرض اساسی است که درک آنها کمک زیادی به حل مسئله خواهد کرد:
1) تا زمانی که یک مشتری فعال است، تعداد تراکنش هایی که در یک بازه زمانی به طول t انجام می دهد یک توزیع پواسن با میانگین \lambda t است.
2) ناهمگنی15 در نرخ ترکنش \lambda در بین مشتریان دارای یک توزیع گاما با پارامتر شکل16 r و پارامتر مقیاس17 \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} ، تابع فوق هندسی گاوس 18 است که در منبع [2] در معادله شماره (1) بیان شده است. همانطور که مشاهده می کنید، تابع احتمال مدل پارتو - توزیع دو جمله ای منفی بسیار پیچیده و شامل چندین تقریب از تابع هندسه فضایی گاوس است.به همین دلیل امروزه، عموما از این روش در عمل استفاده نمی شود. در واقع، اگر چه این روش یکی از قدرتمند ترین روش ها برای انجام پیش بینی های لازم در زمینه وفاداری مشتریان است، اما پیاده سازی این مدل به دلیل پیچیدگی فرمول هایش بسیار دشوارتر از سایر روش های موجود است. در این میان، برخی از این روش ها می توانند با همان دقت و در عین حال با پیچیدگی کمتری خروجی را تولید کنند. در ادامه چنین روش هایی بیان خواهند شد.

شایان ذکر است که در همه ی روش هایی که در ادامه مطرح می شود، بسیاری از فرض های موجود در روش پارتو - توزیع دو جمله ای منفی باز هم صادق است و بنابراین از تکرار توضیح آنها پرهیز می شود.در واقع، در هر روش ضمن تبیین نکات متمایز، نکات مشابه نیز بیان می شود اما تنها موارد اختلافی توضیح داده خواهند شد.

۲.۲. روش بتا ژئومتریک - توزیع دو جمله ای منفی

روش بتاژئومتریک – توزیع دو جمله ای منفی19 به طور کلی بیشتر جنبه های پارتو – توزیع دو جمله ای منفی را داراست و تنها تغیرات کوچکی اعمال شده است. اما همین تغییرات کوچک باعث می شود که فرمول ها بسیار ساده تر از روش قبل گردند و پارامتر های مختلف به آسانی بدست آیند. با این حال عموما نتایج گرفته شده بسیار به روش قبل نزدیک اند که شاید همین موضوع دلیلی بر ترجیج این روش بر روش قبلی باشد[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} انجام شده باشند. شکل ۱-۲ به خوبی چنین موضوعی را نشان می دهد.

شکل ۱-۲ تراکنش ها در بازه زمانی مفروض

حال با در نظر گرفتن موارد زیر تابع احتمال، به سادگی بدست خواهد آمد:

  • احتمال آنکه اولین تراکنش در زمان 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] هیچ خریدی انجام نمی دهد به صورت تابع بقا20 نمایی استاندارد یعنی 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} صفر است.

۲.۳. مدل مرتبه ای بیز

مدل مرتبه ای بیز21 یک مدل آماری است که در چند سطح مختلف به صورت سلسله مراتبی نوشته می شود و اصولا هدفش آن است که پارامتر های توزیع شرطی پسین 22را به کمک تئوری بیز برآورد کند. در واقع در این روش، زیر مدل ها با یکدیگر ترکیب می شوند تا یک مدل سلسله مراتبی ایجاد گردد. سپس از الگوریتم بیز برای همگام سازی آنها با داده های مشاهده شده استفاده می شود که در نتیجه ی آن توزیع احتمال پسین ایجاد می گردد که گاه از آن تحت عنوان برآورد احتمال بروز رسانی شده23 نیز یاد می شود. ذکر این نکته نیز خالی از لطف نیست که عموما مدلسازی مرتبه ای هنگامی استفاده می شود که اطلاعات در سطوح مختلف واحد های مشاهده قرار داشته باشند. در چنین شرایطی، تجزیه و تحلیل سلسله مراتبی به درک بهتر مسئله به ویژه مسئله های چند پارامتری کمک خواهد کرد[7].

۲.۳.۱. مراحل

به طور کلی برای نگرش بیزی به مسئله، نخست باید مراحل زیر در نظر گرفته شود:

  • دانش موجود در مسئله را به طور احتمالاتی فرموله کنیم. برای این کار باید مقادیر کیفی دانش را به صورت توزیع احتمال، فرضیات استقلال و غیره مدل کرد. چنین مدلی دارای پارامتر های ناشناخته ای خواهد بود که برای هر یک از مقادیر ناشناخته توزیع احتمال اولیه ای در نظر گرفته می شود که بازگو کننده باور ما به محتمل بودن هر یک از این مقادیر بدون دیدن داده است. این توزیع احتمال اولیه را در اصطلاح توزیع احتمال پیشین 24 می نامند.

  • سپس با جمع آوری داده، بررسی و مشاهده آن مقدار توزیع احتمال ثانویه که توزیع احتمال پسین نیز نامیده می شود محاسبه می گردد.

  • حال با استفاده از توزیع احتمال پسین به یک نتیجه گیری در مورد عدم قطعیت می رسیم و با میانگین گیری روی مقادیر احتمال ثانویه پیش بینی انجام می دهیم.

۲.۳.۲. اجزا

مدل مرتبه ای بیز از دو مفهوم مهم در استخراج توزیع پسین یا ثانویه استفاده می کند:

  • ابر پارامتر25: پارامتر موجود در توزیع پیشین را ابر پارامتر می نامند.

  • توزیع احتمال ابر پیشین26: توزیع پارامتر موجود در توزیع پیشین را توزیع احتمال ابر پیشین گویند.

فرض کنید متغیر تصادفی 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)
همانگونه که در قسمت ۲.۳.۱ نیز توضیح داده شد، اکنون که احتمال ثانویه بدست آمده است با میانگین گیری روی مقادیر احتمال آن می توان پیش بینی های لازم را انجام داد.

۲.۳.۴. بررسی و شرح روش

پیش از آنکه ادامه دهیم، ابتدا لازم است با زنجیره مارکوف - مونت کارلو27 آشنا شویم.
زنجیره مارکوف – مونت کارلو روشی است که از آن برای نمونه برداری از یک توزیع احتمال استفاده می شود که در آن یک زنجیره مارکوف که دارای توزیع مورد نظر است طی چندین مرحله ساخته می شود. گفتنی است که این توزیع مورد نظر را در اصطلاح توزیع تعادل زنجیره می نامند. در نهایت حالت زنجیره پس از چندین مرحله به عنوان نمونه ای از توزیع مطلوب در نظر گرفته می شود و هر چه تعداد گام های بیشتری برای نمونه برداری طی شود، کیفیت تقریب افزایش خواهد داشت[11]. در شکل ۱-۳، زنجیره مارکوف – مونت کارلو، توزیع آبی رنگ را با توزیع نارنجی تقریب می زند.

شکل۱-۳ تقریب با استفاده از زنجیره مارکوف - مونت کارلو

همانگونه که مشاهده می شود، با افزایش تعداد نمونه ها، تعداد گام های بیشتری در زنجیره طی می شود و بنابراین خطای تقریب کاهش می یابد.

اکنون که با مفهوم زنجیره مارکوف - مونت کارلو آشنا شدیم، شرح مدل مرتبه ای بیز را ادامه می دهیم. همانگونه که پیشتر نیز توضیح داده شد، تعداد تراکنش های انجام شده توسط مشتری j ام دارای یک توزیع پواسن با نرخ \lambda_{j} است. همچنین فرض کنید احتمال ریزش پس از هر بار خرید برابر p_{j} در نظر گرفته شود.
ایده کلی مدل مرتبه ای بیز برای پیدا کردن مشتری های وفادار در شکل ۲-۳ نشان داده شده است[4].

شکل ۲-۳ مدلسازی فرکانس تراکنش ها

در شکل فوق، t_{1} زمان وقوع اولین تراکنش، t_{x} زمان وقوع آخرین تراکنش و x تعداد تراکنش های انجام شده است. گفتنی است که این سه داده می توانند برای نمونه گیری از توزیع های شرطی در زنجیره مارکوف - مونت کارلو کافی باشند[4]. بدیهی است که هر یک از داده های اخیر به راحتی از داده های مربوط به پیشینه تراکنش های مشتریان قابل استخراج می باشد. اکنون با میانگیری روی مقادیر احتمال پسین یا ثانویه (که پیشتر در قسمت ۲.۳.۳ بدست آمد) و نمونه گیری به کمک زنجیره مارکوف - مونت کارلو، هر یک از مقادیر p_{j} و \lambda_{j} برآورد می گردند. بنابراین احتمال آنکه مشتری j ام در k بازه زمانی بعدی خریدی انجام دهد برابر است با:

(1-p_{j})(1-e^{-k\lambda_{j}})(B.H.M)

شایان ذکر است که مدل مرتبه ای بیز می تواند با دقتی خوب مشتریانی که مجددا برای خرید باز می گردند را شناسایی کند. با این حال هنگامی که تعداد مشتریان بسیار زیاد شود، این روش در عمل کارایی خود را از دست می دهد زیرا برای هر مشتری، زنجیره مارکوف - مونت کارلو باید صد ها بار تکرار شود[4]. به همین دلیل معمولا از این روش هنگامی استفاده می شود که تعداد مشتریان چندان زیاد نباشد.
اما در صورتی که تعداد مشتریان بسیار زیاد باشد، روش مرتبه ای بیز با استفاده از تقریب مبتنی بر رگرسیون 28 توسعه داده می شود. در مدل توسعه یافته دو چند جمله ای با استفاده از اصول رگرسیون ساخته می شوند و از آنها برای تخمین پارامتر های p_{j} و \lambda_{j} استفاده می گردد. بدین منظور، ابتدا پارمتر های p_{j} و \lambda_{j} با استفاده از مدل مرتبه ای بیز برای تعدادی معین و محدود از مشتری ها تخمین زده می شوند و سپس لگاریتم برآورد این پارامتر ها به عنوان ورودی در چند جمله های یاد شده قرار می گیرد. هنگامی که مقادیر پارامتر های p_{j} و \lambda_{j} برای هر مشتری به صورت منحصر به فرد از مدل مرتبه ای بیز توسعه یافته با تقریب رگرسیون بدست آمد، به طور مشابه در رابطه (B.H.M) قرار می گیرند تا احتمال آنکه هر مشتری در k بازه زمانی بعدی حداقل یک خرید انجام دهد بدست آید. لازم به ذکر است که استفاده از تقریب مبتنی بر رگرسیون در حالتی که جامعه آماری مورد مطالعه بسیار بزرگ باشد، می تواند حدود 180 برابر سریع تر از مدل مرتبه ای بیز ابتدایی عمل کند[4].

۳. آزمایش‌ها

تا به این جا سعی شد مسئله و راهکار های معمول حل آن به خوبی تشریح گردد. همچنین چالش های موجود در هر روش ( از جمله تخمین پارامتر ها ) بیان شد. اکنون به ارائه روش پیشنهادی خود و مراحل انجام آن می پردازیم و در این راستا کارکرد هر یک از روش های پیشنهادی با پیاده سازی آن روش ارزیابی می گردد. کد پیاده‌ سازی و جزئیات اجرایی مربوط به آن از طریق این لینک در گیت‌هاب قابل مشاهده است.

۳.۱. دادگان

همانطور که پیشتر در قسمت ۱.۱.۳ نیز مطرح شد، برای پیاده سازی از دادگان مسابقه استفاده خواهیم، البته با اعمال تغییراتی که این تغییرات در ادامه توضیح داده می شوند.

۳.۱.۱. بررسی داده

دادگان مسابقه شامل 4 فایل تراکنش ها، پیشنهادات و داده های مربوط به تست و یادگیری می باشد. همچنین یک فایل نمونه برای آشنایی با فرمت ارسال خروجی ها نیز قرار داده شده است. پیش از ادامه کار، لازم است به اختصار با محتوای هر یک از این فایل ها آشنا شویم:

  • فایل تراکنش ها: شامل تمام تراکنش هایی است که یک مشتری خاص حداقل یک سال پیش از دریافت پیشنهاداتی برای خرید از یک فروشگاه خاص، انجام داده است.

  • فایل پیشنهادات: شامل کل پیشنهادات ارائه شده به همراه جزئیات مربوط به آن مانند کمپانی پیشنهاد دهنده سرویس و یا نوع محصول پیشنهادی می باشد.

  • فایل های تست و یادگیری: فایل یادگیری شامل پیشنهادات ارائه شده به هر مشتری به همراه واکنش آن مشتری نسبت به آن پیشنهاد می باشد. فایل تست فقط شامل پیشنهادات ارائه شده به یک مشتری است و واکنش آن مشتری به آن پیشنهاد باید تخمین زده شود.

۳.۱.۲. استراتژی کاهش داده

حجم بالای داده های مربوط به تراکنش ها که حدود 22 گیگابایت در حالت غیر فشرده و برابر 350 میلیون سطر است، به حدود 1.6 گیگابایت و 27 میلیون سطر به کمک این کد کاهش می یابد. استراتژی کاهش داده ها اینگونه است که در داده های مربوط به تراکنش ها، سطر مربوط به تراکنش‌هایی که پیشنهاد مربوط به آنها دارای نام کمپانی یا نوع محصول نیست، حذف می شوند. به عبارتی می دانیم در فایل پیشنهادات، هر پیشنهاد دارای یک نام کمپانی و یک نوع محصول است. حال با ادغام فایل تراکنش ها و پیشنهادات، تراکنش هایی که پیشنهاد مربوط به آنها دارای یکی از این دو مورد نیست، مشخص شده و لذا سطر مربوط به آن حذف می گردد. البته می توان از هر نوع استراتژی دیگری نیز برای کاهش داده های مربوط به تراکنش ها استفاده نمود. چنین روش هایی در این لینک مطرح شده اند.

۳.۲. مدل

همانطور که در قسمت ۱.۳ توضیح داده شد، فرکانس خرید ها در یک بازه زمانی معین و نیز زمانی که خریدار آخرین تراکنش خود را انجام می دهد، دو داده اساسی برای حل این مسئله است. در این جا ما علاوه بر این دو، معیار هزینه29 را نیز در نظر می گیریم. معیار هزینه در واقع مشخص کننده ارزش مشتری است و منظور از آن میزان پولی است که مشتری در یک بازه زمانی مشخص خرج می کند. چنین مدلی که سه معیار تاخر خرید، فرکانس خرید و هزینه مربوط به خرید در آن در نظر گرفته می‌شود را در اصطلاح مدل RFM 30 می گویند و ما برای پیاده سازی از چنین مدلی استفاده خواهیم کرد. سپس در کنار استفاده از این سه معیار، با بکارگیری برخی مشخصه ها و معیار هایی خاص به صورت هیوریستیک، کارایی این مدل بهبود داده می شود و چنین مدلی را به عنوان یک راه حل قابل قبول از نظر کارایی مطرح خواهیم کرد.

۳.۲.۱. شاخص های مدل

شاخص های مدل RFM و نحوه تاثیر هر شاخص در مدل به طور خلاصه به صورت زیر می باشد:
تازگی تراکنش: اﻳﻦ شاخص اﺷﺎره دارد ﺑﺮ ﻓﺎﺻﻠﻪ زﻣﺎنی بین آﺧﺮﻳﻦ ﺧﺮﻳﺪ ﺻﻮرت ﮔﺮﻓﺘﻪ ﺗﻮﺳﻂ ﻣﺸﺘﺮی ﺗﺎ ﭘﺎﻳﺎن ﻣﺤﺪوده زﻣﺎنی ﻣﻮرد بررسی. ﻛﻤﺘﺮ ﺑﻮدن اﻳﻦ ﻓﺎﺻﻠﻪ ﻧﺸﺎﻧﮕﺮ ﺑﺎﻻ ﺑﻮدن ارزش اﻳﻦ ﺷﺎﺧﺺ در ﻣﺪل میﺑﺎﺷﺪ.
فرکانس تراکنش: اﻳﻦ ﺷﺎﺧﺺ بیانگر تعداد تراکنش هایی است ﻛﻪ ﻳﻚ ﻣﺸﺘﺮی در یک دوره زﻣﺎنی خاص اﻧﺠﺎم داده است. بیشتر ﺑﻮدن ﺗﻌﺪاد ﻣﺒﺎدﻻت، ﻧﺸﺎﻧﮕﺮ ﺑﺎﻻ ﺑﻮدن ارزش اﻳﻦ ﺷﺎﺧﺺ در ﻣﺪل میﺑﺎﺷﺪ.
ارزش پولی تراکنش: این ﺷﺎﺧﺺ ﻧﺸﺎن دﻫﻨﺪه مقدار ﭘﻮلی است ﻛﻪ ﻳﻚ ﻣﺸﺘﺮی در ﻳﻚ دوره زﻣﺎنی ﺧﺎص ﺟﻬﺖ ﻣﺒﺎدﻻت، ﺻﺮف نموده اﺳﺖ . بیشتر ﺑﻮدن ﻣﻘﺪار ﭘﻮل خرج ﺷﺪه، بیانگر ﺑﺎﻻ ﺑﻮدن ارزش اﻳﻦ ﺷﺎﺧﺺ در ﻣﺪل می ﺑﺎﺷﺪ.

۳.۲.۲. شرح مدل

پیشتر گفتیم که در مدل RFM، حرف F معرف فرکانس خرید، حرف R نشان دهنده تازگی خرید و حرف M نمایانگر ارزش پولی خرید است. باید توجه داشت که هر چه F و R بیشتر باشند احتمال آنکه تراکنش جدیدی با مشتری صورت بگیرد بیشتر است و همچنین اگرM نیز بزرگتر باشد احتمال بازگشت مشتری برای خرید بیشتر است. در مدل RFM فرض بر این است که مشتریانی که در هر یک از متغیرهای مدل دارای ارزش بالاتری هستند جز بهترین مشتریان هستند، البته تا زمانی که فرض شود آنها در آینده نیز همانند گذشته رفتار نمایند که در این صورت اعتقاد بر این است که این مشتریان نسبت به دیگران برای شرکت سودآوری بالاتری دارند. لذا فرض اساسی مدل این است که الگوهای آینده مبادله و خرید مشتری، همانند الگوهای گذشته و حال هستند. راحتی محاسبه، قابل درک بودن و توانایی RFM در پیش بینی رفتار آینده مشتری برخی از مزایای این مدل است به طوری که آن را به عنوان راهی برای اندازه گیری ارزش طول عمر مشتری مطرح کرده است.

شکل ۱-۴ پیش بینی با مدل RFM

روند کلی کار تا رسیدن به خروجی با استفاده از یک مدل RFM در شکل ۱-۴ مشخص شده است.

۳.۲.۳. بهبود مدل

در نظر گرفتن برخی معیار های خاص دیگر در کنار استفاده از مدل RFM می تواند عملکرد این مدل را بهبود دهد. این معیار ها در واقع نقش هیوریستیکی دارند و در صورتی که خوب در نظر گرفته شوند، می توانند کارایی و دقت پیش بینی را بالا برند. برای مثال این که آیا یک مشتری از یک کمپانی خاص تا به حال خرید کرده است یا خیر و یا این که آیا یک مشتری یک نوع محصول خاص را تا به حال خریده است یا خیر می تواند دو معیار باشد. حال سوال اصلی این جاست که در نظر گرفتن دو معیار اخیر به حل مسئله کمکی خواهد کرد یا خیر. این که چه معیار هایی در نظر گرفته شده است و دقت و ارتباط آنها با داده ها کدام است و ابزار سنجش این دقت یا ارتباط چیست در بخش های بعد توضیح داده می شود. پس می توان گفت بخش مهم این مسئله مهندسی معیار ها یا همان خصوصیات 31است که هر چه دقیق تر باشند خروجی از دقت بهتری برخوردار خواهد بود.

۳.۳. اعمال معیار ها

با استفاده از معیار ها و مشخصه های در نظر گرفته شده، با به کار گیری یک اسکریپ مجموعه های تست و یادگیری به گونه ای بدست می آیند که این معیار ها نیز در آنها اعمال شده است، سپس برای یادگیری و تست مدل با استفاده از مجموعه های بدست آمده از کتابخانه VW یا همان Vowpal Wabbit استفاده می کنیم. VW در واقع یک کتابخانه متن باز یادگیری است که با سرعتی قابل قبول می تواند مدل را ترین کند و یا آنکه آن را تست نماید. یکی از مزایای مهم آن این است که دارای خطای محاسباتی کمی است به طوری که در این مسئله میزان داده های از دست رفته در مرحله یادگیری تنها در حدود 0.156 است. همچنین قابلیت دیگر مهم این کتابخانه آن است که می تواند میزان ارتباط معیار ها یا مشخصه های در نظر گرفته شده را با یک مجموعه دادگان ورودی بسنجد. برای مثال میزان دقت یا ارتباط برخی از معیار های در نظر گرفته شده در پیاده سازی پس از بکارگیری خروجی vw-varinfo و ارسال آن به عنوان ورودی به یک اسکریپ پایتون به صورت شکل ۲-۴ می باشد.

شکل ۲-۴ میزان ارتباط معیار های استخراج شده با دادگان

در واقع دستور vw-varinfo از کتابخانه VW، اطلاعاتی را در مورد میزان ارتباط معیار ها با مجموعه دادگان ورودی در اختیار می گذارد. بدیهی است که این اطلاعات را می توان به هر شکلی تصویر نمود. برای نمونه، شکل ۲-۴ نمایی از میزان ارتباط معیار ها را نشان می دهد. در شکل فوق، رنگ آبی میزان ارتباط مثبت و رنگ قرمز میزان ارتباط منفی را نشان می دهد. هر چه طول مربوط به رنگ آبی بیشتر باشد، بدان معناست که کتابخانه VW، آن معیار را مرتبط تر به مجموعه داده ورودی تخمین می زند و بالعکس هر چه طول رنگ قرمز بیشتر باشد، بدان معناست که کتابخانه VW، آن معیار را نامربوط تر نسبت به دادگان ورودی برآورد می کند. پس می توان نتیجه گرفت مشخصه هایی که طول رنگی آبی مربوط به آنها بیشتر است از دید VW بهترند.

۳.۳.۱. تشریح معیار ها

در این قسمت نحوه طراحی معیار های نشان داده شده در شکل ۲-۴ به اختصار توضیح داده می شود. فرض کنیم اینکه یک مشتری از یک کمپانی تا به حال خرید کرده است یاخیر، را یک معیار در نظر بگیریم. در این صورت این معیار به وضوح یک مقدار دودویی خواهد داشت. اما می توان این معیار را از حالت دودویی خارج کرد به گونه ای که حاوی اطلاعات بیشتری باشد. برای مثال آنکه اگر مشتری از کمپانی خرید کرده است، در کل چند قلم کالا خریده است و یا چه میزان پول خرج کرده است، معیاری کامل تر نسبت به حالت قبل است که اطلاعات بیشتری را در خود نهفته است. از طرفی پارامترهای زمانی نیز می تواند به این معیار اضافه شود. برای مثال آنکه در مدت 3 ماه، 6 ماه یا 9 ماه، مشتری چند قلم کالا از یک کمپانی خریده است و یا آنکه در همین مدت چه میزان هزینه کرده است، به‌وضوح یک معیار کامل تر نسبت به هر دو حالت قبل می باشد. حال اگر میزان هزینه خرج شده را با حرف a و تعداد اقلام خرید شده را با حرف q نشان دهیم و پارامتر زمان را نیز بر حسب روز در نظر بگیریم، معیار هایی مانند شکل ۲-۴ خواهیم داشت. در این شکل حرف a در حقیقت نمایانگر مقدار و q نمایانگر تعداد است.

۳.۳.۲. بررسی کارایی معیارها

در این قسمت کارایی برخی از معیارهای در نظر گرفته شده با یکدیگر مقایسه می شوند. اکنون برای مثال یک معیار مقدار هزینه ای است که یک مشتری در مدت یک ماه برای خرید یک برند خاص صرف کرده است و یا معیار دیگر مقدار هزینه ای است که همان مشتری این بار در مدت سه ماه برای خرید همان برند صرف کرده است. طبق آنچه گفتیم معیار اول را با has-bought-brand-a-30 نشان می دهیم و معیار دوم با has-bought-brand-a-90 مشخص می شود. در مقایسه کارایی این دو معیار، همانگونه که از شکل ۲-۴ نیز مشخص است، به وضوح معیار اول کارایی بهتری نسبت به معیار دوم خواهد داشت. یکی از دلایل این امر آن است که معیار اول عامل تاخر یا تازگی تراکنش ها را به نسبت معیار دوم بهتر در نظر می گیرد. به عبارت دیگر، اگر چه تمام تراکنش هایی که در معیار اول در نظر گرفته می شوند، در معیار دوم نیز در نظر گرفته می شوند اما میانگین زمانی تمام تراکنش های انجام شده در معیار اول در زمان نزدیک تری نسبت به میانگین زمانی تمام تراکنش های معیار دوم می باشد و بنابراین تراکنش های معیار اول تازگی بیشتری دارند. در واقع اگر مشتری در یک ماه گذشته هیچ تراکنشی انجام نداده باشد، در معیار اول مشخص می شود ولی در معیار دوم مشخص نمی گردد چراکه ممکن است مشتری در دو ماه قبل تراکنشی انجام داده باشد و لذا مقدار این معیار نمی تواند عدم وجود خرید یا تراکنش را در یک ماه قبل نشان دهد. اکنون به وضوح کارایی سایر معیار های موجود نیز با استدلال هایی مشابه قابل بررسی و توجیه است.

۳.۴. مراحل

در این قسمت روند کلی پیاده سازی مسئله به اختصار توضیح داده می شود.

  • بارگذاری داده ها: در ابتدا مجموعه داده های موجود در برنامه بارگذاری می شود.

  • استخراج معیار ها: در حالت ابتدایی، استخراج معیار ها تنها مبتنی بر مدل RFM صورت می گیرد که این حالت را آزمایش اول در نظر می گیریم. اما همانطور که پیشتر گفته شد، با اعمال برخی از معیار های دیگر می توان کارایی این مدل را افزایش داد. این معیار ها در قسمت ۳.۳.۱ توضیح داده شدند. چنین حالتی به عنوان آزمایش دوم بررسی می شود.

  • بررسی معیار ها: معیار های در نظر گرفته شده به کمک vw-varinfo قابل بررسی است. در بخش ۳.۳ این مطلب بیان شد.

  • ترین مدل: در این قسمت مدل با استفاده از VW ترین می شود.

  • تست مدل: اکنون به کمک مدل ترین شده و با استفاده از VW، مدل تست گشته و خروجی تولید می گردد.

  • تغییر فرمت خروجی: با بکارگیری یک اسکریپت خروجی بدست آمده به فرمت نمونه قرار داده شده در مجموعه دادگان تبدیل می شود. این فرمت اینگونه است که در هر سطر دو ستون قرار می گیرد به طوری که در ستون اول شناسه خریدار و در ستون دوم احتمال انجام تراکنش ( خرید ) توسط خریدار قرار می گیرد.

۳.۵. ارزیابی

در این قسمت، ضمن معرفی بهترین روش ارزیابی مسئله با توجه به چالش های موجود، نتایج حاصل از هر یک از آزمایش های صورت گرفته با روش‌هایی که در ادامه برای ارزیابی مطرح می کنیم نشان داده می شوند. لازم به ذکر است که برای ارزیابی، داده های مربوط به قسمت یادگیری به دو قسمت تقسیم می شود و از نیمی از آن برای تست و از نیم دیگر آن برای یادگیری استفاده می کنیم. علت اینکار آن است که داده های مربوط به تست در مسابقه دارای خروجی صحیح نیستند. بنابراین برای ارزیابی نتایج، مراحل قبل با دادگان جدید تکرار خواهند شد. کد مربوط به ارزیابی نتایج در این قسمت قرار دارد.

۳.۵.۱. چالش های ارزیابی

یکی از چالش های ارزیابی نتایج حاصل شده از مراحل قبل آن است که این نتایج به صورت احتمال هستند و مقادیری پیوسته دارند در حالی که خروجی در واقعیت حالتی گسسته دارد. به عبارت دیگر، فرض کنید خروجی بدست آمده برای یک مشتری با شماره شناسه مفروض 25 برابر 0.43 باشد. این بدان معناست که مشتری
شماره 25 به احتمال 0.43 مجددا برای خرید باز خواهد گشت. اما بدیهی است که آنچه که در واقعیت رخ می دهد دو حالت بیشتر ندارد و یا آن است که مشتری مجددا برای خرید باز می گردد و یا آنکه دیگر برای خرید بر نخواهد گشت یعنی در واقعیت خروجی یک مقدار دودویی دارد. حال سوال اینجاست که احتمال 0.43 برابر کدام حالت در نظر گرفته شود( یک یا صفر). یک روش ساده برای رفع این مشکل آن است که یک احتمال خاص را به عنوان یک برش 32 و یا در اصطلاح آستانه تمایز 33در نظر بگیریم و تمام احتمالات بیشتر از آن یک و احتمالات کمتر از آن صفر فرض شوند. روش دیگر آن است که نتایج به ازای چندین برش خاص بدست آیند و از آنها میانگین گرفته شود. بدیهی است که دو روش ارزیابی اخیر دقیق نیستند و نمی توانند به خوبی میزان دقت نتایج بدست آمده را برآورد کنند. راهکاری که به وسیله آن می توان میزان دقت چنین داده هایی را بررسی نمود استفاده از منحنی ROC 34 است که در ادامه تشریح می گردد.

۳.۵.۲. شاخص های ارزیابی

شاخص های ارزیابی خروجی ها به همراه روابط محاسبه آنها به صورت زیر می باشد.

1- Precision={\frac{tp}{tp+fp}}
2 - Recall={\frac{tp}{tp+fn}}

3 - F1=2{\frac{Precision*Recall}{Precision+Recall}}

4 - TrueNegativeRate={\frac{tn}{tn+fp}}
5 - Accuracy={\frac{tp+tn}{tp+tn+fp+fn}}

در روابط فوق F1 در واقع میانگین هارمونیک دقت و فراخوانی است که می تواند این دو شاخص را به طور هم زمان نشان دهد. در واقع می دانیم هر روش خوب باید هم دقت خوبی داشته باشد و هم فراخوانی آن بالا باشد و لذا می توان گفت در مجموع F1 هر دو شاخص اخیر را به طور متعادل در نظر می گیرد.
در روابط فوق منظور از tp تعداد حالاتی است که به درستی صحیح و منظور از fp تعداد حالاتی است که به غلط، صحیح تشخیص داده شده‌اند. همچنین منظور از fn تعداد حالاتی است که به غلط نادرست و tn تعداد حالاتی است که به درستی غلط تشخیص داده شده اند. جدول زیر به وضوح این چهار مفهوم را در خود خلاصه کرده است.

MEANING SYMBOL
eqv. with hit tp
eqv. with correct rejection tn
eqv. with false alarm fp
eqv. with miss fn

بدیهی است که هر روش خوب، باید هر یک از پنچ شاخص یاد شده را به طور همزمان افزایش دهد.

۳.۵.۳. روش های ارزیابی

دو روش مناسب برای برآورد میزان دقت خروجی ها به اختصار به صورت زیر می باشد:

۱) میانگین گیری برش ها: در این روش نتایج به ازای همه برش های بین 1 تا 99 حساب می شود و هر یک از معیار های مورد نیاز برای ارزیابی در هر حالت بدست آمده و سپس از آنها میانگین گرفته می شود. اگر چه این روش به نسبت آنکه تنها یک یا چندین برش خاص در نظر گرفته شود بهتر است اما باز هم میزان دقت روش بعد را ندارد.

۲) سطح زیر منحنی: در این روش نموداری با استفاده از دو نرخ tp و fp و با تغییر آستانه تمایز( حد برش ) بدست خواهد آمد به طوری که نرخ tp در محور عمودی و نرخ fp در محور افقی قرار می گیرد. منحنی بدست آمده از این نمودار را ROC می نامند. اکنون سطح زیر این منحنی میزان دقت خروجی را مشخص خواهد کرد. از این رو این روش ارزیابی در اصطلاح AUC35 نامیده می شود. این روش دقیق ترین راهکار ارزیابی خروجی ها می باشد.

شکل ۳-۴ منحنی ROC و سطح زیر آن ( AUC )

در شکل ۳-۴ نمونه ای از منحنی ROC نشان داده شده است.

۳.۵.۴. نتایج ارزیابی

در این قسمت نتایج حاصل از بکارگیری هر یک از مدل هایی که در قسمت ۳.۲ بیان شد، در قالب جداولی نشان داده می شود. در هر قسمت هر دو روش ارزیابی ذکر شده و نیز تمام شاخص ها برای هر روش در نظر گرفته خواهد شد اما در نهایت، نتایج حاصل از AUC ملاک عمل خواهد بود چرا که می تواند دقیق تر از روش میانگین‌گیری میزات دقت خروجی ها را ارزیابی کند.

آزمایش اول
آزمایش اول مربوط به حالتی است که از مدل RFM ( غیر بهبود یافته ) به تنهایی برای تولید خروجی استفاده شده است. نتایج حاصل از این حالت پس از طی مراحلی که پیشتر در قسمت ۳.۴ بیان شد، در جدول ۱-۴ خلاصه شده است.

Accuracy True Negative Rate F-Score Recall Precision Method
67.2 68.172 67.460 66.276 68.686 AUC
71.2 70.312 70.967 72.131 69.841 Average Of Cuts
جدول ۱-۴

همانگونه که از جدول فوق مشخص است، مقدار F1 با بکارگیری این نوع مدل طبق AUC برابر 67.46 % است. بدیهی است که چون AUC دقیق ترین نوع ارزیابی برای این مسئله است، نتایج حاصل از آن بر نتایج حاصل از روش میانگین گیری ترجیح داده خواهند شد.

آزمایش دوم
آزمایش دوم مربوط به حالتی است که از مدل RFM بهبود یافته ( با اعمال معیار های ۳.۳ ) برای تولید خروجی استفاده شده است. نتایج حاصل از این حالت پس از طی مراحلی که پیشتر در قسمت ۳.۴ بیان شد، در جدول ۲-۴ خلاصه شده است.

Accuracy True Negative Rate F-Score Recall Precision Method
86.6 85.826 86.519 87.398 85.657 AUC
78.9 78.388 78.708 79.429 78 Average Of Cuts
جدول ۲-۴

همانگونه که از جدول فوق مشخص است، مقدار F1 با بکارگیری این نوع مدل طبق AUC برابر 86.51 % است.

بررسی و مقایسه نتایج
با مقایسه نتایج بدست آمده از جداول ۱-۴ و ۲-۴، به وضوح مشخص است که شاخص F1 در روش دوم رشدی 19 درصدی نسبت به روش اول داشته است و این موضوع از دقت بیشتر و کارآمدی این روش نسبت به روش اول حکایت دارد. همچنین با دقت بر روی جداول می توان دریافت که در آزمایش دوم، مقادیر فراخوانی و دقت، هر دو نسبت به آزمایش اول بهبود داده شده اند. نکته ی جالب آنکه اگر حتی از نتایج ارزیابی دیگر ( یعنی میانگیری نتایج در برش ها ) استفاده کنیم، در این حالت برای آزمایش دوم نتایج بدتر ( به نسبت نتایج AUC ) را انتخاب کرده ایم و برای آزمایش اول نتایج بهتر ( به نسبت نتایج AUC ) انتخاب شده است و در این حال باز هم نتایج مربوط به آزمایش دوم بهتر از نتایج آزمایش اول می باشد. بنابراین روش مطرح شده در آزمایش دوم یعنی استفاده از یک مدل RFM توسعه یافته با معیار هایی همانند معیار های بخش ۳-۳، به عنوان یک راه حل کارا و با دقت مناسب برای حل مسئله مشتری وفادار مطرح می شود.
در مقایسه چنین روشی با روش های مطرح شده در بخش های ۱- ۲ و ۲- ۲ که در منابع [1,2,9] بیان شده بود باید خاطر نشان کرد که آن روش ها اگر چه ممکن است دقت خوبی داشته باشند اما پیاده سازی آنها به ویژه به هنگام تخمین پارامتر ها بسیار دشوار و چالش برانگیز است تا آنجا که تا به امروز کمتر کسانی روی به پیاده سازی کامل آنها آورده اند[1]. همچنین در مقایسه این روش با روش مطرح شده در بخش ۳- ۲ یعنی استفاده از مدل مرتبه ای بیزی باید گفت که در صورتی که تعداد مشتریان بسیار زیاد شود، مدل مرتبه ای بیزی در عمل کارایی خود را از دست خواهد داد چرا که برای هر مشتری، زنجیره مارکوف - مونت کارلو باید صد ها بار تکرار شود و این خود نیاز به زمان زیادی دارد. همچنین در صورتی که در این روش از تکنیک تقریب مبتنی بر رگرسیون برای کاهش زمان اجرا استفاده گردد، اگر چه ممکن است زمان اجرا کاهش یابد، اما چون از تقریب استفاده می شود در عمل میزان دقت و کارایی کاهش خواهد داشت. همه آنچه گفته شد نشان از برتری روش ارائه شده نسبت به روش های دیگر دارد.

۴. کارهای آینده

در بازار رقابتی امروز نباید از ریزش مشتریان غافل شد اما واقعیت آن است که ریزش امری اجتناب ناپذیر است که نمی توان آنرا به صفر رساند ولی می توان آنرا مدیریت کرد و کاهش داد. برای نیل به چنین هدفی، گام اول شناسایی مشتریانی است که با احتمال بیشتری امکان ریزش دارند و با آشکار نمودن علت ریزش آنها می توان سعی در حفظ آنها داشت. بنابراین پیش بینی مشتریان وفادار برای یک سازمان نه تنها از جهت حفظ مشتریان وفادار حائز اهمیت است بلکه از جهت کاهش نرخ ریزش نیز اهمیت دارد. روشی که در این مقاله برای پیش بینی مشتریان وفادار مطرح شد، استفاده از یک مدل RFM توسعه یافته به کمک برخی معیارهایی بود که در بخش ۳-۳ نشان داده شد. آنچه لازم است در ادامه بررسی شود آن است که آیا می توان معیار هایی بهتر و کارآمد تر برای این مدل پیدا کرد یا خیر؟ آیا استفاده از این مدل در کنار روش های دیگری از جمله تقریب مبتنی بر رگرسیون و سپس میانگین گیری از احتمالات دو روش بدست آمده و استفاده از مقدار میانگین به عنوان خروجی باعث بهتر شدن نتایج می گردد یا خیر؟ اگر در چنین روشی به جای میانگین گیری به صورت تصادفی یکی از احتمالات هر بار انتخاب شوند در دقت روش چه تاثیری خواهد گذاشت؟ به طور کلی ادغام مدل RFM مطرح شده با سایر روش ها، آیا می تواند میزان دقت خروجی را افزایش دهد و یا خیر؟ این ها همگی سوالات و ایده هایی هستند که در آینده نیاز به بررسی دارند چرا که هر یک ممکن است منجر به روشی کارآمد تر و با دقت بیشتر نسبت به روش کنونی مطرح شده گردند.

۵. مراجع

[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.

پیوندهای مفید


لینک پیاده سازی: کد پیاده‌ سازی از طریق این لینک در گیت‌هاب قابل مشاهده است. جزئیات مربوط به نصب ماژول های لازم و نیز اجرای کد به صورت مرحله به مرحله در گیت‌هاب وجود دارد. لطفا در صورت وجود هرگونه نظر، پیشنهاد و یا مشکل در مورد کد، آن را در این Issue مطرح کنید.


  1. Predictive Model

  2. Descriptive Model

  3. Predictive Analytics

  4. Non-Stochastic

  5. Dropout/Churn Rate

  6. Customer Lifetime Value

  7. Customer Lifetime

  8. Transaction Rate

  9. Essential Data

  10. Recency

  11. Frequency

  12. Pareto/NBD (Negative Bionomial Distribution )

  13. Schmittlein

  14. Stochastic

  15. Heterogeneity

  16. Shape Parameter

  17. Scale Parameter

  18. Gaussian Hyper-Geometric Function

  19. BG/NBD (Beta-Geometric / Negative Bionomial Distribution)

  20. Survival Function

  21. Bayesian Hierarchical Model(B.H.M)

  22. Posterior Distribution

  23. Updated Probability Estimate

  24. Prior Distribution

  25. Hyper-parameter

  26. Hyper-prior Distribution

  27. Markov chain Monte Carlo

  28. Regression based Approximation

  29. Monetary

  30. Recency - Frequency - Monetary

  31. Feature Engineering

  32. Cut-off

  33. Discrimination Threshold

  34. Receiver operating characteristic

  35. Area under the curve

تایید شده

با سلام و خسته نباشید
متن پروژه شما بسیار جامع و روان بود و ارزیابی نتایج به خوبی صورت گرفته است. در قسمت ‘بررسی و مقایسه نتایج ‘ شما به اختصار به مقایسه کارایی روش آزمایشی خود با روش های دیگر (مانند مدل مرتبه ای بیز، پارتو NBD و رگرسیون) پرداختید که به نظرم می تواند ارزش و دقت کار را در مقایسه با سایر روش ها به خوبی نشان دهد. در کل قسمت ارزیابی به خوبی ارائه شده است. همچنین این که بهینه سازی روش از همان ابتدا مد نظر قرار گرفته ، بسیار خوب است. پیاده سازی شما در گیت هاب نیز مناسب و همراه با جزئیات اجرایی لازم بود.
نکته قابل ذکر آنکه بهتر بود در قسمت کار های مرتبط ، هر یک از روش های بیان شده را کمی کلی تر بیان می کردید و وارد همه جزئیات و فرمول های ریاضی پیچیده مربوط به آن نمی شدید.
در کل شما هدف از این فاز را محقق کرده اید.
موفق باشید.

تایید شده

سلام و خسته نباشید
توضیحات مناسب و واضح بودند و در کل مشکل خاصی در پروژه شما وجود ندارد. پیاده سازی هم خوب و دارای جزئیات کافی بود. نتایج حاصل از پیاده سازی هم در قسمت ارزیابی با هر دو معیار AUC و میانگیری برش ها مشخص شده است که دقت کار را به خوبی نشان می دهد.
همچنین اینکه در این فاز تا حدی هم به بخش کار های آینده پرداختید بسیار خوب است.
موفق باشید.

محسن ایمانی

در این فاز تلاش زیادی انجام داده‌اید و حتی قدری فراتر از آن‌چه که برای فاز دوم انتظار می‌رفت پیش رفته‌اید که جای تبریک و تشکر دارد.
این که نکات مطرح شده در فاز گذشته را مورد توجه و ویرایش قرار داده‌اید نقطه مثبت و با ارزشی است.
تنها نکته‌ای که در این فاز می‌توان به آن اشاره نمود این است که نتایج ارزیابی شما به طرز عجیبی بالاست. اگر به نتایج مربوط به مسابقه نگاهی بیندازید می‌بینید که نفر اول در آن‌جا، با معیار AUC دقت حدود ۶۳ درصد را به دست آورده است که نتایج شما به طرز فاحشی نسبت به آن‌ها بهتر است. پیشنهاد می‌کنم در فاز آینده این مسئله را بررسی کرده و توجیهی برای این اختلاف فاحش ارائه نمایید.

تایید شده

پروژه چه از نظر مباحث پایه و چه از نظر فنی به خوبی بسط و توضیح داده شده و زحمات شما مشهود و قابل قدردانیه .
مواردی مثل :

  1. جمله بندی مناسب و قابل فهم

  2. لینک های متعدد برای مواردی که نیاز به توضیح بیشتر دارند

  3. دسته بندی مناسب مطالب
    از نکات خوب پژوهش نامه شما بود.
    تنها نکته منفی در مورد نگارش مطالب استفاده از واژه "ترین" به جای کلمه فارسی یادگیری بود.
    همچنین به نظر بنده با ارزش ترین بخش قعالیت شما توضیحات خوب و کامل مخزن گیت شماست که متاسفانه در بقیه پروژه ها کمتر به چشم میاد.
    صرف توضیحات زیاد در مورد نحوه ارزیابی هم به نوع خوب جالب و مثبت بوده و موجب علمی تر شدن نتایج و مستند سازی بهترشون میشه. فقط باید توجه داشته باشید که این موضوع شما رو از انجام خود آزمایشات غافل نکنه.

تنها پیشنهاد بنده ( که شاید کمی فراتر از این فاز از این پژوهش نامه باشه و بیشتر به آینده و خودتون مربوطه ) ایجاد چالش های بیشتر برای خودتون در آینده یا به بیانی دیگر، پخته تر کردن بخش "کار های آینده" تا بیشترین حد ممکن هست. با توجه به ارزش بسیار بالای الگوریتم ها و سیستم های هوشمندی ایجاد شده در زمینه پیش بینی هایی که به نوعی به اقتصاد در ارتباط هستند،‌پیشنهاد می‌کنم حتما تمام مسائل و چالش هایی که ممکنه موجب بهبود مساله بشوند رو بررسی کنید، و در آینده با انجام آزمایش روند کارتون رو ادامه بدید .
امیدوارم فاز سوم پژوهشتون شروعی برای این روند باشه و نتایج درخشانی رو شاهد باشیم .

موفق باشید.