Nghiên cứu phương pháp mô hình hóa hành vi người dùng dựa trên dữ liệu web Nghiên cứu phương pháp mô hình hóa hành vi người dùng dựa trên dữ liệu web Nghiên cứu phương pháp mô hình hóa hành vi người dùng dựa trên dữ liệu web luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
Trang 1NGHIÊN CỨU PHƯƠNG PHÁP MÔ HÌNH HÓA HÀNH VI
NGƯỜI DÙNG DỰA TRÊN DỮ LIỆU WEB
LUẬN VĂN THẠC SĨ KHOA HỌC
Trang 2NGHIÊN CỨU PHƯƠNG PHÁP MÔ HÌNH HÓA HÀNH VI NGƯỜI
DÙNG DỰA TRÊN DỮ LIỆU WEB
Chuyên ngành : Hệ thống thông tin
Trang 33
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn : Trần Trung Hiếu
Đề tài luận văn: Nghiên cứu phương pháp mơ hình hĩa hành vi người dùng dựa
trên dữ liệu web
Chuyên ngành: Hệ thống thơng tin
Mã số SV: CBC17019
Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn xác nhận tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng ngày 27/10/2018 với các nội dung sau:
- Chỉnh sửa cơng thức precision và recall cĩ trong mục 1.4 phương pháp đánh giá
sai số, chương 1 cơ sở lý thuyết
- Chỉnh sửa và trình bày chi tiết hơn phần quy trình tổng quát khai phá hành vi
người dùng cĩ trong mục 2.2.1, chương 2 mơ hình hĩa hành vi
- Chỉnh sửa phần nêu rõ ưu điểm của việc sử dụng thuật tốn Nạve Bayes trong
việc phân loại dữ liệu text trong mục 2.2.4 huấn luyện, chương 2 mơ hình hĩa hành vi
- Bổ sung tài liệu tham khảo chứng minh những ưu điểm việc lựa chọn thuật tốn
Nạve Bayes trong việc phân loại dữ liệu bình luận của người dùng
- Chỉnh sửa hình 2.10 kiến trúc các thành phần của hệ thống, chương 2 mơ hình
hĩa hành vi
Trang 44
Ngày 18 tháng 11 năm 2018 Giáo viên hướng dẫn Tác giả luận văn
CHỦ TỊCH HỘI ĐỒNG
Trang 55
MỤC LỤC
LỜI CAM ĐOAN 7
LỜI CẢM ƠN 8
DANH MỤC CÁC BẢNG 9
DANH MỤC CÁC HÌNH VẼ 10
MỞ ĐẦU 12
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 15
1.1 Tổng quan về hành vi người dùng 15
1.1.1 Khái niệm 15
1.1.2 Yếu tố ảnh hưởng hành vi người dùng 15
1.2 Khai phá dữ liệu 16
1.2.1 Khái niệm 16
1.2.2 Quá trình khai phá tri thức 17
1.2.3 Các phương pháp khai phá dữ liệu 18
1.3 Hệ gợi ý 24
1.3.1 Giới thiệu 24
1.3.2 Xây dựng ma trận Utility 25
1.3.3 Gợi ý dựa trên nội dung 26
1.3.4 Lọc cộng tác 28
1.4 Phương pháp đánh giá sai số 36
1.4.1 Đánh giá độ chính xác của dự đoán 36
1.4.2 Đánh giá việc sử dụng các dự đoán 37
CHƯƠNG 2: MÔ HÌNH HÓA HÀNH VI 39
2.1 Cơ sở mô hình hóa hành vi 39
2.1.1 Giới thiệu bài toán 39
2.1.2 Hành vi người dùng trong dữ liệu web 40
2.2 Quá trình khai phá hành vi 41
2.2.1 Quy trình tổng quát 41
2.2.2 Lựa chọn dữ liệu 42
Trang 66
2.2.3 Tiền xử lý dữ liệu 43
2.2.4 Huấn luyện 48
2.2.5 Dự báo 53
2.2.6 Biểu diễn kết quả 55
2.3 Kiến trúc hệ thống 55
2.3.1 Kiến trúc phân tầng 55
2.3.2 Kiến trúc các thành phần của hệ thống 56
CHƯƠNG 3: THỬ NGHIỆM 59
3.1 Mô tả dữ liệu 59
3.1.1 Giới thiệu nguồn gốc dữ liệu 59
3.1.2 Cấu trúc dữ liệu 59
3.1.3 Phân bố dữ liệu 62
3.2 Phân tích bài toán 63
3.3 Quá trình khai phá hành vi 65
3.3.1 Lựa chọn dữ liệu 65
3.3.2 Tiền xử lý dữ liệu 66
3.3.3 Huấn luyện và dự báo 69
3.3.4 Biểu diễn kết quả 73
3.4 Thiết kế hệ thống 74
3.4.1 Mô hình thiết kế 74
3.4.2 Chức năng các thành phần 75
3.5 Kết quả thu được và nhận xét 75
3.5.1 Kết quả dự đoán dựa trên kết hợp click và rating 75
3.5.2 Kết quả của phân loại phê bình 78
KẾT LUẬN 81
TÀI LIỆU THAM KHẢO 83
Trang 77
LỜI CAM ĐOAN
Tôi – Trần Trung Hiếu, học viên cao học khóa CLC2017B – cam kết Luận văn tốt nghiệp là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của TS Nguyễn Bình Minh – Viện Công Nghệ Thông Tin và Truyền Thông – Đại học Bách Khoa Hà Nội Các kết quả trong Luận văn tốt nghiệp là trung thực, không sao chép toàn văn của bất
kỳ công trình nào khác
Hà Nội, ngày 20 tháng 9 năm 2018
Tác giả luận văn
Trần Trung Hiếu
Trang 8Tác giả xin được gửi lời cảm ơn sâu sắc nhất đến thầy giáo TS Nguyễn Bình
Minh đã tận tình giúp đỡ, trực tiếp chỉ bảo, chỉnh sửa, hướng dẫn tác giả trong suốt quá
trình làm luận văn Trong thời gian làm việc với thầy, tác giả không những được tiếp thu thêm kiến thức mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả
Cuối cùng, tác giả xin được gửi lời cảm ơn chân thành tới gia đình, ban lãnh đạo công ty, đồng nghiệp và bạn bè đã động viên, khuyến khích, đóng góp ý kiến và tạo điều kiện cho tác giả trong quá trình học tập, nghiên cứu và hoàn thành luận văn
Trân trọng !
Trang 99
DANH MỤC CÁC BẢNG
Bảng 3.1 Số liệu sai số trường hợp 1 76
Bảng 3.2 Số liệu sai số trường hợp 2 76
Bảng 3.3 Số liệu sai số trường hợp 3 76
Bảng 3.4 Số liệu sai số trường hợp 4 77
Bảng 3.5 Số liệu sai số toàn bộ dữ liệu xếp hạng 77
Trang 1010
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Khai phá dữ liệu là một bước trong quá trình khai phá tri thức[11] 17
Hình 1.2 Phân tích bài toán SVM 21
Hình 1.3 Ví dụ về ma trận Utility dựa trên số sao một user rate cho một item 30
Hình 1.4 Ví dụ mô tả lọc cộng tác user-user, a) Ma trận Utility ban đầu b) Ma trận Utility đã được chuẩn hóa c) ma trận user tương tự d) dự đoán các ratings chuẩn hóa còn thiếu e) ví dụ về dự đoán rating chuẩn hóa f) dự đoán các ratings còn thiếu 31
Hình 1.5 Minh họa kỹ thuật phân rã ma trận 34
Hình 1.6 Minh họa ví dụ để tính precision và recall 37
Hình 2.1 Một số hành vi trong dữ liệu người dùng tương tác và phản hồi sản phẩm 40
Hình 2.2 Quá trình khai phá hành vi 41
Hình 2.3 Biểu diễn mỗi quan hệ giữa người dùng và sản phẩm 42
Hình 2.4 Tiền xử lý dữ liệu [3] 43
Hình 2.5 Phương pháp binning cho việc làm mịn dữ liệu 45
Hình 2.6 Các ngoại lệ có thể được phát hiện bằng phân cụm 46
Hình 2.7 Biểu diễn quan hệ giữa user và item bằng kỹ thuật phân rã ma trận 49
Hình 2.8 Biểu diễn kết quả gợi ý 55
Hình 2.9 Kiến trúc phân tầng của hệ thống 56
Hình 2.10 Kiến trúc các thành phần của hệ thống 57
Hình 3.1 Biểu đồ thể hiện số lượng review qua các năm 62
Hình 3.2 Biểu đồ mô tả tỉ trọng review giữa các nhóm danh mục 63
Hình 3.3 Hành vi người dùng trong dữ liệu review của Amazon 64
Hình 3.4 Biểu diễn mỗi quan hệ giữa người dùng và sản phẩm trong bộ dữ liệu thử nghiệm 65
Hình 3.5 Quy trình phân loại các sản phẩm vào nhóm danh mục 66
Hình 3.6 Mô tả số lượng review theo danh mục sau khi đã loại bỏ dữ liệu review cũ 67 Hình 3.7 Mô tả phân phối chuẩn Poison 68
Trang 1111
Hình 3.8 Biểu đồ mô tả số lượng sản phẩm theo số click của người dùng 68
Hình 3.9 Kiến trúc của Apache Spark 69
Hình 3.10 Quy trình kết hợp trong huấn luyện và dự báo hành vi click và xếp hạng 71
Hình 3.11 Quy trình phân loại phê bình 72
Hình 3.12 Biểu diễn kết quả gợi ý sản phẩm trên website 73
Hình 3.13 Biểu diễn kết quả phân loại phê bình trên webs 73
Hình 3.14 Mô hình thiết kế hệ thống 74
Hình 3.15 Biểu diễn RMSE trong các trường hợp 77
Hình 3.16 Biểu diễn số lượng phê bình dùng để test của từng danh mục 78
Hình 3.17 Biểu diễn độ chính xác của phân loại theo từng danh mục 79
Hình 3.18 Biểu diễn số lượng phê bình tích cực dùng để test và độ chính xác theo từng nhóm danh mục 79
Hình 3.19 Biểu diễn số lượng phê bình tiêu cực dùng để test và độ chính xác theo từng nhóm danh mục 80
Trang 1212
MỞ ĐẦU
Ngày nay, trong một thế giới kết nối, con người đang dần thay đổi phương thức sinh hoạt và sản xuất từ thủ công sang ứng dụng công nghệ, đặc biệt là công nghệ thông tin dựa trên hạ tầng Internet Con người đã và đang tương tác nhiều hơn với Internet vì những lợi ích mà nó mang lại Ví dụ như giao dịch mua bán trên các trang thương mại điện tử Các trang này cung cấp cho người dùng những cơ hội tuyệt vời để tiếp cận với nguồn thông tin khổng lồ đem lại những trải nghiệm sử dụng dịch vụ tốt nhất cho người dùng Thị trường thương mại điện tử ngày càng có tính tranh cạnh tranh cao Dẫn đến khách hàng dễ dàng từ bỏ sử dụng trang thương mại điện tử hiện tại để chuyển đến một trang khác khi nhu cầu của họ không được đáp ứng hoặc không hài lòng với dịch vụ mà
nó cung cấp Kết quả là kinh doanh thương mại điện tử các nhà phân tích cần hiểu hành
vi người tiêu dùng để điều hướng website của mình đáp ứng nhu cầu của họ và thúc đẩy
họ mua hàng Nhận thức được điều này cho phép các trang web phân phối sản phẩm phù hợp hơn với khách hàng giữ chân họ và thúc đẩy lợi nhuận của mình
Tuy nhiên, khám phá hành vi và lý do dẫn đến việc mua hàng của người dùng là một nhiệm vụ rất phức tạp Do đó các website thường cung cấp cho khách hàng nhiều tùy chọn và hành động điều hướng khác nhau giúp người dùng có thể dễ dàng tự do di chuyển qua các danh mục, các sản phẩm cụ thể hay cung cấp nhiều phương thức giúp họ
có thể phản hồi về sản phẩm cũng như trải nghiệm của khách hàng khi sử dụng dịch vụ Thông thường những hành động của khách hàng tương tác với website sẽ được lưu trữ trên log của web server hoặc được lưu trữ trên cơ sở dữ liệu theo một trật tự là chuỗi các
sự kiện tạo ra bởi người dùng(như click, view, comment…) Dữ liệu được lưu trữ bởi những phương thức đó được gọi chung là dữ liệu web Hành vi người dùng có trong dữ liệu web rất có giá trị cần phải được phát hiện và phân tích để cải thiện nội dung và cấu trúc các trang web nhằm điều chỉnh, cá nhân hóa nội dung, gợi ý sản phẩm hoặc để hiểu được sự quan tâm người dùng đến một sản phẩm cụ thể [1]
Trang 1313
Các kỹ thuật khai phá dữ liệu hiện nay đã chứng tỏ được sự hữu ích đối với việc khai thác các dữ liệu web của người dùng Mục tiêu chính là khám phá ra các mẫu dữ liệu để giải thích sở thích của người dùng Các kỹ thuật khác nhau sử dụng khá thành công trong thương mại điện tử như kỹ thuật hồi quy, phân loại hay phân cụm… Những
kỹ thuật như vậy là một phần của kinh doanh thông minh nhằm khai phá hành vi có trong các dữ liệu ẩn và những quan hệ ẩn trong một tập lớn dữ liệu người dùng
Ngày nay các website thương mại điện tử là một hệ thống mở nơi mà người dùng tương tác với hệ thống được thể hiện bằng nhiều hành vi khác nhau Tính linh hoạt này làm cho việc tạo ra một mô hình đại diện cho hành vi người dùng là một nhiệm vụ khó khăn Điều này là do, có rất nhiều tương tác khác nhau mà cuối cùng việc tạo ra một mô hình đại diện có thể là một mô hình quá khớp hoặc là một mô hình không khớp tí nào từ
đó không thể phân tích được hoặc không gợi ý cho người dùng một cách chính xác Khó khăn trong việc hiểu dữ liệu hành vi người dùng để đưa ra một mô hình phân tích gợi ý phù hợp có thể đề cập ở một số khía cạnh như:
Hành vi người dùng có thể thay đổi theo từng năm hoặc theo từng thời điểm khác nhau có thể tại một số thời điểm cụ thể không tuân theo một quy luật nhất định
Một phần người dùng chỉ tương tác một vài lần với các trang web dẫn đến việc gợi ý không chính xác Vì vậy cần áp dụng các kỹ thuật để loại bỏ những
dữ liệu gây nhiễu cho mô hình
Việc thu thập hành vi người dùng chưa hiệu quả dẫn đến việc gợi ý chưa thật
sự chính xác
Tuy nhiên, hiện nay với việc phát triển các kỹ thuật khai phá dữ liệu, học máy và các kỹ thuật học sâu giúp các nhà nghiên cứu, các nhà phân tích đưa ra các mô hình gợi
ý phù hợp hơn cho một số loại dữ liệu hành vi người dùng trong một phạm vi nhất định
Từ đó đưa ra những chiến lược kinh doanh, gợi ý những sản phẩm phù hợp với người
Trang 1414
tiêu dùng nhằm mang lại cho họ những chất lượng dịch vụ tốt nhất để giữ chân khách hàng sử dụng dịch vụ lâu hơn
Để nắm bắt cơ hội cũng như thách thức đặt ra khi nghiên cứu hành vi người dùng
Luận văn sẽ đi sâu nghiên cứu về lớp bài toán “mô hình hóa hành vi người dùng trên
tập dữ liệu người dùng tương tác và phản hồi sản phẩm” Để giải quyết bài toán trên
mục tiêu đặt ra là:
Tìm hiểu các kỹ thuật khai phá dữ liệu, các phương pháp gợi ý dựa trên hành
vi được sử dụng phổ biến hiện nay
Đưa ra mô hình phù hợp với bài toán Để từ đó có thể áp dụng mô hình cho một số bài toán tương tự
Lựa chọn phương pháp gợi ý phù hợp cho bài toán đặt ra
Thử nghiệm một bộ dữ liệu cụ thể với mô hình đề xuất cho ra kết quả là những gợi ý cho người dùng
Bằng phương pháp tiếp cận dữ liệu từ lúc thu thập dữ liệu hành vi tương tác và phản hồi sản phẩm của người dùng cho tới quá trình tiền xử lý dữ liệu để có dữ liệu ở mức có thể huấn luyện được và cuối cùng là dự báo và đưa ra kết quả là những gợi ý cho người dùng Tất cả quá trình kể trên sẽ được trình bày trong 3 chương của luận văn:
- CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Chương này sẽ trình bày khái niệm cơ bản về mô hình hóa hành vi, khai phá dữ liệu, các hệ gợi ý được sử dụng hiện nay
- CHƯƠNG 2: MÔ HÌNH HÓA HÀNH VI
Đề xuất mô hình cho bài toán từ đó áp dụng các phương pháp gợi ý phù hợp
- CHƯƠNG 3: THỬ NGHIỆM
Với mô hình được đưa ra trong chương 2 Áp dụng nó cho bộ dữ liệu phản hồi của khách hàng về sản phẩm của Amazon
Trang 1515
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về hành vi người dùng
1.1.1 Khái niệm
Việc đưa ra quyết định tiêu dùng từ lâu đã được các nhà nghiên cứu quan tâm Từ
300 năm về trước các nhà khoa học Nicollas Bernoulli, John von Neuman, Oskar Morgenstern đã bắt đầu khảo sát cơ sở đưa ra quyết định của người tiêu dùng Công việc ban đầu này tiếp cận theo quan điểm kinh tế và tập trung vào hành động mua hàng Mô hình phổ biến nhất từ quan điểm này là ‘Utility Theory’ đề xuất cho khách hàng lựa chọn dựa trên kết quả mong đợi từ quyết định của họ
Trong quá trình tiến hóa liên tục thì chỉ đến năm 1950 khái niệm hành vi người dùng mới đáp ứng được quan niệm và tăng trưởng của kinh tế hiện đại để bao gồm phạm
vi hoạt động toàn diện hơn tác động đến quyết định của người tiêu dùng Điều này được thể hiện qua một số khái niệm về hành vi người dùng như:
“Hành vi người dùng … Là nghiên cứu về các quá trình liên quan khi cá nhân
hoặc một nhóm người lựa chọn, mua sắm, sử dụng hoặc vứt bỏ một sản phẩm, dịch vụ,
ý tưởng hoặc kinh nghiệm để đáp ứng nhu cầu và mong muốn của họ ” của Solomon,
Bamossy[2]
Hoặc một cách tiếp cận tương tự trong việc xác định hành vi người dùng đó là
“Hành vi mà người dùng thể hiện trong tìm kiếm, mua sắm, sử dụng đánh giá và
xử lý sản phẩm và dịch vụ mà họ mong đợi sẽ đáp ứng nhu cầu của họ”[2]
Như vậy hành vi của người dùng là chuỗi các hành động dẫn đến quyết định của người dùng có nên sử dụng sản phẩm hay dịch vụ đó không Trong chuỗi các hành động đấy sẽ có nhiều yếu tố ảnh hưởng đến quyết định của họ
1.1.2 Yếu tố ảnh hưởng hành vi người dùng
Việc nghiên cứu hành vi người dùng không chỉ giúp ta hiểu quá khứ mà còn dự đoán tương lai Các yếu tố dưới đây có thể ảnh hưởng đến thái độ quyết định sử dụng sản phẩm hay dịch vụ của người dùng
Trang 1616
Sức mua người tiêu dùng: Đóng vai trò quan trọng trong ảnh hưởng đến
hành vi người tiêu dùng Người tiêu dùng thường phân tích khả năng mua của
họ trước khi đưa ra quyết định mua sản phẩm hoặc dịch vụ Sản phẩm có tuyệt vời nhưng nếu không đáp ứng được khả năng mua của người mua, nó sẽ tác động đến doanh số bán hàng
Ảnh hưởng nhóm: Bao gồm các thành viên trong gia đình, bạn cùng lớp,
người thân, hoặc một nhóm người có chung bình luận về sản phẩm hoặc dịch
vụ đó
Sở thích cá nhân: Ở cấp độ cá nhân hành vi của người dùng bị ảnh hưởng
bởi các sắc thái khác nhau về thích, không thích, thứ tự ưu tiên, đạo đức và giá trị
Điều kiện kinh tế: Các quyết định chi tiêu của người tiêu dùng chịu ảnh
hưởng bởi tình hình kinh tế thị trường Môi trường kinh tế tích cực làm cho người tiêu dùng tự tin hơn và sẵn sàng tiêu dùng nhiều hơn
Ngày nay với sự phát triển của khoa học công nghệ hành vi người dùng được xem xét và phân tích dưới góc nhìn của khoa học dữ liệu Bằng việc thu thập và lưu trữ hành
vi người dùng kết hợp các kỹ thuật khai phá dữ liệu để từ đó gợi ý cho người dùng những sản phẩm và dịch vụ phù hợp
1.2 Khai phá dữ liệu
1.2.1 Khái niệm
Khai phá dữ liệu là một khái niệm ra đời vào những năm cuối của thập kỷ 80 Nó
bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm ẩn trong các tập dữ liệu lớn(các kho dữ liệu) Về bản chất, khai phá dữ liệu liên quan đến việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm ra các mẫu hình có tính chính quy trong tập dữ liệu
Trang 1717
Ở một mức độ trừu tượng nhất định có thể định nghĩa: Khai phá dữ liệu (Data Mining) là một quá trình tìm kiếm, phát hiện các tri thức mới, tiềm ẩn, hữu dụng trong
cơ sở dữ liệu lớn
Khai phá tri thức là mục tiêu chính của khai phá dữ liệu, do vậy khái niệm đó
được xem như hai lĩnh vực tương đương nhau Nhưng nếu phân chia một cách tách bạch khai phá dữ liệu là một bước trong quá trình khai phá tri thức
1.2.2 Quá trình khai phá tri thức
Quá trình khai phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases – KDD) là lĩnh vực liên quan đến các ngành như: thống kê, học máy, cơ sở
dữ liệu, thuật toán, trực quan hóa dữ liệu, tính toán song song và hiệu năng cao, …
Quá trình KDD có thể phân thành các giai đoạn sau:
Hình 1.1 Khai phá dữ liệu là một bước trong quá trình khai phá tri thức[11]
Lựa chọn: Bước này liên quan đến việc xác định hoặc trích xuất dữ liệu có
liên quan để phân tích
Tiền xử lý: Bước này bao gồm việc chuẩn bị, làm sạch tập dữ liệu bằng cách
giải quyết các vấn đề như thiếu dữ liệu, dữ liệu bị lệch, các trường không liên quan, loại bỏ các điểm bên ngoài, chuyển đổi định dạng
Trang 1818
Khai phá dữ liệu: Bước này liên quan đến việc áp dụng các thuật tốn khai
phá tri thức cho dữ liệu đã được làm sạch và chuyển đổi để trích xuất các mẫu
cĩ ý nghĩa từ dữ liệu đĩ
Đánh giá mẫu: Bước này liên quan đến việc đánh giá các mẫu tự động hoặc
bán tự động để xác định các mẫu hữu ích cho người dùng
Biểu diễn tri thức: Bước này biểu diễn tri thức ở định dạng thích hợp
Như vậy khai phá dữ liệu là một bước quan trọng trong quá trình khai phá tri thức Hiện nay cĩ nhiều phương pháp cho việc khai phá dữ liệu Vì vậy để đạt hiệu quả cao thì cần phải áp dụng các phương pháp hợp lý
1.2.3 Các phương pháp khai phá dữ liệu
Cĩ nhiều phương pháp phân loại trong khai phá dữ liệu như cây quyết định, Nạve Bayes, Support Vector Machines, mạng Neural
1.2.3.1.1 Cây quyết định
Cây quyết định là cây cĩ cấu trúc trong đĩ node nội biểu thị phép thử trên một thuộc tính, mỗi nhánh đại diện cho kết quả của phép thử, mỗi node lá chứa nhãn lớp Node trên cùng trong cây là node gốc Cĩ nhiều thuật tốn để xác định cây quyết định
Trang 1919
bao gồm: Thuật tốn Hunt, CART, ID3, C4.5, SLIQ, SPRINT được đề cập phổ biến nhất Thuật tốn Hunt đệ quy là một trong những thuật tốn sớm nhất và dễ hiểu nhất dựa vào kiểm tra điều kiện được áp dụng cho một thuộc tính nhất định phân biệt các quan sát theo giá trị đích Khi phân vùng được kích hoạt bởi điều kiện kiểm tra đã được tìm thấy, thuật tốn được lặp lại một cách đệ quy cho đến khi một phân vùng trống hoặc tất cả các quan sát cĩ cùng giá trị đích
Phân chia cĩ thể được quyết định bằng cách cực đại hĩa sự tăng thơng tin, được định nghĩa như sau:
∆𝑖= 𝐼(𝑝𝑎𝑟𝑒𝑛𝑡) − ∑𝑁(𝑣𝑗)𝐼(𝑣𝑗)
𝑁
𝑘𝑖
𝑗=1
Trong đĩ 𝑘𝑖 là giá trị của thuộc tính i, N là số lượng quan sát, 𝑣𝑗 là phân vùng thứ
j của các quan sát theo các giá trị của thuộc tính i Cây quyết định dừng lại khi tất cả các quan sát thuộc về cùng một lớp (hoặc cùng phạm vi trong trường hợp các thuộc tính liên tục)
1.2.3.1.2 Phân loại Nạve Bayes
Phân loại Nạve Bayes là phân loại xác suất thống kê Nĩ cĩ thể dự đốn xác suất
mà một bộ dữ liệu thuộc về một lớp cụ thể Phân loại Nạve Bayes dựa trên xác suất cĩ điều kiện và định lý Bayes Nĩ được so sánh về hiệu năng với cây quyết định và mạng Neural Phân loại Nạve Bayes cho độ chính xác và tốc độ cao khi áp dụng với bộ dữ liệu lớn Dựa vào định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên
A khi biết sự kiện liên quan B đã xảy ra Xác suất này được ký hiệu là P(A|B) và được đọc là xác suất của A nếu cĩ B Đại lượng này được gọi là xác suất điều kiện Xác suất xảy ra A khi biết B sẽ phụ thuộc và 3 yếu tố: xác suất xảy ra A của riêng nĩ ký hiệu là P(A), xác suất xảy ra B của riêng nĩ ký hiệu là P(B) và xác suất xảy ra B khi biết A xảy
ra ký hiệu là P(B|A) Khi đĩ xác suất của A khi biết B cho bởi cơng thức:
Trang 2020
Theo đĩ phân loại Nạve Bayes sẽ được thực hiện như sau[3]:
i D là bộ dữ liệu huấn luyện và các nhãn class liên quan của nĩ Mỗi điểm dữ
liệu được biểu diễn bởi vector thuộc tính n chiều, X = (x1, x2, … , xn) mơ tả n các phép đo được thực hiện trên n thuộc tính tương ứng A1, A2, … , An
ii Giả sử cĩ m class C1, C2, … , Cm Cho điểm dữ liệu X, Phân loại sẽ dự đốn X
thuộc về class cĩ xác suất cao nhất cĩ điều kiện trên X Nghĩa là phân loại Nạve Bayes sẽ dự đốn X thuộc về class Ci nếu và chỉ nếu:
𝑃(𝐶𝑖|𝑋) > 𝑃(𝐶𝑗|𝑋) trong đĩ 1≤ j ≤ m, j≠ i
Vì vậy chúng ta sẽ cực đại hĩa P(Ci|X) Bằng định lý Bayes:
𝑃(𝐶𝑖|𝑋) = 𝑃(𝑋|𝐶𝑖)𝑃(𝐶𝑖)
iii Vì P(X) là hằng số cho tất cả các class, Chỉ P(X|Ci)P(Ci) cần được cực đại
hĩa Nếu xác suất các class chưa được biết trước do đĩ thường giả định rằng các class cĩ xác suất như nhau P(C1) = P(C2) = ⋯ = P(Cm) vì vậy chúng ta
sẽ cực đại hĩa xác suất P(X|Ci) Nếu khơng chúng ta cĩ thể cực đại hĩa xác suất P(X|Ci)P(Ci) với xác suất P(Ci) được tính bởi P(Ci) = |Ci,D|/|D| trong
đĩ |Ci,D| là số lượng điểm huấn luyện của lớp Ci cĩ trong D
iv Với điểm dữ liệu nhiều thuộc tính việc tính xác suất P(X|Ci) sẽ cực kỳ tốn
kém Để giảm tính tốn trong việc đánh giá P(X|𝐶𝑖) Giả định rằng các giá trị của thuộc tính cĩ điều kiện độc lập với nhau (tức là khơng cĩ mối quan hệ phụ thuộc giữa các thuộc tính) như vậy:
𝑃(𝑋|𝐶𝑖) = ∏𝑛𝑘=1𝑃(𝑥𝑘|𝐶𝑖) = P(𝑥1|𝐶𝑖) × P(𝑥2|𝐶𝑖) × … × P(𝑥𝑛|𝐶𝑖)
Chúng ta cĩ thể ước tính dễ dàng xác suất P(x1|Ci), P(x2|Ci),…, P(xn|Ci) từ
bộ dữ liệu huấn luyện
v Cuối cùng để dự đốn nhãn lớp của X, P(X|Ci)P(Ci) được đánh giá cho mỗi
class Ci Việc phân loại Nạve Bayes sẽ dự đốn rằng điểm dữ liệu X thuộc class Ci nếu và chỉ nếu
Trang 2121
𝑃(𝑋|𝐶𝑖)𝑃(𝐶𝑖) > 𝑃(𝑋|𝐶𝑗)𝑃(𝐶𝑗) trong đó 1≤ j ≤ m, j≠ i
Nói cách khác nếu X thuộc class Ci thì P(X|Ci)P(Ci) phải cực đại
1.2.3.1.3 Support Vector Machines
SVM (Support Vector Machines) là một thuật toán học máy giám sát sử dụng phổ biến ngày nay trong các bài toán phân loại Ý tưởng của SVM là tìm ra một siêu phẳng
để phân tách các điểm dữ liệu Siêu phẳng này sẽ chia không gian thành các miền khác nhau và mỗi miền sẽ chứa một loại dữ liệu Vấn đề là rất nhiều siêu phẳng ta cần chọn cái nào để tối ưu nhất
Hình 1.2 Phân tích bài toán SVM
Giả sử rằng các cặp dữ liệu huấn luyện là (x1, y1), (x2, y2), …, (xN, yN) với vector
xi ∈ Rd thể hiện đầu vào của một điểm dữ liệu và yi là nhãn của điểm dữ liệu đó D là số chiều của dữ liệu và N là số điểm dữ liệu Giả sử rằng nhãn của mỗi điểm dữ liệu được xác định bởi yi = 1 (class 1) hoặc yi = -1 (class 2) giống như trong PLA Mặt wT+ b =
w1x1+ w2x2+ b = 0 là mặt phân chia giữa hai class
Với cặp dữ liệu (xn, yn) bất kỳ, khoảng cách từ điểm đó tới mặt phân chia là
𝑦𝑛(𝑤𝑇𝑥𝑛+ 𝑏)
||𝑤||2
Trang 2222
Điều này có thể dễ nhận thấy vì theo giả sử ở trên, yn luôn cùng dấu với phía của
xn Từ đó suy ra yn cùng dấu với (𝑤𝑇𝑥𝑛+ 𝑏), và tử số luôn là 1 số không âm
Với mặt phân chia như trên, margin được tính là khoảng cách gần nhất từ 1 điểm tới mặt đó (bất kể điểm nào trong hai classes):
𝑀𝑎𝑟𝑔𝑖𝑛 = 𝑚𝑖𝑛𝑛𝑦𝑛(𝑤
𝑇𝑥𝑛 + 𝑏)
||𝑤||2Bài toán tối ưu trong SVM chính là bài toán tìm w và b sao cho margin này đạt giá trị lớn nhất:
1.2.3.2.1 Quá trình phân cụm
Quá trình phân cụm trải qua 4 bước chính:
Lựa chọn và trích xuất đặc trưng
Thiết kế giải thuật phân cụm
Xác nhận: việc xác nhận các cụm có ý nghĩa liệu các nhóm được hình thành
có hợp lệ hay không, dữ liệu có chính xác theo nhóm không
Giải thích kết quả: cung cấp độ chính xác cho người dùng
Trang 2323
1.2.3.2.2 Phương pháp phân cụm
Hiện nay có rất nhiều giải thuật phân cụm Tuy nhiên, Dựa trên cơ sở chính của phương pháp phân cụm ta có thể phân loại thành các loại sau[3]:
xây dựng k phân vùng dữ liệu, trong đó mỗi phân vùng đại diện cho một cụm
và k ≤ n Phương pháp chia dữ liệu thành k nhóm sao cho mỗi nhóm chứa ít nhất một đối tượng Nói cách khác, các phương pháp phân vùng tiến hành phân vùng một cấp trên các tập dữ liệu Các phương pháp phân vùng cơ bản thường áp dụng tách cụm độc quyền Đó là mỗi đối tượng phải thuộc về một nhóm chính xác
Phương pháp phân cấp: tạo ra một sự phân rã phân cấp của dữ liệu đã cho Phương pháp phân cấp có thể được phân loại là kết tụ hoặc phân chia Cách tiếp cận kết tụ được gọi là phương pháp tiếp cận từ dưới lên, bắt đầu phương pháp đối tượng được tạo thành một nhóm riêng biệt Nó liên tục hợp nhất các đối tượng hoặc nhóm gần với nhau, cho đến khi tất cả các nhóm được sát nhập thành một hoặc có điều kiện chấm dứt Cách tiếp cận phân chia còn được gọi
là cách tiếp cận từ trên xuống, bắt đầu với tất cả các đối tượng trong cùng một cụm Trong mỗi lần lặp liên tiếp, một cụm được chia thành các cụm nhỏ hơn, cho đến khi cuối cùng mỗi đối tượng nằm trong cùng một cụm hoặc có điều kiện chấm dứt
Trang 2424
lệch giữa giá trị dự kiến và giá trị dự đoán Mục đích chính là giảm lỗi để có được kết quả chính xác
Có hai loại kỹ thuật hồi quy là tuyến tính và phi tuyến tính [4]:
Hồi quy tuyến tính: được sử dụng trong mối quan hệ giữa mục tiêu và giá trị đầu vào được biểu diễn theo đường thẳng
Từ các kỹ thuật được áp dụng trong khai phá dữ liệu kể trên sẽ cho ta những gợi
ý được ứng dụng trong các hệ gợi ý để cung cấp cho người dùng thông tin hữu ích nhất
1.3 Hệ gợi ý
1.3.1 Giới thiệu
Hệ gợi ý (Recommender system) được xem là một hệ thống chọn lọc thông tin nhằm tìm kiếm và dự báo các đánh giá mà người sử dụng(users) sẽ dành cho các hạng mục hay sản phẩm (items) mà trước đó họ chưa quan tâm đến
Hệ gợi ý được sử dụng nhiều trên các website thương mại điện tử của nhiều công
ty kinh doanh lớn nhằm dự báo và giúp người sử dụng hướng đến các sản phẩm phù hợp với nhu cầu và sở thích của họ hơn, từ đó nâng cao uy tín, doanh thu và lợi nhuận của công ty Có thể kể đến một vài hệ gợi ý của một số công ty nổi tiếng như:
Hệ gợi ý trên Amazon.com: khi xem một sản phẩm trên website của hãng này,
hệ thống sẽ đề nghị một danh sách các sản phẩm cộng thêm dựa trên ma trận sản phẩm mà những người mua hàng trước đó đã mua kèm với sản phẩm đang được xem
Trang 2525
Netflix lại quan tâm đến việc dự báo những phim người tiêu dùng thích xem dựa trên kết quả bình chọn trước đó, thói quen xem phim và các đặc tính của phim
Ngoài ra, còn có nhiều hệ gợi ý của nhiều công ty thuộc nhiều lĩnh vực kinh doanh khác nhau như: Last.fm, Yahoo, YouTube, MovieLens…
Đặc điểm của các hệ gợi ý là mang tính chất cá nhân hóa nghĩa là nó chỉ phù hợp với một số người dùng (hay nhóm người dùng) có cùng một số đặc tính đã được khảo sát trước đó Điều này cũng phù hợp với thực tế bởi lẽ không thể có được một lời khuyên duy nhất cho mọi đối tượng
Các hệ gợi ý ngày nay đóng vai trò quan trọng trong việc thúc đẩy phát triển các giao dịch trên mạng Vai trò đó được thể hiện qua một số chức năng cơ bản sau:
Gia tăng doanh số bán hàng: nhờ hệ gợi ý mà người kinh doanh có thể bán được một nhóm sản phẩm phù hợp với nhu cầu và thị hiếu của người dùng so với việc không gợi ý chỉ bán được các sản phẩm đơn lẻ
Gia tăng thỏa mãn khách hàng: khách hàng càng được thỏa mãn, họ càng gia tăng việc sử dụng các tiện ích khác
Tăng độ trung thành của khách hàng
Đối với người sử dụng, hệ gợi ý mang lại một số lợi ích sau đây:
Giúp họ giới hạn phạm vi tìm kiếm trong số vô vàn các thông tin thực và ảo
Tự tin và quyết đoán hơn khi quyết định mua sản phẩm được gợi ý
Nắm bắt kịp thời các xu hướng sử dụng hiện hành
1.3.2 Xây dựng ma trận Utility
Trong hệ gợi ý gồm có 2 thực thể chính là users và items Mỗi users sẽ có mức
độ quan tâm tới từng item khác nhau Mức độ quan tâm này, nếu đã biết trước được gán cho một giá trị ứng với mỗi cặp user – item Giả sử rằng mức độ quan tâm được đo bằng giá trị user rate cho item, ta tạm gọi là giá trị rating Tập hợp tất cả các ratings, bao gồm
Trang 26Trong hệ gợi ý không có ma trận Utility, gần như không thể gợi ý được sản phẩm tới người dùng Ngoài cách luôn luôn gợi ý các sản phẩm phổ biến nhất Vì vậy, trong các hệ thống gợi ý, việc xây dựng ma trận Utility là tối quan trọng Tuy nhiên việc xây dựng ma trận này thường gặp nhiều khó khăn Có hai hướng tiếp cận phổ biến để xác định giá trị rating cho mỗi cặp user-item trong ma trận Utility:
Nhờ người dùng rate sản phẩm
Hướng tiếp cận thứ 2 là dựa trên hành vi của users như mua một sản phẩm, xem một clip hay like một số nội dung
Trong hệ gợi ý thường được chia thành hai nhóm lớn:
Hệ gợi ý dựa trên nội dung(Content-based systems): đánh giá đặc tính của
items được gợi ý Cách tiếp cận này yêu cầu việc sắp xếp các items vào từng nhóm hoặc đi tìm đặc trưng của từng item
Hệ gợi ý lọc cộng tác(Collaborative filtering): hệ thống gợi ý items dựa trên
tương quan giữa các users hoặc items Có thể hiểu rằng ở nhóm này một item được gợi ý tới một user dựa trên những users có hành vi tương tự
1.3.3 Gợi ý dựa trên nội dung
1.3.3.1 Item Profiles (hồ sơ sản phẩm)
Trang 2727
Trong hệ gợi ý dựa trên nội dung, Chúng ta phải xây dựng cho mỗi item một profile đó là một bản ghi hoặc thu thập nhiều bản ghi đại diện cho những đặc điểm quan trọng của item Trong các trường hợp đơn giản, profile bao gồm một số đặc điểm của item để dễ dàng phát hiện Ví dụ ta xem xét các đặc trưng của một bộ phim có thể liên quan đến hệ thống gợi ý[5]:
Diễn viên của bộ phim Một số người chỉ thích xem phim có diễn viên yêu thích của mình
Năm mà bộ phim thực hiện Một số người xem thích phim cũ hơn, những người khác chỉ xem các bản phát hành mới nhất
Thể loại của bộ phim Một số người xem chỉ thích hài kịch hay phim lãng mạn…
Có rất nhiều đặc trưng của một bộ phim chúng ta có thể khai thác Ngoại trừ thể loại nó là một khái niệm mơ hồ Tuy nhiên, đánh giá phim thường chỉ định một thể loại
từ một tập hợp các thuật ngữ thường được sử dụng
1.3.3.2 Khai phá đặc trưng của dữ liệu
Có những item khác mà chúng ta không thể xác định ngay lập tức giá trị đặc trưng của nó một trong số đó là: tài liệu và hình ảnh Trong tài liệu chúng ta có các vấn đề liên quan đến công nghệ trích xuất đặc trưng của tài liệu Có rất nhiều loại tài liệu mà hệ thống có thể gợi ý Ví dụ: có nhiều bài báo được xuất bản mỗi ngày và chúng ta không thể đọc tất cả chúng Hệ thống gợi ý có thể đề xuất các bài viết về chủ đề mà người dùng quan tâm, nhưng làm cách nào chúng ta có thể phân biệt giữa các chủ đề Đầu tiên để xác định các từ mô tả chủ đề của tài liệu ta cần loại bỏ stop words Sau đó tính điểm TF.IDF cho mỗi từ trong tài liệu Những từ có điểm số cao nhất là những từ mô tả đặc điểm của tài liệu Từ đó ta có thể lấy các đặc trưng của tài liệu từ n từ có giá trị TF.IDF cao nhất áp dụng cho tất cả tài liệu hoặc cho n là tỷ lệ cố định của các từ trong tài liệu Chúng ta cũng có thể chọn tất cả các từ có điểm số TF.IDF cao hơn ngưỡng đã cho là một phần của bộ đặc trưng
Trang 2828
Bây giờ, Xét một tài liệu được thể hiện bằng tập các từ Để xác định xem tài liệu
đó thuộc chủ đề nào Ta có thể đo lường sự giống nhau của nó so với bộ đặc trưng bằng một số biện pháp đo khoảng cách tự nhiên như [5]:
Chúng ta có thể sử dụng khoảng cách Jaccard giữa các tập hợp các từ
Chúng ta có thể sử dụng khoảng cách cosine giữa các bộ được coi là vector Đối với loại dữ liệu hình ảnh thông thường để xác định thông tin đặc trưng của ảnh bằng cách mời người dùng nhập từ hoặc cụm từ mô tả để gắn thẻ vào các ảnh
Từ việc khai phá đặc trưng của dữ liệu dẫn đến mục tiêu cuối cùng của việc gợi ý dựa trên nội dung là tạo cả một profile items bao gồm tất cả các giá trị đặc trưng và profile của người dùng tóm tắt các tùy chọn của người dùng dựa trên utility matrix
1.3.3.3 Gợi ý Items cho Users dựa trên nội dung
Ngoài việc tạo ra các vector mô tả các item, chúng ta cần tạo vector với cùng các thành phần mô tả tùy chọn của người dùng Chúng ta có ma trận tiện ích biểu thị kết nối giữa users và các item Việc gọi ma trận không trống có thể đại diện cho giao dịch mua của người dùng hoặc kết nối, rating hay mức độ thiện cảm của người dùng đó cho item
Với việc tạo ra profile cho cả Users và Items Chúng ta có thể ước tính mức độ
mà người dùng muốn một Item bằng cách tính khoảng cách cosin giữa các vector của Users và Items
1.3.4 Lọc cộng tác
1.3.4.1 Giới thiệu
Trong hệ gợi ý dựa trên nội dung chúng ta đã làm quen với một hệ gợi ý sản phẩm dựa trên đặc trưng của mỗi item Đặc điểm của hệ này là việc xây dựng mô hình cho mỗi user không phụ thuộc vào các users khác mà phụ thuộc vào profile của mỗi items Việc làm này có lợi thế là tiết kiệm bộ nhớ và thời gian tính toán Đồng thời có khả năng tận dụng các thông tin đặc trưng của mỗi item Việc xây dựng các vector đặc trưng của mỗi item thường bao gồm các kỹ thuật xử lý ngôn ngữ tự nhiên
Trang 2929
Cách làm trên có hai nhược điểm cơ bản Thứ nhất, khi xây dựng mô hình cho một user, các hệ thống gợi ý dựa trên nội dung không tận dụng được thông tin từ các users khác Những thông tin này thường rất hữu ích vì hành vi mua hàng của các users thường được nhóm thành một vài nhóm đơn giản, nếu biết hành vi mua hàng của một vài users trong nhóm hệ thống có thể suy luận ra hành vi của những users còn lại Thứ hai, không phải lúc nào chúng ta cũng có bản mô tả cho mỗi item Việc yêu cầu users gắn tags còn khó khăn hơn vì không phải ai cũng sẵn sàng làm việc đó, hoặc có làm những sẽ mang xu hướng cá nhân
Những nhược điểm trên có thể giải quyết bằng hệ gợi ý lọc cộng tác
(Collaborative Filtering CF) Trong hệ này cơ bản có 2 phương pháp chính đó là gợi ý cộng tác láng giềng gần (Neighborhood-based Collaborative Filtering - NBCF) và phương pháp phân rã ma trận(Matrix Factorization - MF)
1.3.4.2.1 Lọc cộng tác user-user
Công việc quan trọng nhất phải làm trước tiên trong lọc cộng tác user-user là phải xác định được sự giống nhau giữa hai users Dữ liệu duy nhất chúng ta có là ma trận Utility Y Vậy nên sự giống nhau này phải được xác định dựa trên các cột tương ứng với hai users trong ma trận này
Giả sử có các users từ u0 đến u6 và các items từ i0 đến i4 trong đó số ô vuông thể hiện số sao mà mỗi user đã rated cho item với giá trị cao hơn thể hiện mức độ quan tâm
Trang 3030
cao hơn (như mô tả hình 3) Các dấu hỏi chấm là các giá trị mà hệ thống cần phải đi tìm Đặt mức độ giống nhau của hai users ui, uj là sim(ui, uj)
Hình 1.3 Ví dụ về ma trận Utility dựa trên số sao một user rate cho một item
Quan sát đầu tiên chúng ta có thể nhận thấy là các u0, u1 thích i0, i1, i2 và không thích i3, i4 Điều ngược lại xảy ra ở các users còn lại Vì vậy hàm tương tự tốt cần đảm bảo:
sim(u0, u1) > sim(u0, ui) với ∀i > 1
Từ đó, để xác định mức độ quan tâm của u0 lên i2, chúng ta nên dựa trên hành vi của u1 lên sản phẩm này Rất may rằng u1 đã thích i2 nên hệ thống cần gợi ý i2 cho u0
Câu hỏi đặt ra là hàm số tương tự nào là tốt Để đo sự giống nhau giữa hai users, cách thường làm là xây dựng vector đặc trưng cho mỗi user rồi áp dụng một hàm có khả năng đo độ giống nhau giữa hai vector đó Chú ý rằng việc xây dựng vector đặc trưng này khác với việc xây dựng item profiles như trong hệ gợi ý dựa trên nội dung Các vector này được xây dựng trực tiếp dựa trên ma trận Utility chứ không dùng dữ liệu ngoài như item profiles Với mỗi users, thông tin duy nhất ta biết là các ratings mà user
đó đã thực hiện, tức cột tương ứng với user đó trong ma trận Utility Tuy nhiên, khó khăn
là các cột này thường có rất nhiều chỗ chưa rating vì mỗi user thường chỉ rated một số lượng rất nhỏ các items Cách khắc phục là bằng cách nào đó, ta giúp hệ thống điền các giá trị này sao cho việc điền không làm ảnh hưởng nhiều tới sự giống nhau giữa hai
Trang 3131
vector Việc điền này chỉ phục vụ cho việc tính sự giống nhau chứ không phải là suy luận ra giá trị cuối cùng
Để tránh được users quá khó tính hoặc dễ tính, tức lúc nào cũng có những items
mà một user thích hơn so với items khác Bước tiếp theo là chuẩn hóa dữ liệu bằng cách trung bình cộng của các ratings mà user tương ứng đã thực hiện Sau đó lấy giá trị rating trừ đi giá trị này cho ta mỗi cột có những giá trị dương và âm Những giá trị dương tương ứng với việc user thích item, những giá trị âm tương ứng với việc user không thích item
Hình 1.4 Ví dụ mô tả lọc cộng tác user-user, a) Ma trận Utility ban đầu b) Ma trận
Utility đã được chuẩn hóa c) ma trận user tương tự d) dự đoán các ratings chuẩn hóa còn thiếu e) ví dụ về dự đoán rating chuẩn hóa f) dự đoán các ratings còn thiếu
Trang 32Cuối cùng là việc dự đoán rating còn thiếu được xác định là trung bình có trọng
số của các ratings đã chuẩn hóa Các trọng số được xác định dựa trên độ giống nhau giữa hai users, những trọng số này có thể nhỏ hơn 0
Công thức phổ biến được sử dụng để dự đoán rating của u cho i là:
Trong lọc cộng tác user-user có một số hạn chế như:
Trên thực tế, số lượng users luôn lớn hơn số lượng items rất nhiều Kéo theo
đó là ma trận tương tự với số phần tử phải lưu trữ là rất lớn Trong nhiều trường hợp việc lưu trữ như trên là không khả thi
Ma trận Utility Y thường có số lượng users rất lớn so với số lượng items, rất nhiều cột của ma trận này chỉ có một vài phần tử khác 0 Lý do là users thường lười rating Cũng chính vì việc này, một khi user đó thay đổi rating hoặc rate thêm items, trung bình cộng các ratings cũng như vector chuẩn hóa tương ứng
Trang 33 Vì số lượng phần tử đã biết trong ma trận Utility là như nhau nhưng số hàng
ít hơn số cột, nên trung bình mỗi hàng của ma trận này sẽ có nhiều phần tử đã biết hơn số phần tử đã biết trong mỗi cột Việc này dễ hiểu vì mỗi item có thể được rated bởi nhiều users Kéo theo đó, giá trị trung bình của mỗi hàng ít bị thay đổi hơn khi có thêm một vài rating Như vậy việc cập nhật ma trận tương
tự có thể được thực hiện ít thường xuyên hơn
Cách tiếp cận thứ hai này được gọi là lọc cộng tác item – item Hướng tiếp cận này được sử dụng nhiều trong thực tế hơn
Về mặt tính toán, lọc cộng tác item – item có thể nhận được từ lọc cộng tác user – user bằng cách chuyển vị ma trận utility và coi như items đang rate users Sau khi tính
ra kết quả cuối cùng, ta lại chuyển vị một lần nữa để thu được kết quả
1.3.4.3 Phân rã ma trận
Kỹ thuật phân rã ma trận (MF) là một trong những phương pháp dựa trên mô hình thành công nhất hiện nay(state of the art) trong hệ gợi ý MF là việc chia một ma trận lớn X thành hai ma trận có kích thước nhỏ hơn W và H, sao cho ta có thể xây dựng lại
X từ hai ma trận nhỏ hơn này càng chính xác càng tốt
X ~ W𝐇𝐓 như minh họa ở hình 5 Trong đó , W ∈ R|U|×K là một ma trận mà mỗi dòng u là một vector bao gồm K nhân tố tiềm ẩn mô tả người dùng u và H ∈ R|I|×K là một ma trận mà mỗi dòng i là một vector bao gồm K nhân tố tiềm ẩn mô tả cho item i (lưu ý: K<<|U| và K << |I|)
Trang 3434
Hình 1.5 Minh họa kỹ thuật phân rã ma trận
Gọi wuk và hik là các phần tử tương ứng của hai ma trận W và H, khi đó xếp hạng
người dùng u trên item i được dự đoạn bởi công thức [6]:
ȓ𝑢𝑖 = ∑ 𝑤𝑢𝑘ℎ𝑖𝑘
𝐾
𝑘=1
= 𝒘 𝒉𝑻
Như vậy, mục tiêu của kỹ thuật MF là làm thế nào để tìm được giá trị của hai
tham số W và H Hai tham số này có được bằng cách tối ưu hóa hàm mục tiêu Trong hệ
gợi ý, hàm mục tiêu của MF hay được sử dụng như sau:
Để tối ưu hàm mục tiêu có 2 kỹ thuật thường dùng đó là giảm gradient ngẫu nhiên
(stochastic gradient descent - SGD) và alternating least square (ALS)
1.3.4.3.1 Phương pháp giảm Gradient ngẫu nhiên
Trong kỹ thuật SGD để tối ưu hóa hàm mục tiêu, trước tiên ta khởi tạo các giá trị ngẫu nhiên cho W và H, sau đó từng bước cập nhật giá trị của chúng cho đến khi mục tiêu hội tụ về giá trị nhỏ nhất Để làm được điều đó, ta cần phải xác định là nên tăng hay
nên giảm các giá trị của W và H qua mỗi lần cập nhật, do vậy cần phải tìm đạo hàm từng
phần của chúng [6]:
Trang 35Sau khi tìm đạo hàm, các phần tử của W và H sẽ được cập nhật ngược hướng với
giá trị của đạo hàm, qua công thức:
Để ngăn ngừa sự quá khớp hay còn gọi là overfiting người ta thay đổi hàm mục tiêu bằng cách thêm vào một đại lương gọi là chính tắc hóa để điều khiển độ lớn của các
giá trị trong W và H Hàm mục tiêu bây giờ trở thành:
Quá trình cập nhật giá trị của W và H được lặp lại cho đến khi đạt độ lỗi chấp
nhận hoặc lặp lại đến số lần quy định trước
Quá trình dự đoán: Sau quá trình huấn luyện ta được 2 ma trận W và H đã tối ưu
thì quá trình dự đoán sẽ được thực hiện theo công thức W𝐇𝐓
Trang 3636
1.3.4.3.2 Phương pháp Alternating least square
Do cả hai vector wukvà hik đều chưa được xác định Tuy nhiên, nếu ta cố định một trong hai vector trên thì hàm trở thành hàm mục tiêu bậc hai và có thể giải được bài toán tối ưu Kỹ thuật ALS lần lượt luân phiên cố định wukvà hik Khi cố định wuk, hệ thống sẽ tính toán hik bằng cách giải quyết vấn đề bình phương tối thiểu và ngược lại Như vậy mỗi bước thực hiện sẽ giảm OMF cho đến khi hội tụ
1.4 Phương pháp đánh giá sai số
Hệ gợi ý là một công cụ hỗ trợ quyết định nhằm cung cấp cho người dùng những lợi ích nhất Khi xây dựng hệ gợi ý, người ta thường quan tâm đến tính hiệu quả của nó Tuy nhiên, việc đánh giá tính hiệu quả của một hệ gợi ý còn tùy thuộc rất nhiều vào mục đích xây dựng hệ thống, loại dữ liệu và điều kiện đánh giá hệ thống Các tiêu chí đánh giá bao gồm các tiêu chí định lượng và tiêu chí định tính Trong luận văn này sẽ tập trung vào tiêu chí định lượng
1.4.1 Đánh giá độ chính xác của dự đoán
Việc đánh giá chính xác dự đoán có thể sử dụng sai số bình phương trung bình (MSE – Mean Square Error), căn của sai số bình phương trung bình (RMSE – Root Mean Square Error), sai số tuyệt đối trung bình (MAE – Mean Absolute Error) Tính chính xác của các dự đoán được đo trên n quan sát trong đó pi là giá trị dự đoán đánh giá của item
i và ri là giá trị thực tế của item I [7]
𝑛∑(𝑝𝑖− 𝑟𝑖)2 𝑛
𝑖=1
𝑛∑(𝑝𝑖 − 𝑟𝑖)2 𝑛
Trang 3737
Các chỉ số này thích hợp cho một cơ sở dữ liệu không phải nhị phân và cho một giá trị dự đoán là số Nó giúp đo lường mức độ sai số của các dự đoán Các giá trị đo lường bằng 0 khi hệ thống đạt được hiệu quả tốt nhất Giá trị này càng cao thì hiệu quả của hệ thống càng thấp
1.4.2 Đánh giá việc sử dụng các dự đoán
Ngoài việc đánh giá tính chính xác của các dự đoán, một số chỉ số khác như precision, recall và F_score, Rscore được dùng để đánh giá việc sử dụng của các dự đoán trong trường hợp cơ sở dữ liệu nhị phân Các chỉ số này đánh giá các gợi ý phù hợp cho mỗi người dùng thay vì đánh giá số điểm liên quan đến từng gợi ý Gợi ý được coi là phù hợp khi người dùng chọn item từ danh sách gợi ý
Gợi ý Negative Positive Thực
tế
Negative True Negative False Positive
Positive False Negative True Positive
Hình 1.6 Minh họa ví dụ để tính precision và recall
Precision là tỷ lệ giữa số lượng các gợi ý phù hợp và tổng số các gợi ý đã cung
cấp Precision bằng 100% có nghĩa là tất cả các gợi ý đều phù hợp [7]
𝑆ố 𝑙ượ𝑛𝑔 𝑔ợ𝑖 ý 𝑝ℎù ℎợ𝑝
𝑆ố 𝑙ượ𝑛𝑔 𝑔ợ𝑖 ý 𝑡ạ𝑜 𝑟𝑎
Recall được định nghĩa bởi tỉ lệ giữa số lượng gợi ý phù hợp và số lượng các item
mà người dùng đã chọn lựa Recall được sử dụng để đo khả năng hệ thống tìm được những item phù hợp so với những gì mà người dùng cần [7]
Trang 38đó, Chỉ số F-score được sử dụng để đánh giá hiệu quả tổng thể của hệ thống bằng các kết hợp hài hòa hai chỉ số Recall và Precision
𝐹 − 𝑠𝑐𝑜𝑟𝑒 = 2 × 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 × 𝑅𝑒𝑐𝑎𝑙𝑙
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙Trên cơ sở lý thuyết được trình bày ở trên tiếp theo ta sẽ đi vào phần mô hình hóa hành vi người dùng theo lớp bài toán đã đặt ra
Trang 3939
CHƯƠNG 2: MÔ HÌNH HÓA HÀNH VI
2.1 Cơ sở mô hình hóa hành vi
2.1.1 Giới thiệu bài toán
Ngày nay khi chúng ta truy cập vào các trang thương mại hay các trang mạng xã hội thường gặp những hiện tượng này nhiều lần như:
Youtube tự động chuyển các clip liên quan đến clip bạn đang xem Youtube cũng tự gợi ý những clip mà có thể bạn thích
ra những gợi ý phù hợp cho từng nhóm hành vi người dùng
Đối với bài toán mô hình hóa hành vi người dùng dựa trên dữ liệu tương tác và phản hồi sản phẩm Nhóm hành vi ở đây bao gồm tương tác sản phẩm như click, like, view, tìm kiếm, mua hàng và phản hồi sản phẩm bình luận, đánh giá sản phẩm Dữ liệu từ nhóm trên sẽ trải qua quá trình khai phá hành vi sẽ được đề cập ở mục hai Cuối cùng là đưa ra được kiến trúc hệ thống phù hợp dựa trên quá trình khai phá hàng vi Để
từ đó ta sẽ có cái nhìn toàn diện hơn về mô hình hóa hành vi người dùng
Trang 4040
2.1.2 Hành vi người dùng trong dữ liệu web
Trong bài toán mô hình hóa hành vi người dùng việc chỉ ra các hành vi có trong tập dữ liệu có vai trò rất quan trọng giúp ta phân tích và lựa chọn được phương pháp gợi
ý phù hợp Hành vi người dùng rất đa dạng ta có thể chỉ ra một số hành vi ở mô hình dưới đây
Hình 2.1 Một số hành vi trong dữ liệu người dùng tương tác và phản hồi sản phẩm
Tìm kiếm: Thông thường trên các website thường cho phép người dùng nhập từ
khóa để tìm kiếm sản phẩm Dựa vào việc thu thập các từ khóa tìm kiếm của người dùng
hệ thống sẽ biết được người dùng đang quan tâm nhóm mặt hàng nào để từ đó gợi ý
Click xem: Sẽ chỉ ra được rằng người dùng đang quan tâm đến sản phẩm nào Từ
đó hệ thống có thể tạo ma trận quan hệ giữa người dùng và sản phẩm Việc người dùng càng click xem sản phẩm thường xuyên ma trận này sẽ được lấp đầy thông tin hơn để từ
đó cho ra gợi ý phù hợp với sản phẩm mà người dùng quan tâm
Hành vi người dùng Phản hồi
Tương tác sản phẩm