[DA & DS Blog #45] Phân Tích Khách Hàng Chuyên Sâu: Mô Hình Phân Khúc RFM, Khai Phá Giỏ Hàng (Market Basket Analysis) & Thuật Toán FP-Growth
0 views
![[DA & DS Blog #45] Phân Tích Khách Hàng Chuyên Sâu: Mô Hình Phân Khúc RFM, Khai Phá Giỏ Hàng (Market Basket Analysis) & Thuật Toán FP-Growth](/uploads/ai-images/cover-phan-tich-khach-hang-rfm.png)
1. Bối cảnh thực tế (Context & Problem Statement)
Một trong những sai lầm tiếp thị kinh điển của doanh nghiệp là đối xử với mọi khách hàng như nhau:
- Bắn thông báo khuyến mãi (Push Notification) giảm giá cho tất cả mọi người Khách hàng VIP cảm thấy bị làm phiền, trong khi công ty thất thoát hàng tỷ đồng biên lợi nhuận trên những người vốn dĩ đã có ý định mua.
- Sắp xếp các kệ hàng siêu thị hoặc gợi ý sản phẩm trang Checkout một cách ngẫu nhiên theo trực giác của người quản lý Bỏ lỡ cơ hội gia tăng giá trị đơn hàng trung bình (AOV - Average Order Value).
Customer Analytics kết hợp 2 kỹ thuật định lượng nền tảng:
- Mô hình RFM (Recency, Frequency, Monetary): Trả lời câu hỏi: "Khách hàng của chúng ta là ai? Ai là khách hàng trung thành mang lại nhiều lợi nhuận nhất? Ai đang chuẩn bị rời bỏ?"
- Khai phá dữ liệu giỏ hàng (Market Basket Analysis - MBA): Trả lời câu hỏi: "Những sản phẩm nào thường được khách hàng mua cùng nhau trong một lần thanh toán?" (Câu chuyện huyền thoại: Khách mua tã giấy thường mua kèm bia vào chiều thứ Sáu).
2. Các Khái Niệm & Cơ Chế Cốt Lõi
2.1. Mô Hình Phân Khúc Khách Hàng RFM (RFM Segmentation)
RFM đo lường hành vi giao dịch khách hàng qua 3 chiều định lượng:
- Recency (R - Độ mới): Số ngày tính từ lần mua hàng cuối cùng của khách đến thời điểm hiện tại ( càng nhỏ càng tốt).
- Frequency (F - Tần suất): Tổng số lần phát sinh đơn hàng thành công của khách hàng trong một khoảng thời gian ( càng lớn càng tốt).
- Monetary (M - Giá trị tiền tệ): Tổng số tiền mà khách hàng đã chi tiêu trong khoảng thời gian đó ( càng lớn càng tốt).
Quy trình chấm điểm RFM (Quantile Scoring):
- Tính giá trị thô cho từng khách hàng từ bảng Fact giao dịch.
- Dùng phân vị (Quantiles) để chia mỗi chiều thành các mức điểm từ đến (hoặc đến ):
- : Mua hàng rất gần đây (Top mới nhất); : Đã lâu không quay lại.
- : Mua hàng thường xuyên nhất; : Chỉ mua đúng 1 lần duy nhất.
- : Chi tiêu nhiều tiền nhất; : Chi tiêu ít nhất.
- Ghép thành chuỗi mã số (ví dụ: Khách hàng
5-5-5là khách hàng hoàn hảo nhất).
MA TRẬN PHÂN KHÚC RFM (2D View: R vs. F/M)
Recency (R) cao
(Mới mua gần đây)
^
| [KHÁCH HÀNG MỚI] [CHAMPIONS - KHÁCH VIP]
| (R=5, F=1, M=2) (R=5, F=5, M=5)
| -> Chào đón, Onboarding -> Đãi ngộ đặc biệt, Early Access
|
| [CẦN CHĂM SÓC] [LOYAL CUSTOMERS - TRUNG THÀNH]
| (R=3, F=2, M=2) (R=4, F=4, M=4)
| -> Giới thiệu sản phẩm mới -> Upsell, Cross-sell
|
| [ABOUT TO SLEEP - SẮP BỎ] [AT-RISK / NGUY CƠ CAO]
| (R=2, F=1, M=1) (R=1, F=4, M=5 - Từng chi đậm nhưng mất hút)
| -> Gửi voucher kích hoạt lại -> Gọi điện chăm sóc khẩn cấp!
+------------------------------------------------------------> Frequency & Monetary (F/M)
Recency (R) thấp (Mua nhiều, Chi đậm)
(Lâu không quay lại)
2.2. Khai Phá Giỏ Hàng (Market Basket Analysis) & Luật Kết Hợp (Association Rules)
Một luật kết hợp có dạng: Nếu khách mua tập vật phẩm , thì họ cũng sẽ mua tập vật phẩm :
Để đánh giá một luật có giá trị thực tế hay chỉ là ngẫu nhiên, ta sử dụng Bộ ba chỉ số toán học:
1. Support (Độ hỗ trợ):
Tỷ lệ phần trăm các giao dịch trong toàn bộ cơ sở dữ liệu có chứa đồng thời cả và : (Dùng để lọc bỏ các tập sản phẩm quá hiếm gặp).
2. Confidence (Độ tin cậy):
Trong số những giao dịch đã mua , có bao nhiêu phần trăm giao dịch cũng mua kèm :
3. Lift (Độ nâng - Thước đo quan trọng nhất!):
Tỷ số giữa xác suất khách mua khi đã mua so với xác suất khách mua một cách độc lập ngẫu nhiên:
- Ý nghĩa thực chiến của Lift:
- : Hai sản phẩm có mối tương quan hỗ trợ tích cực. Khách mua làm tăng khả năng mua gấp lần so với bình thường Cơ sở để tạo Combo giảm giá hoặc xếp kệ hàng gần nhau!
- : và hoàn toàn độc lập ngẫu nhiên (Không có mối liên hệ nào).
- : Hai sản phẩm có tính chất thay thế hoặc triệt tiêu nhau. Khách đã mua thì thường không mua (ví dụ: Coca-Cola và Pepsi).
2.3. Cuộc Cách Mạng Thuật Toán: Apriori vs. FP-Growth
1. Hạn chế của Thuật toán Apriori cổ điển:
- Dựa trên tính chất suy giảm (Apriori Downward-Closure Property): "Mọi tập con của một tập phổ biến đều phải là tập phổ biến".
- Điểm nghẽn chí mạng: Để tìm các tập gồm phần tử, Apriori phải sinh ra hàng triệu ứng viên tổ hợp (Candidate Generation) và phải quét toàn bộ cơ sở dữ liệu trên đĩa lặp đi lặp lại hàng chục lần (Multiple Full DB Scans) Quá chậm trên dữ liệu hàng triệu đơn hàng!
2. Đột phá của FP-Growth (Frequent Pattern Growth - Han et al., 2000):
- Không sinh ứng viên (Zero Candidate Generation).
- Chỉ quét cơ sở dữ liệu đúng 2 lần duy nhất:
- Lần quét 1: Đếm tần suất từng sản phẩm đơn lẻ và sắp xếp theo thứ tự giảm dần.
- Lần quét 2: Nén toàn bộ hàng triệu giao dịch vào một cấu trúc dữ liệu dạng cây trong bộ nhớ RAM gọi là FP-Tree (Frequent Pattern Tree). Các giao dịch có chung sản phẩm tiền tố sẽ chia sẻ các nhánh chung.
- Khai phá các tập phổ biến bằng thuật toán đệ quy chia để trị (Recursive Conditional FP-Tree Mining) trực tiếp trên RAM Nhanh gấp so với Apriori!
CẤU TRÚC CÂY FP-TREE (Nén dữ liệu giỏ hàng trên RAM):
(Root)
/ \
(Bánh: 3) (Bia: 1)
/ \
(Sữa: 2) (Tã: 1)
/
(Tã: 2) <--- Nhánh Bánh -> Sữa -> Tã xuất hiện 2 lần
3. Các Bảng Markdown So Sánh Chi Tiết
📊 Bảng 1: So Sánh Toàn Diện Các Thuật Toán Khai Phá Giỏ Hàng
| Tiêu chí | Apriori Algorithm | FP-Growth (Frequent Pattern Growth) | ECLAT (Equivalence Class Transformation) |
|---|---|---|---|
| Chiến lược tìm kiếm | Duyệt theo chiều rộng (Breadth-First Search) | Chia để trị (Divide-and-Conquer) qua cây FP-Tree | Duyệt theo chiều sâu (Depth-First Search) |
| Cơ chế sinh ứng viên | Sinh tổ hợp ứng viên khổng lồ (Candidate Generation) | Hoàn toàn KHÔNG sinh ứng viên (Zero Candidates) | Sử dụng giao tập Transaction ID (TID-Lists) |
| Số lần quét Database | Rất nhiều lần ( lần quét cho tập phần tử) | Đúng 2 lần quét duy nhất | Đúng 1 lần quét để lập bảng TID |
| Chiếm dụng bộ nhớ (RAM) | Thấp ở các bước đầu, bùng nổ khi sinh ứng viên | Cần đủ RAM để chứa cây FP-Tree nén | Tốn RAM để lưu trữ danh sách TID |
| Tốc độ thực thi | Rất chậm trên tập dữ liệu lớn | Cực nhanh (Nhanh hơn Apriori) | Nhanh trên dữ liệu thưa |
| Quy mô dữ liệu tối ưu | Dữ liệu nhỏ phục vụ giảng dạy | Hàng triệu giao dịch E-commerce / Bán lẻ thực tế | Dữ liệu có nhiều item hiếm |
📊 Bảng 2: Ma Trận Phân Khúc Khách Hàng RFM & Chiến Lược Hành Động
| Nhóm khách hàng (Segment) | Đặc điểm chỉ số RFM | Ý nghĩa kinh doanh | Chiến lược Marketing & Sản phẩm đề xuất |
|---|---|---|---|
| Champions (Khách VIP) | Mua gần đây, mua thường xuyên và chi rất đậm | Tri ân đặc quyền (VIP Club), tặng quà bất ngờ, mời dùng thử tính năng mới | |
| Loyal Customers (Trung thành) | Khách hàng ổn định, gắn bó lâu dài | Upsell sang các gói cao hơn, khuyến khích giới thiệu bạn bè (Referral) | |
| Potential Loyalists (Tiềm năng) | Khách hàng mới có dấu hiệu tương tác tốt | Gợi ý sản phẩm liên quan (Cross-sell), tặng mã giảm giá cho đơn thứ 2 | |
| At-Risk (Khách hàng nguy cơ) | Từng mua rất nhiều và chi đậm, nhưng lâu rồi không quay lại | Báo động đỏ! Gọi điện chăm sóc trực tiếp, khảo sát lý do không hài lòng | |
| Hibernating (Ngủ đông) | Mua ít, chi ít và đã biến mất từ lâu | Gửi chiến dịch Re-engagement qua email với ưu đãi lớn; nếu không phản hồi thì ngưng liên hệ |
📊 Bảng 3: So Sánh Các Thước Đo Luật Kết Hợp (Association Metrics)
| Chỉ số | Dải giá trị | Công thức | Tiêu chuẩn ngưỡng tối ưu | Vai trò thực tiễn |
|---|---|---|---|---|
| Support | Thường chọn hoặc | Lọc bỏ các quy luật rác phát sinh từ các sản phẩm hiếm | ||
| Confidence | Thường chọn () | Đo lường độ chắc chắn của quy luật suy diễn | ||
| Lift | Bắt buộc | Chứng minh mối quan hệ tương hỗ thực sự (Tránh quy luật ngẫu nhiên) | ||
| Conviction | (Vô cùng nếu luật đúng tuyệt đối) | Đo lường mức độ phụ thuộc logic của luật nếu không xuất hiện |
4. Best Practices & Kỹ Thuật Triển Khai Thực Chiến (Pro-Tips)
💡 Cạm bẫy "Luật Vô Nghĩa" (Spurious Rules) do Sản Phẩm Quá Phổ Thông
- Cạm bẫy: Trong siêu thị, mặt hàng "Túi nylon tự hủy" hoặc "Chai nước suối" xuất hiện trong các đơn hàng ().
- Khi đó, bất kỳ sản phẩm nào cũng sẽ có .
- Tuy nhiên, giá trị !
- Quy tắc vàng: Tuyệt đối không bao giờ chỉ nhìn vào Confidence cao! Một luật có nhưng có là một luật hoàn toàn vô giá trị vì khách hàng tự nhiên đã mua sản phẩm mà không cần đến sự xuất hiện của .
💡 Triển Khai RFM Phân Khúc Bằng SQL Trên Data Warehouse
WITH UserMetrics AS (
-- 1. Tính toán giá trị R, F, M thô cho từng khách hàng:
SELECT
user_id,
DATEDIFF('day', MAX(order_date), CURRENT_DATE) AS recency_days,
COUNT(DISTINCT order_id) AS frequency_orders,
SUM(final_amount) AS monetary_total
FROM fct_orders
WHERE status = 'COMPLETED' AND order_date >= CURRENT_DATE - INTERVAL '365 DAYS'
GROUP BY user_id
),
RFMScores AS (
-- 2. Dùng NTILE(5) để phân vị điểm từ 1 đến 5:
SELECT
user_id,
recency_days,
frequency_orders,
monetary_total,
-- Recency càng ít ngày thì điểm càng cao (đảo ngược thứ tự sắp xếp):
NTILE(5) OVER (ORDER BY recency_days DESC) AS r_score,
NTILE(5) OVER (ORDER BY frequency_orders ASC) AS f_score,
NTILE(5) OVER (ORDER BY monetary_total ASC) AS m_score
FROM UserMetrics
)
-- 3. Gán nhãn phân khúc kinh doanh dựa trên điểm số R và F/M:
SELECT
user_id,
recency_days,
frequency_orders,
monetary_total,
CONCAT(r_score, f_score, m_score) AS rfm_cell,
CASE
WHEN r_score >= 4 AND f_score >= 4 AND m_score >= 4 THEN 'Champions'
WHEN r_score >= 3 AND f_score >= 3 THEN 'Loyal Customers'
WHEN r_score >= 4 AND f_score <= 2 THEN 'Promising / New Customers'
WHEN r_score <= 2 AND f_score >= 3 AND m_score >= 3 THEN 'At-Risk High Value'
WHEN r_score <= 2 AND f_score <= 2 THEN 'Hibernating'
ELSE 'General / Need Attention'
END AS customer_segment
FROM RFMScores;
5. Góc Ôn Luyện Phỏng Vấn (Interview Corner)
❓ Câu hỏi 1: Giải thích ý nghĩa toán học của 3 chỉ số Support, Confidence và Lift trong Khai phá luật kết hợp (Association Rule Mining). Tại sao một luật có Confidence đạt 90% nhưng vẫn có thể là một luật hoàn toàn vô giá trị trong kinh doanh?
- Gợi ý trả lời:
- Định nghĩa 3 chỉ số:
- Support: Tần suất xuất hiện đồng thời của cả 2 sản phẩm: .
- Confidence: Xác suất có điều kiện khách mua khi đã chọn mua : .
- Lift: Đo lường mức độ tác động thực sự của lên hành vi mua : .
- Trường hợp Confidence 90% nhưng vô giá trị:
- Giả sử trong một cửa hàng bánh mì, sản phẩm (Sữa tươi) là mặt hàng cực kỳ phổ thông, xuất hiện trong tổng số đơn hàng của toàn cửa hàng ().
- Khi ta xét một sản phẩm (Kẹo cao su): Giả sử có người mua kẹo cao su cũng mua sữa tươi .
- Ta tính chỉ số Lift:
- Kết luận phân tích: Mặc dù Confidence đạt tới , nhưng thực chất việc khách hàng mua kẹo cao su làm giảm xác suất mua sữa tươi (từ bình thường xuống còn ).
- Nếu nhà phân tích chỉ nhìn vào con số Confidence để tạo combo khuyến mãi gộp và , doanh nghiệp sẽ đưa ra một quyết định sai lầm. Chỉ số Lift mới là bằng chứng xác thực chứng minh hai sản phẩm có tính thúc đẩy lẫn nhau.
- Định nghĩa 3 chỉ số:
❓ Câu hỏi 2: So sánh thuật toán Apriori và FP-Growth. Tại sao thuật toán FP-Growth lại có tốc độ xử lý nhanh hơn từ 10 đến 100 lần so với Apriori trên tập dữ liệu hàng triệu giao dịch bán lẻ? Cấu trúc FP-Tree hoạt động như thế nào?
- Gợi ý trả lời:
- Nhược điểm gốc rễ của Apriori:
- Apriori là thuật toán duyệt theo chiều rộng (BFS). Để tìm ra tập sản phẩm phổ biến, nó phải sinh ra toàn bộ các ứng viên tổ hợp (Candidate generation) từ bước . Số lượng ứng viên bùng nổ theo cấp số nhân.
- Tại mỗi bước , Apriori bắt buộc phải quét toàn bộ cơ sở dữ liệu trên đĩa một lần để đếm tần suất của các ứng viên. Nếu tập phổ biến nhất có 10 sản phẩm, hệ thống phải quét toàn bộ bảng dữ liệu hàng triệu dòng 10 lần liên tiếp Quá tải I/O đĩa.
- Đột phá của FP-Growth (Frequent Pattern Growth):
- Chỉ quét cơ sở dữ liệu đúng 2 lần:
- Lần 1: Xác định các item đơn lẻ thỏa mãn
min_supportvà sắp xếp theo tần suất giảm dần. - Lần 2: Xây dựng cấu trúc cây nén FP-Tree trong bộ nhớ RAM.
- Lần 1: Xác định các item đơn lẻ thỏa mãn
- Cấu trúc nén FP-Tree (Prefix Tree):
- Mỗi đơn hàng được biểu diễn thành một đường đi từ gốc (Root) đến lá.
- Các đơn hàng có chung tiền tố (ví dụ: cùng mua Bánh mì Trứng gà) sẽ chia sẻ chung các nút trên cây, giúp nén hàng triệu giao dịch cồng kềnh thành một cây nhỏ gọn nằm trọn vẹn trong RAM.
- Khai phá đệ quy không sinh ứng viên:
- FP-Growth khai phá trực tiếp từ cây FP-Tree bằng cách xây dựng các Cây điều kiện (Conditional FP-Trees) từ đuôi lên đầu (Bottom-up).
- Thuật toán hoàn toàn không cần sinh ra bất kỳ ứng viên tổ hợp nào Loại bỏ hoàn toàn chi phí kiểm tra tổ hợp và triệt tiêu thời gian tính toán so với Apriori.
- Chỉ quét cơ sở dữ liệu đúng 2 lần:
- Nhược điểm gốc rễ của Apriori:
❓ Câu hỏi 3: Khi sử dụng mô hình RFM kết hợp thuật toán phân cụm K-Means để tự động hóa việc phân nhóm khách hàng, dữ liệu RFM thường có phân phối lệch nặng (Skewed Distribution). Bạn sẽ xử lý tiền xử lý dữ liệu (Preprocessing) như thế nào để K-Means cho ra các cụm phân khúc có ý nghĩa kinh doanh?
- Gợi ý trả lời (Quy trình 3 bước chuẩn mực):
- Nhận diện vấn đề của dữ liệu RFM:
- Các biến (Tần suất) và (Số tiền chi tiêu) trong thực tế luôn tuân theo quy tắc Pareto () hoặc phân phối đuôi dài (Power-law / Right-skewed): Đa số khách hàng chỉ mua 1–2 lần với số tiền nhỏ, nhưng có một số ít khách hàng cá mập mua hàng nghìn lần với số tiền khổng lồ.
- Thuật toán K-Means dựa trên khoảng cách Euclidean và giả định các cụm có dạng hình cầu đồng đều. Dữ liệu lệch nặng sẽ khiến K-Means bị kéo lệch tâm, gom khách hàng vào 1 cụm khổng lồ và tách vài khách cá mập thành các cụm đơn lẻ vô nghĩa.
- Các bước tiền xử lý bắt buộc:
- Bước 1 - Biến đổi Logarit (Log Transformation / Box-Cox): Áp dụng cho cả 3 biến để kéo các giá trị đuôi dài về gần trung tâm, biến phân phối lệch thành dạng xấp xỉ phân phối chuẩn (Normal Distribution).
- Bước 2 - Chuẩn hóa thang đo (StandardScaler): Do Recency tính bằng ngày (), Frequency tính bằng đơn vị (), còn Monetary tính bằng triệu đồng (), bắt buộc phải đưa cả 3 biến về cùng thang đo chuẩn để biến tiền tệ không đè bẹp các biến khác.
- Đánh giá và Gán nhãn nghiệp vụ:
- Sử dụng Silhouette Score để chọn số lượng cụm tối ưu (thường chọn ).
- Tính giá trị trung bình gốc (Inverse transform) của từng cụm để gán nhãn kinh doanh trực quan (ví dụ: Cụm có Mean thấp, cao, cao Gán nhãn "High-Value Loyalists").
- Nhận diện vấn đề của dữ liệu RFM:
6. Tóm Tắt Ghi Nhớ Nhanh (Key Takeaways)
- Mô hình RFM phân loại khách hàng dựa trên hành vi giao dịch thực tế: Recency (Mới mua), Frequency (Thường xuyên), Monetary (Chi tiêu nhiều).
- Nhóm At-Risk ( thấp, cao) là nhóm cần cứu vãn khẩn cấp nhất vì đây là những khách sắm đậm đang chuẩn bị rời bỏ doanh nghiệp.
- Trong khai phá giỏ hàng, là điều kiện tiên quyết chứng minh mối quan hệ thúc đẩy lẫn nhau giữa 2 sản phẩm; Confidence cao chưa đủ để kết luận.
- FP-Growth vượt trội hoàn toàn so với Apriori nhờ nén dữ liệu vào cây FP-Tree trong RAM và chỉ quét Database đúng 2 lần duy nhất.
- Khi kết hợp RFM với K-Means, bắt buộc phải áp dụng Log Transformation và StandardScaler để triệt tiêu hiện tượng phân phối lệch đuôi dài.
0Claps