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
của PGS.TS. Lê Thanh Hương. Các nội dung nghiên cứu, kết quả trong luận văn này là
trung thực và chưa từng được công bố tại bất kỳ công trình nào khác. Trong quá trình
làm luận văn, tôi có tham khảo các tài liệu có liên quan và đã ghi rõ nguồn tài liệu tham
khảo.
Hà Nội, ngày 20 tháng 10 năm 2016
Học viên
Lê Văn Giang
i
LỜI CẢM ƠN
Để hoàn thành được luận văn này, tôi đã nhận được rất nhiều sự động viên, giúp
đỡ của nhiều cá nhân và tập thể.
Trước tiên, tôi xin bày tỏ lòng biết ơn sâu sắc tới PGS.TS. Lê Thanh Hương,
Trường Đại học Bách Khoa Hà Nội, đã nhiệt tình hướng dẫn, tạo điều kiện thuận lợi
cho tôi nghiên cứu khoa học, và giúp tôi có thể hoàn thành luận văn một cách tốt nhất.
Tôi xin gửi lời cảm ơn đến các anh, chị trong phòng Công nghệ thông tin –
trung tâm Học liệu Đại học Thái Nguyên đã giúp tôi tiến hành kiểm thử hệ thống.
Tôi cũng xin gửi lời cám ơn đến gia đình, bạn bè, những người đã luôn bên tôi,
động viên và khuyến khích tôi trong quá trình thực hiện đề tài nghiên cứu của mình.
Học viên
Lê Văn Giang
ii
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Từ viết tắt
RS
CF
Thuật ngữ
Giải thích
Recommender System
Hệ thống gợi ý
Information overload
Sự quá tải thông tin
Collaborative Filtering
Hệ gợi ý lọc cộng tác
Content based
Hệ gợi ý dựa trên nội dung
Knowledge-based
Hệ gợi ý dựa trên tri thức
Demographic-based
Hệ gợi ý dựa trên nhân khẩu học
Hybrid recommender
Hệ gợi ý lai
Cold-start
Điểm khởi đầu yếu
1
DANH MỤC CÁC BẢNG
Bảng 2.1 Dữ liệu demographic ............................................................................................ 21
Bảng 3.1 Đánh giá của người dùng trên sản phẩm ........................................................... 44
Bảng 3.2 Ma trân tương đồng giữa các người dùng ......................................................... 46
Bảng 3.3 Đánh giá của người dùng trên các sản phẩm .................................................... 48
2
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1: Website amazon.com .............................................................................................. 9
Hình 2.1 Hệ gợi ý không cá nhân hóa ................................................................................ 20
Hình 2.2 Hệ thống gợi ý demographic-based .................................................................... 21
Hình 2.3 Ma trận người dùng sản phẩm ............................................................................. 23
Hình 2.4 Quá trình lọc cộng tác........................................................................................... 24
Hình 2.5 Hướng tiếp cận content-based ............................................................................. 36
Hình 2.6 Hướng tiếp cận knowledge-based ....................................................................... 37
Hình 4.1 Use case Tổng quan .............................................................................................. 52
Hình 4.2 Use case tìm kiếm địa điểm du lịch .................................................................... 53
Hình 4.3 Use case Nhận gợi ý ............................................................................................. 54
Hình 4.4 Use case quản lý địa điểm du lịch ....................................................................... 55
Hình 4.5 Biểu đồ hoạt động chức năng xem thông tin, tìm kiếm địa điểm du lịch ...... 56
Hình 4.6 Biểu đồ hoạt động chức năng gợi ý .................................................................... 57
Hình 4.7 Biểu đồ hoạt động chức năng đăng ký tài khoản .............................................. 58
Hình 4.8 Biểu đồ hoạt động chức năng quản lý bình luận, đánh giá .............................. 59
Hình 4.9 Biểu đồ hoạt động chức năng quản lý địa điểm du lịch ................................... 60
Hình 4.10 Biểu đồ Sequence chức năng Xem tin, tìm kiếm ............................................ 61
Hình 4.11 Biểu đồ Sequence chức năng đăng kí tài khoản .............................................. 62
Hình 4.12 Biểu đồ Sequence chức năng đăng nhập .......................................................... 63
Hình 4.13 Biểu đồ Sequence chức năng quản lý địa điểm du lịch .................................. 64
Hình 4.14 Lược đồ quan hệ dữ liệu .................................................................................... 65
Hình 4.15 Chức năng thêm sở thích cho người dùng mới ............................................... 68
Hình 4.16 Địa điểm du lịch mới .......................................................................................... 69
Hình 4.17 Minh họa hệ thống gợi ý cho người dùng ........................................................ 70
Hình 4.18 Giao diện trang chủ của hệ thống ..................................................................... 71
Hình 4.19 Giao diện đánh giá và bình luận........................................................................ 72
Hình 4.20 Giao diện trang quản trị hệ thống ..................................................................... 72
3
MỤC LỤC
LỜI CAM ĐOAN ............................................................................................................ i
LỜI CẢM ƠN ................................................................................................................. ii
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ...................................................... 1
DANH MỤC CÁC BẢNG...................................................................................................... 2
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ............................................................................... 3
MỞ ĐẦU ................................................................................................................................... 6
CHƯƠNG 1: TỔNG QUAN HỆ GỢI Ý ........................................................................... 8
1.1 Chức năng của các hệ gợi ý ............................................................................................ 11
1.1.1 Đối với nhà cung cấp................................................................................ 12
1.1.2 Đối với người sử dụng ............................................................................. 13
1.1.3 Ứng dụng của hệ gợi ý .................................................................................. 15
1.2 Các vấn đề cơ bản của hệ gợi ý ...................................................................................... 16
1.2.1 Vấn đề điểm khởi đầu yếu........................................................................ 16
1.2.2 Vấn đề thưa thớt dữ liệu .......................................................................... 17
1.2.3 Vấn đề về khả năng mở rộng .................................................................. 18
CHƯƠNG 2: CÁC KỸ THUẬT GỢI Ý .......................................................................... 19
2.1 Không cá nhân hóa ......................................................................................................... 20
2.2 Demographic-based ........................................................................................................ 21
2.3 Kỹ thuật lọc cộng tác (Collaborative filtering) ........................................................... 22
2.3.1 Các kỹ thuật lọc cộng tác dựa trên bộ nhớ .............................................. 25
2.3.2 Các kỹ thuật lọc cộng tác dựa trên mô hình ............................................ 33
2.4 Kỹ thuật gợi ý dựa trên nội dung (Content-based) ..................................................... 35
2.5 Kỹ thuật gợi ý dựa trên tri thức (Knowledge-based).................................................. 37
2.6 Hệ gợi ý lai và các phương pháp lai ............................................................................ 38
2.6.1 Các phương pháp lai ghép ....................................................................... 41
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG GỢI Ý ĐỊA ĐIỂM DU LỊCH.................. 43
3.1 Phát biểu bài toán ............................................................................................................. 43
3.2 Xây dựng hệ thống.......................................................................................................... 44
3.2.1 Xây dựng tập láng giềng ......................................................................... 45
3.2.2 Tạo dự đoán ............................................................................................. 46
CHƯƠNG 4: CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ .......................................... 50
4.1 Xác định yêu cầu hệ thống ........................................................................................... 50
4.2 Phân tích yêu cầu ........................................................................................................... 51
4
4.2.1 Xác định các tác nhân tham gia hệ thống ................................................. 51
4.3 Biểu đồ ca sử dụng (Use case Diagram). ..................................................................... 53
4.3.1 Biểu đồ Use case tổng quan ..................................................................... 53
4.4 Biểu đồ Use case phân rã. .............................................................................................. 53
4.4.1 Use case: Tìm kiếm địa điểm du lịch ....................................................... 53
4.4.2 Use case: Nhận gợi ý. ............................................................................... 54
4.4.3 Use case: Quản lý địa điểm du lịch ......................................................... 55
4.5 Biểu đồ Hoạt Động (Activity Diagram) ........................................................................ 56
4.5.1 Biểu đồ hoạt động: Xem thông tin, tìm kiếm. .......................................... 56
4.5.2 Biểu đồ hoạt động: Nhận gợi ý ................................................................ 57
4.5.3 Biểu đồ hoạt động: Đăng ký tài khoản. ................................................... 58
4.5.4 Biểu đồ hoạt động: Quản lý bình luận, đánh giá. .................................... 59
4.5.5 Biểu đồ hoạt động: Quản lý địa điểm du lịch.......................................... 60
4.6. Biểu đồ trình tự (Sequence Diagram)........................................................................... 61
4.6.1 Biểu đồ trình tự: Xem tin, tìm kiếm. ........................................................ 61
4.6.3 Biểu đồ trình tự: Đăng nhập. ................................................................... 63
4.6.4 Biểu đồ trình tự: Quản lý địa điểm du lịch.............................................. 64
4.7 Thiết kế dữ liệu ............................................................................................................... 65
4.7.1 Lược đồ quan hệ dữ liệu........................................................................... 65
4.8 Mô hình hệ thống ............................................................................................................ 66
4.8.1 Một số tình huống của hệ thống ............................................................... 67
4.9 Một vài giao diện chính của hệ thống ..................................................................... 71
4.10 Đánh giá hệ thống ......................................................................................................... 73
4.10.1 Các thước đo đánh giá ........................................................................... 73
4.10.2 Phương pháp đánh giá ........................................................................... 74
KẾT LUẬN ............................................................................................................................ 76
TÀI LIỆU THAM KHẢO .................................................................................................. 77
5
MỞ ĐẦU
Sự phát triển nhanh chóng của công nghệ thông tin và Internet đã tạo nên lượng dữ
liệu khổng lồ trên mạng, ngày càng nhiều thông tin được tạo ra và được truy cập trên
internet, dẫn tới vấn đề quá tải thông tin do đó việc tìm kiếm thông tin của người dùng
trở lên khó khăn và đặc biệt sự quan tâm của mỗi người dùng tới nguồn thông tin là
khác nhau do vậy cần có các công cụ, hệ thống có khả năng hỗ trợ người dùng tìm
kiếm hoặc đưa ra các thông tin phù hợp với sự quan tâm hiện thời của người dùng.
Các hệ gợi ý giải quyết vấn đề quá tải thông tin bằng cách giúp người dùng khám
phá và đánh giá các sản phẩm quan tâm. Lọc cộng tác là một trong những kỹ thuật phổ
biến và hiệu quả nhất được sử dụng trong các hệ gợi ý. Các thuật toán lọc cộng tác sử
dụng thông tin lịch sử của các người dùng để xác định tập láng giềng của mỗi người
dùng để đưa ra hành vi tương tự và dự đoán các sản phẩm mới của những người dùng
trong tập láng giềng. Các thuật toán lọc cộng tác đã được áp dụng thành công trong
nhiều ứng dụng khác nhau. Nhưng tất cả các kỹ thuật,thuật toán áp dụng cho hệ gợi ý
đều có những điểm mạnh và điểm yếu riêng, và gặp phải những vấn đề đặc trưng của
hệ gợi ý như: vấn đề thưa thớt dữ liệu, điểm khởi đầu yếu (cold-start), khả năng mở
rộng… Vấn đề thưa thớt dữ liệu xảy ra khi các dữ liệu đánh giá có sẵn là rất ít và
không đủ để xác định độ tương tự giữa các láng giềng, đặc biệt khi hệ thống mới đưa
vào sử dụng. Vấn đề thưa thớt dữ liệu là lý do chính ảnh hưởng tới chất lượng dự đoán.
Đã có nhiều phương pháp được đề xuất để giải quyết vấn đề thưa thớt dữ liệu, ví dụ,
Billsus và Pazzani [1] đã sử dụng thuật toán phân tích giá trị kỳ dị để giảm kích thước
dữ liệu đánh giá bằng cách loại bỏ những người dùng hoặc những sản phẩm không
được quan tâm. Để đạt được hiệu quả gợi ý cao, yêu cầu thuật toán phải giải quyết
được các vấn đề cũng như các đặc trưng của hệ gợi ý.
6
Các hệ thống gợi ý dựa trên lọc cộng tác cũng phải đưa ra các gợi ý trong thời gian
thực. Tuy nhiên, thuật toán lọc cộng tác đòi hỏi tính toán rất tốn kém và phát triển phi
tuyến với cả số lượng người dùng và sản phẩm. Khả năng mở rộng kém của các thuật
toán lọc cộng tác làm cho nó không có hiểu quả cho việc thực thi thời gian thực. đã có
nhiều nỗ lực được thực hiện nhằm giải quyết vấn đề khả năng mở rộng.
Trong luận văn tốt nghiệp này, tôi sẽ trình bày về các phương pháp gợi ý, mô hình
hệ gợi ý, xây dựng hệ thống đưa ra các gợi ý được cá nhân hóa, phù hợp với nhu cầu và
sở thích của mỗi người dùng. Nghiên cứu tập trung vào áp dụng giải thuật phù hợp giải
quyết bài toán gợi ý địa điểm du lịch, thử nghiệm trên bộ dữ liệu chuẩn và đánh giá kết
quả đạt được.
7
CHƯƠNG 1: TỔNG QUAN HỆ GỢI Ý
Trong cuộc sống thường ngày, mọi người thường dựa vào ý kiến hay lời khuyên
người khác để đưa ra quyết định về hành động hoặc lựa chọn, ví dụ như để lựa chọn bộ
phim mọi người có thể đọc giới thiệu tổng quát, bài đánh giá của các nhà phê bình điện
ảnh hoặc nhận xét của những người khác về bộ phim trên các tạp chí, Internet hoặc khi
muốn mua một cuốn sách, mọi người có thể tham khảo ý kiến của người quen, chủ cửa
hàng bán sách hoặc những người mua khác, bằng cách đưa ra sở thích, mối quan tâm
của mình với họ để nhận được góp ý.
Với sự phát triển của Internet và thương mại điện tử hiện nay, lượng thông tin có
sẵn là vô cùng lớn, điều đó gây khó khăn và rất tốn thời gian để người dùng tìm kiếm
thông tin và lựa chọn sản phẩm. Yêu cầu cần có phương pháp thu thập thông tin và đưa
ra lời khuyên để hỗ trợ người dùng trong vấn đề tìm kiếm và lựa chọn sản phẩm họ
quan tâm. Hệ gợi ý là một giải pháp được đưa ra cho vấn đề này.
Hệ gợi ý là các kỹ thuật (lọc thông tin) và các công cụ phần mềm cung cấp các đề
xuất sản phẩm có thể được quan tâm tới người dùng. Các đề xuất này có thể giúp ích
cho quá trình đưa ra quyết định lựa chọn sản phẩm của người dùng, như lựa chọn địa
điểm du lịch muốn đi, mặt hàng để mua, bài báo hay một bản nhạc … [1]
Một hệ thống gợi ý thường tập trung vào một loại sản phẩm nhất định (CD, Sách,
Phim ảnh, Báo, Địa điểm du lịch…) với thiết kế, giao diện người dùng, các kỹ thuật
gợi ý phù hợp sẽ đưa ra các đề xuất hiệu quả và hữu dụng cho loại sản phẩm cụ thể.
Các hệ gợi ý chủ yếu hướng tới những người thiếu kinh nghiệm hoặc thiếu khả năng để
đánh giá tiềm năng vượt trội của các sản phẩm mà một trang web có thể cung cấp. ví
dụ trang web phổ biến là Amazon.com, trang web này sử dụng một hệ gợi ý để cá nhân
hóa lưu trữ trực tuyến cho mỗi khách hàng, khi các đề xuất được cá nhân hóa, người
dùng hoặc nhóm người dùng khác nhau sẽ nhận được các đề xuất khác nhau. Ngoài ra
8
cũng có các hệ gợi ý không được cá nhân hóa, đó là cách đơn giản để tạo các đề xuất
áp dụng trong các hệ gợi ý tạp chí, báo.
Hình 1.1: Website amazon.com
9
Các gợi ý được cung cấp cho người dùng dưới dạng đơn giản như một danh sách
đánh giá các sản phẩm, để có thể tạo ra được danh sách đó, các hệ gợi ý cố gắng dự
đoán các sản phẩm hoặc dịch vụ phù hợp nhất với người dùng dựa trên sở thích và các
điều kiện rằng buộc của người dùng, để làm được điều này, các hệ gợi ý thu thập thông
tin liên quan tới người dùng: sở thích, các lần đánh giá về các sản phẩm, hoặc được suy
luận từ các hành vi của người dùng đối với hệ thống hoặc tận dụng các gợi ý đã được
tạo bởi cộng đồng người dùng để gợi ý cho người dùng đang hoạt động (active user),
người mà cần được gợi ý. Kết quả gợi ý là các sản phẩm mà những người dùng tương
tự đã thích, các sản phẩm này có thể hoàn toàn mới đối với người dùng được gợi ý.
Phương pháp tiếp cận này được gọi là kỹ thuật lọc cộng tác.
Nghiên cứu các hệ gợi ý liên quan tới các kỹ thuật và các công cụ hệ thống phân
lớp thông tin. Tuy nhiên các hệ gợi ý được nghiên cứu độc lập từ những năm 1990.
Những năm gần đây sự quan tâm về các hệ gợi ý đã gia tăng nhanh chóng, được thể
hiện [1]:
Các hệ gợi ý đóng vai trò quan trọng trong các website đã được đánh giá cao
như: amazon.com, youtube.com, yahoo . . . Hơn nữa nhiều công ty đa
phương tiện hiện nay đang phát triển và triển khai các hệ gợi ý như một
phần dịch vụ mà học cung cấp tới khách hàng của họ. Ví dụ Netflix, dịch vụ
cho thuê phim trực tuyến, họ đưa ra giải thưởng 1 triệu dollar cho nhóm đầu
tiên cải thiện đáng kể hiệu năng hệ gợi ý của họ (cải thiện 10% hiệu năng ).
Đã có các cuộc hội thảo, hội nghị dành riêng cho các cống hiến liên quan tới
lĩnh vực này. Tiêu biểu là ACM Recommender Systems, được thành lập
năm 2007 và hiện nay tổ chức các sự kiện hằng năm về các nghiên cứu và
ứng dụng công nghệ gợi ý. Ngoài ra, có phiên họp dành riêng cho các lĩnh
vực cụ thể như : ACMSIGIR, SIGMOD.
10
Tại các tổ chức giáo dục trên khắp thế giới, các khoa đại học và sau đại học
hiện nay đã có môn rành riêng cho nghiên cứu về hệ gợi ý, các bài hướng
dẫn, sách, báo về các hệ gợi ý đã được phát hành rộng rãi.
Có nhiều tạp chí của các trường đại học phát hành về các nghiên cứu và sự
phát triển trong lĩnh vự gợi ý. Trong số này, các tạp chí dành riêng cho vấn
đề hệ gợi ý: AI Communication (2008), IEEE Intelligent Systems (2007),
International Journal of Electronic Commerce (2006), International Journal
of Computer Science and Applications (2006), ACM Transactions on
Computer-Human Interaction (2005), và ACM Transactions of Information
Systems (2004).
Một vài hệ gợi ý nổi tiếng[14]:
Phim / TV / âm nhạc: MovieLens, EachMovie, Morse, Firefly, Flycasting,
Ringo….
Tin tức / báo chí: Tapestry, GroupLens, Lotus Notes, Anatagonomy…..
Sách / tài liệu: Amazon.com, Foxtrot, InfoFinder…..
Web: Phoaks, Gab, Lab, IfWeb, Let’s Browse…..
Nhà hàng: Adaptive Place Advisor, Polylens, Pocket restaurent finder….
Du lịch: Dietorecs, LifestyleFinder, TripAdvisor…
1.1 Chức năng của các hệ gợi ý
Phần này sẽ trình bày về chức năng của các hệ gợi ý. Trước tiên, ta cần phân biệt
rõ vai trò của các hệ gợi ý đối với nhà cung cấp dịch vụ (hệ gợi ý đại diện cho nhà cung
cấp dịch vụ) và đối với người sử dụng hệ gợi ý. Ví dụ như: một hệ gợi ý du lịch thường
được đưa ra bởi bên môi giới du lịch hoặc nhà tổ chức quản lý điểm du lịch nhằm mục
11
đích tăng doanh thu, cho thuê được nhiều phòng nghỉ hơn, tăng số lượng du khách tới
điểm du lịch đó. Trong khi động cơ chính của người sử dụng hệ gợi ý này là để tìm các
điểm du lịch, khách sạn phù hợp và các sự kiện hấp dẫn khi đến điểm du lịch.
1.1.1 Đối với nhà cung cấp
Trên thực tế, có nhiều lý do để nhà cung cấp dịch vụ muốn khai thác công nghệ này.
FrancescoRicci và cộng sự [1] đã đưa ra một số lí do như sau:
Tăng số lượng sản phẩm bán được: đây có lẽ là chức năng quan trọng nhất đối với
các hệ gợi ý thương mại điện tử, mục đích này đạt được do các sản phẩm được gợi
ý phù hợp với các sản phẩm mà người dùng cần và người dùng mong muốn, có thể
người dùng sẽ chấp nhận mua sau khi xem gợi ý từ hệ thống. Nói chung, ta có thể
nói nhìn từ quan điểm của các nhà cung cấp dịch vụ, mục đích chính của việc đưa
ra một hệ gợi ý là làm tăng tỷ lệ giữa lượng khách hàng mua sản phẩm và lượng
khách hàng truy cập chỉ để duyệt tìm thông tin.
Bán được các sản phẩm đa dạng hơn: chức năng này của hệ gợi ý cho phép người
dùng lựa chọn các lựa chọn các sản phẩm mà có thể rất khó để tìm thấy nếu như
không có gợi ý chính xác. Ví dụ, trong hệ gợi ý phim của Netflix, nhà cung cấp
quan tâm tới cho thuê tất cả DVD của họ, chứ không chỉ những DVD nổi tiếng,
điều này có thể rất khó nếu như không có hệ gợi ý, họ có thể gặp rủi ro trong việc
quảng cáo các bộ phim không phù hợp với thị hiếu của người dùng. Như vậy, một
hệ gợi ý đề xuất hoặc quảng cáo được những DVD không nổi tiếng nhưng phù hợp
với người dùng.
Nâng cao sự hài lòng của người dùng: Một hệ thống gợi ý được thiết kế tốt có thể
hoàn thiện kinh nghiệm sử dụng web hoặc ứng dụng của người dùng. Với tương tác
người máy hợp lý, người dùng có thể thấy được các gợi ý một cách dễ ràng, phù
hợp với thị hiếu của họ. Như vậy họ sẽ thích sử dụng hệ thống. Sự kết hợp hiệu quả
12
giữa các gợi ý và giao diện sử dụng sẽ làng tăng lượng đánh giá chủ quan của người
dùng về hệ thống. Điều này làm tăng số lượt sử dụng hệ thống và tăng khả năng các
gợi ý được chấp nhận.
Nâng cao sự trung thành của người dùng: Một người sẽ trung thành với một
website khi mà họ truy cập, hệ thống nhận thức được đây là khách hàng cũ và đối
đãi với họ như một người truy cập quan trọng. Đây là một tính năng thông thường
của một hệ gợi ý. Hệ gợi ý sử dụng các thông tin có được từ người dùng trong các
lượt tương tác trước của họ với hệ thống ví dụ như các đánh giá về các sản phẩm,
hành vi duyệt web. Do vậy, người dùng càng tương tác nhiều với hệ thống, mô hình
người dùng của họ sẽ càng hoàn thiện hơn, như vậy hệ thống sẽ đưa ra được các gợi
ý hợp lý, hiệu quả hơn với sở thích của người người dùng đó.
Hiểu biết tốt hơn về những mong muốn của người dùng: tính năng này của hệ thống
có thể được sử dụng lại cho nhiều ứng dụng khác, đó là mô tả về sở thích của người
dùng. Có thể được thu thập một cách tường minh (đánh giá của người dùng về sản
phầm …) hoặc không tường minh được suy luận ra từ các hành vi tương tác với hệ
thống của người dùng, nhà cung cấp dịch vụ có thể dựa vào đó để quyết định có sử
dụng lại tri thức này cho một mục đích khác hay không ví dụ như cải thiện quản lý
sản xuất và lưu trữ sản phẩm,cân đối việc sản xuất sản phẩm theo thị hiếu người
dùng.
1.1.2 Đối với người sử dụng
Lý do để người sử dụng cần đến một hệ gợi ý:
Tìm ra một số sản phẩm tốt nhất: hệ thống gợi ý tới người dùng một số sản phẩm
được xếp hạng và dự đoán số người dùng khác thích chúng. Đây là chức năng chính
mà nhiều hệ thống thương mại điện tử sử dụng.
13
Tìm ra tất cả sản phẩm tốt: gợi ý tất cả sản phẩm mà có thể làm hài lòng nhu cầu
của khách hàng. Trong nhiều trường hợp không đủ cơ sở để đưa ra các sản phẩm tốt
nhất. Điều này chỉ đúng khi số lượng sản phẩm liên quan tương đối nhỏ hoặc khi hệ
gợi ý là chức năng quan trọng trong ứng dụng tài chính và y tế.
Gợi ý liên tục: thay vì tập trung vào tạo gợi ý đơn, các hệ thống gợi ý tạo các gợi ý
liên tục tới người dùng cho tới khi họ tìm được sản phẩm mong muốn.
Gợi ý một nhóm sản phẩm: đề xuất một nhóm các sản phẩm mà tương đương nhau.
Ví dụ như kế hoạch du lịch có thể là gồm nhiều điểm đến, các dịch vụ nơi ở , các sự
kiện hấp dẫn. Từ quan điểm của người dùng những lựa chọn khác nhau có thể được
xem xét và được lựa chọn một điểm đến du lịch hợp lý.
Chỉ duyệt tìm: trong tác vụ này, người dùng duyệt các danh mục mà không có ý
định mua sản phẩm nào, tác vụ này đưa ra gợi ý giúp người dùng duyệt tìm các sản
phẩm có nhiều khả năng thuộc vào phạm vi sở thích của người dùng với phiêm truy
cập xác định. Đây là tác vụ được hỗ trợ bởi các kỹ thuật đa phương tiện.
Tìm kiếm các gợi ý tin tưởng: một số người dùng không tin tưởng vào các hệ thống
gợi ý, họ tham gia vào hệ thống để thấy được các hệ thống này đưa ra gợi ý tốt tới
mức nào. Do đó, một số hệ thống có thể đưa ra các chức năng chính xác để cho
phép họ thử nghiệm hành vi của họ, ngoài các yêu cầu gợi ý.
Cải thiện hồ sơ cá nhân người dùng: người dùng có khả năng cung cấp thông tin,
những gì họ thích, không thích với hệ thống gợi ý. Điều này là hết sức cần thiết để
đưa ra các gợi ý mang tính chất cá nhân hóa. Nếu như hệ thống không xác định tri
thức về người dùng đang hoạt động thì nó chỉ có thể đưa ra các gợi ý giống nhau.
Bày tỏ ý kiến của mình: một số người dùng có thể không quan tâm tới các gợi ý,
đúng hơn, những gì quan trọng với họ là được góp ý kiến, đánh giá về sản phẩm,
giúp ích người khác khi lựa chọn sản phẩm này.
14
Tác động tới những người dùng khác: trong hệ gợi ý trên web, có nhiều người tham
gia với mục tiêu của họ là tác động tới hệ gợi ý, dẫn tới ảnh hưởng tới người dùng
khác khi mua một sản phẩm cụ thể (thông qua đánh giá sản phẩm,…). Tác động của
họ có thể thúc đẩy hoặc gây bất lợi cho sản phẩm.
Vai trò của một hệ gợi ý trong hệ thống thông tin có thể rất đa dạng, điều này phụ thuộc
vào các kỹ thuật và nguồn tri thức được sử dụng.
1.1.3 Ứng dụng của hệ gợi ý
Nghiên cứu hệ gợi ý đang được tiến hành nhằm mục đích ứng dụng vào thực tế và
thương mại. Ngoài việc đóng góp về mặt lý thuyết, mục đích chính là hướng tới cải
thiện các gợi ý thương mại, như vậy, các nghiên cứu hệ gợi ý liên quan tới các khía
cạnh, áp dụng để thực thi các hệ gợi ý. Các khía cạnh này liên quan tới các pha khác
nhau trong vòng đời phát triển của một hệ gợi ý, đó là thiết kế hệ thống, thực thi nó,
bảo trì và nâng cấp hiệu năng hệ thống.
Các khía cạnh áp dụng đối với giai đoạn thiết kế gồm các yếu tố, phải lựa chọn
thuật toán hiệu quả. Yếu tố đầu tiên được cân nhắc, miền áp dụng, là một tác động lớn
đối với thuật toán mà được sử dụng. Đưa ra một mô hình và phân loại các ứng dụng hệ
gợi ý đã có để xác định miền ứng dụng. Dựa trên những miền ứng dụng xác định đó,
chúng ta định nghĩa tổng quát hơn về loại miền ứng dụng đối với các hệ gợi ý phổ biến
nhất:
Giải trí: các gợi ý phim, nhạc, TV
Nội dung: các bài báo, gợi ý văn bản, gợi ý các trang web,lọc e-mail.
Thưng mại điện tử: gợi ý cho người tiêu dùng các sản phẩm để mua như sách, hàng
hóa, máy tính…
15
Dịch vụ: gợi ý địa điểm du lịch, gợi ý của chuyên gia, gợi ý thuê nhà hoặc dịch vụ
môi giới.
Các dịch vụ gợi ý đã trở lên phổ biến hơn, quan tâm tới khơi dậy các lợi thế tiềm
năng trong các ứng dụng mới, như gợi ý bạn bè. Như vậy danh sách các lĩnh vực trên
chưa thể liệt kê hết tất cả miền ứng dụng mà được giải quyết bằng các kỹ thuật gợi ý,
nó đưa ra miêu tả ban đầu về các kiểu miền ứng dụng.
Nhà phát triển hệ gợi ý có hiểu biết về miền ứng dụng, các yêu cầu của nó cũng
như những thách thức và các hạn chế của nó. Chỉ sau khi phân tích những yếu tố họ
mới có thể lựa chọn được thuật toán gợi ý tối ưu và thiết kế tương tác người máy hiệu
quả.
1.2 Các vấn đề cơ bản của hệ gợi ý
1.2.1 Vấn đề điểm khởi đầu yếu
Vấn đề này liên quan đặt biệt với các vấn đề mà hệ thống không thể thực hiện bất
kỳ kết luận cho người dùng hoặc sản phẩm do hệ thống chưa thu thập đủ thông tin. Vấn
đề này chủ yếu gặp phải trong các hệ gợi ý. Thông thường, một hệ gợi ý so sánh hồ sơ
của các người dùng để tham khảo một số đặc điểm mà có thể thu được từ các phương
pháp lọc cộng tác hoặc phương pháp lọc nội dung. Hệ thống không thể tạo các gợi ý
hữu ích khi mà nó chưa có đủ thông tin về người dùng hoặc sản phẩm.
Ba kiểu vấn đề điểm khởi đầu yếu gồm: sản phẩm mới, người dùng mới, hệ thống
mới đưa vào sử dụng. Rõ ràng, vấn đề người dùng mới xảy ra khi một người dùng mới
sử dụng hệ thống và hệ thống không có đủ thông tin về sở thích của người dùng.
Tương tự, khi một sản phẩm mới được thêm vào hệ thống và chưa có người dùng nào
trong hệ thống cung cấp thông tin phản hồi về sản phẩm này. Vấn đề hệ thống mới đưa
16
vào sử dụng là sự kết hợp của hai vấn đề trên đó là cùng xảy ra hai vấn đề: người dùng
mới, sản phẩm mới.
Phương pháp dựa trên nội dung là sự kết hợp của các đặc điểm về sản phẩm và hồ
sơ người dùng. Với mục đích này, hệ thống phải xây dựng mô hình chi tiết về sở thích
và thị hiếu người dùng. Hệ thống có thể làm điều này một cách tường minh bằng cách
truy vấn người dùng, hoặc không tường minh bằng cách giám sát các hành vi sử dụng
hệ thống của người dùng. Trong cả hai cách này, vấn đề điểm khởi đầu yếu có nghĩa
rằng trước khi hệ thống có thể cung cấp các gợi ý thông minh, người dùng phải sử
dụng hệ thống và góp phần xây dựng hồ sơ của họ [5].
Tương tự, phương pháp lọc cộng tác cũng bị ảnh hưởng bởi vấn đề này. Trong
phương pháp tiếp cận này, hệ gợi ý xác định độ tương tự của các người dùng với người
dùng đang hoạt động và đề xuất các sản phẩm mà những người dùng tương tự thích và
người dùng đang hoạt động chưa xem qua sản phẩm đó. Do vấn đề điểm khởi đầu yếu,
phương pháp tiếp cận này sẽ thất bại trong việc xem xét các sản phẩm mà chưa được
đánh giá bởi bất kỳ người dùng nào trước đó.
1.2.2 Vấn đề thưa thớt dữ liệu
Thưa thớt dữ liệu là một vấn đề lớn nhất mà các hệ gợi ý gặp phải. Nó quyết định
tới chất lượng của các gợi ý. Vấn đề này là hạn chế chính về chất lượng của các gợi ý
và khả năng áp dụng của phương pháp lọc cộng tác nói chung, và nó xảy ra khi dữ liệu
phản hồi là không đủ để xác định những người hàng xóm. Như đã đề cập, vần đề này
gặp phải trong các hệ thống gợi ý sử dụng phương pháp lọc cộng tác, xây dựng các gợi
ý dựa trên xếp hạng của các sản phẩm được người dùng đưa ra. Các hệ thống thường
xây dựng ma trận người dùng – sản phẩm chứa các xếp hạng sản phẩm được người
dùng đưa ra. Khi số lượng người dùng và sản phẩm tăng lên, ma trận này cũng lớn hơn
và gặp phải vấn đề thưa thớt dữ liệu. Có nhiều phương pháp được đề xuất để giải quyết
17
vấn đề thưa thớt dữ liệu. Hầu hết chúng đều thành công trong việc cung cấp các gợi ý
tốt hơn nhưng vẫn chưa có một mô hình chung để giải quyết vấn đề thưa thớt dữ liệu
[5].
1.2.3 Vấn đề về khả năng mở rộng
Khả năng mở rộng là một tính chất mong đợi của các hệ thống mà chỉ ra khả năng
xử lý lượng công việc này càng lớn và mở rộng dễ dàng.
Đối với nhiều hệ thống gợi ý có nhiều người sử dụng và nhiều sản phẩm, duy trì
khả năng mở rộng là một vấn đề thánh thức. Các thuật toán láng giềng gần nhất được
sử dụng rộng rãi cho các hệ gợi ý và những thuật toán này yêu cầu tính toán một lượng
lớn cả người dùng và sản phẩm. Với một triệu người dùng và sản phẩm, một hệ gợi ý
trên web sẽ bị ảnh hưởng nghiêm trọng bởi vấn đề khả năng mở rộng.
Hầu hết các hệ gợi ý sử dụng các kiểu lọc cộng tác khác nhau để xây dựng các đề
xuất các sản phẩm liên quan đến mối quan tâm của người dùng. Tuy nhiên, các kỹ
thuật lọc cộng tác yêu cầu tính toán nhiều tùy theo số lượng người dùng và sản phẩm
trong cơ sở dữ liệu. Các phương pháp đề xuất để xử lý vấn đề khả năng mở rộng và
thúc đẩy xây dựng các gợi ý dựa trên cơ chế xấp xỉ. Ngay cả khi chúng ta cải tiến hiệu
năng, hầu hết kết quả đưa ra giảm tính chính xác.
18
CHƯƠNG 2: CÁC KỸ THUẬT GỢI Ý
Các hệ gợi ý được giới thiệu như một kỹ thuật thông minh dựa trên máy tính để
giải quyết các vấn đề quá tải thông tin và sản phẩm. Chúng có thể được sử dụng cung
cấp các dịch vụ hiệu quả trong các miền nghiệp vụ điện tử, có lợi cả với khách hàng và
nhà cung cấp. Các hệ gợi ý đối với khách hàng bằng cách đưa ra cho họ các đề xuất về
các sản phẩm mà họ có thể quan tâm. Với các công ty kinh doanh, chúng giúp tăng
doanh số bán hàng.
Hai đối tượng cơ bản xuất hiện trong hầu hết các hệ gợi ý là người dùng và sản phẩm.
Người dùng: là những người mà sử dụng hệ gợi ý, cung cấp ý kiến của họ về các
sản phẩm và nhận được gợi ý về các sản phẩm mới từ hệ thống.
Sản phẩm: là những đối tượng được gợi ý.
Đầu vào của một hệ gợi ý phụ thuộc vào thuật toán lọc được sử dụng. Thông
thường, đầu vào thuộc một trong những loại sau:
Đánh giá, thể hiện ý kiến đánh giá của người dùng về các sản phẩm. Đánh giá
thường được cung cấp bởi người dùng và theo một thang đánh giá cụ thể (ví dụ: 1kém, 5- rất tốt). Một lược đồ đánh giá phổ biến là lược đồ đánh giá nhị phân, mà chỉ
cho phép các đánh giá nhận giá trị hoặc là 0 hoặc là 1. Các đánh giá có thể cũng
được thu thập một cách không tường minh từ lịch sử mua hàng của người dùng,
web logs hay còn gọi là lịch sử duyệt web của người dùng hoặc các mẫu truy cập
thông tin [4].
Dữ liệu nhân thân (demographic data), các thông tin như tuổi, giới tính, trình độ của
các người dùng. Kiểu thông tin này thường khó có được. Nó thường được thu thập
một cách tường minh từ người dùng.
19
Dữ liệu nội dung, thông tin dựa trên phân tích ngữ cảnh của các văn bản có liên
quan tới các sản phẩm được đánh giá bởi người dùng. Các đặc trưng được trích xuất
bằng cách phân tích này thường được sử dụng như đầu vào cho thuật toán lọc để
suy ra hồ sơ người dùng.
2.1 Không cá nhân hóa
Phương pháp tiếp cận đơn giản nhất là hệ gợi ý không cá nhân hóa, hệ gợi ý dạng
này đồng nhất cho tất cả các người dùng. Gợi ý thường được chọn lựa và đưa ra bởi
bên bán dựa trên tính phổ biến của sản phẩm (chẳng hạn như đánh giá bình quân, sản
phẩm bán nhiều, sản phẩm nhiều người xem…) hoặc có thể là danh sách top-N các sản
phẩm mới trên website.
Hình 2.1 Hệ gợi ý không cá nhân hóa
Ưu điểm và nhược điểm
Hiển nhiên lợi thế của hướng tiếp cận này là nó đơn giản và dễ thực hiện cho bên
quản lý hệ thống, dữ liệu rất dễ dàng để thu thập. Tuy nhiên, hệ thống dạng này thiếu
cá nhân hóa, chỉ có cùng một kiểu cứng nhắc cho mọi đối tượng khách hàng và nhiều
khi không đáp ứng được nhu cầu của người dùng.
20
2.2 Demographic-based
Dữ liệu nhân khẩu học có thể được sử dụng để xác định người dùng và từ đó có thể
tạo ra các “nguyên mẫu”. Ví dụ như bảng dưới đây cung cấp thông tin về giới tính, học
vấn, tuổi tác… của những người đã đánh giá một quán ăn nào đó, với những dữ liệu
này ta có thể nhìn ra được những loại người nào thì thích những sản phẩm nào.
Bảng 2.1 Dữ liệu demographic
Hệ gợi ý demographic hướng đến việc phân loại người dùng dựa trên thuộc tính cá
nhân và đưa ra gợi ý dựa trên các lớp nhân khẩu học, hình dưới đây là một ví dụ
đơn giản. Nó thường được sử dụng với những website du lịch hay website của các
nhà hàng…
Hình 2.2 Hệ thống gợi ý demographic-based
21
Ưu điểm và nhược điểm:
Đây là kỹ thuật không sử dụng đến đánh giá sản phẩm của người dùng, cho nên
hiển nhiên những người dùng mới cũng sẽ nhận được gợi ý kể cả khi họ chưa đánh giá
bất cứ sản phẩm nào, tri thức về sản phẩm cũng như những tính năng của nó là không
cần thiết cho nên hướng tiếp cận này là độc lập.
Nhược điểm của phương pháp này là trong khi thu thập các thông tin nhân khẩu học
cần thiết sẽ vấp phải vấn đề về tính riêng tư của thông tin. Hơn nữa loại thông tin này
cũng là quá “thô” để có thể đưa ra các gợi ý mang tính cá nhân hóa cao. Ví dụ như
không phải tất cả những phụ nữ 20 tuổi đều cùng thích loại hình du lịch biển. Và nếu
một khách hàng có ý kiến khác với số đông hoặc có sở thích không bình thường sẽ có
hệ số tương quan thấp so với những người còn lại. Gợi ý cho họ nếu sử dụng hệ gợi ý
dựa trên nhân khẩu học là rất khó và sẽ cho ra những kết quả kỳ cục. Một thách thức
khác là chúng ta khó có thể thay đổi profile đã được tạo của một người dùng trong
trường hợp sở thích của người đó thay đổi. Đó là vấn đề mâu thuẫn giữa tính ổn định
và tính linh hoạt.
2.3 Kỹ thuật lọc cộng tác (Collaborative filtering)
Mục tiêu của các hệ gợi ý là tạo ra các đề xuất về các sản phẩm mới hoặc để dự
đoán sử dụng một sản phẩm xác định cho một người dùng cụ thể. Trong cả hai trường
hợp quá trình đều dựa trên đầu vào được cung cấp liên quan tới sở thích của người
dùng.
Với m là số lượng người dùng tập người dùng U {u1 , u 2 ,..., u m } và n là số sản
phẩm I { i1 , i 2 , ..., i n } , với mỗi người dùng ui với i=1,2,…,m đều có một danh sách
các sản phẩm
I
u
i
, thể hiện các ý kiến đánh giá của người dùng ui về các sản phẩm.
22
Lưu ý quan trọng đó là
I ui I
,
I
u
có thể là tập null, điều đó có nghĩa không
i
bắt buộc người dùng tiết lộ sở thích của họ về tất cả các sản phẩm tồn tại. Số sản phẩm
trong
I
u
i
là ni hay ni =|
I
u
i
| với ni n. ý kiến đánh giá của người dùng thường
ở dạng hệ số đánh giá (rating score). Đặc biệt, đánh giá của người dùng ui với sản
phẩm ij với j=1,2,…,n, được ký hiệu r i ,
j
, tất cả các đánh giá có sẵn được tập hợp
trong ma trận người dùng – sản phẩm kích thước m n ký hiệu R. các thuật toán lọc
được đề xuất sử dụng nhiều kỹ thuật trên các hàng của ma trận, tương ứng với các đánh
giá của một người dùng về các sản phẩm, hoặc trên các cột tương ứng với các đánh giá
của nhiều người dùng về một sản phẩm [6].
Hình 2.3 Ma trận người dùng sản phẩm
23