images
08/10/2020 04:20 am

Gấu mèo đi làm Data Scientist - Phần 7: Co-occurrences and Associations: Finding Items That Go

Hè rực rỡ, lại lắm khuyến mãi, thế nên Crazy Puppy đi nghỉ mát với crush của nó. Bởi vậy mà Gấu Mèo tạm thoát ra khỏi vụ “đánh giá model”.

Hôm trước có một bạn trong page nhắc tới việc dùng 𝘂𝗻𝘀𝘂𝗽𝗲𝗿𝘃𝗶𝘀𝗼𝗿 để suggest sản phẩm, nên Gấu Mèo tranh thủ tìm hiểu về 𝗖𝗼-𝗼𝗰𝗰𝘂𝗿𝗿𝗲𝗻𝗰𝗲𝘀 𝗮𝗻𝗱 𝗔𝘀𝘀𝗼𝗰𝗶𝗮𝘁𝗶𝗼𝗻𝘀.


Bài toán Co-occurrences và Associations có mục đích tìm ra mối liên hệ giữa các item (sản phẩm bán) và các đơn hàng có item đấy trong giỏ hàng.


Co-occurrences và Associations thường được sử dụng trong cross-sale. Chẳng hạn dựa trên dữ liệu về các giỏ hàng trong lịch sử, chúng ta có thể suggest những khách hàng đang mua quyển “Data Science For Business” mua thêm quyển “Too Big To Ignore: The Business Case For Big Data”.


Điều này không những tăng doanh thu cho công ty mà còn làm trải nghiệm khách hàng mượt mà hơn. Khách hàng hài lòng hơn bởi họ tìm được những sản phẩm vừa ý mà không mất thời gian tìm kiếm hay suy nghĩ.


Phương pháp này đôi lúc cũng được sử dụng trong việc bố trí kho bãi. Để tiết kiệm chi phí ship, các doanh nghiệp thường bố trí kho ở các vùng khác nhau. Tuy nhiên việc tối ưu số lượng và danh mục các sản phẩm trữ kho luôn làm đau đầu người quản lý. Nếu như một sản phẩm ít phổ biến luôn được bán kèm cùng một sản phẩm phổ biến thì tốt nhất nên trữ kho nó cùng địa điểm với sản phẩm phổ biến.


Nếu biz của bạn không dùng giỏ hàng thì cần chú ý chút ở giai đoạn tracking. Chẳng hạn muốn xem các Event nào của khách hàng có liên quan với nhau thì bạn phải đính kèm thông tin session trong khi track lại event đấy. Hoặc bạn sẽ phải có code xử lý để group các event lại dựa trên thời gian, trình duyệt, customerID…


Có một vấn đề nữa cần lưu ý là khi số lần xẩy ra sự kiện 2 sản phẩm được bán cùng nhau phải đủ lớn (thì mới thành rule được, không thì nó chỉ là hiện tượng ngẫu nhiên thôi). Để đơn giản, người ta thường dùng một ngưỡng gọi là support, chẳng hạn: số lần xảy ra phải lớn hơn 0.01% tổng tất cả các transaction mới được coi là rule.


Bài toán này dựa trên thống kê và tính xác suất hai sản phẩm cùng được đưa vào giỏ hàng. Tuy nhiên liệu có phải sản phẩm nào có xác suất xuất hiện cùng nhau lớn hơn thì sẽ được suggest?


Thực ra người ta còn dùng một khái niệm khác đấy là: Leverage. Để xem mối quan hệ giữa hai mặt hàng có thực sự đáng chú ý hay không người ta dùng 2 metric: 𝗹𝗶𝗳𝘁 & 𝗹𝗲𝘃𝗲𝗿𝗮𝗴𝗲:


- lift(A, B) = p(A,B) / (p(A) * p(B))

- leverage(A, B) = p(B, A) - p(A)p(B)


Ví dụ có 30% trong các đơn hàng sẽ mua bia, có 40% toàn bộ các đơn hàng có lạc, 20% có bia kèm lạc.


Nếu như hai việc mua bia và lạc độc lập nhau thì xác suất việc mua cả bia và lạc là 0.4 * 0.3 = 0.12, như vậy có chút quan hệ giữa việc mua bia và lạc.


Chúng ta sẽ xem mối quan hệ đấy lớn như thế nào bằng việc tính leverage = 0.2 - 0.12 = 0.08.


Và từ số leverage này chúng ta có thể sắp xếp priority khi suggest sản phẩm.


Để xác định phương pháp nào hiệu quả hơn thì bạn có thể dùng A/B testing để kiểm nghiệm lại trên thực tế.


Mời các bạn đọc lại bài Gấu mèo đi làm Data Scientist - Phần 6 - Evaluate Model - Part 3 - Gain and Lift Charts.


- Tech Zone -


Thư giãn chút nào!!!

Bài viết liên quan