Capstone: recsys có đo cold start và sparsity
Capstone 4: nâng recsys ngày 131 lên A-B test, đo cold start và sparsity, blend theo độ ấm, báo cáo business metric.
Chuyên giaThuật toán ~120 phút
Ôn lại trước khi học
Giới thiệu
Bạn gợi ý phim và hàng cho người dùng. Người mới cần cách gợi ý riêng.
Kiến thức cần nhớ
Gợi ý cộng tác
- Gợi ý cộng tác dựa vào người giống bạn.
- Ví dụ đời thường: bạn thích gì thì rủ người giống bạn.
- Cần đủ lịch sử chung mới so được.
- Ít dữ liệu thì gợi ý kém.
Cold start và sparsity
- Cold start là người mới hoặc món mới chưa có dữ liệu.
- Sparsity là bảng đánh giá nhiều ô trống.
- Ví dụ đời thường: khách mới vào quán chưa biết thích gì.
- Cách xử lý: dùng món phổ biến hoặc theo nội dung.
A-B test và blend
- A-B test chia người dùng làm hai nhóm so sánh.
- Blend là trộn nhiều cách gợi ý theo tỉ lệ.
- Ví dụ đời thường: blend như pha hai vị nước theo tỉ lệ.
- Người mới thì tăng tỉ trọng gợi ý phổ biến.
# trộn gợi ý phổ biến và cá nhân
def blend(pho_bien, ca_nhan, do_am):
w = min(do_am, 1.0) # càng nhiều dữ liệu càng tin cá nhân
return w * ca_nhan + (1 - w) * pho_bien # điểm trộn
Ví dụ
- Người mới chưa đánh giá gì -> gợi ý top phổ biến.
- Người cũ nhiều đánh giá -> gợi ý theo sở thích riêng.
💻 Bài tập
Ngôn ngữ: Python 3. Gom code ngày 58, 59, 91, 131. Dữ liệu MovieLens 1M. Nộp vào day-154-capstone/.
Bài 1: Đo cold start
- Chọn 500 user có ít nhất 50 rating. Giả làm user mới: giữ lại 0, 1, 3, 5, 10, 20 rating trong train.
- Đo precision@10 và NDCG@10 cho 4 mô hình (phổ biến, content, item-CF, MF) ở mỗi mức.
- Vẽ đường NDCG theo số rating cho 4 mô hình. Chỉ ra điểm giao nhau: từ bao nhiêu rating thì MF bắt đầu thắng.
Làm tương tự cho phim mới: giấu toàn bộ rating của 200 phim, rồi thêm lại dần.
Bài 2: Đo sparsity
- Xóa ngẫu nhiên 0%, 30%, 60%, 90% rating train. In RMSE và NDCG@10 của item-CF và MF.
- Tính mật độ ma trận mỗi mức. Viết 3 câu vì sao MF chịu thưa tốt hơn.
Bài 3: Blend và A/B test giả lập (nâng cao)
- Blend theo số rating của user: , điểm = . Chọn tốt nhất.
- A/B test giả lập: chia 6000 user ngẫu nhiên 2 nhóm. Nhóm A dùng MF, nhóm B dùng blend. "Click" là phim trong top 10 được user chấm ≥ 4 ở tập test.
- Tính tỉ lệ click 2 nhóm, khoảng tin cậy 95% và p-value (kiểm định 2 tỉ lệ). Kết luận có ý nghĩa thống kê không.
REPORT.mdtổng hợp 3 phần.
✅ Tiêu chí hoàn thành
- Hình NDCG theo số rating cho user mới và phim mới.
- Bảng sparsity có số thật.
- Blend có chọn bằng validation.
- A/B test có khoảng tin cậy và p-value.
❓ Câu hỏi ôn tập
- Cold start là gì?
- Sparsity cao gây khó gì?
- A-B test chia nhóm thế nào?
- Blend nghĩa là gì?
🌕 Bạn đã hoàn thành ngày 154. Làm hết bài tập phía trên rồi sang ngày tiếp theo.