การประเมิน Customer Lifetime Value (CLV) โดย ML model
Customer Lifetime Value (CLV หรือบางค่ายอาจใช้ CLTV) คือมูลค่า (Value) ที่ลูกค้าแต่ละรายใช้จ่ายในการซื้อสินค้า/เข้าใช้งาน platform หรือใช้บริการในธุรกิจของเรา ตั้งแต่ตอนที่เริ่มต้นใช้งานหรือซื้อครั้งแรก จนกระทั่งถึงวันที่เลิกเป็นลูกค้า
ซึ่งนิกเชื่อว่า CLV น่าจะเป็นคำที่นักการตลาดคุ้นเคยกันดี ทั้งในบริบทของ CLV คืออะไร? ทำไมเราถึงต้องให้ความสำคัญ? ตลอดจนเทคนิคในการเพิ่ม Customer Lifetime Value ด้วยวิธีต่างๆ เช่น การทำ Referral program ที่เน้นการบอกต่อ, การทำ Customized campaigns สำหรับลูกค้าแต่ละ segments, การใช้ Rewards, การสร้าง content ที่เกี่ยวข้องและตอบโจทย์ หรือการทำ CRM ที่มีการ get feedback จากลูกค้าเพื่อมาวิเคราะห์ข้อมูลต่อ เป็นต้น
ซึ่งก่อนหน้านี้การคำนวณ CLV จะเป็นการประเมินมูลค่าของลูกค้าจากสมการทางคณิตศาสตร์ โดยตัวแปรที่จะเอาไปใส่ในสมการเพื่อทำการคำนวณ ก็จะมีจำนวนตัวแปรที่จำกัด ตามสมการตั้งต้น และด้วยความจำกัดของตัวแปรนี้เองค่ะ ที่อาจทำให้ความแม่นยำในการประเมินถูกจำกัดไปด้วย แต่,,,,😬🤯 เนื่องจากในปัจจุบันการเก็บข้อมูลแต่ละ transaction ของลูกค้ามีรายละเอียดเพิ่มมากขึ้น ทำให้เราสามารถนำ data ที่เพิ่มขึ้นมานี้มาใช้ประเมิน CLV ของลูกค้าแต่ละรายผ่านโมเดล Machine learning (ML) ที่เป็นการนำเทคโนโลยีมาช่วยเพิ่มความแม่นยำได้ค่ะ
หลักการคำนวณ CLV ด้วยสมการ
ตามสมการ นิยาม”มูลค่าตลอดอายุการใช้งานของลูกค้า” ว่าหมายถึง “จำนวนเงินทั้งหมดที่คาดว่าลูกค้าจะใช้จ่ายกับธุรกิจของเราจนกว่าจะสิ้นสุดการใช้งานหรือซื้อซ้ำ” ซึ่งสิ่งนี้เองค่ะจะป็นเกณฑ์ชี้วัด และช่วยตรวจสอบว่า สำหรับธุรกิจของเราควรจะใช้เงินลงทุนเท่าไหร่ในการรักษาลูกค้าเดิม (ซึ่งตามสถิติแล้วอัตราการก่อรายได้ของลูกค้าเก่ามีสูงถึง 70%) และลงทุนเท่าใดในการหาลูกค้าใหม่ โดยเป้าหมายคือการทำให้อัตราผลตอบแทนจากการลงทุน (ROI) เป็นบวก
ยกตัวอย่างเช่น หากลูกค้ามี CLV อยู่ที่ 100,000 บาท และมีค่าใช้จ่ายในการหาลูกค้าใหม่เพียง 500 บาท หมายความว่าธุรกิจนั้นจะสามารถมี revenue เพิ่มขึ้นได้เยอะมากจากการได้ลูกค้ารายใหม่ โดยสมการทางคณิตศาสตร์ที่ใช้คำนวณมีหน้าตาดังนี้ค่ะ 😏🚀
เมื่อ AC (หรือ CAC: Customer Acquisition Cost) คือต้นทุนในการได้มาซึ่งลูกค้าใหม่ ซึ่งเป็นค่าใช้จ่ายด้านการตลาดรวมกับค่าจ่ายด้านการขาย, CRn คือกำไรที่ได้จากลูกค้า, Cn คือต้นทุนที่ใช้สำหรับการตลาดและการให้บริการลูกค้าหรือการผลิตสินค้า, R คือความน่าจะเป็นที่ลูกค้าจะไม่หายไป (Churn) ภายในระยะเวลาหนึ่งปี, n คือจำนวนปีทั้งหมดในการคำนวณ CLV และ d คือ Discount rate
นอกจากนี้ยังมีหลายค่ายที่ provide สมการที่ใช้คำนวณ Customer Lifetime Value ตามภาพด้านล่างค่ะ^^
ซึ่งเวลาเมื่อประเมินด้วยวิธีการใช้สมการ ผลลัพธ์ที่(น่าจะ)เข้าใจและนำไปประเมินต่อง่ายก็มักจะออกมาในรูปแบบของตารางค่ะ
เพื่อนๆ จะเห็นค่ะว่าสมการทางคณิตศาสตร์ข้างต้นค่อนข้างไม่ซับซ้อน ซึ่งน่าจะทำให้เราประเมิน CLV ได้ง่าย,,,,แต่สำหรับข้อมูลลูกค้าและ transaction ในปัจจุบันที่ถูกเก็บมาเพิ่มเติม กลับไม่ถูกนำมาพิจารณาร่วมด้วยในสมการ 😏🤓 เลยเป็นที่มาของหัวข้อต่อไปค่ะ ที่เราพยายามประเมิน หรือคาดการณ์ Value ที่รับได้จากลูกค้า และมูลค่าทางการเงินของลูกค้าในอนาคต จากข้อมูลแต่ละ transaction บน Database ของเรา 📈📰
=>> นิกขออนุญาตเล่าเพิ่มเติมคร่าวๆ ในส่วนของ Approach ที่ใช้ในการ model เพื่อประเมิน CLV ว่าแบ่งเป็น 2 ประเภทหลักๆ ได้ดังนี้ค่ะ
- Historical Approach: กระบวนการวิเคราะห์จากข้อมูลอดีต ได้แก่
- Agrreate Model: จะใช้ revenue เฉลี่ยต่อลูกค้าซึ่งคำนวณจาก transaction ในอดีต
- Cohort Model: ทำการ grouping ลูกค้าจากข้อมูลต่างๆ เช่น transaction date, etc. แล้วทำการคำนวณเป็น revenue ต่อแต่ละ Cohort
- Predictive Approach: กระบวนการคาดการณ์ล่วงหน้า ได้แก่
- ML Model: ใช้ Machine Learing โมเดลในการประเมิน CLV 🧐 📈 (ซึ่งในส่วนต่อไปของบทความนี้ เราจะมาพูดถึงสิ่งนี้กันค่ะ)
- Probabillistic Model: แบบจำลองความน่าจะเป็น
การประเมิน CLV ด้วย ML Model
Machine Learning ที่เราจะมาลองใช้งานกันเพื่อประเมิน Customer Lifetime Value คือ Linear Regression ค่ะ^^ โดยเราจะลองประเมิน CLV ล่วงหน้า 3 เดือนจากฐานข้อมูล UCI dataset ของธุรกิจค้าปลีกออนไลน์ (Online Retail) ที่จำหน่ายสินค้าประเภทของขวัญสำหรับทุกโอกาส ซึ่งมีลูกค้าบางส่วนเป็นภาคธุรกิจค้าส่ง
ซึ่งในแต่ละ Transaction ที่เกิดขึ้นมีการ Collect data ไว้ดังนี้
- InvoiceNo: หมายเลขใบแจ้งหนี้ ซึ่งเป็นตัวเลข 6 หลัก และในกรณีที่ขึ้นต้นด้วยตัว “C” หมายความว่า transaction นั้นมีการยกเลิก
- StockCode: รหัสสินค้า (รายการ) ซึ่งเป็นตัวเลข 5 หลักที่แต่ละหลักเป็นตัวบ่งชี้ถึงข้อมูลของผลิตภัณฑ์
- Description: ชื่อสินค้า
- Quantity: จำนวนการซื้อสินค้าในแต่ละ transaction
- InvoiceDate: วัน/เวลา ในสร้างใบแจ้งหนี้
- UnitPrice: ราคาต่อหน่วย
- CustomerID: หมายเลขลูกค้า หรือรหัสของลูกค้าแต่ละราย
- Country: ประเทศ
📊 การจัดการ Features ของ Dataset
ซึ่งจากข้อมูลฐานข้อมูล UCI dataset เราจะทำการสร้าง Feature เพิ่มเติมในการประเมิน CLV ดังนี้
- Frequency: ความถี่ในการซื้อ หรือจำนวนครั้งของการซื้อ
- Recency: ความนานของวันที่ซื้อล่าสุด เทียบกับช่วงเวลาปัจจุบัน (หรือไม่ซื้อมานานแค่ไหนแล้ว)
- total_amount: ยอดซื้อ หรือยอดค่าใช้จ่ายร่วมของลูกค้ารายนั้น
*เพื่อนๆ สังเกตเห็นไหมคะว่า คล้ายๆ Feature ในการแบ่งกลุ่มลูกค้าด้วยวิธี RFM เลย^^
📈 Linear Regression
Linear Regression หรือสมการถดถอยเชิงเส้น เป็นวิธีเข้าใจง่ายและตรงไปตรงมาที่สุดในการนำข้อมูลในอดีตมาใช้งาน เพื่อทำการประมาณการในอนาคต โดยใช้หลักการการวิเคราะห์ความสัมพันธ์ระหว่างตัวแปร (Features; ซึ่งในบทความนี้ก็คือข้อมูลของรายละเอียดในแต่ละ transaction) กับสิ่งที่เราต้องการประเมิน (ซึ่งในที่นี้ก็คือ CLV นั่นเองค่ะ)
โดยสมการ Linear Regression คือสมการเส้นตรงทั่วไปที่เราเรียนกันตั้งแต่มัธยมต้น ซึ่งมีหน้าตาดังนี้ค่ะ^^
โดย Yi (ตัวแปรตาม) คือสิ่งที่เราสนใจ หรือคือผลลัพธ์นั่นเองค่ะ, Xi คือตัวแปรต้น ที่ส่งผลต่อค่าของตัวแปรตามหรือ Features ที่เราจะนำมาใส่, β0 คือค่า coefficient หรือค่าจุดตัดแกน Y (y-intercept) ซึ่งเป็นการบอกว่า กราฟยกตัวจากแกน X ขนาดไหน และ β1 ค่าความชันของเส้นตรง ซึ่งในเทอมของ ML จะหมายถึง weight ซึ่งคือค่าน้ำหนักของตัวแปร Xi นั้นๆ
แต่เนื่องจากข้อมูลของเรามีหลาย Features หรือมี Xi หลายตัว ซึ่งส่งผลให้หน้าตาของสมการจากที่มีความซับซ้อนน้อย หรือมีหนึ่ง X จากด้านบน กลายเป็นสมการด้านล่างนี้ค่ะ^^
ซึ่งสมการนี้ก็จะไปพยายามสร้างเส้นตรง (Linear) หรือระนาบ ซึ่งใช้เป็นตัวแทนของชุดข้อมูล โดยใช้ความสัมพันธ์ระหว่างแต่ละ X (ซึ่งก็คือ Features ต่างๆ จากขั้นตอนก่อนหน้า) กับค่า Y จากนั้นก็จะได้ผลลัพธ์การ Regression เป็นเส้นตรง หรือระนาบตามภาพด้านล่างค่ะ
🤗 💡 มาลองเล่น Linear regression กัน
(☞゚ヮ゚)☞ มาลองใช้ “ML model: Linear regression” เพื่อเอาไปประยุกต์ในการประเมิน Customer Lifetime Value จากข้อมูลธุรกิจค้าปลีกของ UCI database ให้เห็นตัวอย่างของการใช้ข้อมูลแบบ Big Data บริหารจัดการลูกค้าในธุรกิจของเรา แทนการใช้สมการแบบดั้งเดิม^^ (ถึงไม่ใช่ low code แต่ไม่ยากเกินไปแน่นอนค่ะ,,,,🐈🐈)
โดยตัว Libary ที่เราจะลองใช้กันจะเป็น Opensource Lib ที่ชื่อว่า scikit-learn ซึ่งความสามารถหลักๆ ของ scikit-learn คือการ provide การสร้าง ML บนโปรแกรมภาษา Python โดยสามารถทำได้ทั้งการ Classification, Regression และ Clustering
*ในบทความนี้จะ Focus ไปที่การใช้ scikit-learn ในบทบาทของการเป็น Regressor โดยใช้ Linear regression ค่ะ
สิ่งที่พวกเราจะทำกันคือ import ข้อมูลที่เรามีเข้ามาบน Google colab โดยในที่นี้นิกลองใช้เป็นการ import แบบ .read_excel ซึ่งใช้ import ข้อมูล .xlsx แล้ว ทำ Data Cleansing & Transformation แล้วสร้าง Features ใหม่เพื่อนำมาใช้ในการประเมินค่ะ
โดยการสร้าง ML: Linear regression model อันดับแรกจะเริ่มจากการ import ตัว scikit-learn เข้ามาใช้งานและสร้าง dataframe จากไฟล์ .xlsx ที่เรา import เข้ามา แล้วนำ Data input นั้นมาใช้ในการสร้างโมเดลเพื่อประเมิน CLV และพิจารณาค่าความแม่นยำของโมเดลนั้นต่อไปค่ะ
โดยสามารถใช้ Python script ตาม link นี้ => Github_Predict_CLTV_with_linear_regression
ซึ่งหลังจากที่ใช้งานในส่วนของโปรแกรมแล้วจะได้ผลลัพธ์ออกมาเป็น CLV ดังตาราง dataframe นี้ค่ะ 😎💡 และจากข้อมูลเราพบว่าสำหรับธุรกิจค้าปลีกนี้มีอัตราการซื้อซ้ำของลูกค้าประมาณ 12 ครั้งใน 1 ปี และลูกค้าที่ซื้อซ้ำมีระยะห่างจากการซื้อครั้งก่อนหน้าระหว่าง 12-50 วัน และที่น่าสนใจคือ CLV ของลูกค้าจากโมเดลมีความแม่นยำเกาะกลุ่มสำหรับค่าระหว่าง 1,000 -10,000 USD ทำให้เราสามารถตัดเอาข้อมูลลูกค้าที่เป็น Outlier ออก แล้วนำ data ที่มี Customer Lifetime Value ที่ดีมาทำ Customer Segmentation ต่อเพื่อจัดแคมเปญ และทำ CRM ค่ะ
*และแน่นอนค่ะว่า เมื่อเป็น ML model แล้วการประเมินความแม่นยำ ก็สำคัญค่ะ โดยในส่วนนี้เราจะใช้การประเมินค่า Actual เปรียบเทียบกับ Train set และ Test set ได้ผลลัพธ์ออกมาตามภาพ ☆*: .。. o(≧▽≦)o .。.:*☆
Last but not Least..
ท้ายสุด นิกหวังเป็นอย่างยิ่งค่ะว่าหลายๆ ท่านจะได้ไอเดียในการใช้ ML model ไปประยุกต์ใช้กับการวิเคราะห์ลูกค้าในธุรกิจของตัวเองกันนะคะ เพราะไม่เฉพาะแต่รายใหญ่เท่านั้นค่ะที่ต้องการการวิเคราะห์ข้อมูลดังกล่าว แต่ในรายย่อยก็เช่นเดียวกันค่ะ สำหรับการตลาดในยุค Digital Marketing ที่ข้อมูลทุกอย่างมีคุณค่าเสมอ….
ทั้งนี้เพื่อนๆ ที่ต้องการศึกษาเรื่อง RFM และ ML model เพิ่มเติมในการทำ Customer Segmentation สามารถลองอ่านได้ในบทความนี้เลยค่ะ =>> https://www.everydaymarketing.co/knowledge/customer-relationship-management/