ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐỖ THỊ THANH HÀ
PHƯƠNG PHÁP LỌC CỘNG TÁC VÀ ỨNG DỤNG
TRONG HỆ THỐNG GỢI Ý BÁN HÀNG TRỰC TUYẾN
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
THÁI NGUYÊN - 2020 i
i
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng
dẫn trực tiếp của PGS.TS. Đoàn Văn Ban.
Mọi trích dẫn sử dụng trong báo cáo này đều được ghi rõ nguồn tài liệu
tham khảo theo đúng qui định
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin
chịu hoàn toàn trách nhiệm.
Học viên
Đỗ Thị Thanh Hà
ii
LỜI CẢM ƠN
Trước hết, tôi xin được tỏ lòng biết ơn và gửi lời cám ơn chân thành đến
thầy PGS.TS Đoàn Văn Ban, người trực tiếp hướng dẫn luận văn, đã tận tình
chỉ bảo và hướng dẫn tôi tìm ra hướng nghiên cứu, tiếp cận thực tế, tìm kiếm
tài liệu, xử lý và phân tích số liệu,… nhờ đó tôi mới có thể hoàn thành luận văn
cao học của mình.
Tôi xin chân thành cảm ơn quý thầy cô Khoa Công nghệ thông tin - trường
Đại học Công nghệ Thông tin và Truyền thông, Đại học Thái Nguyên đã truyền
đạt cho tôi những kiến thức bổ ích trong suốt hai năm học vừa qua.
Xin chân thành cảm ơn các anh chị em lớp cao học Khoa học máy tính
khoá 17 và các bạn đồng nghiệp luôn động viên, hỗ trợ tôi trong quá trình học
tập và nghiên cứu và thực hiện đề tài.
Cuối cùng, tôi xin gửi đến cha mẹ và những người thân trong gia đình đã
hỗ trợ, tạo điều kiện thuận lợi cho tôi trong suốt thời gian qua và đặc biệt trong
thời gian tôi theo học khóa thạc sỹ tại trường Đại học Công nghệ Thông tin và
Truyền thông, Đại học Thái Nguyên.
Xin chân thành cảm ơn!
Người thực hiện
Đỗ Thị Thanh Hà
iii
MỤC LỤC
LỜI CẢM ƠN ............................................................................................................................. ii
MỤC LỤC .................................................................................................................................. iii
DANH MỤC CÁC BẢNG ........................................................................................................ iv
DANH MỤC HÌNH VẼ...............................................................................................................v
MỘT SỐ THUẬT NGỮ .......................................................................................................... viii
LỜI CAM ĐOAN ........................................................................................................................ i
MỞ ĐẦU .....................................................................................................................................1
CHƯƠNG 1. HỆ THỐNG TƯ VẤN VÀ CÁC PHƯƠNG PHÁP LỌC THÔNG TIN ......5
1.1. Hệ tư vấn ...............................................................................................................................5
1.1.1. Giới thiệu hệ thống tư vấn .................................................................................................5
1.1.2. Bài toán tư vấn người dùng ...............................................................................................7
1.1.3. Qui trình xây dựng hệ tư vấn .............................................................................................9
1.2. Các phương pháp lọc tin .....................................................................................................10
1.2.1. Phân loại hệ thống tư vấn ................................................................................................10
1.2.2. Phương pháp tư vấn dựa trên nội dung ...........................................................................11
1.2.3. Phương pháp tư vấn dựa trên lọc cộng tác ......................................................................17
1.2.4. Tư vấn dựa trên cách tiếp cận kết hợp .............................................................................23
1.3. Kiến trúc tổng quát của hệ thống lọc thông tin ..................................................................25
1.4. Ứng dụng của phương pháp lọc tin trong hệ thống tư vấn ................................................26
1.5. Kết luận chương 1 ...............................................................................................................28
CHƯƠNG 2.PHƯƠNG PHÁP THUẬT LỌC CỘNG TÁC DỰA TRÊN SẢN PHẨM ..29
2.1. Các phương pháp lọc cộng tác ............................................................................................29
2.1.1. Giới thiệu về các phương pháp lọc cộng tác ...................................................................29
2.1.2. Ưu và nhược điểm của phương pháp lọc cộng tác ..........................................................30
2.2. Lọc cộng tác dựa trên sản phẩm .........................................................................................32
2.3. Các thuật toán tính độ tương tự ..........................................................................................34
2.4. Tính toán dự đoán và tư vấn ...............................................................................................37
2.4.1. Dự đoán dựa trên trung bình đánh giá sản phẩm lân cận ................................................37
2.4.2. Dự đoán dựa trên tổng trọng số (Weighted Sum) ...........................................................38
2.4.3. Dự đoán dựa trên tổng trọng số với đánh giá trung bình của người dùng ................................38
2.4.4. Dự đoán dựa trên tổng trọng số với trung bình đánh giá lên sản phẩm .................................39
2.5. Đánh giá các yếu tố ảnh hưởng đến độ chính xác kết quả tư vấn ......................................40
2.5.1. Đánh giá độ tin cậy của thuật toán ..................................................................................40
2.5.2. Các yếu tố ảnh hưởng đến độ chính xác tư vấn ..............................................................42
2.6. Kết luận chương 2 ...............................................................................................................44
iv
CHƯƠNG 3. ỨNG DỤNG PHƯƠNG PHÁP LỌC CỘNG TÁC DỰA TRÊN SẢN PHẨM
TRONG HỆ THỐNG GỢI Ý BÁN HÀNG TRỰC TUYẾN .................................................45
3.1. Xây dựng hệ thống gợi ý cho website bán hàng trực tuyến ...............................................45
3.1.1. Đặc tả hệ thống ................................................................................................................45
3.1.2. Môi trường phát triển .......................................................................................................46
3.1.3. Thiết kế bảng dữ liệu .......................................................................................................46
3.2. Ví dụ về lọc cộng tác dựa trên sản phẩm ............................................................................49
3.3. Thuật toán xử lý chính trong hệ thống ...............................................................................53
3.3.1. Thuật toán khách hàng đánh giá sản phẩm ......................................................................53
3.3.2. Thuật toán khách hàng chấm điểm sản phẩm .................................................................54
3.3.3. Thuật toán gợi ý sản phẩm cho khách hàng ....................................................................55
3.4. Các giao diện chính của hệ thống .......................................................................................56
3.5. Kết luận chương 3 ...............................................................................................................60
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .............................................................................61
TÀI LIỆU THAM KHẢO .......................................................................................................62
v iv
Bảng 1: Bảng đánh giá người dùng với các sản phẩm .............................................. 33
Bảng 2: Dữ liệu đánh giá các sản phẩm .................................................................... 49
Bảng 3: Ma trận utility matrix ................................................................................... 50
Bảng 4: Giá trị trung bình đánh giá của các item ...................................................... 50
Bảng 5: Ma trận chuẩn hóa Ŷ………………………………………………………51
Bảng 6: Độ tương tự giữa các item S ........................................................................ 51
Bảng 7: Ma trận sau khi được dự đoán ŷ .................................................................. 52
Bảng 8: Ma trận dự đoán thang điểm 5 ..................................................................... 53
DANH MỤC BẢNG BIỂU
v vi
DANH MỤC HÌNH VẼ
Hình 1.2. Ví dụ ma trận đánh giá tổng quát ................................................................ 8
Hình 1.3: Phân loại hướng tiếp cận xây dựng hệ thống gợi ý ................................... 11
Hình 1.4. Minh họa phương pháp tư vấn dựa trên lọc nội dung ............................... 12
Hình 1.5: Minh họa phương pháp tư vấn dựa trên lọc cộng tác ............................... 18
Hình 1.6: Quy trình của hệ thống tư vấn dựa trên lọc cộng tác ................................ 19
Hình 1.7: Kiến trúc tổng quát của hệ thống lọc thông tin ......................................... 25
Hình 1.8: Hệ thống gợi ý sản phẩm của Amazon ..................................................... 28
Hình 2.1: Tách các sản phẩm cùng được đánh giá và tính toán độ tương tự ............ 34
Hình 2.2: Giải thuật lọc cộng tác dựa trên sản phẩm, tính dự đoán .......................... 37
Hình 2.3: Mô hình hệ thống lọc cộng tác dựa trên sản phẩm ................................... 40
Hình 3.1: Giải thuật khách hàng đánh giá sản phẩm ................................................ 54
Hình 3.2: Khách hàng chấm điểm sản phẩm ............................................................ 55
Hình 3.3: Giải thuật xử lý gợi ý sản phẩm ................................................................ 56
Hình 3.4: Giao diện trang chủ ................................................................................... 58
Hình 3.5: Giao diện trang danh sách sản phẩm ......................................................... 58
Hình 3.6: Giao diện gợi ý sản phẩm cho sản phẩm chưa có đánh giá ...................... 59
Hình 3.7: Giao diện gợi ý sản phẩm cho sản phẩm đã có đánh giá .......................... 59
Hình 3.8: Giao diện gợi ý sản phẩm cho một thành viên cụ thể ............................... 59
Hình 1.1: Một số lĩnh vực ứng dụng của hệ thống gợi ý ............................................ 6
vi vii
MỘT SỐ THUẬT NGỮ
STT Tiếng Anh
Tiếng Việt
Giải thích
1
User
Người dùng, người sử dụng
Chỉ những người dùng hệ thống để tìm
kiếm lựa chọn sản phẩm
2
Item
Sản phẩm, mục
Chỉ những sản phẩm trên hệ thống như:
sản phẩm, phim, ảnh, bản nhạc, trang
web, đoạn văn bản, …
Chỉ mức độ thích của một người dùng với
3
Rating
Đánh giá
sản phẩm. Rating có thể có nhiều biểu
hiện: như đánh giá thích hoặc không
thích, hay đánh già theo mức độ từ 1-5
đại diện từ không thích đến rất thích.
CF có tên là Neighborhood-based
4
CF
Lọc cộng tác
Collaborative Filtering (NBCF). Khi chỉ
nói CF, chúng ta sẽ ngầm hiểu rằng
phương pháp được sử dụng là
Neighborhood-based.
MỞ ĐẦU
Lí do chọn đề tài
Sự phát triển mạnh mẽ của thương mại điện tử (E-Commerce) là một trong
những tác nhân chính đem lại nhiều lợi ích to lớn cho nền kinh tế toàn cầu. Nhờ
có thương mại điện tử, rất nhiều loại hình kinh doanh mới được hình thành,
trong đó có mua bán hàng trực tuyến. Với hình thức mới này, người tiêu dùng
có thể tiếp cận với hàng hóa một cách dễ dàng và nhanh chóng hơn rất nhiều
so với phương thức mua bán truyền thống.
Hiện nay, với phương châm phục vụ khách hàng một cách tốt nhất, các hệ
thống bán hàng trực tuyến luôn tạo nhiều điều kiện thuận lợi để người mua
hàng có thể tiếp cận nhiều mặt hàng cùng lúc. Tuy nhiên, việc trình bày và trang
trí quá nhiều các mặt hàng trên một website sẽ gây ra không ít khó khăn cho
người mua. Họ khó có thể chọn ra cho mình một sản phẩm ưng ý nhất.
Trong kinh doanh, để khách hàng có thể đến và mua được một sản phẩm
ưng ý thì một lời tư vấn, một sự trợ giúp là rất quan trọng. Với phương thức
bán hàng truyền thống những lời tư vấn như thế từ một người bán hàng sẽ tạo
ra một lợi thế rất lớn cho cửa hàng. Do đó, để phương thức bán hàng qua mạng
phát triển thực sự hiệu quả thì bên cạnh các lợi thế vốn có của mình, việc có
thêm một “người trợ giúp” là hết sức cần thiết.
Vì vậy, cần thiết phải sử dụng một hệ thống gợi ý (Recommender Systems
- RS) đóng vai trò như một người hỗ trợ khách hàng đưa ra các quyết định mua
hàng đúng đắn. Bằng cách xác định mục đích và nhu cầu của khách hàng, hệ
thống có thể đưa ra tập các gợi ý giúp cho người mua dễ dàng chọn lựa sản
phẩm yêu thích hơn. Qua đó hiệu suất của việc mua bán hàng trực tuyến được
tăng cao một cách đáng kể [6].
Hệ thống gợi ý được phát triển theo nhiều cách tiếp cận khác nhau. Một
trong những hướng tiếp cận được tập trung nghiên cứu và được áp dụng khá
2
thành công trong nhiều hệ gợi ý đó là phương pháp lọc cộng tác (Collaborative
filtering). Thực chất, lọc cộng tác là một hình thức tư vấn tự động bằng cách
dựa trên sự tương tự giữa những người dùng hoặc giữa những sản phẩm trong
hệ thống và đưa ra dự đoán sự quan tâm của người dùng tới những sản phẩm,
hoặc đưa ra gợi ý một sản phẩm mới cho người dùng.
Việc xây dựng hệ thống gợi ý cũng là vấn đề được nhiều nhà khoa học
trong nước quan tâm [4, 7]. Trong hệ thống gợi ý, lọc cộng tác là một kỹ thuật
được dùng để đánh giá độ quan tâm của người dùng trên các sản phẩm mới (từ
mức độ tìm hiểu thuật toán [2] cho đến việc cải tiến [5] cũng như áp dụng trong
việc xây dựng website bán hàng trực tuyến [6]). Kỹ thuật này được áp dụng
thành công trong nhiều ứng dụng. Trong các hệ thống lọc cộng tác, sở thích của
người dùng trên các sản phẩm mới được dự đoán dựa trên dữ liệu về sở thích
của người dùng – sản phẩm (hoặc đánh giá của người dùng trên sản phẩm)
trong quá khứ.
Các nghiên cứu trong và ngoài nước đã góp phần rất lớn cho việc xây dựng
những website bán hàng trực tuyến như website mua sắm trực tuyến Amazon
(www.amazon.com) cung cấp cho khách hàng những sản phẩm mà họ có thể
quan tâm, cổng video clip YouTube (www.youtube.com), gợi ý phim của
MovieLens (www.movielens.org) [10].
Tuy nhiên, để phát triển mạnh hơn nữa thuật toán lọc cộng tác trong hệ thống
gợi ý nói chung hay hệ thống gợi ý sản phẩm nói riêng còn rất nhiều câu hỏi cần
lời giải đáp. Cụ thể như: Khi xây dựng hệ thống gợi ý bán hàng trực tuyến, tiếp
cận theo hướng dựa trên bộ nhớ (Memory-based) hay dựa trên mô hình (Model-
based) hiệu quả hơn? Trong hướng tiếp cận theo Memory-based thì nên tư vấn
dựa trên người dùng (User based) hay sản phẩm (Items based)? Nếu tiếp cận theo
hướng Model-based thì nên sử dụng mô hình mạng Nơ ron hay Mạng Bayessian?
… Trong mỗi cách tiếp cận, sử dụng độ đo nào để nắm bắt chính xác việc khách
3
hàng cho rằng sản phẩm tốt? Làm thế nào để dự báo tốt và gợi ý tốt trong đồng
thời, …[1, 10].
Với những lý do trên, tác giả đã chọn đề tài “Phương pháp lọc cộng tác
và ứng dụng trong hệ thống gợi ý bán hàng trực tuyến” làm đề tài nghiên
cứu luận văn tốt nghiệp thạc sĩ chuyên ngành Khoa học máy tính.
Mục tiêu nghiên cứu
Nghiên cứu ứng dụng các phương pháp lọc cộng tác trong bài toán xây
dựng hệ thống tư vấn. Tập trung vào phân tích, so sánh, đánh giá hiệu quả của
phương pháp lọc cộng tác dựa trên người dùng và lọc cộng tác dựa trên sản
phẩm ứng dụng trong bài toán xây dựng hệ thống gợi ý bán hàng trực tuyến.
Đối tượng và phạm vi nghiên cứu
Đối tượng: Phương pháp lọc cộng tác, hệ thống gợi ý bán hàng trực tuyến
Phạm vi nghiên cứu: Khảo sát và đánh giá thuật hiệu quả của thuật toán
lọc cộng tác dựa trên người dùng và thuật toán lọc cộng tác dựa trên sản phẩm
đối với hệ thống gợi ý bán hàng trực tuyến. Quá trình đánh giá được thực hiện
trên một số bộ mẫu dữ liệu chuẩn có sẵn trong [15].
Phương pháp nghiên cứu
- Đọc tài liệu, phân tích, tổng hợp.
- Thu thập dữ liệu, thống kê, phân tích dữ liệu.
- Mô phỏng và đánh giá kết quả.
- Kết hợp nghiên cứu lý thuyết, tìm hiểu tình hình ứng dụng, đánh giá khả
năng ứng dụng và đề xuất giải pháp.
Ý nghĩa khoa học và thực tiễn của đề tài
Nghiên cứu các phương pháp lọc cộng tác. Chứng minh khả năng ứng
dụng của lọc cộng tác cho bài toán xây dựng hệ thống gợi ý sản phẩm trong
bán hàng trực tuyến. Khuyến nghị phương pháp tiếp cận hiệu quả nhất trong
các phương pháp lọc cộng tác.
4
Đề tài nghiên cứu các bước trong quá trình tư vấn, các giải pháp khắc
phục các yếu tố ảnh hưởng đến chất lượng, nhằm cải thiện kết quả tư vấn sản
phẩm phù hợp với yêu cầu thực tế của người dùng.
Với mục tiêu trên, luận văn được trình bày trong ba chương
Chương 1: Hệ thống tư vấn và phương pháp lọc thông tin
Chương này giới thiệu bài toán tư vấn và hệ thống gợi ý, phân tích các
ứng dụng của hệ thống gợi ý trong thực tế. Các phương pháp lọc tin và ứng
dụng trong hệ thống gợi ý.
Chương 2: Phương pháp thuật lọc cộng tác dựa trên sản phẩm
Chương này trình bày phương pháp lọc cộng dựa vào người dùng, lọc
cộng tác dựa trên sản phẩm, phương pháp lọc cộng tác dựa trên mô hình và khả
năng ứng dụng trong bài toán xây dựng hệ thống gợi ý
Chương 3: Ứng dụng phương pháp lọc cộng tác dựa trên sản phẩm trong hệ
thống gợi ý bán hàng trực tuyến.
Chương này cài đặt thử nghiệm phương pháp lọc cộng tác trên sản phẩm
cho website bán hàng thời trang
5
CHƯƠNG 1. HỆ THỐNG TƯ VẤN
VÀ CÁC PHƯƠNG PHÁP LỌC THÔNG TIN
1.1. Hệ tư vấn
1.1.1. Giới thiệu hệ thống tư vấn
Hệ thống tư vấn (Recommender Systems – RS) [8] phân tích thông tin về
sở thích của người dùng (user) về các sản phẩm (item) để cung cấp các khuyến
nghị đối với các item phù hợp nhất với mong muốn và sở thích của người dùng.
Trên thực tế, hệ thống gợi ý cố gắng thu thập những sở thích của người dùng
và mô hình hóa sự tương tác giữa người dùng và sản phẩm.
Hệ thống gợi ý sử dụng các thông tin về sản phẩm và các tri thức của
chuyên gia hay tri thức khai phá dữ liệu được học từ hành vi của người dùng
để đưa ra những gợi ý về sản phẩm mà họ thích trong hàng ngàn hàng vạn sản
phẩm có trong hệ thống. Các website thương mại điện tử ví dụ như: sách, phim,
nhạc, báo,... sử dụng hệ thống gợi ý để cung cấp các thông tin giúp cho người
dùng quyết định sẽ lựa chọn sản phẩm nào. Các sản phẩm được gợi ý dựa trên
số lượng sản phẩm đó đã được bán, dựa trên các thông tin cá nhân của người
dùng, dựa trên sự phân tích hành vi mua hàng trước đó của người dùng để đưa
ra các dự đoán về hành vi mua hàng trong tương lai của chính khách hàng đó.
Các dạng gợi ý bao gồm: gợi ý các sản phẩm tới người tiêu dùng, các thông tin
sản phẩm mang tính cá nhân hóa, tổng kết các ý kiến cộng đồng, và cung cấp
các chia sẻ, các phê bình, đánh giá mang tính cộng đồng liên quan tới yêu cầu,
mục đích của người dùng đó [10, 13, 16].
Rất nhiều hệ thống lớn thu thập thông tin phản hồi từ khách hàng một cách
tường minh, như Ebay, Amazon, LastFM, NetFlix, Youtube,... ở đó người dùng
sẽ trực tiếp đánh giá trên sản phẩm, như bình chọn từ ★ (không thích) đến ★
6
★★★ (rất thích); hay Youtube thu thập thông tin qua like/disklike, và các hệ
thống khác [10, 13, 16]. Thông qua việc thu thập phản hồi tường minh, hệ thống
dễ dàng xác định mức độ yêu thích của người dùng trên sản phẩm, từ đó dự
đoán các sản phẩm tiếp theo mà người dùng có thể thích để gợi ý cho họ. Tuy
nhiên, điều này có thể gây bất lợi do không phải người dùng lúc nào cũng sẵn
sàng/vui lòng để lại các phản hồi của họ, vì vậy hệ thống phải nên tự xác định
người dùng cần gì thông qua phản hồi tiềm ẩn. Một số ứng dụng hệ tư vấn nổi
tiếng trên thế giới được giới thiệu trong Hình 1.1 [14].
Hình 1.1: Một số lĩnh vực ứng dụng của hệ thống gợi ý
Trong kỹ thuật lọc cộng tác CF (Collaborative Filtering), việc đưa ra
những khuyến nghị về các sản phẩm đối với người dùng được xác định dựa trên
những quan điểm của những người dùng có cùng sở thích với người dùng đó.
Hệ thống lọc cộng tác biểu diễn người dùng dựa trên những đánh giá của họ
7
đối với tập các sản phẩm. Hệ thống sẽ lựa chọn những người dùng cùng sở
thích tùy thuộc vào độ đo tương tự hoặc tương quan. Sau đó, đưa ra những dự
đoán đối với những sản phẩm chưa từng được người dùng đánh giá hoặc quan
tâm. Cuối cùng hệ thống sẽ gợi ý những sản phẩm nào với mức độ dự đoán cao
nhất cho người dùng mục tiêu. Kỹ thuật CF đã được khẳng định sự thành công
bởi rất nhiều nghiên cứu và thực nghiệm trong nhiều ứng dụng thực tế [8, 11,
12].
Hệ thống gợi ý là một dạng của hệ hỗ trợ ra quyết định, cung cấp giải pháp
mang tính cá nhân hóa mà không phải trải qua quá trình tìm kiếm phức tạp. Hệ
gợi ý học từ người dùng và gợi ý các sản phẩm tốt nhất trong số các sản phẩm
phù hợp.
1.1.2. Bài toán tư vấn người dùng
Cho tập hợp hữu hạn gồm 𝑁 người dùng 𝑈 = {𝑢1, 𝑢1, … , 𝑢𝑁} và 𝑀 sản
phẩm 𝑃 = {𝑝1, 𝑝2, … , 𝑝𝑀}.
Mỗi người dùng 𝑢𝑖 ∈ 𝑈 (với 𝑖 = 1, 2, … , 𝑁) được biểu diễn thông qua |𝑇| đặc trưng nội dung 𝑇 = {𝑡1, 𝑡2, … , 𝑡|𝑇|}. Các đặc trưng 𝑡𝑞 ∈ 𝑇 thông thường là
thông tin cá nhân của mỗi người dùng. Ví dụ 𝑢𝑖 ∈ 𝑈 là một người dùng thì các đặc trưng nội dung biểu diễn người dùng 𝑢𝑖 có thể là T={giới tính, độ tuổi, nghề nghiệp, trình độ,…}.
Mỗi sản phẩm 𝑝𝑥 ∈ 𝑃 (với 𝑥 = 1, 2, … 𝑀) có thể là hàng hóa, phim, ảnh,
tạp chí, tài liệu, sách, báo, dịch vụ hoặc bất kỳ dạng thông tin nào mà người
dùng cần đến. Mỗi sản phẩm 𝑝𝑥 ∈ 𝑃 được biểu diễn thông qua |𝐶| đặc trưng nội
dung 𝐶 = { 𝑐1, 𝑐2, … , 𝑐|𝐶|}. Các đặc trưng 𝑐𝑠 ∈ 𝐶 nhận được từ các phương pháp
trích chọn đặc trưng trong lĩnh vực truy vấn thông tin. Ví dụ 𝑝𝑥 ∈ 𝑃 là một phim
thì các đặc trưng nội dung biểu diễn phim 𝑝𝑥 có thể là 𝐶 = {thể loại phim, nước
sản xuất, hãng phim, diễn viên, đạo diễn, …}.
Mối quan hệ giữa tập người dùng 𝑈 và tập sản phẩm 𝑃 được biểu diễn thông
qua ma trận đánh giá 𝑅 = [𝑟𝑖𝑥] với 𝑖 = 1, 2, … , 𝑁; 𝑥 = 1, 2, … , 𝑀 (Hình 1.2).
8
Sản phẩm
1 2 … i … 𝑀
1 5 3 0 1 2 0
2 0 2 0 0 0 4
0 0 5 0 0 0
u 3 4 0 2 1 0
g n ù d i ờ ư g N
0 0 0 0 4 0
N 0 0 3 2 0 0
𝑎
3 5 0 ? 1 0
Hình 1.2. Ví dụ ma trận đánh giá tổng quát
𝑝𝑥 ∈ 𝑃. Thông thường giá trị 𝑟𝑖𝑥 nhận một giá trị thuộc miền 𝐹 = { 1, 2, … , 𝑔}
Giá trị 𝑟𝑖𝑥 thể hiện đánh giá của người dùng 𝑢𝑖 ∈ 𝑈 cho một số sản phẩm
được thu thập trực tiếp bằng cách hỏi ý kiến người dùng hoặc thu thập gián tiếp
thông qua cơ chế phản hồi của người dùng. Những giá trị 𝑟𝑖𝑥 = 0 được hiểu là
người dùng 𝑢𝑖 ∈ 𝑈 chưa biết đến hoặc không đánh giá sản phẩm 𝑝𝑥 ∈ 𝑃, những
ô điền ký tự “?” là giá trị cần hệ tư vấn đưa ra dự đoán đánh giá. Tiếp đến, ta
ký hiệu 𝑃𝑖 𝑃 là tập các sản phẩm 𝑝𝑥 ∈ 𝑃 được đánh giá bởi người dùng 𝑢𝑖 ∈ 𝑈
và 𝑢𝑎 ∈ 𝑈 được gọi là người dùng hiện thời, người dùng cần được tư vấn hay
người dùng tích cực. Khi đó, tồn tại hai dạng bài toán điển hình của hệ tư vấn
là:
- Dự đoán đánh giá của người dùng 𝑢𝑎 với các sản phẩm chưa có đánh
giá trước đó.
- Tư vấn danh sách ngắn các sản phẩm phù hợp với người dùng hiện
thời. Cụ thể đối với người dùng 𝑢𝑎, hệ tư vấn sẽ chọn ra 𝐾 sản phẩm mới 𝑝𝑥 ∈ (𝑃\𝑃𝑎) phù hợp với người dùng 𝑢𝑎 nhất để gợi ý cho họ.
9
Việc giải quyết bài toán tư vấn sẽ được thực hiện theo qui trình xây dựng
hệ tư vấn trong mục 1.1.3.
1.1.3. Qui trình xây dựng hệ tư vấn
Qui trình tổng quát để giải quyết bài toán tư vấn [14] thông thường gồm
có 3 giai đoạn chính được thể hiện như sau:
Giai đoạn 1: Thu thập thông tin
Ba loại thông tin chính thường được thu thập cho hệ tư vấn, gồm có:
- Người dùng (User) biểu diễn thông qua các đặc trưng là thông tin cá
nhân. Thông qua biểu diễn này, hệ thống cho phép xây dựng hồ sơ người dùng
(user’s profile) nhằm lưu trữ lại dấu vết các đặc trưng nội dung sản phẩm đã
từng được sử dụng bởi người dùng.
- Sản phẩm (Item) biểu diễn thông qua các đặc trưng là thông tin về sản
phẩm. Thông qua biểu diễn này, hệ thống cho phép xây dựng hồ sơ sản phẩm
(item’s profile) nhằm lưu trữ lại dấu vết các đặc trưng người dùng đã từng sử
dụng sản phẩm.
- Phản hồi của người dùng với sản phẩm (Feedback), biểu diễn thông qua
các giá trị đánh giá của người dùng với sản phẩm.
Giai đoạn 2: Xây dựng mô hình
Giai đoạn xây dựng mô hình tư vấn có thể thực hiện bằng nhiều hướng
tiếp cận khác nhau nhằm so sánh, đánh giá mối liên hệ giữa các thông tin thu
thập được ở giai đoạn 1. Một số hướng tiếp cận điển hình được biết đến như:
dựa vào kinh nghiệm, học máy, lý thuyết xấp xỉ,...[1]. Mỗi hướng tiếp cận sẽ
khai thác thông tin đầu vào theo những cách khác nhau hình thành những
phương pháp tư vấn khác nhau.
Giai đoạn 3: Dự đoán đánh giá / Đưa ra tư vấn
Dữ liệu đầu ra của giai đoạn 2 sẽ được dùng để dự đoán các đánh giá của
người dùng với các sản phẩm chưa có đánh giá trước đó và chọn ra 𝐾 sản phẩm
mới phù hợp nhất đối với người dùng hiện thời để gợi ý cho họ.
10
1.2. Các phương pháp lọc tin
1.2.1. Phân loại hệ thống tư vấn
Lọc thông tin là lĩnh vực nghiên cứu các quá trình phân bổ thông tin thích
hợp và gỡ bỏ thông tin không thích hợp đến với mỗi người dùng. Lọc thông tin
cho các hệ tư vấn được tiếp cận theo hai xu hướng chính, đó là lọc dựa vào nội
dung sản phẩm và lọc dựa vào thói quen sử dụng sản phẩm của người hay còn
được gọi là lọc cộng tác. So với lọc theo nội dung, lọc cộng tác cho lại kết quả
tốt hơn và có thể lọc bất kỳ dạng thông tin nào. Tuy nhiên, lọc cộng tác gặp
phải vấn đề dữ liệu thưa, người dùng mới và sản phẩm mới cần được tiếp tục
nghiên cứu giải quyết. Kết hợp giữa lọc cộng tác và lọc nội dung để nâng cao
chất lượng dự đoán và tránh hiện trạng dữ liệu thưa của lọc cộng tác được tập
trung nghiên cứu nhiều trong thời gian gần đây. Các phương pháp lọc kết hợp
hiện nay vẫn hạn chế trong biểu diễn và ước lương mức độ ảnh hưởng của mỗi
đặc trưng nội dung đến thói quen sử dụng sản phẩm của người dùng [2, 5, 10,
12, 14].
Có rất nhiều cách để dự đoán, ước lượng hạng/điểm cho các sản phẩm như
sử dụng học máy, lý thuyết xấp xỉ, các thuật toán dựa trên kinh nghiệm, …
Theo [8], các hệ thống gợi ý thường được phân thành ba loại theo các phương
pháp lọc tin (xem Hình 1.3): Tư vấn dựa trên nội dung, tư vấn dựa trên cộng
tác, tư vấn dựa trên cách tiếp cận kết hợp.
Tư vấn dựa trên nội dung: Cách tiếp cận lọc nội dung tạo ra một hồ sơ
cho mỗi người dùng hoặc sản phẩm để mô tả bản chất của nó. Ví dụ, một hồ sơ
phim có thể bao gồm các thuộc tính liên quan đến thể loại của nó, các diễn viên
tham gia, sự phổ biến của phòng vé, v.v. Hồ sơ người dùng có thể bao gồm
thông tin nhân khẩu học hoặc câu trả lời được cung cấp trên bảng câu hỏi phù
hợp. Các hồ sơ cho phép các chương trình liên kết người dùng với các sản phẩm
phù hợp. Tất nhiên, chiến lược dựa trên nội dung yêu cầu thu thập thông tin bên
ngoài có thể không có sẵn hoặc khó thu thập.
11
Tư vấn dựa trên cộng tác: Cách này chỉ dựa trên hành vi của người dùng
trước đây. Ví dụ: Giao dịch trước đó hoặc xếp hạng sản phẩm, mà không yêu
cầu tạo hồ sơ rõ ràng. Chiến thuật này phân tích mối liên quan giữa người dùng
và các thuộc tính của sản phẩm để định nghĩa quan hệ giữa người dùng – sản
phẩm.
Ưu điểm của lọc cộng tác so với lọc nội dung là không bị giới hạn miền,
dẫn đến có thể giải quyết các khía cạnh dữ liệu thường khó nắm bắt và khó
khăn để đưa vào khi sử dụng lọc nội dung. Tuy nhiên không hiệu quả khi phải
xử lý với dữ liệu mới được thêm vào, điều mà lọc nội dung lại hiệu quả hơn.
Tư vấn dựa trên cách tiếp cận kết hợp: Kết hợp hai phương pháp tiếp cận
dựa trên nội dung và cộng tác.
Hình 1.3: Phân loại hướng tiếp cận xây dựng hệ thống gợi ý
1.2.2. Phương pháp tư vấn dựa trên nội dung
Lọc theo nội dung là phương pháp thực hiện dựa trên việc so sánh nội
dung thông tin hay mô tả hàng hóa, để tìm ra những sản phẩm tương tự với
12
những gì mà người dùng đã từng quan tâm để giới thiệu cho họ những sản phẩm
này. Các phương pháp tiếp cận cho lọc theo nội dung được chia thành hai
phương pháp chính: lọc nội dung dựa vào bộ nhớ và lọc nội dung dựa vào mô
hình. Những vấn đề cần tiếp tục nghiên cứu của lọc nội dung là vấn đề trích
chọn đặc trưng và người dùng mới [1, 8, 12].
Với phương pháp tư vấn dựa trên nội dung, độ phù hợp r(u, i) của sản
phẩm i với người dùng u được đánh giá dựa trên độ phù hợp r(u, i’) trong đó
và “tương tự” như i. Ví dụ, để gợi ý một bộ phim cho người dùng u, hệ thống
gợi ý sẽ tìm các đặc điểm của những bộ phim từng được u đánh giá cao như
diễn viên, đạo diễn, … sau đó chỉ những bộ phim tương tự với sở thích của u
mới được giới thiệu.
Hướng tiếp cận dựa trên nội dung bắt nguồn từ những nghiên cứu về thu
thập thông tin và lọc thông tin. Do đó, rất nhiều hệ thống dựa trên nội dung hiện
nay tập trung vào tư vấn các đối tượng chứa dữ liệu văn bản như tin tức,
website. Những tiến bộ so với hướng tiếp cận cũ của phương pháp tìm kiếm
thông tin là do có sử dụng hồ sơ về người dùng (chứa thông tin về sở thích, nhu
cầu,...). Hồ sơ này được xây dựng dựa trên những thông tin được người dùng
cung cấp trực tiếp (khi trả lời khảo sát) hoặc gián tiếp (do khai phá thông tin từ
các giao dịch của người dùng).
Hình 1.4. Minh họa phương pháp tư vấn dựa trên lọc nội dung
Giả sử ta xem Content(i) là một thông tin riêng của sản phẩm, nghĩa là
một tập các đặc tính đặc trưng cho sản phẩm i. Nó thường được tính toán thông
qua việc trích rút từ tập các đặc tính của sản phẩm i (nội dung của nó) và ứng
13
với mỗi mục đích tư vấn sẽ xác định ra sản phẩm thích hợp. Dễ dàng nhận thấy
những hệ thống gợi ý dựa trên nội dung thường thiết kế cho hầu hết những sản
phẩm được tư vấn dựa trên text (văn bản) và nội dung của những hệ thống này
được mô tả như là một từ khóa (keyword).
Một trong những thước đo phổ biến để xác định mức độ quan trọng của từ
khóa trong việc truy vấn thông tin là đo tần suất xuất hiện của mục từ trong tài
liệu (Term Frequency) và tần số nghịch đảo của tần suất xuất hiện các tài liệu
(Inverse Document Frequency) được định nghĩa như sau:
Giả sử N là tổng số tài liệu được tư vấn cho người dùng và từ khóa 𝑘𝑗 xuất
hiện trong 𝑛𝑖 của chúng (𝑛𝑖 là tổng số tài liệu có từ khóa k). Giả sử 𝑓𝑖,𝑗 là số lần
từ khóa 𝑘𝑖 xuất hiện trong tài liệu 𝑑𝑗. 𝑇𝐹𝑖,𝑗 là tần số xuất hiện từ khóa 𝑘𝑖 trong tài
liệu 𝑑𝑗:
(1.1) 𝑇𝐹𝑖,𝑗 = 𝑓𝑖,𝑗 𝑚𝑎𝑥𝑧 𝑓𝑧,𝑗
Trong đó 𝑚𝑎𝑥𝑧𝑓𝑧,𝑗 là số lần xuất hiện cao nhất của từ khóa 𝑘𝑧 trong toàn
tập tài liệu 𝑑𝑗. Tuy nhiên, những từ khóa xuất hiện trong nhiều tài liệu có thể
không được phân biệt với nhau giữa tài liệu liên quan và không liên quan. Vì
vậy, tần số nghịch đảo tần suất xuất hiện của các tài liệu 𝐼𝐷𝐹𝑖 được đưa ra để phân biệt giữa các từ khóa này và thường dùng kết hợp với tần suất xuất hiện
của từ khóa (𝑇𝐹𝑖,𝑗 mang lại tầm quan trọng cho từ khóa):
(1.2) 𝐼𝐷𝐹𝑖 = 𝑙𝑜𝑔 𝑁 𝑛𝑖
Vậy sự kết hợp của TF và IDF sẽ xác định mức độ quan trọng của từ khóa
𝑘𝑖 cần xét.
(1.3) 𝑤𝑖,𝑗 = 𝑇𝐹𝑖,𝑗 × 𝐼𝐷𝐹𝑖
Và nội dung của tài liệu 𝑑𝑗 được xác định như sau:
(1.4) 𝐶𝑜𝑛𝑡𝑒𝑛𝑡(𝑑𝑗) = (𝑤1𝑗, 𝑤2𝑗, … , 𝑤𝑘𝑗)
14
Như đã nói ở trên, hệ thống dựa trên nội dung thường được dùng để tư vấn
những sản phẩm đã được người dùng đó trước đây ưa thích. Cụ thể, những sản
phẩm được tiến cử đem so sánh trọng số với các sản phẩm mà người dùng trước
đây đã sử dụng và từ đó tìm ra sản phẩm phù hợp nhất để tư vấn.
ContentBasedProfile(u) là hồ sơ cá nhân của người dùng u chứa những
thị hiếu và sở thích của người dùng. Hồ sơ cá nhân thu được thông qua việc
phân tích nội dung của những sản phẩm và trọng số do người dùng đánh giá
trước đó, nó thường được xây dựng bằng cách sử dụng kỹ thuật phân tích từ
khóa từ việc truy vấn thông tin. Chẳng hạn, ContentBasedProfile(u) có thể được
định nghĩa như là một véc tơ của những mức độ quan trọng mỗi mức này sẽ
biểu diễn tầm quan trọng của từ khóa 𝑘𝑖 với người dùng u và nó có thể được
tính toán từ các véc tơ nội dung đã được đánh trọng số cụ thể thông qua các kỹ
thuật khác nhau. Ví dụ một vài phương pháp tính trung bình cộng, tính toán
ContentBasedProfile(u) như là một véc tơ “trung bình” từ những véc tơ nội
dung cụ thể.
Trong những hệ thống dựa trên nội dung, hàm tiện ích r(u, i) thường được
định nghĩa như sau:
(1.5) 𝑟(𝑢, 𝑖) = 𝑠𝑐𝑜𝑟𝑒(𝐶𝑜𝑛𝑡𝑒𝑛𝑡𝐵𝑎𝑠𝑒𝑑𝑃𝑟𝑜𝑓𝑖𝑙𝑒 (𝑢), 𝑐𝑜𝑛𝑡𝑒𝑛𝑡(𝑖))
Dựa trên việc truy vấn thông tin để tư vấn các trang Web, Web sites URLs
hoặc các thông điệp tin tức Usenet, thì cả ContentBasedProfile (u) của người
dùng u và Content(i) của tài liệu i đều có thể được trình bày như các TF-IDF
𝐾 ∑ 𝑊𝑗𝑢 𝑊𝑗𝑖 𝑗=1 ‖𝑊𝑢⃗⃗⃗⃗⃗ ‖𝑥‖𝑊𝑖⃗⃗⃗⃗ ‖
(1.6) = 𝑟(𝑢, 𝑖) = 𝑐𝑜𝑠(𝑊𝑢⃗⃗⃗⃗⃗ , 𝑊𝑖⃗⃗⃗⃗ ) = véc tơ 𝑊𝑢⃗⃗⃗⃗⃗ và 𝑊𝑖⃗⃗⃗⃗ của các từ khóa quan trọng. Hàm r(u, i) được biểu diễn trong việc truy vấn thông tin thường được xác định theo véc tơ 𝑊𝑢⃗⃗⃗⃗⃗ và 𝑊𝑖⃗⃗⃗⃗ như sau: 𝑊𝑢⃗⃗⃗⃗⃗ . 𝑊𝑖⃗⃗⃗⃗ ‖𝑊𝑢⃗⃗⃗⃗⃗ ‖𝑥‖𝑊𝑖⃗⃗⃗⃗ ‖
Trong đó K là tổng số các từ khóa trong hệ thống.
15
Ví dụ, nếu user u đọc nhiều bài báo trực tuyến về chủ để Tin Sinh Học thì
kỹ thuật tư vấn dựa trên nội dung sẽ có khả năng tư vấn những bài báo khác về
tin sinh học cho user u nếu nó có nhiều thuật ngữ liên quan đến tin sinh học hơn vì vậy ContentBasedProfile(u) sẽ được xác định bằng véc tơ 𝑊𝑢⃗⃗⃗⃗⃗ mô tả các thuật ngữ 𝑘𝑗 với mức độ quan trọng cao 𝑊𝑗𝑢. Hơn nữa, hệ thống tư vấn này còn
sử dụng cosine hoặc thước đo mức độ tương tự để gán giá trị hàm r(u, i) cao
cho những bài báo i có nhiều thuật ngữ tin sinh học và giá trị hàm r(u, i) thấp cho những bài báo có ít thuật ngữ tin sinh học hơn thông qua véc tơ 𝑊𝑖⃗⃗⃗⃗ .
Bên cạnh phương pháp truy vấn thông tin mà cơ sở là dựa trên các hàm
dựa vào kinh nghiệm truyền thống, tư vấn dựa trên nội dung còn sử dụng các
kỹ thuật khác như phân loại Bayes và nhiều kỹ thuật máy học khác bao gồm
phân cụm, cây quyết định, và mạng nơ-ron nhân tạo.
Những kỹ thuật này khác với phương pháp dựa trên việc truy vấn thông
tin, ở đây chúng tính toán hàm tiện ích không dựa trên hàm heuristic giống như
việc đánh giá độ tương quan bằng hàm cosine mà nó dựa trên các mô hình được
biết từ dữ liệu phía dưới nhờ sử dụng các kỹ thuật máy học và thống kê. Chẳng
hạn, dựa trên tập các trang Web được đánh trọng số thể hiện mức độ liên quan
đến người dùng, sử dụng kỹ thuật phân loại Naïve Bayes để phân loại các trang
Web không được đánh trọng số.
Hơn nữa, kỹ thuật phân loại Naïve Bayes thường được dùng để đánh giá
xác suất trang 𝑝𝑗 có thuộc lớp 𝐶𝑖 không (có quan hệ hay không có quan hệ) dựa
vào tập các từ khóa 𝑘1,𝑗, ……, 𝑘𝑛,𝑗 trong trang đó:
(1.7) 𝑃(𝐶𝑖|𝑘1𝑗& … &𝑘𝑛𝑗)
Ngoài ra, giả thuyết rằng các khóa này độc lập với nhau vì vậy xác suất
ở trên tương ứng với:
𝑥
𝑃(𝐶𝑖) ∏ 𝑃(𝐾𝑥𝑗|𝐶𝑖) (1.8)
16
Mặc dù giả thuyết các từ khóa độc lập với nhau không nhất thiết phải áp
dụng ở nhiều ứng dụng nhưng kết quả thực nghiệm đã chứng minh kỹ thuật
phân loại Naïve Bayes vẫn đưa ra độ chính xác cao về mức độ phân loại.
Hơn nữa cả 𝑃(𝐾𝑥𝑗|𝐶𝑖) và 𝑃(𝐶𝑖) có thể được đánh giá từ dữ liệu hướng dẫn
phía dưới. Với mỗi trang 𝑝𝑗, xác suất 𝑃(𝐶𝑖|𝑘1𝑗& … &𝑘𝑛𝑗) được tính toán ứng với
mỗi lớp 𝐶𝑖 và trang 𝑝𝑗 sẽ được gán cho lớp 𝐶𝑖 nếu nó có xác suất lớn nhất.
Khi việc cung cấp kỹ thuật tư vấn không rõ ràng thì tập truy vấn văn bản
sẽ đưa ra một vài kỹ thuật thường được sử dụng trong những hệ thống tư vấn
nội dung. Một trong số đó là kỹ thuật lọc thích ứng; nó tập trung vào việc nhận
biết các tài liệu liên quan cũng như là quan sát từng tài liệu trong những luồng
tài liệu tiếp theo để tăng thêm độ chính xác. Một ví dụ khác là đặt ngưỡng
(threshold setting). Nó tập trung vào việc xác định phạm vi tài liệu ăn khớp với
những câu truy vấn được đưa ra liên quan đến người dùng.
Theo như nhận xét trong [8] hệ thống tư vấn hướng dựa trên nội dung có
một số hạn chế sau:
- Giới hạn trong phân tích nội dung: Nếu hai sản phẩm khác nhau được
biểu diễn cùng một tập đặc trưng thì chúng không thể phân biệt được. Vì vậy
khi những tài liệu dựa trên văn bản thường được biểu diễn dưới những từ khóa
quan trọng, thì những hệ thống dựa trên nội dung không thể phân biệt được cái
nào hợp, cái nào không hợp nếu chúng cùng sử dụng một thuật ngữ.
- Quá chuyên môn hóa: Khi hệ thống chỉ có thể tư vấn những sản phẩm
có trọng số cao dựa trên những thông tin của người dùng, thì người dùng sẽ bị
giới hạn trong việc tư vấn những sản phẩm khác có liên quan sản phẩm trên mà
đã được đánh trọng số. Chẳng hạn, một người không có kinh nghiệm với các
món ăn của người Huế thì ngay cả những cửa hàng lớn nhất kiểu Huế trong
thành phố cũng không bao giờ được tư vấn. Đây là một vấn đề đã được nghiên
cứu trong nhiều lĩnh vực, nó thường được ấn định bằng việc giới thiệu một cách
17
ngẫu nhiên. Chẳng hạn, việc sử dụng những thuật toán di truyền được đề xuất
như là khả năng giải quyết các vấn đề về ngữ cảnh của việc lọc thông tin. Thêm
vào đó, vấn đề liên quan đến việc quá chuyên môn hóa còn là những hệ thống
dựa trên nội dung không thể tư vấn những sản phẩm mà khác với những gì mà
người dùng đã biết trước đó. Trong trường hợp nào đó, những sản phẩm không
nên được tư vấn nếu chúng có quá nhiều điểm tương tự với những gì mà người
dùng đã gặp, như một bài báo tin tức tuy là khác nhau nhưng đưa về cùng một
sự kiện. Vì vậy, một vài hệ thống tư vấn dựa trên nội dung không chỉ lọc ra
những sản phẩm có quá nhiều điểm khác với sở thích của người dùng mà còn
lọc cả chính những sản phẩm có quá nhiều điểm giống của người dùng trước
đó. Nói tóm lại, tính đa dạng của việc tư vấn thường là những đặc điểm mô tả
trong hệ thống tư vấn. Lý tưởng nhất là người dùng sẽ tự đưa ra trọng số của
những lựa chọn thay cho việc đưa ra một tập các khả năng lựa chọn.
- Vấn đề người dung mới: Người dùng phải đánh giá đầy đủ cho những
sản phẩm trước khi hệ thống tư vấn dựa trên nội dung có thể hiểu những sở
thích của người dùng và từ đó đưa ra cho người dùng những tư vấn tin cậy. Vì
vậy, với người dùng mới, thông tin về việc đánh trọng số rất ít nên khó có thể
đảm bảo việc tư vấn sẽ tốt.
- Vấn đề thông tin sản phẩm mới: Lọc nội dung phân tích các đặc điểm
của sản phẩm để so sánh với những sản phẩm mà người dùng đã đánh giá trước
đó, với những sản phẩm có thông tin không đầy đủ hoặc quá đặc biệt, rất khó
để đưa ra 1 tư vấn chính xác với các sản phẩm như vậy.
1.2.3. Phương pháp tư vấn dựa trên lọc cộng tác
Mục đích của giải thuật lọc cộng tác là gợi ý những sản phẩm mới hoặc
dự đoán một sản phẩm hợp lý cho người dùng, dựa trên những sở thích trước
đây và lựa chọn từ những sở thích của những người dùng khác.
18
Hình 1.5: Minh họa phương pháp tư vấn dựa trên lọc cộng tác
Trong kịch bản điển hình của lọc cộng tác, có một danh sách m người
dùng 𝑈 = {𝑢1, 𝑢2, … , 𝑢𝑚} và một danh sách n sản phẩm 𝐼 = {𝑖1, 𝑖2, … , 𝑖𝑛}.
Mỗi người dùng 𝑢1 có danh sách các sản phẩm 𝑆𝑢, mà người dùng đã đánh
giá về sản phẩm đó. Chú ý rằng 𝑆𝑢 I và 𝐼𝑢𝑖 có thể là rỗng.
Hình 1.6 mô tả quy trình lọc cộng tác bao gồm 2 nhiệm vụ chính là:
- Dự đoán: cho ra giá trị 𝑃𝑎𝑗 thể hiện đánh giá của người dùng a lên sản
phẩm j.
-Tư vấn: cho ra danh sách N sản phẩm {𝑇𝑖𝑁} mà người dùng a thích nhất.
Giải thuật lọc cộng tác được mô tả thông qua một ma trận đánh giá 𝑅𝑚 𝑥 𝑛
người dùng và sản phẩm. Mỗi phần tử 𝑎𝑖,𝑗 trong mảng R biểu diễn đánh giá của
người dùng thứ i đối với sản phẩm thứ j. Mỗi đánh giá cá nhân là một số và nó
có thể nhận giá trị 0 khi người dùng chưa đánh giá sản phẩm đó. Các nhà nghiên
cứu đã xây dựng một số các giải thuật lọc cộng tác mà có thể chia thành 2 loại
chính: dựa trên bộ nhớ (Memory-based) và dựa trên mô hình (Model-based).
19
Hình 1.6: Quy trình của hệ thống tư vấn dựa trên lọc cộng tác
1.2.3.1. Giải thuật lọc công tác dựa trên bộ nhớ (Memory-based)
Giải thuật lọc cộng tác dựa trên bộ nhớ sử dụng các cơ sở dữ liệu người
dùng – sản phẩm để dự đoán. Những hệ thống triển khai kỹ thuật thống kê để
tìm những lựa chọn của người dùng, như biết người lân cận, có lịch sử phù hợp
với người dùng đích (ví dụ, người dùng đánh giá tương tự các sản phẩm khác
nhau hoặc có khuynh hướng mua những sản phẩm tương tự nhau). Một khi lân
cận của người dùng được hình thành, hệ thống sử dụng những giải thuật khác
nhau để kết hợp những sở thích của người dùng lân cận để đề xuất một dự đoán
hoặc một tư vấn top-N cho người dùng.
Theo [8], Thuật toán dựa trên bộ nhớ về căn bản sử dụng các độ do kinh
nghiệm để sinh ra dự đoán dựa trên tập các sản phẩm của người dùng.
Cụ thể là, đánh giá trị 𝑟𝑢,𝑖 của người dùng u đối với sản phẩm i thường
được tính toán như là một sự kết hợp trọng số của nhiều người dùng khác nhau
với cùng một sản phẩm i (thường là N sản phẩm giống nhau nhất):
𝑟𝑢′,𝑖 (1.9) 𝑟𝑢,𝑖 = aggr 𝑢∈𝑈̂
20
Trong đó 𝑈̂ biểu diễn tập người dùng N có trọng số về sản phẩm i giống
nhất với người dùng u (N có thể bắt đầu từ 1 đến tất cả người dùng). Một số ví
1
dụ về đánh giá 𝑟𝑢,𝑖 là:
𝑢′∈𝑈
𝑁
∑ (a) 𝑟𝑢,𝑖 = 𝑟𝑢′,𝑖
𝑢′∈𝑈
(1.10) (b) 𝑟𝑢,𝑖 = 𝑘 ∑ 𝑠𝑖𝑚(𝑢, 𝑢′) × 𝑟𝑢′,𝑖
𝑢′∈𝑈
(c) 𝑟𝑢,𝑖 = 𝑟𝑢̅ + 𝑘 ∑ 𝑠𝑖𝑚(𝑢, 𝑢′) × 𝑟𝑢′,𝑖
Trong đó
k: hệ số chuẩn hóa và thường được lựa chọn là:
𝑢∈𝑈̂
1 𝑘 = (1.11) ∑ |𝑠𝑖𝑚(𝑢, 𝑢′)|
𝑟𝑢̅ : trọng số trung bình của người dùng u, được đinh nghĩa như sau:
𝑟𝑢̅ = (1.12) 1 |𝑆𝑢| ∑ 𝑟𝑢,𝑖 𝑠∈𝑆𝑢
Với:
(1.13) 𝑆𝑢 = {𝑠 ∈ 𝑆|𝑟𝑢,𝑖 ≠ ∅}
Trường hợp đơn giản nhất, giá trị đánh giá có thể là trung bình cộng của
các đánh giá người dùng khác lên sản phẩm đó như công thức (a). Tuy nhiên,
phương pháp tiếp cận kết hợp phổ biến nhất thường được sử dụng tính tổng
mức quan trọng như theo công thức (b). Đánh giá sự giống nhau giữa người
dùng u và u’, sim(u, u’) về cơ bản là đo độ tương quan giữa những người dùng
và thường được xem là trọng số, nghĩa là với những người dùng giống nhau
nhất thì 𝑟𝑢′,𝑖 sẽ được thực hiện dựa vào dự đoán của 𝑟𝑢 ,𝑖. Chú ý rằng sim(x, y) như 1 hàm heuristics, được giới thiệu để đánh giá mức khác nhau giữa users
giống nhau, nhằm làm đơn giản hóa việc sử dụng thừa số k như biểu diễn ở
trên.
Những phương pháp tiếp cận khác nhau thường được tính toán hàm
tương quan sim(u, u’) giữa những người dùng trong hệ thống tư vấn cộng tác.
21
Trong hầu hết các phương pháp tiếp cận này, sự tương tự giữa hai người dùng
dựa trên những đánh giá về sản phẩm được cả u và u’ quan tâm. Một trong
những phương pháp phổ biến nhất là dựa trên sự tương quan và cosine. Cụ thể,
đầu tiên, xem 𝑆𝑥𝑦 là tập tất cả các sản phẩm của người dùng x và y; nghĩa là
𝑆𝑥𝑦 = {𝑖 ∈ 𝑆 | 𝑟𝑥,𝑖 ≠ ∅ & 𝑟𝑦𝑥,𝑖 ≠ ∅}. Trong hệ thống tư vấn cộng tác, 𝑆𝑥𝑦
thường được sử dụng để đưa ra kết quả tức thì cho việc tính toán “người hàng
xóm gần nhất” của người dùng x và thường được tính toán để đưa ra xếp hạng
rõ ràng, nghĩa là tính toán tìm ra điểm giao nhau giữa tập 𝑆𝑥 và 𝑆𝑦.
1.2.3.2. Thuật toán lọc cộng tác dựa trên mô hình (Model-based)
Giải thuật lọc cộng tác dựa trên mô hình cung cấp các tư vấn sản phẩm
bằng việc phát triển một mô hình đánh giá của người dùng. Giải thuật loại này
thuộc phương pháp tính xác suất và xử lý lọc cộng tác như tính toán giá trị kỳ
vọng của một dự đoán người dùng, cho đánh giá của người đó với các sản phẩm
khác. Xử lý xây dựng mô hình được thực hiện bởi nhiều các giải thuật học máy
khác nhau như mạng Bayes, phân cụm, và phương pháp dựa trên luật (rule-
based), mô hình hồi quy tuyến tính, mô hình entropy cực đại, …
Thuật toán dựa trên mô hình sử dụng tập đánh giá để đưa ra một mô hình
mà sau đó được sử dụng để tạo ra những dự đoán về trọng số. Chẳng hạn,
phương pháp tính xác suất để lọc cộng tác, trong đó những trọng số (đánh giá)
chưa biết được tính như sau:
𝑛 𝑖=0
. 𝑟𝑢,𝑖 = 𝐸(𝑟𝑢,𝑖) = ∑ 𝑖 × 𝑃𝑟(𝑟𝑢,𝑖 = 𝑖 | 𝑟𝑢,𝑖′, 𝑖′ ∈ 𝑆𝑢)
Giá trị trọng số (đánh giá) là những số nguyên nằm giữa 0 và n. Biểu thức
xác suất là xác suất mà người dùng u sẽ đưa ra trọng số cụ thể cho sản phẩm i, dựa
trên những trọng số của người dùng về những sản phẩm trước đó đã được đánh
giá. Để ước lượng xác suất này, sử dụng 2 mô hình xác suất tương đối sau: mô
hình phân cụm (cluster) và mạng Bayes. Trong mô hình đầu tiên, người dùng có
sở thích giống nhau được tập hợp lại thành một lớp. Trong lớp người dùng, sự
22
đánh giá được xem là độc lập với nhau, nghĩa là cấu trúc mô hình giống như mô
hình Bayes thô sơ ban đầu. Số lượng của các lớp và các thông số của mô hình
được biết từ dữ liệu. Mô hình thứ hai biểu diễn mỗi sản phẩm như là một nút trong
mạng Bayes, ở đó mỗi trạng thái của nút tương ứng với giá trị trọng số của mỗi
sản phẩm có thể nhận biết được. Cả cấu trúc của mạng và xác suất điều kiện được
nhận biết từ dữ liệu. Vì vậy giới hạn của phương pháp này là mỗi người dùng có
thể được tập hợp lại thành một nhóm (cluster) đơn lẻ, trong khi một vài ứng dụng
tư vấn có thể được lợi từ khả năng hợp users thành một vài nhóm cùng một lúc.
Chẳng hạn, trong tư vấn về sách, người dùng quan tâm đến một chủ đề với mục
đích công việc nhưng hoàn toàn có thể quan tâm đến chủ đề khác vào những thời
gian rảnh rỗi.
Phương pháp lọc cộng tác có thể được giải quyết bằng phương pháp học
máy khác nhau (như mạng nơ-ron nhân tạo) kết hợp với kỹ thuật phân tách đặc
trưng (như sự phân tích giá trị đơn lẻ - một kỹ thuật đại số làm giảm chiều của
những ma trận) có thể được sử dụng. Các tác giả đã đi so sánh phương pháp
dựa trên mô hình tương ứng của chúng với phương pháp dựa trên bộ nhớ chuẩn
và sau đó ghi lại chúng và thấy rằng trong một vài ứng dụng, phương pháp dựa
trên mô hình thực hiện tốt hơn phương pháp dựa trên bộ nhớ tính theo mức độ
chính xác của những tư vấn. Tuy nhiên, việc so sánh cả hai trường hợp này
hoàn toàn đều do kinh nghiệm mà không có học thuyết nào chứng minh khẳng
định này [10].
Sự khác biệt chính giữa kỹ thuật dựa trên mô hình cộng tác và những
phương pháp tiếp cận dựa trên hàm heuristic là những kỹ thuật dựa trên mô
hình tính toán những dự đoán tiện ích (đánh giá) không dựa trên những luật về
heuristic mà thay vì đó, dựa trên mô hình được biết đến từ những dữ liệu nằm
bên dưới bằng cách sử dụng kỹ thuật học máy và thống kê. Một phương pháp
kết hợp cả phương pháp tiếp cận dựa trên bộ nhớ và dựa trên mô hình đã được
đề xuất, ở đó nó được phân tích dựa vào kinh nghiệm và cách sử dụng những
23
phương pháp phối hợp này có thể cung cấp tư vấn tốt hơn những phương pháp
cộng tác chỉ dựa trên mô hình hoặc dựa trên bộ nhớ.
Một phương pháp khác để cải thiện hiệu quả của những thuật toán lọc
cộng tác được đưa ra, ở đó đầu vào của tập các đánh giá dựa trên đặc tả của
người dùng được lựa chọn một cách cẩn thận thông qua việc sử dụng một vài
kỹ thuật như loại trừ tạp nhiễu, sự dư thừa và khai thác các dữ liệu thưa thớt để
đánh giá. Những kết quả dựa theo kinh nghiệm chứng minh mức độ chính xác
và hiệu quả của những thuật toán lọc cộng tác dựa trên mô hình là tăng lên.
Những kỹ thuật lựa chọn đầu ra được đề xuất có thể giúp những thuật toán dựa
trên mô hình chỉ rõ vấn đề cần nhận biết từ cơ sở dữ liệu rộng lớn. Hơn nữa,
giữa những sự phát triển gần đây nhất, đề xuất ra phương pháp thống kê cho
lọc cộng tác tạo ra các cách thức khác nhau để so sánh những kỹ thuật dựa trên
bộ nhớ và dựa trên mô hình. Cụ thể, việc sử dụng phương pháp học chủ động
hơn để nhận biết ra mô hình xác suất về sở thích của mỗi người dùng và sử
dụng việc lưu trữ những hồ sơ cá nhân của người dùng trong mô hình pha trộn
để tính toán những tư vấn.
Hệ thống tư vấn cộng tác khắc phục được nhiều nhược điểm của hệ thống
dựa trên nội dung. Một điểm quan trọng là nó có thể xử lý mọi loại dữ liệu và
gợi ý mọi loại sản phẩm, kể cả những sản phẩm mới [14, 15].
1.2.4. Tư vấn dựa trên cách tiếp cận kết hợp
Một vài hệ thống tư vấn sử dụng phương pháp kết hợp phương pháp dựa
trên cộng tác và dựa trên nội dung nhằm tránh những hạn chế của những hệ
thống tư vấn dựa trên cộng tác và dựa trên nội dung. Cách thức nhằm kết hợp
phương pháp dựa trên cộng tác và dựa trên nội dung thành hệ thống tư vấn kết
hợp có thể phân loại như sau:
- Thực thi những phương thức dựa trên nội dung và dựa trên cộng tác
một cách tách biệt cùng với đó là kết hợp những dự đoán của chúng.
- Kết hợp một vài đặc tính dựa trên nội dung vào trong phương pháp dựa
trên cộng tác.
24
- Kết hợp một vài đặc tính dựa trên cộng tác vào trong phương pháp dựa
trên nội dung.
- Xây dựng một số mô hình hợp nhất tổng quát kết hợp những đặc tính
dựa trên nội dung và dựa trên cộng tác.
Tất cả những phương pháp tiếp cận trên được sử dụng trong những
nghiên cứu về hệ tự vấn sau:
- Kết hợp những tư vấn riêng rẽ: Một phương pháp để xây dựng những
hệ thống tư vấn kết hợp là thực hiện chia hệ thống tư vấn dựa trên nội dung và
dựa trên cộng tác. Như vậy có thể có hai kịch bản (scenarios) khác nhau. Đầu
tiên, kết hợp đầu ra đã thu được (những đánh giá) từ những hệ thống tư vấn
riêng biệt thành một hệ thống tư vấn cuối cùng sử dụng hoặc là sự kết hợp tuyến
tính những đánh giá hoặc là một lược đồ bầu chọn (voting). Nói một cách khác,
chúng ta có thể sử dụng một trong những hệ thống tư vấn cụ thể đó, tại một thời
điểm để sử dụng chúng tốt hơn dựa vào tiêu chuẩn “chất lượng” tư vấn.
- Thêm những đặc tính dựa trên nội dung vào mô hình cộng tác: Một vài
hệ thống tư vấn kết hợp sử dụng phương pháp “cộng tác thông qua nội dung”
được mô tả dựa trên những kỹ thuật cộng tác truyền thống và lưu trữ hồ sơ cá
nhân dựa trên nội dung của mỗi người dùng. Hồ sơ cá nhân dựa trên nội dung
này không có những sản phẩm phổ biến được đánh giá, nó thường được dùng
để tính toán độ tương quan giữa hai người dùng. Nó cho phép vượt qua những
vấn đề liên quan đến sự thưa thớt của những ứng dụng cộng tác thuần nhất trước
đây, điển hình là không có nhiều cặp người dùng có số lượng những sản phẩm
chung. Lợi thế khác của phương pháp này là người dùng được tư vấn một sản
phẩm không chỉ khi sản phẩm đó có mức đánh giá cao do những người dùng
có cùng hồ sơ cá nhân mà còn cả khi sản phẩm này được đánh giá cao dựa trên
những hồ sơ cá nhân của người dùng đó.
- Thêm những đặc tính cộng tác vào mô hình dựa trên nội dung: Phương
pháp phổ biến nhất trong kiểu này là việc sử dụng kỹ thuật giảm chiều
(dimensionality reduction) trong nhóm những hồ sơ cá nhân dựa trên nội dung.
25
Chẳng hạn, sử dụng chỉ mục ngữ nghĩa latent (LSI) để tạo ra cái nhìn cộng tác
của tập những hồ sơ cá nhân người dùng; ở đó những hồ sơ này được biểu diễn
bởi những véc tơ, và kết quả của việc cải thiện hiệu năng được so sánh với
phương pháp tiếp cận dựa trên nội dung thuần nhất.
- Phát triển mô hình tư vấn hợp nhất: Nhiều nghiên cứu được đưa ra theo
phương pháp tiếp cận này trong những năm gần đây. Chẳng hạn, đề xuất ra việc
sử dụng những đặc tính dựa trên nội dung và dựa trên cộng tác (ví dụ, tuổi hoặc
giới tính của người dùng hoặc các thể loại phim) trong việc phân loại dựa trên
luật đơn.
1.3. Kiến trúc tổng quát của hệ thống lọc thông tin
Một hệ thống lọc thông tin tổng quát bao gồm bốn thành phần cơ bản
[16]: Thành phần phân tích dữ liệu (Data Analyser Component), thành phần
mô hình người dùng (User Model Component), thành phần học (Learning
Người dùng
Thông tin đặc tả người dùng
Thành phần mô hình người dùng
Nhà cung cấp thông tin
Thông tin các sản phẩm
Hồ sơ người dùng
Phản hồi người dùng
Sản phẩm phù hợp với người dùng
Cập nhật thông tin huấn luyện
Biểu diễn Thông tin sản phẩm
Thành phần học
Thành phần lọc
Thành phần phân tích dữ liệu
Biểu diễn Thông tin sản phẩm
Component) và thành phần lọc (Filtering Component).
Hình 1.7: Kiến trúc tổng quát của hệ thống lọc thông tin
Thành phần phân tích dữ liệu (DAC) có nhiệm vụ thu thập dữ liệu về
sản phẩm từ các nhà cung cấp thông tin (ví dụ tài liệu, thư điện tử, sách, báo,
tạp chí, phim, ảnh...). Dữ liệu về sản phẩm được phân tích và biểu diễn theo
một khuôn dạng thích hợp, sau đó chuyển đến bộ phận lọc tin.
26
Thành phần mô hình người dùng (UMC) có thể “hiện” hoặc “ẩn” dùng
để lấy thông tin về người dùng, như giới tính, tuổi, nơi sinh sống và thông tin
người dùng đã truy vấn trước đó để tạo nên hồ sơ người dùng. Hồ sơ người
dùng sau khi tạo ra được chuyển đến thành phần học để thực hiện nhiệm vụ
huấn luyện.
Thành phần học (LC) thực hiện huấn luyện trên tập hồ sơ và phản hồi
của người dùng theo một thuật toán học máy nào đó. Thuật toán học lấy dữ liệu
từ thành phần mô tả người dùng; lấy dữ liệu về sản phẩm đã được biểu diễn từ
thành phần lọc kết hợp với thông tin phản hồi người dùng để thực hiện nhiệm
vụ huấn luyện. Kết quả quá trình học được chuyển lại cho bộ phận lọc để thực
hiện nhiệm vụ tiếp theo.
Thành phần lọc (FC) là thành phần quan trọng nhất của hệ thống, có
nhiệm vụ xem xét sự phù hợp giữa hồ sơ người dùng và biểu diễn dữ liệu sản
phẩm để đưa ra quyết định phân bổ sản phẩm. Nếu dữ liệu sản phẩm phù hợp
với hồ sơ người dùng, sản phẩm sẽ được cung cấp cho người dùng đó. Trong
trường hợp ngược lại, hệ thống loại bỏ sản phẩm khỏi danh sách những sản
phẩm phân bổ cho người dùng. Người dùng nhận được những sản phẩm thích
hợp, xem xét, đánh giá, phản hồi lại cho thành phần học để phục vụ quá trình
lọc tiếp theo.
1.4. Ứng dụng của phương pháp lọc tin trong hệ thống tư vấn
Hệ thống gợi ý được ứng dụng khá thành công trong thực tiễn giúp người
dùng giải quyết vấn đề quá tải thông tin. Hệ thống gợi ý sử dụng các tri thức về
sản phẩm, các tri thức của chuyên gia hay tri thức khai phá học được từ hành
vi con người dùng để đưa ra các gợi ý về sản phẩm mà họ thích trong hàng ngàn
hàng vạn sản phẩm có trong hệ thống đặc biệt là thương mại điện tử. Trên thế
giới, đã có nhiều công ty, tổ chức áp dụng thành công hệ thống gợi ý như là
một dịch vụ thương mại của mình nhằm gợi ý các dịch vụ, sản phẩm và các
27
thông tin cần thiết đến người dùng như: website mua sắm trực tuyến Amazon
cung cấp cho khách hàng những sản phẩm mà họ có thể quan tâm, cổng video
clip YouTube, gợi ý phim của MovieLens,... Việc gợi ý sản phẩm phù hợp sẽ
góp phần làm tăng doanh số bán hàng hoặc số lượng truy cập, download của hệ
thống. Các sản phẩm được gợi ý dựa trên số lượng sản phẩm đó đã được bán,
dựa trên các thông tin cá nhân của người dùng, dựa trên sự phân tích hành vi
mua hàng trước đó của người dùng để đưa ra các dự đoán về hành vi mua hàng
trong tương lai của chính khách hàng đó. Giúp cho khách hàng có thể tìm kiếm
được những thông tin thú vị hoặc những sản phẩm mà họ muốn tìm dễ dàng
hơn. Các dạng gợi ý bao gồm: gợi ý các sản phẩm tới người tiêu dùng, các
thông tin sản phẩm mang tính cá nhân hóa, tổng kết các ý kiến cộng đồng, và
cung cấp các chia sẻ, các phê bình, đánh giá mang tính cộng đồng liên quan tới
yêu cầu, mục đích của người dùng đó.
Ví dụ, trong hệ thống bán hàng trực tuyến (chẳng hạn như Amazon),
nhằm tối ưu hóa khả năng mua sắm của khách hàng (user), người ta quan tâm
đến việc những khách hàng nào đã ‘yêu thích’ những sản phẩm (item) nào bằng
cách dựa vào dữ liệu quá khứ của họ (dữ liệu này có thể là xếp hạng mà người
dùng đã bình chọn trên sản phẩm, thời gian duyệt (browse) trên sản phẩm, số
lần click chuột trên sản phẩm,..) từ đó hệ thống sẽ dự đoán được người dùng có
thể thích sản phẩm nào và đưa ra những gợi ý phù hợp cho họ. Hình 1.8 là một
ví dụ minh họa cho hệ thống gợi ý bán hàng của Amazon.
Ngoài lĩnh vực thương mại điện tử như đã thấy ở ví dụ trên, hiện tại RS
cũng được ứng dụng khá thành công trong nhiều lĩnh vực khác như trong giải
trí: gợi ý bài hát cho người nghe (ví dụ, hệ thống của LastFM - www.last.fm),
gợi ý phim ảnh (ví dụ, hệ thống của Netflix - www.netflix.com), gợi ý các video
clip (ví dụ, hệ thống của YouTube - www.youtube.com); trong giáo dục và đào
tạo (gợi ý nguồn tài nguyên học tập như sách, bài báo, địa chỉ web, … cho
28
người học); trong các hệ thống trợ giảng thông minh (như dự đoán năng lực
học tập của người học) [3].
Hình 1.8: Hệ thống gợi ý sản phẩm của Amazon
Hệ thống gợi ý không chỉ đơn thuần là một dạng Hệ thống thông tin mà
nó còn là cả một lĩnh vực nghiên cứu hiện đang rất được các nhà khoa học quan
tâm. Kể từ năm 2007 đến nay, hàng năm đều có hội thảo chuyên về hệ thống
gợi ý của ACM (ACM RecSys) cũng như các tiểu bang dành riêng cho RS trong
các hội nghị lớn khác như ACM KDD, ACM CIKM,...
1.5. Kết luận chương 1
Trong chương này, luận văn đã trình bày một số khái niệm và kiến thức
cơ sở về hệ thống tư vấn, bài toán tư vấn, các phương pháp tư vấn và một số
ứng dụng hệ thống tư vấn trong thực tế. Qua đó cho ta thấy thế nào là hệ thống
tư vấn, việc cần thiết phải xây dựng hệ thống tư vấn và làm thế nào để tư vấn
có độ chính xác cao. Chương 2 và chương 3 của luận văn sẽ trình bày về mô
hình hệ thống tư vấn người dùng dựa trên phương pháp lọc cộng tác.
29
CHƯƠNG 2.
PHƯƠNG PHÁP THUẬT LỌC CỘNG TÁC DỰA TRÊN SẢN PHẨM
Hệ thống tư vấn dựa trên lọc cộng tác tư vấn dựa trên dự đoán của người
dùng với những người dùng lân cận, tuy nhiên điều này rất khó khăn vì tính
thiếu ổn định của người dùng trong hệ thống. Chương này sẽ tìm hiểu mô hình
lọc cộng tác dựa trên sản phẩm, quá trình thực hiện cũng như tìm hiểu một số
giải thuật tính độ tương tự của sản phẩm và giải thuật dự đoán.
2.1. Các phương pháp lọc cộng tác
2.1.1. Giới thiệu về các phương pháp lọc cộng tác
Phương pháp lọc cộng tác hay hệ thống lọc cộng tác là phương pháp phân
tích dữ liệu người dùng để tìm ra mối tương quan giữa các đối tượng người dùng.
Lọc cộng tác hoạt động bằng cách xây dựng một cơ sở dữ liệu, lưu trữ dưới dạng
ma trận người dùng (users) - sản phẩm (items) và mỗi dòng của nó là một véc tơ.
Sau đó, phân tích dữ liệu, tính toán sự tương tự giữa các users với nhau để đưa ra
gợi ý. Ý tưởng quan trọng của phương pháp này là những người dùng tương tự có
xu hướng sử dụng những sản phẩm tương tự.
Trong chương này, tôi sẽ trình bày tới các bạn một phương pháp CF có
tên là Neighborhood-based Collaborative Filtering (NBCF). Khi chỉ nói
Collaborative Filtering, chúng ta sẽ ngầm hiểu rằng phương pháp được sử dụng
là Neighborhood-based.
Ý tưởng cơ bản của NBCF là xác định mức độ quan tâm của một user
tới một item dựa trên các users khác gần giống với user này. Việc gần giống
nhau giữa các users có thể được xác định thông qua mức độ quan tâm của các
users này tới các items khác mà hệ thống đã biết. Ví dụ, A, B đều thích phim
Cảnh sát hình sự, tức đều rate bộ phim này 5 sao. Ta đã biết A cũng thích Người
phán xử, vậy nhiều khả năng B cũng thích bộ phim này.
Các bạn có thể đã hình dung ra, hai câu hỏi quan trọng nhất trong một hệ
thống Neighborhood-based Collaborative Filtering là:
30
- Làm thế nào xác định được sự giống nhau giữa hai users?
- Khi đã xác định được các users gần giống nhau (similar users) rồi,
làm thế nào dự đoán được mức độ quan tâm của một user lên một item?
Việc xác định mức độ quan tâm của mỗi user tới một item dựa trên mức
độ quan tâm của similar users tới item đó còn được gọi là User-user
collaborative filtering. Có một hướng tiếp cận khác được cho là làm việc hiệu
quả hơn là Item-item collaborative filtering. Trong hướng tiếp cận này, thay vì
xác định user similarities, hệ thống sẽ xác định item similarities. Từ đó, hệ
thống gợi ý những items gần giống với những items mà user có mức độ quan
tâm cao.
2.1.2. Ưu và nhược điểm của phương pháp lọc cộng tác
Ưu điểm:
- Phương pháp này có khả năng dự đoán được sở thích và nhu cầu của
người dùng để đưa ra gợi ý các sản phẩm phù hợp với từng khách hàng mà
không cần hiểu sản phẩm.
- Gợi ý dựa trên trải nghiệm của người dùng tương tự khác nên có thể
gợi ý được những sản phẩm mới phù hợp sở thích mới.
- Phương pháp này rất phù hợp với những hệ thống lớn có nhiều đánh
giá từ phía người dùng.
Ngày nay, phương pháp này được sử dụng khá phổ biến trên các trang
thương mại điện tử lớn như Tiki, Shopee, Amazon, Youtube,… bởi tính đơn
giản và một lượng dữ liệu sẵn có từ người dùng trên các website này.
Một số hạn chế:
- Không thể gợi ý nếu khách hàng chưa có dữ liệu về lịch sử tương tác
mặt hàng.
- Khi lượng sản phẩm lớn và số lượng khách hàng đánh giá không nhiều
thì phương pháp này không hiệu quả.
- Phương pháp này cũng không thể gợi ý được các sản phẩm mới hoặc
những sản phẩm chưa được ai đánh giá.
31
- Phương pháp này sẽ cho độ chính xác kém nếu như sở thích của người
dùng thay đổi.
Một số hạn chế của User-user CF:
- 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à Similarity matrix là rất lớn với số phần tử phải lưu giữ là hơn 1 nửa
của bình phương số lượng users (chú ý rằng ma trận này là đối xứng). Việc
này, như đã đề cập ở trên, khiến cho việc lưu trữ ma trận này trong nhiều trường
hợp là không khả thi.
- Ma trận Utility Y thường là rất sparse. Với 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 sẽ rất sparse, tức 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 hoá tương ứng với user này thay đổi nhiều. Kéo
theo đó, việc tính toán ma trận Similarity, vốn tốn nhiều bộ nhớ và thời gian,
cũng cần được thực hiện lại.
Ngược lại, nếu chúng ta tính toán similarity giữa các items rồi
recommend những items gần giống với item yêu thích của một user thì sẽ có
những lợi ích sau:
- Vì số lượng items thường nhỏ hơn số lượng users, Similarity matrix
trong trường hợp này cũng nhỏ hơn nhiều, thuận lợi cho việc lưu trữ và tính
toán ở các bước sau.
- Vì số lượng phần tử đã biết trong Utility matrix là như nhau nhưng số
hàng (items) ít hơn số cột (users), 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 cũng
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 ratings. Như vậy, việc
cập nhật ma trận Similarity Matrix 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à Item-item Collaborative Filtering.
Hướng tiếp cận này được sử dụng nhiều trong thực tế hơn.
32
2.2. Lọc cộng tác dựa trên sản phẩm
Lọc cộng tác khai thác những khía cạnh liên quan đến thói quen sở thích
của người dùng sản phẩm để đưa ra dự đoán các sản phẩm mới cho người dùng
này. So với lọc theo nội dung, lọc cộng tác không phải phân tích, bóc tách, hiểu,
đánh chỉ mục cho các đặc trưng nội dung sản phẩm. Chính vì vậy, lọc cộng tác
có thể lọc hiệu quả trên nhiều dạng sản phẩm khác nhau như hàng hóa, sữa,
ảnh, tài liệu. Cùng trên một hệ tư vấn, người dùng sẽ được tư vấn nhiều loại
mặt hàng khác nhau cho dù các mặt hàng này có thể biểu diễn trên không gian
các đặc trưng nội dung khác nhau
Ý tưởng của phương pháp này được thực hiện bằng việc thay vì tính mức
độ tương tự giữa users trong hệ thống với người dùng hiện thời 𝑢𝑎, hệ tư vấn sẽ tính toán mức độ tương tự giữa sản phẩm cần dự đoán đánh giá bởi 𝑢𝑎 với các sản phẩm đã được 𝑢𝑎 đánh giá. Việc tính toán mức độ tương tự giữa hai sản phẩm được xem xét dựa vào tập người dùng cùng đánh giá cả hai sản phẩm đó. Trên cơ
sở đó chọn ra một tập sản phẩm láng giềng với sản phẩm cần dự đoán đánh giá
bởi 𝑢𝑎. Kết hợp các đánh giá của 𝑢𝑎 với tập sản phẩm láng giềng này để đưa ra dự đoán đánh giá của 𝑢𝑎 với sản phẩm cần dự đoán [9, 12].
Bài toán lọc cộng tác:
Cho danh sách người m người dùng U = {𝑢1, 𝑢2, …, 𝑢𝑚} và một danh
sách n sản phẩm I = {𝑖1, 𝑖2,…, 𝑖𝑛}.
𝑟𝑢𝑖 là đánh giá sản phẩm i của người dùng u. r nhận giá trị từ 0 đến 5. Với
r = 0 khi sản phẩm i chưa được đánh giá bởi người dùng u.
Mỗi người dùng u có danh sách các sản phẩm 𝐼𝑢, mà người dùng đã đánh
giá về những sản phẩm đó.
Yêu cầu:
- Dự đoán giá trị số 𝑃𝑢,𝑖 dự đoán khả năng sản phẩm i 𝐼𝑢 cho người dùng
u.
- Tư vấn danh sách 𝐼𝑝 gồm N sản phẩm mà người dùng u thích nhất (𝐼𝑝 ∩
𝐼𝑢 = Ø).
33
Cho một ví dụ có 9 người dùng đánh giá 9 sản phẩm, với mức độ từ 1 đến
5, nếu người dùng không đánh giá sản phẩm thì giá trị là 0.
Bảng 1: Bảng đánh giá người dùng với các sản phẩm
User Item
i1 i2 i3 i4 i5 i6 i7 i8 i9
u1 1 2 1 5 0 0 0 0 0
u2 2 1 3 0 0 1 0 0 0
u3 2 3 0 2 3 1 0 0 4
u4 5 0 2 0 1 0 0 0 2
u5 0 0 3 5 0 3 4 0 0
u6 0 1 1 0 3 5 4 1 0
u7 0 0 0 0 3 4 2 1 0
u8 0 0 0 0 0 5 1 2 2
u9 0 0 0 1 0 0 0 2 4
Các bước trong quá trình tư vấn theo phương pháp lọc cộng tác dựa trên
sản phẩm:
Bước 1: Tiền xử lý dữ liệu: Dữ liệu được thu thập là những đánh giá sản
phẩm của người dùng. Dữ liệu thu thập thường rất lớn tuy nhiên một số đánh
giá có thể không có ích trong quá trình tư vấn theo phương pháp lọc cộng tác.
Đề xuất được đưa ra để tối ưu dữ liệu đầu vào: một số sản phẩm hoặc người
dùng sẽ được loại bỏ nếu người dùng đó đánh giá quá ít sản phẩm, hoặc sản
phẩm được quá ít đánh giá.
Bước 2: Xây dựng Ma trận đánh giá: Hàng là users, Cột là các items.
Bước 3: Tính độ tương tự của 2 item: xây dựng ma trận tương tự của
các sản phẩm.
Bước 4: Tính dự đoán của người dùng đối với sản phẩm dựa trên những
sản phẩm lân cận với sản phẩm dự đoán.
34
2.3. Các thuật toán tính độ tương tự
Để dự đoán một sản phẩm cho một người dùng sử dụng phương pháp lọc
cộng tác cần xem xét đánh giá của người dùng lên những sản phẩm tương tự
với sản phẩm đó, độ tương tự được xác định dựa vào đánh giá của users khác
đã đánh giá cả 2 sản phẩm. Độ tương tự 2 sản phẩm là 1 xác suất thể hiện 2 sản
phẩm đó có tương tự nhau trên khía cạnh đánh giá của người dùng hay không?
Độ tương tự ở đây được hiểu là nếu 2 sản phẩm tương tự nhau thì 1 người dùng
thích sản phẩm này sẽ thích sản phẩm kia và ngược lại.
Bước quan trọng trong giải thuật lọc cộng tác dựa trên sản phẩm là tính
toán độ tương tự giữa các sản phẩm và sau đó chọn những sản phẩm mà tương
đương nhất để sử dụng trong công thức dự đoán. Ý tưởng cơ bản trong tính
toán độ tương tự giữa hai sản phẩm i và j là: chọn các cặp người dùng mà đã
đánh giá cả 2 sản phẩm và sau đó áp dụng kỹ thuật tính toán độ tương tự để mô
tả độ tương tự 𝑆𝑖,𝑗.
Hình 2.1: Tách các sản phẩm cùng được đánh giá và tính toán độ tương tự
35
2.3.1. Độ tương tự Cosine (Cosine-based Similarity)
Trong trường hợp này, cả 2 sản phẩm được biểu diễn thông qua 2 véc tơ
m chiều không gian đánh giá của người dùng. Độ tương tự giữa chúng được đo
dựa trên tính toán cosine góc giữa 2 véc tơ đó. Trong ma trận đánh giá m x n,
độ tương tự giữa hay sản phẩm i và j, biểu diễn là sim(i, j) được cho bởi công
thức:
𝑢∈𝑆
𝑢∈𝑆
𝑢∈𝑆
2 𝑅𝑢𝑖
2 𝑅𝑢𝑗
∑ 𝑅𝑢𝑖 × 𝑅𝑢𝑗 𝑆𝑖𝑚(𝑖, 𝑗) = = (2.1) 𝑖 . 𝑗 |𝑖 |2 × |𝑗 |2 √∑ × √∑
Trong đó:
- 𝑅𝑢𝑖 là đánh giá của người dùng u với sản phẩm i
- 𝑅𝑢𝑗 là đánh giá của người dùng u với sản phẩm j
- S là tập users đã đánh giá cả 2 sản phẩm i, j
Mỗi một sản phẩm được đánh giá bởi n người dùng và được xác định
như là 1 véc tơ n chiều trong công thức này, ở đây những người dùng được
chọn là những người đã đánh giá cả 2 sản phẩm i và j. Như vậy theo công thức
ở trên, kết quả là cosine của góc hợp giữa 2 véc tơ đó. Và vì các đánh giá là
dương nên, cosine của 2 véc tơ bằng 1 thể hiện 2 sản phẩm tự nhau hoàn toàn
với những đánh giá của người dùng, cosine của 2 véc tơ bằng 0, thể hiện 2 sản
phẩm này không tương tự nhau.
2.3.2. Độ tương tự dựa theo khoảng cách Euclidean điều chỉnh (Adjusted
Euclidean Distance similarity)
Theo [8], khi phân tích độ đo tương tự cosine phương pháp này xem các
sản phẩm như cách véc tơ để đánh giá, tuy nhiên lại không xét đến độ dài của
chúng. Cho một phần của ma trận đánh giá (phạm vi từ 1 đến 5) và được biểu
diễn như sau.
36
2.3.3. Độ tương tự tương quan (correlation-based similarity)
Trong trường hợp này, độ tương tự giữa 2 sản phẩm i và j là được đo dựa
trên tính toán độ tương quan Pearson-r là: corr(i, i). Để tính toán độ tương quan
này một cách chính xác, đầu tiên phải xét các cặp sản phẩm đã được đánh giá
bởi người dùng u, biểu diễn trong hình 2.1.
Độ tương tự của 2 sản phẩm i, j được cho bởi công thức sau:
𝑢∈𝑆
𝑢∈𝑆
2
2
∑ (𝑅𝑢𝑖 − 𝑅𝑖̅ ) × ∑ (𝑅𝑢𝑗 − 𝑅𝑗̅ ) 𝑆𝑖𝑚(𝑖, 𝑗) = (2.2)
𝑢∈𝑆
𝑢∈𝑆
√∑ (𝑅𝑢𝑖 − 𝑅𝑖̅ ) × √∑ (𝑅𝑢𝑗 − 𝑅𝑗̅ )
Trong đó:
- 𝑅𝑢𝑖 là đánh giá của người dùng u với sản phẩm i - 𝑅𝑖̅ là đánh giá trung bình sản phẩm i của users - 𝑅𝑢𝑖 là đánh giá của người dùng u với sản phẩm j - 𝑅𝑗̅ là đánh giá trung bình sản phẩm j của users
- S là tập users đã đánh giá cả 2 sản phẩm i, j
2.3.4. Độ tương tự cosine điều chỉnh (Adjusted Cosine similarity)
Tính toán độ tương tự sử dụng độ đo cosine trong trường hợp dựa trên
sản phẩm có một sự trở ngại quan trọng: những sự khác nhau trong thang đánh
giá giữa users khác nhau không được đưa vào tài khoản. Độ tương tự cosine
điều chỉnh khắc phục nhược điểm này bằng cách trừ trung bình người dùng
tương ứng với mỗi cặp đánh giá. Độ tương tự giữa sản phẩm i và j được cho
bởi công thức sau:
𝑢∈𝑆
𝑢∈𝑆
2
2
∑ (𝑅𝑢𝑖 − 𝑅𝑢̅̅̅̅) × ∑ (𝑅𝑢𝑗 − 𝑅𝑢̅̅̅̅) 𝑆𝑖𝑚(𝑖, 𝑗) = (2.3)
𝑢∈𝑆
𝑢∈𝑆
√∑ (𝑅𝑢𝑖 − 𝑅𝑢̅̅̅̅) × √∑ (𝑅𝑢𝑗 − 𝑅𝑢̅̅̅̅)
Trong đó:
- 𝑅𝑢𝑖 là đánh giá của người dùng u với sản phẩm i
37
- 𝑅𝑢𝑗 là đánh giá của người dùng u với sản phẩm j - 𝑅𝑢̅̅̅̅ là đánh giá trung bình của người dùng u - S là tập users đã đánh giá cả 2 sản phẩm i, j
2.4. Tính toán dự đoán và tư vấn
Đưa ra được những dự đoán hoặc lời gợi ý là một bước quan trọng trong
hệ tư vấn lọc cộng tác. Sau khi tính toán độ tương tự giữa các người dùng hay
giữa các sản phẩm, chúng ta có thể dự đoán đánh giá của người dùng u trên sản
phẩm i. Phần trên đã đưa ra những sản phẩm tương tự nhất dựa trên độ tương
tự, bước tiếp theo là nghiên cứu kỹ mục tiêu xếp hạng của người dùng và sử
dụng kỹ thuật để thu được dự đoán.
Dự đoán đánh giá của một người dùng lên một sản phẩm được suy ra từ
các đánh giá của người dùng đó trên các sản phẩm lân cận.
Hình 2.2: Giải thuật lọc cộng tác dựa trên sản phẩm, tính dự đoán
2.4.1. Dự đoán dựa trên trung bình đánh giá sản phẩm lân cận
Dựa vào [8] công thức đơn giản nhất để dự đoán của 1 người dùng u lên
1 sản phẩm i là dựa vào những người dùng lân cận của u mà đã đánh giá sản
phẩm i.
38
𝑖′𝑇𝑖∩𝑆𝑎
𝑃𝑎𝑖 = ∑ 𝑟𝑎𝑖′ (2.4) 1 𝑁
Trong đó:
- N là tổng các sản phẩm lân cận của i đã được a đánh giá.
- 𝑇𝑖 là tập hợp users i’ lân cận với i mà u đã đánh giá - 𝑆𝑎: các sản phẩm mà người dùng a đã đánh giá Vấn đề là chọn ra các sản phẩm 𝑖′ lân cận với sản phẩm i với các tiêu chí
nhưthế nào, trong bài toán này, kết quả phụ thuộc vào tiêu chí chọn ra các lận
cận của sản phẩm i.
2.4.2. Dự đoán dựa trên tổng trọng số (Weighted Sum)
Dự đoán đánh giá của người dùng a với sản phẩm i được cho bởi công
thức sau:
𝑗∈𝑆𝑎∩𝑇𝑖 ∑
𝑗∈𝑆𝑎∩𝑇𝑖
∑ (2.5) 𝑃𝑎𝑖 = 𝑠𝑖𝑚(𝑖, 𝑗) × 𝑟𝑎𝑗 |𝑠𝑖𝑚(𝑖, 𝑗)|
- 𝑆𝑎: các sản phẩm mà người dùng a đã đánh giá - 𝑟𝑎𝑗 là đánh giá sản phẩm j của người dung a - sim(i, j) là độ tương tự của 2 sản phẩm i, j
- 𝑇𝑖: Tập các sản phẩm lân cận của item i Công thức tính toán đánh giá của người dùng a lên sản phẩm i dựa vào
những đánh giá của người dùng a lên các sản phẩm tương tự với i. Giá trị dự
đoán sẽ nằm trong khoảng [1, 5]. Trường hợp dự đoán sẽ cho kết quả cao (người
dùng a thích sản phẩm i) khi những sản phẩm lân cận với i (có độ tương tự cao)
được người dùng a đánh giá cao.
2.4.3. Dự đoán dựa trên tổng trọng số với đánh giá trung bình của người dùng
𝑗∈𝑆𝑎∩𝑇𝑖 ∑
𝑗∈𝑆𝑎∩𝑇𝑖
∑ (2.6) 𝑃𝑎𝑖 = 𝑅𝑎̅̅̅̅ + 𝑠𝑖𝑚(𝑖, 𝑗) × (𝑟𝑎𝑗 − 𝑅𝑎̅̅̅̅) |𝑠𝑖𝑚(𝑖, 𝑗)|
- 𝑆𝑎: các sản phẩm mà người dùng a đã đánh giá - 𝑟𝑎𝑖:là đánh giá sản phẩm j của người dung a - sim(i, j) là độ tương tự của 2 sản phẩm i, j
39
- 𝑇𝑖: Tập các sản phẩm lân cận của sản phẩm i - 𝑅𝑎̅̅̅̅ là đánh giá trung bình của người dùng a Công thức tính toán đánh giá của người dùng a lên sản phẩm i dựa vào
những đánh giá của người dùng a lên các sản phẩm tương tự với i. Giá trị đánh giá trung bình của người dùng a là𝑅̅nhằm làm tăng tính cân đối của người dùng a lên sản phẩm. Giá trị 𝑅̅ của mỗi người dùng là một mức để xác định người
dùng đó đánh giá cao hay không cao một sản phẩm. Giá trị dự đoán sẽ nằm
trong khoảng [1, 5].
Trường hợp dự đoán sẽ cho kết quả cao (người dùng a thích sản phẩm i)
khi những sản phẩm lân cận với i (có độ tương tự cao) được người dùng a đánh
giá cao.
2.4.4. Dự đoán dựa trên tổng trọng số với trung bình đánh giá lên sản phẩm
𝑗∈𝑆𝑎∩𝑇𝑖 ∑
𝑗∈𝑆𝑎∩𝑇𝑖
∑ (2.7) 𝑃𝑎𝑖 = 𝑅𝑖̅ + 𝑠𝑖𝑚(𝑖, 𝑗) × (𝑟𝑎𝑗 − 𝑅𝑗̅ ) |𝑠𝑖𝑚(𝑖, 𝑗)|
- 𝑆𝑎: các sản phẩm mà người dùng a đã đánh giá - 𝑟𝑎𝑗là đánh giá sản phẩm j của người dung a - sim(i, j) là độ tương tự của 2 sản phẩm i, j
- 𝑇𝑖: Tập các sản phẩm lân cận của sản phẩm i - 𝑅𝑖̅ là đánh giá trung bình sản phẩm i - 𝑅𝑗̅ là đánh giá trung bình sản phẩm j Công thức tính toán đánh giá của người dùng a lên sản phẩm i dựa vào những đánh giá của người dùng a lên các sản phẩm tương tự với i. 𝑅𝑖̅ là giá trị đánh giá trung bình sản phẩm i của người users. Giá trị 𝑅̅ của mỗi sản phẩm là
một mức để xác định khi 1 người dùng đánh giá sản phẩm i, thì so với tất cả
users, đánh giá của người đó cho sản phẩm i đó là cao hay không cao. Giá trị
dự đoán sẽ nằm trong khoảng [1, 5]. Trường hợp dự đoán sẽ cho kết quả cao
(người dùng a thích sản phẩm i) khi những sản phẩm lân cận với i (có độ tương
tự cao) được người dùng a đánh giá cao.
40
2.5. Đánh giá các yếu tố ảnh hưởng đến độ chính xác kết quả tư vấn
Phần trên đã giới thiệu các bước của 1 quá trình tư vấn sử dụng phương
pháp lọc cộng tác dựa trên sản phẩm. Sau khi thực hiện quá trình xử lý, hệ thống
có thể đưa ra các dự đoán đánh giá của người dùng với 1 sản phẩm, hoặc đề
xuất danh sách các sản phẩm mà người dùng thích (đưa ra sản phẩm được dự
đoán có đánh giá cao). Một hệ tự vấn tốt khi đề xuất được những sản phẩm mà
Dữ liệu đầu vào
Tư vấn danh sách sản phẩm cho người dùng
Đánh giá chất lượng dự đoán
Tiền xử lý dữ liệu
Chọn TopN
Tính toán sai số
Đánh giá sản phẩm
Ma trận đánh giá
Tính toán độ tương tự
Dự đoán và tư vấn
Dự đoán đánh giá của người dùng lên sản phẩm
Chọn lân cận
Ma trận độ tương tự
người dùng đó sẽ thích và lựa chọn.
Hình 2.3: Mô hình hệ thống lọc cộng tác dựa trên sản phẩm
2.5.1. Đánh giá độ tin cậy của thuật toán
Trong thực tế để đánh giá chính xác của 1 thuật toán tư vấn, các chuyên
gia xây dựng bộ dữ liệu và kết quả kiểm tra thực tế, so sánh các kết quả dự đoán
từ bộ dữ liệu với kết quả thực tế để đánh giá chất lượng của tư vấn. Một giải
thuật tư vấn tốt là giải thuật đưa ra các dự đoán đánh giá gần chính xác với đánh
giá thật sự của người dùng trong thực tế.
Để đánh giá hiệu quả của việc gợi ý, người ta thường dùng các độ đo liên
quan đến sự “phù hợp trên kết quả trả về” tương tự như trong truy tìm thông
tin. Gợi ý được xem là phù hợp khi người dùng chọn mục tin từ danh sách các
41
mục tin đã được hệ thống gợi ý cho người dùng. Độ phù hợp này có thể được
đánh giá qua các độ đo như MAE , Precision, Recall, F-Measure [9], … mỗi
phương pháp đánh giá sẽ thích hợp cho từng lĩnh vực cụ thể.
Sai số tuyệt đối (Mean Absolute Error - MAE) giữa đánh giá và dự
đoán. MAE là độ đo lệch của tư vấn với giá trị chính xác trên thực tế. Mỗi dự
đoán là một cặp <𝑝𝑖, 𝑞𝑖>, độ đo sai số tuyệt đối giữa chúng là |𝑝𝑖− 𝑞𝑖|. MAE tính toán tổng những sai số tuyệt đối của N cặp tương ứng với đánh giá dự đoán
𝑁 𝑖=1
và sau đó tính giá trị trung bình.
(2.8) 𝑀𝐴𝐸 = ∑ |𝑝𝑖− 𝑞𝑖| 𝑁
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 này 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.
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 (đã tạo ra). Precision bằng 100% có nghĩa là tất cả các kiến nghị đều
phù hợp.
(2.9) Precision = 𝑆ố 𝑙ượ𝑛𝑔 𝑔ợ𝑖 ý 𝑝hù hợ𝑝 𝑆ố 𝑙ượ𝑛𝑔 𝑔ợ𝑖 ý 𝑡ạ𝑜 𝑟𝑎
Recall được định nghĩa bởi tỉ lệ giữa số lượng các gợi ý phù hợp và số
lượng các mục dữ liệu mà người dùng đã chọn lựa (xem, nghe, mua, đọc).
Recall được sử dụng để đo khả năng hệ thống tìm được những mục dữ liệu phù
hợp so với những gì mà người dùng cần.
(2.10) Recall = 𝑆ố 𝑙ượ𝑛𝑔 𝑔ợ𝑖 ý 𝑝hù hợ𝑝 𝑆ố 𝑙ượ𝑛𝑔 𝑠ả𝑛 𝑝hẩ𝑚 𝑚𝑢𝑎 𝑏ở𝑖 𝑛𝑔ườ𝑖 𝑑ù𝑛𝑔
Precision và Recall được xem là hữu ích trong việc đánh giá một gợi ý.
Tuy nhiên, trong một số trường hợp thì precision và recall có giá trị tỉ lệ nghịch
42
với nhau. Ví dụ như số lượng gợi ý mà hệ thống tạo ra là 10, số lượng gợi ý
phù hợp là 3, số lượng sản phẩm mua bởi người dùng là 3 thì độ chính xác thấp
(30%), tuy nhiên giá trị recall lại cao (100%) nghĩa là độ chính xác thấp nhưng
người dùng lại hài lòng bởi vì họ mua có 3 sản phẩm và hệ thống gợi ý đúng cả
3 sản phẩm đó.
F-Measure được sử dụng để đánh giá hiệu quả tổng thể của hệ thống bằng
cách kết hợp cả hai chỉ số Recall và Precision.
(2.11) F − Measure = 2 × Precison × Recall Precision + Recall
2.5.2. Các yếu tố ảnh hưởng đến độ chính xác tư vấn
- Ảnh hưởng của dữ liệu đầu vào: Trong nhiều hệ thống tư vấn, số những
đánh giá thu được thường rất nhỏ so với số những đánh giá cần có cho dự đoán.
Sự thành công của hệ thống tư vấn lọc cộng tác phụ thuộc vào giá trị của đại đa
số những người dùng chính. Chẳng hạn, trong hệ thống tư vấn điện ảnh, có rất
nhiều bộ phim đã được đánh giá chỉ bởi một vài người và những bộ phim này
khả năng được tư vấn là rất ít, thậm chí ngay cả khi trong số đó có những người
dùng đưa ra đánh giá rất cao về chúng. Cũng như vậy, đối với những người
dùng mà thị hiếu của họ khác thường so với một số đông người khác thì sẽ
không có người dùng nào được tư vấn về những thị hiếu giống họ, dẫn đến việc
tư vấn nghèo nàn. Một phương pháp vượt qua tính thưa thớt trong đánh giá là
sử dụng thông tin cá nhân của người dùng khi tính toán sự tương tự giữa những
người dùng. Hai người dùng được xem là giống nhau không khi được đánh giá
có sở thích về các bộ phim là giống nhau mà chúng còn phải thuộc cùng một
đối tượng. Chẳng hạn, sử dụng giới tính, tuổi, địa chỉ khu vực, nền giáo dục và
thông tin công việc của những người dùng trong việc tư vấn nhà hàng. Sự mở
rộng của những kỹ thuật lọc cộng tác thường được gọi là “lọc demographic”.
43
Một vấn đề trước khi xây dựng ma trận đánh giá, với những sản phẩm ít
được đánh giá, hoặc những người dùng ít đánh giá sản phẩm, những người dùng
và sản phẩm này sẽ không hữu ích trong quá trình tư vấn. Vấn đề cần chọn lọc
ra những sản phẩm và người dùng để tham gia trong quá trình tư vấn. Rõ ràng
những sản phẩm mới hoặc người dùng mới không thể tham gia trong quá trình
dự đoán, hoặc những sản phẩm hay người dùng có đánh giá ít hơn 1 ngưỡng
nào đó cũng được loại ra.
- Ảnh hưởng của thuật toán tính độ tương tự: Để xây dựng ma trận
tương tự, các giá trị được tính toán theo một công thức được đề xuất ở trên hoặc
một công thức khác. Các công thức tính toán khác nhau sẽ cho ra các ma trận
đánh giá khác nhau, dẫn đến kết quả tư vấn không đồng nhất. Nhiều chuyên gia
đánh giá, với thuật toán có sự tham gia của đánh giá trung bình sẽ có kết quả
tốt hơn. Chương 3 sẽ thí nghiệm kết quả tư vấn với các thuật toán tính độ tương
tự và đưa ra nhận xét về độ chính xác của kết quả tư vấn khi áp dụng các độ
tương tự khác nhau.
- Ảnh hưởng của số lượng lân cận tham gia vào dự đoán: Thông qua
quá trình tính ma trận tương tự, hệ thống tư vấn sử dụng những sản phẩm lân cận
nhất với sản phẩm đang xét để đưa vào dự đoán, số lượng lân cận ảnh hưởng đến
chất lượng của kết quả tư vấn. Chọn số lượng lân cận có thể dựa vào số lượng lân
cận của sản phẩm hoặc dựa vào giá trị của độ đo tương tự. Ví dụ: Trong hệ thống
tư vấn phim với số bộ phim là 1000 bộ phim, khi cần tư vấn 1 bộ phim, có thể sẽ
xét trên 100 bộ phim lân cận với bộ phim đang xét, hoặc là xét với những bộ phim
lân cận có độ tương tự lớn 0.75. Số lượng lân cận tham gia vào dự đoán ảnh hưởng
đến quá trình đưa ra dự đoán, nhiều chuyên gia lựa chọn những sản phẩm có độ
tương tự 0.75 để tham gia vào dự đoán.
44
2.6. Kết luận chương 2
Trong chương này, luận văn đã trình bày về phương pháp lọc cộng tác dựa
trên sản phẩm, minh họa quá trình xử lý để đưa ra các kết quả tư vấn dựa trên
các thuật toán khác nhau. Vấn đề là cần đánh giá chất lượng thuật toán để có
thể đưa ra tư vấn chính xác nhất, các yếu tố nào có thể nâng cao được chất
lượng tư vấn. Trong chương tiếp theo, luận văn sẽ thử nghiệm các thuật toán tư
vấn với bộ dữ liệu tư vấn phim, để đưa ra các kết quả tư vấn, so sánh đánh giá
các thuật toán áp dụng trong quá trình tư vấn.
45
CHƯƠNG 3.
ỨNG DỤNG PHƯƠNG PHÁP LỌC CỘNG TÁC DỰA TRÊN SẢN
PHẨM TRONG HỆ THỐNG GỢI Ý BÁN HÀNG TRỰC TUYẾN
3.1. Xây dựng hệ thống gợi ý cho website bán hàng trực tuyến
3.1.1. Đặc tả hệ thống
Hệ thống giới thiệu và bán sản phẩm thời trang trực tuyến cho phép khách
hàng bất kỳ có thể tìm kiếm và xem các sản phẩm thời trang. Hệ thống sẽ hiển
thị các sản phẩm được ưa thích nhất và các sản phẩm bán chạy nhất.
Hệ thống có chức năng cho khách hàng chấm điểm, đánh giá sản phẩm và
có thể đặt hàng thông qua hệ thống này. Đặc biệt hệ thống sẽ gợi ý các sản
phẩm cho khách hàng trong quá trình chọn sản phẩm sử dụng kỹ thuật lọc cộng
tác và hiển thị các sản phẩm tương tự với sản phẩm mà khách hàng đang xem.
Đây là giải thuật có độ tin cậy cao vì đã được kiểm nghiệm qua nhiều công
trình nghiên cứu nên việc gợi ý sử dụng kỹ thuật lọc cộng tác có thể sẽ tốt hơn
các gợi ý thông thường như gợi ý sản phẩm bổ trợ sản phẩm vừa mua, gợi ý
sản phẩm tương tự với sản phẩm mà khách hàng ưa thích, gợi ý sản phẩm theo
giá chênh lệch với sản phẩm mà khách hàng đang xem...
Khách hàng muốn thực hiện các chức năng trên chỉ khi khách hàng là
thành viên của hệ thống. Muốn trở thành viên của hệ thống, khách hàng phải
đăng ký tài khoản thông qua hệ thống. Sau khi đăng nhập vào hệ thống, nếu là
khách hàng mới thì hệ thống sẽ dựa vào thông tin về tính cách và mùi hương
ưa thích của khách hàng để tư vấn những sản phẩm theo thông tin vừa thu thập.
Tuy nhiên, nếu khách hàng đã có chấm điểm cho sản phẩm, hệ thống sẽ gợi ý
các sản phẩm theo giải thuật lọc cộng tác.
Ngoài ra, hệ thống còn cung cấp các công cụ quản trị như: quản trị khách
hàng, quản trị thông tin về thương hiệu và sản phẩm, quản trị đơn đặt hàng.
46
3.1.2. Môi trường phát triển
Hệ thống bán sản phẩm thời trang trực tuyến được phát triển trên môi trường
mã nguồn mở PHP & My SQL. Hệ thống được phát triển dựa trên nền tảng mã
nguồn mở WordPress tích hợp và phát triển thêm các modul hệ thống gợi ý dựa
trên phương pháp lọc cộng tác dựa trên sản phẩm. Nền tảng mã nguồn mờ
WordPress được rất nhiều website thương mại điện tử sử dụng, vì vậy chúng ta có
thể dễ dàng tích hợp hệ thống gợi ý vào những website có sẵn.
3.1.3. Thiết kế bảng dữ liệu
Website bán hàng sẽ được xây dựng trên nền tảng Wordpress để có thể
tận dụng hệ thống plugin hỗ trợ và các tính năng nổi bật về quản lý, thống kê.
Đối với mô hình website bán hàng, các items tương ứng với các sản phẩm,
các users được chia thành hai loại: user có đăng kí tài khoản, được phân biệt
bằng user_id và có lưu các thông tin liên quan trong cơ sở dữ liệu và user không
đăng kí tài khoản, chỉ xem sản phẩm thông thường. Ta gọi user loại đầu là thành
viên và loại còn lại là khách viếng thăm. Sau khi chọn một sản phẩm bất kì để
xem chi tiết sản phẩm, chỉ có thành viên đăng kí và đăng nhập mới được nhận
xét. Mức độ đánh giá thay đổi từ 1 đến 5 sao, với 1 sao là mức ít yêu thích nhất
và 5 sao là rất yêu thích.
Trong cơ sở dữ liệu, ta sẽ quan tâm đến các bảng sau: wp_comments,
wp_commentmeta, wp_user_rating, wp_predict.
Bảng wp_comments: lưu trữ các nhận xét cho mỗi sản phẩm và id của
những user đã nhận xét sản phẩm đó.
STT Tên thuộc tính Kiểu dữ liệu Ghi chú
comment_ID int (20) id của nhận xét 1
2 comment_post_ID int (20) id của sản phẩm đã được nhận
xét.
3 user_id int (20) id của user đã nhận xét.
47
Bảng wp_commentmeta: lưu trữ giá trị yêu thích (tức là số sao mà từng
user đã đánh giá trong mỗi nhận xét).
STT Tên thuộc tính Kiểu dữ Ghi chú
liệu
1 comment_id id của nhận xét int (20)
2 meta_key varchar
(255)
3 meta_value longtext Số sao mà user đã đánh giá
Từ hai bảng trên ta tạo bảng wp_user_rating để truy vấn những thông tin
cần thiết bao gồm:
- comment_post_ID: ID của sản phẩm đã được nhận xét.
- user_id: ID của user đã nhận xét.
- meta_value: số sao mà user đã đánh giá. Trong WordPress có lưu hai giá
trị meta_value là rating và verified, ở đây ta chỉ quan tâm đến các giá trị rating
(meta_key = “rating”).
STT Tên thuộc tính Kiểu dữ liệu Ghi chú
1 comment_post_ID int (20) id của sản phẩm đã được nhận
xét.
2 user_id int (20) id của user đã nhận xét..
3 meta_value longtext số sao mà user đã đánh giá
Mỗi khi có một nhận xét mới từ thành viên, dữ liệu sẽ được tự động cập
nhật vào bảng wp_user_rating. Dựa vào bảng này, chúng ta sẽ xây dựng Utility
matrix tính độ tương tự (similarity) giữa các sản phẩm đã được nhận xét. Utility
matrix được lưu trong bảng wp_predict gồm các cột:
item_id1: id của sản phẩm được nhận xét. -
item_id2: id của sản phẩm được dự đoán gợi ý cho user -
48
- times: số user đã đánh giá cả item_id1 và item_id2
- rating: độ chênh lệch giá trị rating của item_id1 và item_id2.
Sau khi có Utility matrix, ta sẽ sử dụng dự đoán để hoàn thiện các giá trị
còn thiếu, từ đó dùng truy vấn SQL để tìm id của những sản phẩm có thể gợi ý
cho user hiện tại.
Tên Kiểu STT Ghi chú thuộc tính dữ liệu
1 item_id1 int (11) id của sản phẩm đã được nhận xét.
id của sản phẩm được dự đoán gợi ý cho 2 item_id2 int (11) user.
3 times int (11) số user đã đánh giá cả item_id1 và item_id2
4 Rating float Độ chênh lệch giá trị rating của item_id1 và
item_id2
Hệ thống sử dụng CF dựa trên ratings có nhược điểm là chỉ áp dụng với
những user đã nhận xét hoặc sản phẩm phải được đánh giá từ trước. Vậy với
khách viếng thăm thì ta phải gợi ý cho họ như thế nào? Chúng ta có hai phương
án:
Nếu khách viếng thăm xem thông tin giới thiệu của một sản phẩm chưa
có nhận xét nào, hệ thống sẽ giới thiệu cho khách viếng thăm những sản phẩm
có cùng thể loại.
Nếu khách viếng thăm xem thông tin của sản phẩm đã có nhận xét, hệ
thống sẽ giới thiệu cho họ những sản phẩm có độ tương tự cao nhất với sản
phẩm đó.
49
3.2. Ví dụ về lọc cộng tác dựa trên sản phẩm
Khi người dùng đăng nhập vào hệ thống và đánh giá các sản phẩm, kết
quả đánh giá sẽ được lưu trữ trong bảng wp_user_rating trong cơ sở dữ liệu.
Trong bảng 2 là dữ liệu do 6 người dùng (u0, u1, u2, u3, u4, u5) đánh giá 5 sản
phẩm (i0, i1, i2, i3, i4). Những sản phẩm chưa được đánh giá thì sẽ không xuất
hiện trong bảng này.
Bảng 2: Dữ liệu đánh giá các sản phẩm
Mã sản phẩm (comment_post_ID) Mã người dùng (user_id) Đánh giá (meta_value)
0 1 3 4 1 3 4 5 1 3 4 5 1 2 4 1 4 2 3 3 4 5 5 4 2 2 5 4 2 4 2 1 3 4 3 4 4 1 4 2 1 1 4 5 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 4 4 5 5 5 5 5
Dựa vào dữ liệu trong Bảng 2, chúng ta xây dựng utility matrix như trong
bảng 3. Trong bảng này, các ô có giá trị 0 là các sản phẩm chưa được đánh giá.
50
Bảng 3: Ma trận utility matrix
u0 u1 u2 u3 u4 u5 u6
i0 5 5 2 3 1 0 0
i1 4 0 0 4 0 2 0
i2 0 4 1 0 0 1 1
i3 2 2 3 4 4 0 4
i4 2 4 4 0 0 0 5
Bảng 4: Giá trị trung bình đánh giá của các item
Item Giá trị trung bình
i0 3.20
i1 3.33
i2 1.75
i3 3.17
i4 3.75
Trong bảng 4 là giá trị trung bình đánh giá (rating) của user cho mỗi item
(sản phẩm). Khi đó, nếu tiếp tục trừ từ mỗi rating đi giá trị này, ta sẽ được ma
trận chuẩn hóa như trong bảng 5.
51
Việc trừ đi trung bình cộng của mỗi cột khiến trong trong 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. Những giá trị bằng 0
tương ứng với việc chưa xác định được liệu user có thích item hay không.
u0
u1
u2
u3
u4
u5
u6
i0
1.80
1.80
-1.20
-0.20
-2.20
0
0
i1
0.67
0
0
0.67
-1.33
0
0
i2
0
2.25
-0.75
0
-0.75
-0.75
0
i3
-1.17
-1.17
-0.17 0.83
0.83
0
0.83
i4
-1.75 0.25
0.25
0
0
0
1.25
Bảng 5. Ma trận chuẩn hóa 𝑌̂
Sử dụng độ do cosine để tính độ tượng tự giữa các item, chúng ta thu được
dữ liệu như Bảng 6.
i0
i1
i2
i3
i4
i0
1
0.18
0.53
-0.76
-0.38
i1
0.18
1.00
0.24
-0.06
-0.33
i2
0.53
0.24
1.00
-0.55
-0.10
i3
-0.76
-0.06
-0.55 1.00
0.57
i4
-0.38
-0.33
-0.10 0.57
1.00
Bảng 6: Độ tương tự giữa các item S
52
Dự đoán tỷ lệ đánh giá là việc xác định mức độ quan tâm của một user lên
một item dựa trên các users gần nhất.
Ví dụ về việc tính tỷ lệ đánh giá của u1 cho i1 được cho trong bảng 5 với
số nearest neighbors là k = 2. Các bước thực hiện là:
- Xác định các item đã được đã u1 đánh giá, đó là: i0, i2, i3, i4.
- Xác định độ tượng tự của i1 với các item này ta nhận được 0.18, 0.24,
-0.06, -0.33. Hai (k=2) giá trị lớn nhất là 0.18 và 0.24 tương ứng với i0
và i2.
- Xác định các đánh giá (chuẩn hoa) của u1 cho i0, i2, ta thu được hai
giá trị lần lượt là 1.80, 2.25.
- Dự đoán kết quả:
= 2.244 𝑦̂𝑖1,𝑢1 = 0.18 × 2.25 + 0.24 × 2.24 |0.18| + |0.24|
u0
u1
u2
u3
u4
u5
u6
i0
1.80
1.80
-1.20
-0.20
-2.20
-0.30
-0.54
i1
0.67
2.22
-2.25 0.67
-0.15
-1.33
-0.22
i2
0.45
2.25
-0.75
-0.07
-0.53
-0.75
-0.75
i3
-1.17
-1.17
-0.17 0.83
0.83 0.236 0.83
i4
-1.75 0.25
0.25
0.15
0.38
0.25
1.25
Bảng 7: Ma trận sau khi được dự đoán 𝑌̂
Việc quy đổi các giá trị ratings đã chuẩn hoá về thang 5 có thể được thực
hiện bằng cách cộng các cột của ma trận 𝑌̂ với giá trị rating trung bình của mỗi
item như đã tính trong Bảng 4. Kết quả ma trận dự đoán như trong bảng 8
53
u0
u1
u2
u3
u4
u5
u6
i0
5.0
5.0
2.0
3.0
1.0
2.9
2.7
i1
4.0
5.6
1.1
4.0
3.2
2.0
3.1
i2
2.2
4.0
1.0
1.7
1.2
1.0
1.0
i3
2.0
2.0
3.0
4.0
4.0
3.4
4.0
i4
2.0
4.0
4.0
3.9
4.1
4.0
5.0
Bảng 8: Ma trận dự đoán thang điểm 5
Việc hệ thống quyết định gợi ý items nào cho mỗi user có thể được xác
định bằng nhiều cách khác nhau. Có thể sắp xếp unrated items theo thứ tự tự
lớn đến bé của các predicted ratings, hoặc chỉ chọn các items có normalized
predicted ratings dương - tương ứng với việc user này có nhiều khả năng thích
hơn.
3.3. Thuật toán xử lý chính trong hệ thống
3.3.1. Thuật toán khách hàng đánh giá sản phẩm
Ý nghĩa:
- Để đánh giá cho sản phẩm, khách hàng phải đăng nhập thành công vào
hệ thống. Nếu khách hàng chưa đăng nhập thì hệ thống đánh giá không hoạt
động.
- Khách hàng nhập thông tin đánh giá sản phẩm.
- Hệ thống sẽ kiểm tra thông tin vừa nhập của khách hàng, số ký tự nhập.
- Nếu thỏa mãn, hệ thống sẽ lưu thông tin đánh giá vào cơ sở dữ liệu.
Ngược lại, khách hàng phải nhập lại thông tin.
54
Bắt đầu
Nhập thông tin đánh giá
Sai
Kiểm tra thông tin
Đúng
Lưu thông tin vào CSDL
Hiển thị thông tin đánh giá
Kết thúc
- Hiển thị đánh giá của khách hàng.
Hình 3.1: Khách hàng đánh giá sản phẩm
3.3.2. Thuật toán khách hàng chấm điểm sản phẩm
Ý nghĩa:
- Để chấm điểm cho sản phẩm, khách hàng phải đăng nhập thành công
vào hệ thống. Nếu khách hàng chưa đăng nhập thì hệ thống chấm điểm không
hoạt động.
- Khách hàng chọn ngôi sao để chấm điểm cho sản phẩm (điểm tăng dần
tính từ trái sang phải với giá trị từ 1 đến 5).
- Hệ thống sẽ kiểm tra xem khách hàng này đã chấm điểm cho sản phẩm
này chưa. Nếu chưa, hệ thống sẽ lưu điểm mà khách hàng vừa chấm vào cơ sở
dữ liệu. Ngược lại, hệ thống sẽ cập nhật điểm mới mà khách hàng vừa chấm
cho sản phẩm.
55
Chọn số ngôi sao để chấm điểm
Bắt đầu
Khách hàng đã chấm điểm trên sản phẩm
Cập nhật điểm trong CSDL
Lưu điểm vào CSDL
Sai Đúng
Kết thúc
Hình 3.2: Khách hàng chấm điểm sản phẩm
3.3.3. Thuật toán gợi ý sản phẩm cho khách hàng
Ý nghĩa:
- Giải thuật này dùng để hiển thị những sản phẩm gợi ý cho khách hàng.
- Khách hàng sẽ lựa chọn sản phẩm quan tâm để xem. Nếu sản phẩm được
chọn đã có người dùng đánh giá thì hệ thống sẽ dự đoán độ thích của khách
hàng trên các sản phẩm theo giải thuật lọc cộng tác dựa trên sản phẩm. Ngược
lại khi sản phẩm được chọn chưa có người dùng đánh giá trị sẽ hiện thị danh
sách các sản phẩm cùng loại với sản phẩm khách hàng đã chọn.
56
Khách hàng chọn sản phẩm để xem
Bắt đầu
Sản phẩm đã có người dùng đánh giá
Đúng
Gợi ý các sản phẩm có độ tương tự nhất
Gợi ý sản phẩm cùng loại
Sai
Kết thúc
Hình 3.3: Thuật toán xử lý gợi ý sản phẩm
3.4. Các giao diện chính của hệ thống
Giao diện trang chủ: giới thiệu khái quát các nội dung của trang web tới
người dùng. Từ thanh điều hướng phía trên người dùng có thể xem danh sách
sản phẩm, sản phẩm theo thể loại, đăng nhập/đăng kí tài khoản và tìm kiếm sản
phẩm.
57
Hình 3.4: Giao diện trang chủ
Giao diện danh sách sản phẩm: Liệt kê danh sách toàn bộ sản phẩm trong
cơ sở dữ liệu
58
Hình 3.5: Giao diện trang danh sách sản phẩm
Giao diện gợi ý sản phẩm cho khách viếng thăm
a) Đối với sản phẩm chưa có đánh giá: gợi ý các sản phẩm cùng thể loại.
59
Hình 3.6: Giao diện gợi ý sản phẩm cho sản phẩm chưa có đánh giá
b) Đối với sản phẩm đã có đánh giá: gợi ý các sản phẩm có độ tương tự
cao nhất.
Hình 3.7: Giao diện gợi ý sản phẩm cho sản phẩm đã có đánh giá
Giao diện gợi ý sản phẩm cho thành viên: đưa ra sản phẩm có độ tương
tự cao nhất với các sản phẩm mà thành viên đó đã đánh giá.
Hình 3.8: Giao diện gợi ý sản phẩm cho một thành viên cụ thể
60
Một số nhận xét, đánh giá kết quả thực nghiệm phương pháp lọc cộng
tác dựa trên sản phẩm
Ưu điểm:
- Phương pháp này có khả năng dự đoán được sở thích và nhu cầu của
người dùng để đưa ra gợi ý các sản phẩm phù hợp với từng khách hàng mà
không cần hiểu sản phẩm.
- Gợi ý dựa trên trải nghiệm của người dùng tương tự khác nên có thể gợi
ý được những sản phẩm mới phù hợp sở thích mới.
- Phương pháp này rất phù hợp với những hệ thống lớn có nhiều đánh giá
từ phía người dùng.
Một số hạn chế:
- Không thể gợi ý nếu khách hàng chưa có dữ liệu về lịch sử tương tác mặt
hàng.
- Khi lượng sản phẩm lớn và số lượng khách hàng đánh giá không nhiều
thì phương pháp này không hiệu quả.
- Phương pháp này cũng không thể gợi ý được các sản phẩm mới hoặc
những sản phẩm chưa được ai đánh giá.
- Phương pháp này sẽ cho độ chính xác kém nếu như sở thích của người
dùng thay đổi.
- Website chưa được triển khai trong thực tế, vì vậy các đánh giá còn ít và
mang tính chủ quan.
3.5. Kết luận chương 3
Chương 3 luận văn đã cài đặt thử nghiệm website thời trang và tích hợp
hệ thống gợi ý dựa trên phương pháp lọc cộng tác dựa trên sản phẩm. Hệ thống
có chức năng cho khách hàng chấm điểm, đánh giá sản phẩm và có thể đặt mua
hàng dựa trên những gợi ý các sản phẩm cho khách hàng trong quá trình chọn
sản phẩm tốt nhất, phù hợp với yêu cầu của khách hàng.
Tuy nhiên, hệ thống chưa xử lý được số lớn các yêu cầu của khách hàng
và chưa lưu được lịch sử, quan hệ giao tiếp của các khách hàng để gợi ý cho
nhiều đối tượng người dùng khác nhau, ...
61
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Kết luận
Luận văn đạt được những kết quả chính sau:
- Trình bày khái quát về hệ thống tư vấn theo phương pháp lọc cộng tác
và bài toán xây dựng hệ thống gợi ý sản phẩm trong bán hàng
- Giới thiệu phương pháp lọc công tác dựa trên sản phẩm, phân tích quá
trình xử lý để đưa ra các kết quả tư vấn dựa trên các thuật toán khác nhau
- Thử nghiệm cài đặt thử nghiệm phương pháp lọc cộng tác trên sản phẩm
cho website bán hàng thời trang
2. Hướng phát triển
Hướng mở của đề tài tiếp tục phát triển:
- Nghiên cứu phương pháp lọc cộng tác bằng phương pháp đa nhiệm và
ứng dụng
- Phương pháp kết hợp lọc cộng tác và lọc nội dung dựa trên mô hình đồ thị
- Nghiên cứu phát triển phương pháp lọc cộng tác mờ dựa người dùng.
62
TÀI LIỆU THAM KHẢO
TIẾNG VIỆT
[1] Hà Thị Thanh Nga, Nguyễn Đình Cường, Xây dựng hệ thống gợi ý bằng
thuật toán người láng giềng và thử nghiệm trên Movielens Dataset, Hội
nghị khoa học Công nghệ thông tin và Truyền thông ICT - Đà Lạt, 2017.
[2] Hoàng Thịnh, Tìm hiểu phương pháp lọc cộng tác dựa trên Item, Trường
Đại học khoa học Huế, 2013.
[3] Huỳnh Lý Thanh Nhàn, Nguyễn Thái Nghe, Giải pháp tích hợp mạng xã
hội trong xây dựng hệ trợ giảng thông minh, Proceeding of Publishing
House for Science and Technology, 2017.
[4] Lưu Nguyễn Anh Thư, Nguyễn Thái Nghe, Phương pháp xây dựng hệ
thống gợi ý sản phẩm sử dụng phản hồi tiềm ẩn, Hội nghị Quốc gia lần
thứ VIII về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR),
Hà Nội, 2015.
[5] Nguyễn Duy Phương, Phát triển một số phương pháp lọc thông tin cho
hệ tư vấn, 2011.
[6] Nguyễn Hùng Dũng, Nguyễn Thái Nghe, Hệ thống gợi Ý sản phẩm trong
bán hàng trực tuyến sử dụng kỹ thuật lọc cộng tác, Tạp chí Khoa học
Trường Đại học Cần Thơ pp. 36-51, 2014.
TIẾNG ANH
[7] Basit Mehmood Khan, Asim Mansha, Farhan Hassan Khan et al.,
Collaborative filtering based online recommendation systems: a survey,
2017 International Conference on Information and Communication
Technologies (ICICT), IEEE, pp. 125-130, 2017.
[8] Gediminas Adomavicius, Alexander Tuzhilin, data engineering, Toward
the next generation of recommender systems: A survey of the state-of-
the-art and possible extensions, IEEE transactions on knowledge and
data engineering, vol. 17, no. 6 pp. 734-749, 2005.
63
[9] Guy Shani, Asela Gunawardana, Evaluating recommendation systems,
Recommender systems handbook, pp. 257-297: Springer, 2011.
[10] J Ben Schafer, Dan Frankowski, Jon Herlocker et al., Collaborative
filtering recommender systems, The adaptive web, pp. 291-324:
Springer, 2007.
[11] JESUS Bobadilla, Francisco Serradilla, Antonio Hernando,
Collaborative filtering adapted to recommender systems of e-learning,
Knowledge-Based Systems, vol. 22, no. 4 pp. 261-265, 2009.
[12] Ranieri Baraglia, Fabrizio Silvestri, An online recommender system for
large web sites, IEEE/WIC/ACM International Conference on Web
Intelligence (WI'04), IEEE, pp. 199-205, 2004.
[13] Rui Chen, Qingyi Hua, Yan-Shuo Chang et al., “A survey of
collaborative filtering-based recommender systems: From traditional
methods to hybrid methods based on social networks”, in IEEE Access,
pp. 64301-64320, 2018.
[14] Santosh Kumar, Survey on personalized web recommender system,
Information Engineering and Electronic Business, vol. 10, no. 4 pp. 33,
2018.
[15] Shuai Zhang. "Datasets For Recommender System,"
http://shuaizhang.tech/2017/03/15/Datasets-For-Recommender-
System.
[16] Suganeshwari, SP Syed Ibrahim, A survey on collaborative filtering
based recommendation system, Proceedings of the 3rd International
Symposium on Big Data and Cloud Computing Challenges (ISBCC–
16’), Springer, pp. 503-518, 2016.