Professional Documents
Culture Documents
Nghiên Cứu Và Ứng Dụng Kỹ Thuật Svd Vào Hệ Thống Gợi ý e4ed360a
Nghiên Cứu Và Ứng Dụng Kỹ Thuật Svd Vào Hệ Thống Gợi ý e4ed360a
Học viên:Phạm Hoàng Trƣơng Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01 Khóa: K33 Trƣờng Đại học Bách khoa - ĐHĐN
Tóm tắt - Hệ thống gợi ý (Recommender Systems - RS) đang đƣợc ứng dụng
rộng rãi trong nhiều lĩnh vực (nhƣ thƣơng mại điện tử, giải trí, giáo dục,...) nhằm dự
đoán sở thích của ngƣời dùng nhờ vào thông tin cá nhân hoặc những phản hồi (đánh
giá) của họ. Luận văn tập trung nghiên cứu hệ thống gợi ý theo ngữ cảnh, áp dụng cho
gợi ý các địa điểm du lịch phù hợp nhất với ngƣời dùng. Hệ thống kết hợp phƣơng
pháp SVD (Singular Value Decomposition), phƣơng pháp phân rã ma trận MF (matrix
factorization), phƣơng pháp phân rã ma trận không âm NN-MF (Nonnegative Matrix
Factorization) nhằm tăng độ chính xác cho hệ thống. Sau khi xây dựng hệ thống và
tích hợp các giải thuật gợi ý, tôi thu thập thông tin từ ngƣời dùng thực nhằm đánh giá
hiệu quả của hệ thống đã đề xuất. Thực nghiệm cho thấy việc ứng dụng giải pháp này
trong hỗ trợ phát triển du lịch là hoàn toàn khả thi.
Từ khóa - Hệ thống gợi ý, kỹ thuật SVD, kỹ thuật phân rã ma trận MF, kỹ
thuật NN-MF.
Số hiệu
Tên bảng Trang
bảng
3.1. Bảng khách hàng 44
3.2. Bảng loại tin 45
3.3. Bảng địa điểm 45
3.4. Bảng quảng cáo 45
3.5. Bảng đánh giá 46
3.6. Bảng loại hình 46
3.7. Bảng đặt lịch tham quan 46
3.8. Bảng quản trị 46
3.9. Bảng Menu 46
3.10. Bảng liên hệ 47
3.11. Bảng tin tức 47
3.12 Tập dữ liệu thử nghiệm 49
3.13 Kết quả chạy thực thi 50
3.14 Kết quả chạy thực thi với cùng bộ dữ liệu input2.txt 50
3.15 Kết quả chạy thực thi 51
3.16 Mức độ cải thiện 52
3.17 Kết quả thử nghiệm tổng quát trên độ đo RMSE 52
DANH MỤC CÁC HÌNH
Số hiệu
Tên hình Trang
hình
1.1. Minh hoạ hệ thống gợi ý 10
1.2 Ma trận đánh giá ngƣời dùng 15
2.1. SVD cho ma trận a khi: m<n (hình trên), và m>n (hình dƣới). 24
Biểu diễn svd dạng thu gọn và biểu diễn ma trận dƣới dạng
2.2. 25
tổng các ma trận có rank bằng 1
2.3. Minh họa kỹ thuật phân rã ma trận 29
2.4. Minh hoạ dự đoán ngƣời dùng thứ 3 cho item thứ 3 31
3.1. Quy trình sử dụng website 36
3.2. Sơ đồ kiến trúc tổng thể của hệ thống 38
3.3. Sơ đồ ca sử dụng tổng quát của hệ thống 39
3.4. Sơ đồ ca sử dụng khách hàng 40
3.5. Sơ đồ ca sử dụng ngƣời quản trị 40
3.6. Sơ đồ hoạt động chức năng gợi ý 41
3.7. Sơ đồ tuần tự chức năng gợi ý 41
3.8. Sơ đồ hoạt động chức năng cập nhật nội dung 42
3.9. Sơ đồ tuần tự chức năng cập nhật nội dung 42
3.10. Sơ đồ hoạt động chức năng đánh giá 43
3.11. Sơ đồ tuần tự chức năng đánh giá 43
3.12. Sơ đồ quan hệ cơ sở dữ liệu 44
3.13. Giao diện liên hệ 47
3.14. Giao diện đăng nhập 48
3.15. Giao diện đăng ký 48
3.16. Giao diện chính hệ thống 49
3.17. Giao diện gợi ý địa điểm du lịch 49
3.18. Giao diện thu thập thông tin đánh giá ngƣời dùng 50
3.19. Giao diện tiện ích 50
3.20. Biểu đồ đƣờng so sánh 3 nghiên cứu với 5 kịch bản thử nghiệm 53
3.21. Biểu đồ cột so sánh 3 nghiên cứu với 5 kịch bản thử nghiệm 53
1
MỞ ĐẦU
1. Lý do chọn đề tài
Du lịch từ lâu đã đƣợc ghi nhận nhƣ một sở thích, một hoạt động nghỉ
ngơi tích cực của con ngƣời. Ngày nay, du lịch đã trở thành một hiện tƣợng kinh
tế - xã hội phổ biến trên toàn thế giới, nó đƣợc xem nhƣ là một nhu cầu không
thể thiếu của con ngƣời và đƣợc coi là một tiêu chuẩn để đánh giá chất lƣợng
cuộc sống. Nhận thức đƣợc xu thế trên, ngành du lịch Quảng Ngãi với nhiều cố
gắng và thành quả góp phần đáng kể vào sự nghiệp phát triển du lịch chung của
quốc gia. Đến với Quảng Ngãi, chúng ta sẽ cảm nhận cái nắng gió của vùng đất
miền Trung với những bờ biển dài tuyệt đẹp và một chiều dài lịch sử với các di
tích lịch sử khá nổi tiếng. Hình ảnh ấy đã thu hút không ít du khách trong và
ngoài nƣớc phải một lần đặt chân đến mảnh đất này. Vì vậy, để tìm cho mình
một điểm du lịch phù hợp du khách cần lời khuyên trong trƣờng hợp này.
May thay, hệ thống gợi ý (Recommender system - RS) có thể chỉ ra các
thông tin phù hợp trong số thông tin khổng lồ chƣa có trật tự, nó sử dụng các kỹ
thuật lọc để chọn ra những loại thông tin đặc trƣng nhằm hiển thị các phần tử
phù hợp với sở thích ngƣời dùng, hệ thống có tích hợp tính năng gợi ý sẽ thu hút
đƣợc ngƣời dùng cả về sự hài lòng và tin cậy. Một số hệ thống gợi ý nhƣ
Amazon, Netflix, IDMb, Youtube, Last.fm, MovieLens,… đã tăng đƣợc số
lƣợng khách truy cập nhờ vào tính năng hỗ trợ quyết định này của hệ thống.
Các kĩ thuật lọc trong RS thƣờng đƣợc phân thành các nhóm: lọc dựa trên
nội dung (content - based filtering, dựa trên user profile), lọc cộng tác
(collaborative filtering – CF, dựa trên dữ liệu đánh giá trong quá khứ của user),
lai ghép (hybrid, kết hợp của hai phƣơng pháp trên) và lọc không cá nhân hóa
(non-personalization). Trong đó, nổi bật và đƣợc sử dụng nhiều nhất là kỹ thuật
lọc cộng tác bởi sự đơn giản trong việc thu thập thông tin (user, item và
feedback) của nó. Ƣu điểm của lọc cộng tác là nó có thể hoạt động tốt trong
trƣờng hợp thiếu hụt thông tin của đối tƣợng, có thể đƣa ra gợi ý mà không cần
thông tin hồ sơ ngƣời dùng (user profile). Chất lƣợng của hệ thống gợi ý cộng
2
tác phụ thuộc vào độ đo tƣơng tự và việc lựa chọn tập láng giềng. Tuy nhiên hạn
chế chính của CF là vấn đề dữ liệu thƣa, khả năng mở rộng và thiếu dữ liệu đánh
giá, vì vậy hệ thống chƣa đƣa ra đƣợc gợi ý tốt nhất.
Để hệ thống gợi ý có thể đƣa ra những dự đoán chính xác hơn ngƣời ta sử
dụng phƣơng pháp phân tích giá trị đơn SVD (Singular Value Decomposition)
vào hệ thống gợi ý. Giải thuật SVD đƣợc Golub và Kahan giới thiệu năm 1965,
đó là một công cụ phân rã ma trận hiệu quả đƣợc sử dụng để giảm hạng (hay số
chiều) của ma trận. Kỹ thuật này đƣợc áp dụng vào nhiều bài toán xử lý văn bản
khác nhau nhƣ tóm tắt văn bản, phát hiện sao chép, lập chỉ mục và truy vấn.
SVD cho phép phân tích một ma trận phức tạp thành ba ma trận thành phần.
Mục đích nhằm đƣa việc giải quyết bài toán liên quan đến ma trận lớn, phức tạp
về những bài toán nhỏ hơn. Vì vậy, ta áp dụng kỹ thuật SVD vào hệ thống gợi ý
để hệ thống gợi ý có thể dự đoán chính xác, phục vụ tốt một số bài toán gợi ý
thực tế, giúp ngƣời dùng đƣa ra quyết định chính xác hơn.
Với những lý do đó, tôi đã quyết định lựa chọn luận văn tốt nghiệp với đề
tài “Nghiên cứu và ứng dụng kỹ thuật SVD vào hệ thống gợi ý” để hệ thống
gợi ý có thể hỗ trợ ngƣời dùng dễ dàng tìm thấy những địa điểm du lịch phù hợp
với họ, giúp ngƣời dùng đƣa ra quyết định chính xác hơn.
2. Mục tiêu và nhiệm vụ của đề tài
2.1. Mục tiêu
- Xây dựng mô hình gợi ý mới sử dụng phƣơng pháp SVD.
- Ứng dụng mô hình đề xuất để xây dựng hệ thống gợi ý.
2.2. Nhiệm vụ
Để hệ thống đạt đƣợc mục tiêu đề ra, đề tài tiến hành giải quyết các nhiệm
vụ sau:
- Tìm hiểu về hệ thống du lịch Quảng Ngãi.
- Nghiên cứu, tìm hiểu kỹ thuật SVD.
- Đề xuất mô hình gợi ý sử dụng kỹ thuật SVD.
- Phân tích và thiết kế hệ thống gợi ý địa điểm du lịch sử dụng kỹ thuật SVD.
3
Trong chƣơng này, trình bày các lý thuyết về du lịch, điểm du lịch, giới
thiệu về du lịch Quảng Ngãi, khái niệm về hệ thống gợi ý, nêu bật tầm quan
trọng của điểm du lịch và giá trị của cơ sở dữ liệu đối với hệ thống gợi ý, đồng
thời phân tích một số website có chức năng tƣơng tự. Chƣơng này là cơ sở lý
luận cho các chƣơng tiếp theo.
1.1 TỔNG QUAN VỀ U LỊCH QUẢNG NGÃI
Du lịch là hành động rời khỏi nơi cƣ trú để đi đến một nơi khác, một môi
trƣờng khác trong một thời gian ngắn nhằm mục đích tìm hiểu, khám phá, vui
chơi, giải trí, nghỉ dƣỡng. Du lịch bao gồm mọi hoạt động của những ngƣời du
hành, tạm trú trong mục đích tham quan, khám phá và tìm hiểu, trải nghiệm
hoặc trong mục đích nghỉ ngơi, giải trí, thƣ giãn cũng nhƣ mục đích hành nghề
và những mục đích khác nữa trong thời gian liên tục nhƣng không vƣợt quá một
năm, ở bên ngoài môi trƣờng sống định cƣ, ngoại trừ mục đích thu lợi nhuận.
Nhƣ vậy, ta có thể hiểu du lịch là sự khởi hành và lƣu trú tạm thời của con ngƣời
ngoài nơi cƣ trú thƣờng xuyên của họ nhằm thỏa mãn những nhu cầu nhƣ giải
trí, nghỉ ngơi…
Điểm du lịch là một phạm vi cụ thể chứa đựng một nguồn lực tự nhiên hay
nhân tạo với mục đích thu hút và thỏa mãn một hoặc nhiều nhu cầu nhƣ nghỉ
ngơi, vui chơi, tham quan … của khách du lịch. Điểm du lịch là trung tâm chú ý
của du khách, là động lực ban đầu thúc đẩy du khách thực hiện quyết định du
lịch và đến với điểm đến có điểm du lịch mà họ mong muốn, nó cũng là nơi trực
tiếp thỏa mãn cũng nhƣ giải quyết nhu cầu du lịch của du khách.
Tỉnh Quảng Ngãi tựa vào dãy núi Trƣờng Sơn hƣớng ra Biển Đông với
chiều dài bờ biển 144 km, phía Bắc giáp tỉnh Quảng Nam với chiều dài đƣờng
địa giới 98 km, phía Nam giáp tỉnh Bình Định với chiều dài đƣờng địa giới
83 km, phía Tây giáp tỉnh Kon Tum với chiều dài đƣờng địa giới 79 km, phía
5
Đông giáp Biển Đông. Nằm ở vị trí trung độ của cả nƣớc, Quảng Ngãi cách thủ
đô Hà Nội 890 km về phía Bắc và cách Thành phố Hồ Chí Minh 824 km về phía
Nam theo đƣờng Quốc lộ 1A, giao thoa 2 miền khí hậu Bắc - Nam, địa hình da
dạng với núi, trung du, đồng bằng ven biển cùng với những ƣu thế về bề dày lịch
sử, văn hóa, con ngƣời, danh lam thắng cảnh... tạo cho Quảng Ngãi tiềm năng
lớn để phát triển du lịch.
Tỉnh Quảng Ngãi có đƣờng bờ biển kéo dài từ An Tân đến Sa Huỳnh nên
có nhiều bãi tắm đẹp nhƣ Mỹ Khê, Sa Huỳnh Khe Hai, Lệ Thủy, Minh Tân.
Quảng Ngãi có các di chỉ văn hóa Sa Huỳnh, Chùa Ông với kiến trúc là sự kết
hợp giữa văn hóa Trung Hoa và văn hóa Việt, Văn hóa ChămPa với Thành cổ
Châu Sa, ngoài khơi có đảo Lý Sơn với các di chỉ văn hóa Sa Huỳnh nhƣ Xóm
Ốc, suối Chình, văn hóa Chămpa. Quảng Ngãi có khu kinh tế Dung Quất, nhà
máy lọc dầu đầu tiên của cả nƣớc, góp phần đẩy mạnh tăng trƣởng kinh tế và
chuyển dịch nhanh cơ cấu kinh tế tỉnh theo hƣớng công nghiệp hoá, hiện đại
hoá. Với 23 di tích lịch sử văn hóa và 2 di tích danh nhân quốc gia hiện có
Quảng Ngãi còn có hơn 100 di tích cấp tỉnh và đang từng bƣớc lập hồ sơ đề nghị
Bộ Văn hóa thông tin công nhận nhằm bảo tồn và phát huy giá trị.
Có lẽ không có tỉnh nào, ngoài các di tích cách mạng, di tích danh nhân, di
tích thắng cảnh, hội đủ các loại hình du lịch: du lịch tâm linh, du lịch di tích lịch
sử cách mạng, du lịch nghỉ dƣỡng biển và du lịch sinh thái, Quảng Ngãi còn có
các di tích căm thù và qua 2 cuộc kháng chiến, Quảng Ngãi cũng là nơi có các
cuộc đấu tranh đi vào lịch sử: Ba Tơ, Trà Bồng, Ba Gia, Vạn Tƣờng, khu chứng
tích Sơn Mỹ. Ngoài ra, tinh hoa văn hóa của cộng đồng các dân tộc anh em: Hrê,
Co, Xơ Ðăng, Thái, Nùng, Tày, Mƣờng, Dao, Ngái, Gia Rai, Êđê, Ba Na, Chăm,
Răglay, Tà Ôi, SiLa, Chứt cũng góp phần tạo nên sự đa dạng, phong phú và hấp
dẫn của du lịch Quảng Ngãi.
Các yếu tố tự nhiên kết hợp với các di sản văn hóa, truyền thống lịch sử của
Quảng Ngãi là nguồn tài nguyên vô cùng quý giá, tạo điều kiện thuận lợi cho
việc phát triển mạnh ngành du lịch. Quảng Ngãi với con ngƣời hiền hòa, thân
6
thiện và hiếu khách, luôn mong đƣợc chào đón du khách từ mọi nơi đến với
Quảng Ngãi.
Hệ thống thông tin Quảng Ngãi đã có các trang Website hỗ trợ đạt tour,
các hệ thống tra cứu trực tuyến. Các hệ thống này đã góp phần quảng bá, cung
cấp thông tin đến với du khách gần xa. Tuy nhiên các hệ thống này thiếu hỗ trợ,
cung cấp đánh giá và giới thiệu quảng bá còn nhiều hạn chế. Ngành du lịch còn
non trẻ, xuất phát điểm rất thấp; công tác thu hút đầu tƣ còn rất hạn chế; hệ
thống các doanh nghiệp hoạt động kinh doanh du lịch trong tỉnh còn hạn chế,
quy mô nhỏ, tính liên kết còn thấp; công tác quảng bá, xúc tiến du lịch và hạ
tầng kỹ thuật du lịch tại các khu du lịch, điểm du lịch còn nhiều hạn chế. Với
những lí do trên ta có thể sử dụng hệ thống gợi ý để du khách có thể đƣa ra
những lựa chọn tốt nhất.
Hiện nay, ở Việt Nam, có rất nhiều website cung cấp thông tin về du lịch.
Tuy nhiên, hầu hết các website đều thuộc vào hai dạng chính dƣới đây:
Các trang bán tour trực tuyến:
Các website này cung cấp các thông tin về giá tour, giá vé, giá khách sạn,
hành trình tour… và các dịch vụ liên quan, tập trung quảng cáo và thúc đẩy việc
bán tour cho đơn vị lữ hành là chính.
Website tiêu biểu ở dạng này là travel.com.vn là trang mạng bán tour trực
tuyến của đơn vị lữ hành Vietravel. Trang này cho phép ngƣời dùng tìm tour
theo một số thông tin nhƣ : nơi đến, thời gian khởi hành, giá tour, khuyến mãi…
sau đó đặt tour và thanh toán trực tuyến ngay trên website. Trong thông tin về
tour du lịch, ngoài các vấn đề về giá cả hay khuyến mãi thì website cũng đƣa ra
thông tin tại các điểm du lịch nhƣ đến điểm du lịch nào, làm gì, xem gì, mua gì ở
đó… Bên cạnh đó, website cũng cho phép ngƣời dùng viết lại ý kiến hay thắc
mắc của mình tại mỗi tour để đƣợc giải đáp.
Các website này có thiết kế giao diện đẹp mắt, thuận tiện cho ngƣời dùng,
nội dung về các tour du lịch khá đầy đủ, chi tiết, phạm vi các điểm du lịch rộng
lớn cả trong và ngoài nƣớc.
7
Tuy nhiên, thông tin về các điểm du lịch còn sơ sài, chỉ thấy đƣợc tour giá
rẻ mà không thấy đƣợc tour đƣợc ƣa chuộng, không thấy đƣợc thái độ của khách
đối với các điểm du lịch trong mỗi tour.
Cẩm nang du lịch:
So với các trang bán tour trực tuyến thì những website này tập trung trình
bày nhiều hơn về điểm đến và điểm du lịch, nó cung cấp những thông tin về
chùm điểm du lịch, ẩm thực, văn hóa…tại mỗi điểm đến, có thu thập ý kiến
đánh giá của ngƣời dùng. Tuy nhiên, các trang web dạng này vẫn mang tính
quảng bá và thúc đẩy tăng doanh thu cho nhà cung cấp, chứ chƣa tập trung vào
tƣ vấn cho ngƣời dùng.
Điểm mạnh là blog có giao diện đơn giản nhƣng thể hiện đƣợc đầy đủ nội
dung, blog cũng giới thiệu, miêu tả về một số điểm du lịch khá đầy đủ và hấp
dẫn, đƣa thêm thông tin về các điểm ăn uống, phƣơng tiện đi lại, khách sạn gần
các điểm du lịch. Các điểm du lịch đƣợc phân loại theo điểm đến một cách chi
tiết, cho phép ngƣời dùng đánh giá, like và chia sẻ qua facebook. Nhƣng số
lƣợng và phạm vi các điểm du lịch đƣợc giới thiệu là quá lớn nên blog chỉ đƣa
nội dung chi tiết tại một số điểm du lịch còn lại hầu nhƣ mang tính chất giới
thiệu, không có nhiều hình ảnh cũng nhƣ các thông tin về địa chỉ cũng nhƣ cách
thức liên hệ vì thế sẽ gây khó khăn cho những khách du lịch cá nhân hoặc tự túc.
Tuy có phần đánh giá của ngƣời dùng nhƣng không có phần tạo tài khoản ngƣời
dùng nên cũng khó sử dụng đƣợc dữ liệu này cho hệ thống gợi ý du lịch.
Nhƣ vậy, các website du lịch ở Việt Nam hiện nay chủ yếu tập trung hỗ
trợ công việc đặt tour, bán tour cho các đơn vị lữ hành. Mặc dù thông tin ngƣời
dùng cùng với đánh giá của họ là nguồn CSDL quan trọng cho hệ thống gợi ý
du lịch, song trên thực tế các hệ thống gợi ý du lịch ở những website này vẫn
còn nghiêng về phục vụ lợi ích của các nhà cung cấp nên không chú trọng việc
thu thập thông tin cá nhân của ngƣời dùng và cũng không có một nguồn CSDL
nào phù hợp để sử dụng. Dữ liệu đánh giá của ngƣời dùng tại các website này là
không đầy đủ dẫn đến việc gây khó khăn cho các thống kê, hoặc làm giảm chất
8
lƣợng của kết quả gợi ý. Một đặc điểm khác đó là phạm vi điểm đến và điểm du
lịch đƣợc giới thiệu tại các website du lịch hiện nay quá rộng lớn, cả trong
nƣớc, ngoài nƣớc và ở các châu lục khác nhau, đây là thế mạnh trong du lịch
tuy nhiên nó cũng tạo ra một nhƣợc điểm lớn: dữ liệu, thông tin cho mỗi điểm
đến hay điểm du lịch thƣờng ít đƣợc đầy đủ và hoàn thiện. Do đó, luận văn đã
đề xuất phạm vi nội dung tập trung vào một khu vực cụ thể đó là Quảng Ngãi,
vùng đất du lịch tiềm năng chƣa đƣợc khai thác hiệu quả. Từ đây, việc xây
dựng một website nhằm thu thập thông tin đánh giá về một số địa điểm du lịch
ở Quảng Ngãi làm CSDL cho hệ thống gợi ý địa điểm du lịch là vô cùng cần
thiết.
1.2. C C PHƢƠNG PH P GỢI Ý
Có rất nhiều cách để gợi ý, ƣớ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
[10], các hệ thống gợi ý thƣờng đƣợc phân ba loại dựa trên cách nó dùng để ƣớc
lƣợng hạng của sản phẩm:
- Dựa trên nội dung (content-based): ngƣời dùng đƣợc gợi ý những sản
phẩm tƣơng tự nhƣ các sản phẩm từng đƣợc họ đánh giá cao.
- Cộng tác (collaborative): ngƣời dùng đƣợc gợi ý những sản phẩm mà
những ngƣời cùng sở thích với họ đánh giá cao.
- Lai ghép (hybrid): kết hợp cả phƣơng pháp dựa trên.
1.2.1. Phƣơng pháp gợi ý dựa trên nội dung
Hệ tƣ vấn dựa trên lọc nội dung là mô hình tƣ vấn thực hiện dựa trên việc
so sánh nội dung thông tin mô tả sản phẩm, nhằm tìm ra các sản phẩm tƣơng tự
với những sản phẩm mà ngƣời dùng đã từng quan tâm để giới thiệu cho họ
những sản phẩm này [2]. Ví dụ, trong hệ tƣ vấn phim, hệ thống sẽ tìm ra các đặc
tính chung của các phim nhƣ diễn viên, đạo diễn, thể loại mà ngƣời đã đánh giá
cao trong quá khứ để giới thiệu các phim có đặc tính tƣơng tự mà ngƣời dùng
chƣa xem. Các phƣơng pháp tiếp cận cho mô hình tƣ vấn dựa trên lọc nội dung
có nguồn gốc từ lĩnh vực truy vấn thông tin, trong đó mỗi sản phẩm đƣợc biểu
9
diễn bằng một hồ sơ sản phẩm, mỗi ngƣời dùng đƣợc biểu diễn bằng một hồ sơ
ngƣời dùng. Các phƣơng pháp dự đoán của mô hình này thực hiện dựa vào việc
xem xét các hồ sơ sản phẩm có mức độ phù hợp cao với hồ sơ ngƣời dùng.
Phƣơng pháp gợi ý dựa vào nội có một điểm mạnh sau: phƣơng pháp
không yêu cầu số lƣợng ngƣời dùng lớn; dự vào thông tin có sẵn để thực hiện
gợi ý các sản phẩm mới. Tuy nhiên, phƣơng pháp này còn chứa một dãy nhƣợc
điểm sau: Quá tập trung chuyên ngành - hệ tƣ vấn dựa trên lọc nội dung có
khuynh hƣớng giới thiệu các sản phẩm có sự tƣơng đồng với các sản phẩm mà
ngƣời dùng đã mua hoặc xếp hạng cao.Ví dụ, một độc giả quan tâm đến các bài
báo thuộc lĩnh vực kinh tế sẽ rất khó nhận đƣợc giới thiệu các bài báo thuộc lĩnh
vực thể thao hoặc công nghệ; Vấn đề trích chọn đặc trưng - hệ tƣ vấn dựa trên
lọc nội dung kế thừa và phát triển chủ yếu dựa vào các phƣơng pháp trích chọn
đặc trƣng trong lĩnh vực truy vấn thông tin. Để có một tập các đặc trƣng đầy đủ,
các thuộc tính sản phẩm và hồ sơ ngƣời dùng phải đƣợc biểu diễn dƣới dạng phù
hợp để máy tính có thể tự động phân tích, tính toán trọng số các đặc trƣng nội
dung. Vấn đề này sẽ càng khó khăn hơn khi phải trích chọn các đặc trƣng nội
dung cho các đối tƣợng dữ liệu đa phƣơng tiện nhƣ hình ảnh, âm thanh hay dịch
vụ.
1.2.2. Phƣơng pháp gợi ý dựa trên lọc cộng tác
Hệ tƣ vấn dựa trên lọc cộng tác (collaborative filtering) [5], [6] đã đƣợc
ứng dụng thành công trong nhiều ứng dụng thƣơng mại điện tử nhƣ Amazon [4],
Netflix [3]. Nó là một trong những giải pháp hiệu quả để giải quyết vấn đề bùng
nổ thông tin cho các hệ thống trực tuyến nơi mà số lƣợng ngƣời dùng tăng lên
rất nhanh [2]. Hệ tƣ vấn dựa trên lọc cộng tác giới thiệu các sản phẩm cho ngƣời
dùng cụ thể dựa trên sự tƣơng đồng của các sản phẩm đã đƣợc xếp hạng bởi các
ngƣời dùng khác. Hệ thống tìm các sản phẩm cho các ngƣời dùng khác mà họ có
cùng sở thích với ngƣời dùng cần tƣ vấn. Ví dụ, trong hệ thống lọc cộng tác giới
thiệu phim cho ngƣời dùng, hệ thống tìm nhóm ngƣời dùng trong quá khứ có
cùng sở thích với ngƣời dùng cần tƣ vấn. Sau đó, hệ thống giới thiệu các phim
10
đƣợc đánh giá cao bởi nhóm ngƣời dùng này cho ngƣời dùng cần tƣ vấn. Hệ tƣ
vấn dựa trên lọc cộng tác đƣợc phân chia thành hai nhóm:
- Nhóm dựa trên bộ nhớ [6]: Các hệ tƣ vấn thuộc nhóm này sử dụng toàn
bộ các sản phẩm đƣợc xếp hạng để sinh ra kết quả tƣ vấn hoặc dự đoán.
- Nhóm dựa trên mô hình [6]: Các hệ tƣ vấn thuộc nhóm này cho phép hệ
thống học cách nhận dạng mẫu trong tập dữ liệu để sinh ra kết quả tƣ vấn hoặc
dự đoán.
Phƣơng pháp gợi ý dựa vào lọc cộng tác có ƣu điểm: việc tính toán tƣơng
đối đơn giản, nhanh chóng và hiệu quả trong quá trình gợi ý. Bởi vì hệ này
không yêu cầu mô tả nội dung một cách tƣờng minh mà chỉ dựa vào sự đánh giá
của ngƣời dùng để ƣớc lƣợng xem có bao nhiêu ngƣời dùng đồng ý và không
đồng ý. Tuy nhiên, phƣơng pháp này tồn tại các nhƣợc điểm sau [2]: Vấn đề
người dùng mới (New User Problem)- Giống nhƣ hệ tƣ vấn dựa trên lọc nội
dung, để tìm chính xác các sản phẩm ngƣời dùng quan tâm, hệ tƣ vấn dựa trên
lọc cộng tác phải ƣớc lƣợng đƣợc sở thích của ngƣời dùng đối với các sản phẩm
mới thông qua những đánh giá của họ trong quá khứ. Trong trƣờng hợp một
ngƣời dùng mới, chƣa có bất cứ đánh giá nào cho các sản phẩm, khi đó hệ thống
không thể đƣa ra những kết quả tƣ vấn chính xác cho ngƣời dùng này; Vấn đề
sản phẩm mới (New Item Problem)- trong hệ thống thƣơng mại điện tử, các sản
phẩm thƣờng xuyên đƣợc bổ sung mới. Một sản phẩm mới sẽ không có bất cứ
đánh giá nào của ngƣời dung cho sản phẩm này. Do đó, hệ thống không thể tƣ
vấn sản phẩm này cho bất kỳ ngƣời dùng nào trong hệ thống; Vấn đề dữ liệu
thưa (Sparsity Data Problem)- kết quả dự đoán của hệ tƣ vấn dựa trên lọc cộng
tác phụ thuộc chủ yếu vào các đánh giá của ngƣời dùng đối với các sản phẩm
trong quá khứ (ma trận xếp hạng của ngƣời dùng cho các sản phẩm). Tuy nhiên,
trong các hệ thống thực tế, số lƣợng ngƣời dùng và số lƣợng sản phẩm là rất lớn
(hàng triệu ngƣời dùng và hàng nghìn sản phẩm), nhƣng mỗi ngƣời dùng chỉ
đánh giá trên một số sản phẩm mà họ quan tâm và mỗi sản phẩm chỉ đƣợc đánh
11
giá bởi một nhóm ngƣời dùng. Vì thế ma trận xếp hạng của ngƣời dùng cho các
sản phẩm luôn là một ma trận dữ liệu thƣa.
1.2.3. Phƣơng pháp gợi ý lai
Một hệ thống lai là sự kết hợp kỹ thuật lọc nội dung và lọc cộng tác cố gắng
sử dụng ƣu điểm của mỗi kỹ thuật. Ví dụ, phƣơng pháp lọc cộng tác gặp vấn đề
với các sản phẩm mới, nó không có thể gợi ý đối với các sản phẩm mà không có
xếp hạng. Điều này lại đơn giản đối với phƣơng pháp tiếp cận dựa trên nội dung
khi việc dự đoán cho các sản phẩm mới dựa trên mô tả của ngƣời dùng là tính
năng có sẵn và khá dễ dàng.
Với hai (hoặc hơn) kỹ thuật gợi ý cơ bản, một số cách đã đƣợc đề xuất cho
việc kết hợp chúng để tạo ra một hệ thống lai mới.
1.3 HỆ THỐNG GỢI Ý
1.3.1. Giới thiệu
Hệ thống gợi ý là hệ thống hỗ trợ ra quyết định nhằm gợi ý các thông tin
liên quan đến ngƣời dùng một cách dễ dàng và nhanh chóng, phù hợp với từng
ngƣời dùng. Hệ thống bao gồm các kỹ thuật và công cụ phần mềm nhằm đƣa ra
những gợi ý cho ngƣời dùng, đáp ứng nhu cầu của họ về một sản phẩm, dịch vụ
nào đó trên Internet. Những gợi ý đƣợc cung cấp nhằm hỗ trợ ngƣời dùng đƣa ra
quyết định lựa chọn những sản phẩm, dịch vụ phù hợp với nhu cầu và thị hiếu
của mình, chẳng hạn nhƣ: mua sản phẩm nào, nghe thể loại nhạc gì hay tin tức
trực tuyến nào nên đọc, ...
Hệ thống gợi ý thông thƣờng sẽ tập trung vào một mục tin hay sản phẩm
(item) cụ thể nào đó (CD, tin tức) theo thiết kế và giao diện đồ họa ngƣời dùng
kết hợp với kỹ thuật, thuật toán gợi ý nhằm sinh ra các gợi ý tuỳ chỉnh, cung cấp
những gợi ý có ích và hiệu quả cho sản phẩm đó .
Hệ thống gợi ý nhằm hƣớng dẫn những ngƣời dùng thiếu kinh nghiệm hoặc
chƣa đủ thẩm quyền để đánh giá số lƣợng áp đảo các item thay thế. Ví dụ, hệ
thống gợi ý giúp ngƣời dùng lựa chọn sách trên trang web của Amazon đã sử
dụng hệ thống gợi ý để cá nhân hoá các cửa hàng trực tuyến cho từng ngƣời
12
dùng (user). Khi hệ thống gợi ý đƣợc cá nhân hoá thì mọi ngƣời dùng hay nhóm
ngƣời dùng sẽ nhận đƣợc các gợi ý khác nhau từ những cá nhân khác.
Mô hình đơn giản nhất của hệ thống gợi ý khi đƣợc cá nhân hoá là danh
sách xếp hạng các sản phẩm. Khi thực hiện bảng xếp hạng này, hệ thống gợi ý
sẽ thử dự đoán những 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à nhu cầu của họ. Để thực hiện đƣợc nhiệm vụ đó, hệ thống gợi ý
thu thập sở thích của ngƣời dùng đƣợc thể hiện qua hệ thống (xếp hạng cho các
sản phẩm) hoặc suy ra từ cách giải thích hành động của ngƣời dùng - là một tính
năng ẩn có ƣu tiên cho phần hiển thị của trang hoặc xem xét chuyển hƣớng đến
một trang khác.
Ví dụ minh họa cho hệ thống gợi ý: Một ngƣời dùng đăng nhập vào một hệ
thống website đọc sách, ngƣời này cần xem một quyển sách về văn học nhƣng
không biết là nên xem quyển sách nào, hệ thống website cần gợi ý cho ngƣời đó
xem một hoặc vài quyển sách mà dự đoán rằng ngƣời này sẽ thích quyển sách
mà đƣợc hệ thống gợi ý. Để gợi ý đƣợc cho ngƣời dùng, hệ thống cần thu thập
các thông tin về ngƣời dùng và các ngƣời dùng khác, thông tin các quyển sách.
Có một vài cách gợi ý truyền thống đơn giản nhất nhƣ chọn những quyển sách
đƣợc nhiều ngƣời ƣa thích nhất hoặc chọn những quyển mới nhất để gợi ý. Tuy
nhiên để nâng cao chất lƣợng của gợi ý cho ngƣời dùng, hệ thống gợi ý cần sử
dụng các thông tin của tất cả những ngƣời dùng và thông tin của tất cả các sản
phẩm, sử dụng các thuật toán để đƣa ra gợi ý phù hợp nhất cho ngƣời dùng.
13
pháp trong xây dựng Hệ thống gợi ý bài hát dựa vào phản hổi tiềm ẩn từ ngƣời
dùng; đề xuất xây dựng hệ thống gợi ý phim dựa trên mô hình.
Tuy vậy, du lịch Quảng Ngãi vẫn chƣa thấy xuất hiện các nghiên cứu về
RS. Trong luận văn này, tôi giới thiệu sơ lƣợc về hệ thống gợi ý, các phƣơng
pháp cơ bản đƣợc sử dụng phổ biến nhất trong RS, sau đó đi sâu vào tìm hiểu
chi tiết phƣơng pháp, kỹ thuật nổi trội nhất hiện nay trong RS là kỹ thật SVD
(Singular Value Decomposition), kỹ thuật phân rã ma trận (matrix factorization
– MF), kỹ thuật NN-MF (Nonnegative Matrix Factorization) và để xây dựng hệ
thống gợi ý địa điểm du lịch tại Quảng Ngãi.
1.3.2 . Bài toán tổng quát của hệ thống gợi ý
Bài toán tƣ vấn đƣợc coi là bài ƣớc lƣợng trƣớc hạng (rating) của các sản
phẩm chƣa đƣợc ngƣời dùng xem xét [9]. Việc ƣớc lƣợng này thƣờng đƣợc dựa
trên những đánh giá đã có của chính ngƣời dùng đó hoặc những ngƣời dùng
khác. Những sản phẩm có hạng cao nhất sẽ đƣợc dùng để tƣ vấn. Một cách hình
thức, bài toán tƣ vấn đƣợc mô tả nhƣ sau:
i1 i2 … in
u1 r1,1 r1,2 … r1,n
u2 r2,1 r2, 2 … r2,n
… … … … …
um rm ,1 rm , 2 … rm,n
Tuy nhiên, cách đo độ phù hợp trong các hệ thống tƣ vấn có thể làm một hàm
bất kỳ tùy thuộc vào lĩnh vực ứng dụng cụ thể. Giá trị của hàm f(u,i) có thể đƣợc
xác định bởi ngƣời dùng hoặc đƣợc tính toán bởi công thức nào đó. Mỗi ngƣời
dùng trong không gian U đƣợc xác định bởi một hồ sơ ngƣời dùng (user profile).
Hồ sơ ngƣời dùng này có thể chỉ gồm một trƣờng mã số ngƣời dùng (user id)
duy nhất. Tƣơng tự nhƣ thế, mỗi sản phẩm trong không gian I cũng đƣợc xác
định bởi một tập các đặc trƣng. Ví dụ, trong hệ thống tƣ vấn các phim cho ngƣời
xem, đặc trƣng của mỗi phim có thể là: thể loại, đạo diễn, diễn viên.
Vấn đề chính của hệ tƣ vấn là hàm f(u,i) không đƣợc xác định trên toàn
không gian U x I mà chỉ trên một miền nhỏ của không gian đó [9]. Điều này dẫn
tới việc hàm f(u,i) phải đƣợc ngoại suy trong không gian U x I. Thông thƣờng,
độ phù hợp đƣợc thể hiện bằng điểm và chỉ xác định trên tập các sản phẩm đã
từng đƣợc ngƣời dùng đánh giá từ trƣớc thƣờng rất nhỏ. Có rất nhiều cách để dự
đoán, ƣớc lƣợng hạng hoặc điểm cho các sản phẩm nhƣ sử dụng học máy, lý
thuyết xấp sỉ, các thuật toán dựa trên kinh nghiệm và các thuật toán khác. Các hệ
thống tƣ vấn thƣờng đƣợc phân thành nhiều loại dựa trên cách nó sử dụng các
thuật toán để ƣớc lƣợng hạng hoặc điểm của các sản phẩm.
1.3.3 . Chức năng hệ thống gợi ý
Trƣớc hết, chúng ta phải phân biệt giữa vai trò hệ gợi ý của nhà cung cấp
so với vai trò hệ gợi ý của ngƣời dùng. Ví dụ, một hệ thống gợi ý du lịch thƣờng
đƣợc giới thiệu bởi một trung gian du lịch hoặc một tổ chức quản lý để tăng
doanh thu của nó qua việc cho thuê phòng khách sạn nhiều hơn hoặc để tăng số
lƣợng khách du lịch. Trong khi đó, động cơ của ngƣời dùng khi truy cập vào hai
hệ thống là tìm một khách sạn phù hợp với nhu cầu, túi tiền cùng các sự kiện thú
vị, các điểm hấp dẫn khi đến thăm một điểm đến.
Dƣới đây là một số chức năng của hệ thống gợi ý.
Đối với nhà cung cấp:
- Tăng số lượng các sản phẩm bán ra cho các hệ thống thương mại điện tử:
Đây có lẽ là chức năng quan trọng nhất của hệ thống gợi ý. Thay vì ngƣời dùng
16
chỉ mua một sản phẩm mà họ cần, họ đƣợc gợi ý mua những sản phẩm „có thể
họ cũng quan tâm‟ mà bản thân họ không nhận ra. Hệ thống gợi ý tìm ra những
„mối quan tâm ẩn‟. Bằng cách đó, hệ thống gợi ý làm gia tăng nhu cầu của ngƣời
dùng và gia tăng số lƣợng sản phẩm bán ra. Tƣơng tự đối với các hệ thống phi
thƣơng mại, hệ thống gợi ý sẽ giúp ngƣời dùng tiếp cận với nhiều đối tƣợng
thông tin mang tính đa chiều và đƣợc nhiều ngƣời quan tâm hơn.
- Bán các sản phẩm đa dạng hơn trên các hệ thống thương mại điện tử:
Đây là chức năng quan trọng thứ hai của hệ thống gợi ý. Hầu hết các hệ thống
thƣơng mại đều có các sản phẩm hết sức là đa dạng và phong phú. Khi nắm bắt
đƣợc nhu cầu của ngƣời dùng, hệ thống gợi ý dễ dàng mang đến sự đa dạng
trong sự lựa chọn hàng hóa. Từ đó đòi hỏi các hệ thống thƣơng mại điện tử cung
cấp nhiều sản phẩm đa dạng và phù hợp với ngƣời dùng hơn.
- Tăng sự hài lòng người dùng: Vai trò chủ đạo của hệ thống gợi ý là hiểu
nhu cầu của ngƣời dùng, gợi ý cho họ những thứ họ cần... Ngƣời dùng sẽ tìm
thấy các gợi ý thú vị, có hiệu quả, chính xác, gợi ý kịp thời và một giao diện đẹp
có thể tối ƣu việc sử dụng và làm tăng sự hài lòng của ngƣời dùng trong hệ
thống. Chính vì vậy hệ thống gợi ý tăng sự hài lòng của ngƣời dùng trên hệ
thống và lựa chọn ƣu tiên khi họ có những băn khoăn hoặc khi chƣa có kiến thức
về sản phẩm.
- Tăng độ tin cậy, độ trung thực của người dùng: Một khi hệ thống gợi ý
cho ngƣời dùng những lựa chọn và họ hài lòng về những gợi ý đó thì lòng tin
của họ đối với hệ thống (nơi mà giúp họ tìm ra những thứ họ thực sự quan tâm)
đƣợc nâng lên một cách đáng kể. Đây thật sự là một điều thích thú và thu hút
ngƣời dùng. Có một điểm quan trọng là hệ thống gợi ý hoạt động dựa trên
những xếp hạng thật từ chính bản thân ngƣời dùng trong quá khứ. Do đó, khi
ngƣời dùng càng tin cậy vào hệ thống, đƣa ra những đánh giá trung thực cho các
sản phẩm, hệ thống sẽ mang lại cho ngƣời dùng nhiều gợi ý chính xác hơn, phù
hợp với nhu cầu, sở thích của họ.
17
- Hiểu rõ những gì người dùng muốn: Đây là một chức năng quan trọng
khác của hệ thống gợi ý đƣợc thừa kế từ nhiều ứng dụng khác nhau là thu thập
hoặc dự đoán sở thích ngƣời dùng thông qua hệ thống. Điều này giúp cho các
nhà phát triển dịch vụ có thể quyết định tái sử dụng các item theo mục tiêu cải
thiện quản lý cửa hàng hoặc tiến hành sản xuất.
Đối với ngƣời dùng:
- 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.
- 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 đủ thông tin để
đƣ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ý.
- h 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ên 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 ý.
18
- Xếp hạng thứ tự chẳng hạn nhƣ: hoàn toàn đồng ý, đồng ý, trung lập,
không đồng ý. Ở đây, ngƣời dùng đƣợc yêu cầu chọn thuật ngữ tốt nhất cho ý
kiến của mình.
- Xếp hạng nhị phân lựa chọn mô hình trong đó ngƣời dùng chỉ việc chọn
mục nào đó tốt hay xấu, thích hay không thích,...
- Hoặc có đánh giá hoặc không đánh giá
Một hình thức khác để đánh giá là gộp tất cả các thẻ liên quan giữa ngƣời
dùng với các item của hệ thống. Ví dụ, trong hệ thống gợi ý của MovieLens các
thẻ biểu diễn việc ngƣời dùng cảm thấy thế nào sau khi xem một bộ phim, có thể
là "quá dài" hoặc "hành động".
Trong các giao dịch xếp hàng dƣới dạng ẩn, mục đích của hệ thống là để
đƣa ra ý kiến ngƣời dùng dựa trên cảc hành động của ngƣời dùng đó. Ví dụ,
nếu ngƣời dùng nhập từ khóa "Yoga" ở Amazon thì anh ta sẽ đƣợc cung cấp
một danh sách dài các cuốn sách có liên quan. Mặt khác, ngƣời dùng có thể
click vào một cuốn sách nào đó trong danh sách để nhận đƣợc thêm thông tin.
Ở điểm này, hệ thống có thể suy ra đƣợc ngƣời dùng có phần quan tâm đến
cuốn sách đó.
K T LUẬN CHƢƠNG 1
Trong chƣơng 1, luận văn đã trình bày tổng quan về du lịch Quảng Ngãi,
những điểm đạt đƣợc và những hạn chế của du lịch Quảng Ngãi; một số website
du lịch Việt Nam, những đặc điểm của chúng; các phƣơng pháp gợi ý. Ngoài ra,
trong chƣơng đã giới thiệu về hệ thống gợi ý, nêu chức năng, phát biểu bài toán
tổng quát của hệ thống gợi ý, cơ sở dữ liệu và các nguồn tri thức để có thể ứng
dụng các kỹ thuật vào hệ thống gợi ý.
21
Trong hệ thống gợi ý các địa điểm du lịch, sau khi hoàn thành bƣớc mô
hình hoá dữ liệu, một ma trận thƣa đƣợc tạo ra. Ma trận thƣa này có kích thƣớc
rất lớn, bao gồm tất cả các đặc trƣng trong tập dữ liệu đem huấn luyện. Do số
chiều của các vectơ cột quá lớn dẫn đến tồn tại nhiều đặc trƣng dƣ thừa, không
có giúp ích gì cho việc lựa chọn địa điểm thích hợp, đôi khi gây nhiễu làm ảnh
hƣởng đến kết quả phân loại. Do giải thuật SVD là ý tƣởng giảm số chiều của
ma trận ban đầu, rút gọn về số chiều nhỏ hơn rất nhiều, làm nổi trội các giá trị
đặc trƣng và loại bỏ đƣợc các đặc trƣng nhiễu. Vì thế, SVD đƣợc áp dụng rộng
rãi vào bài toán gợi ý.
2.1.2. Phát biểu bài toán
Các hệ thống gợi ý có thể áp dụng cho nhiều lĩnh vực khác nhau. Tuy
nhiên, bài toán có thể đƣợc phát biểu dƣới dạng toán học nhƣ sau:
U là tập ngƣời dùng trong hệ thống.
I là tập các sản phẩm của hệ thống đó.
Trong đó:
U là ma trận n x m vec-tơ riêng phải và là U ma trận trực giao.
∑ là ma trận đƣờng chéo n x m chứa các giá trị riêng của ma trận M.
V là ma trận n x m vec-tơ riêng trái và V cũng là ma trận trực giao.
23
Trên hình 2.1 trình bày ma trận A kích thƣớc mxn ( trong đó : m<n (hình
trên), và m>n (hình dƣới)). Σ là một ma trận đƣờng chéo với các phần tử trên đó
giảm dần và không âm. Màu đỏ càng đậm thể hiện giá trị càng cao. Các ô màu
trắng trên ma trận này thể hiện giá trị 0.
2.1.4. Hƣớng tiếp cận Truncated SVD
Để giải quyết bài toán đặt ra thì chúng ta ứng dụng phƣơng pháp SGD để
triển khai SVD nhằm mục đích phân rã ma trận X và tìm kiếm đƣợc ma trận Y
X.
Ta có một ma trận Am x n luôn có thể khai triển thành:
Am x n = U VT (1)
Ta thấy :
Vì tính chất của ma trận đƣờng chéo nên ta có thể khai triển Am x n :
Am x n = U √ √ VT
Đặt:
X= U √
YT =√ VT
Từ đó ta có thể viết lại biểu thức (1) : Am x n = XYT
Ta có hàm mất mát của ma trận Am x n :
24
yi (1 ) yi j ( Ai , j xi y Tj ) x j
Trong đó :
- tốc độ học
- hàm chính tắc
Bằng tính chất của ma trận U, , V ta có thể viêt lại biểu thức (1) dƣới
dạng tổng của các ma trận rank 1:
Dƣới đây là một định lý thú vị. Định lý này nói rằng sai số do cách xấp xỉ
trên chính là căn bậc hai của tổng bình phƣơng của các singular values mà ta đã
bỏ qua ở phần cuối của Σ. Ở đây sai số đƣợc định nghĩa là Frobineous norm của
hiệu hai ma trận:
Việc xấp xỉ ma trận A bằng tổng của k<r ma trận có rank 1 còn đƣợc gọi là
Truncated SVD. Bằng cách này ta chỉ tạo ngẫu nhiên và cập nhập trên từng hàng
của ma trận X và Y.
2.1.5. Thuật toán SV
Dữ liệu vào: Là ma trận Amxn chứa giá trị và có những điểm chƣa đƣợc
đánh giá.
Dữ liệu ra: Là các ma trận U, ∑, VT và ma trận Rmxn là tích của 3 ma trận
U, ∑, VT chứa các điểm đã đƣợc đánh giá.
Các siêu tham số : maxOrder số chiều tối đa của 2 ma trận X và Y;
initValue giá trị dùng trong việc khởi tạo cho các phân tử của X và Y,
initLearningRate giá trị khởi gán của mức độ học tập, annealingRate tốc độ tôi
luyện, maxEpochs số lần lặp tối đa, regularization hàm chính tắc,
minImprovement là điều kiện để hội tụ.
26
Thuật Toán: Thuật toán được trình bày mả giả trong thủ t c Single_Value_
Decompsiton:
Procedure Single_Value_ Decompsiton(maxOrder, initValue, M,
initLearningRate, annealingRate, maxEpochs, regularization,minImprovement )
Begin
for (i,j thuộc M[i][j])) cache[i][j] = 0;end for
for (k = 0; k < maxOrder; ++k)
rmseLast = infinity;
// Khởi tạo giá trị ngẫu nhiên theo phân phối Gauss.
for (i < m) U'[i][k] = random.nextGaussian()*initValue; end for
// Khởi tạo giá trị ngẫu nhiên theo phân phối Gauss.
for (j < n) V'[j] [k] = random.nextGaussian()*initValue; end for
for (epoch = 0; epoch < maxEpochs && chƣa hội tu; ++epoch)
learningRate[epoch] = initialLearningRate / (1 + epoch/annealingRate)
sumOfSquareErrors = 0;
for (i,j thuộc M[i][j])
error = M[i][j] – (cache[i][j] + U'[i][k] * V'[j][k] )
// tính toán sai số
sumOfSquareErrors += error * error;
uTemp = U'[i][k]
vTemp = V'[j][k]
//Cập nhập giá trị cho U'[i][k]
U'[i][k]+=learningRate[epoch]*(error*vTemp-regularization*uTemp)
//Cập nhập giá trị cho V'[j][k]
V'[j][k]+=learningRate[epoch]*(error*uTemp-regularization*vTemp)
End for
Rmse = √
Break nếu đã hội tụ;
rmseLast =Rmse ;
End for
for (i,j thuộc M[i][j])) cache[i][j] = cache[i][j] + U'k[i] * V'k[j] ;end for
End for
Gán U‟ và V‟ bằng chuyển vị của chúng
Từ U‟ , V‟ tối ƣu hóa để đƣợc U , , V
Return {U , , V}
End procedure;
27
Nhƣ vậy, vấn đề then chốt của kỹ thuật phân rã ma trận là làm thế nào để
tìm đƣợc giá trị của hai tham số W và H. Hai tham số này có đƣợc bằng cách tối
ƣu hóa hàm mục tiêu (objective function). Trong hệ thống gợi ý, hàm mục tiêu
của phân rã ma trận hay đƣợc sử dụng nhƣ sau :
k
Một trong những kỹ thuật có thể dùng để tối ƣu hóa hàm mục tiêu là giảm
gradient ngẫu nhiên (Stochastic Gradient Descent).
Để tối ƣu hóa hàm mục tiêu (2.2), trƣớc tiên ta khởi tạo các giá trị ngẫu
nhiên cho W và H, sau đó từng bƣớc cập nhật giá trị của chúng cho đến khi hàm
mục tiêu hội tụ về giá trị nhỏ nhất (convergence). Để làm đƣợc điều đó, ta cần
phải xác định là nên tăng hay nên giảm các giá trị của W và H qua mỗi lần cập
nhật, do vậy cần phải tìm đạo hàm từng phần của chúng:
OMF = 2(rui rˆui )hik
w uk
OMF= 2(rui rˆui ) wuk
hik
Sau khi tìm đạo hàm, chúng ta cần giảm thiểu tối đa độ lỗi này và cập nhập
lại cho wuk và hik đƣợc lặp đi lặp lại (tối ƣu hoá bằng kỹ thuật Stochastic
Gradient Descent- kỹ thuật giảm gradient ngẫu nhiên). Các phần tử của W và H
sẽ đƣợc cập nhập ngƣợc hƣớng với giá trị của đạo hàm, qua công thức :
new
w uk w uk
old
O MF w uk
old
2 (rui rˆui )hik
w uk
MF
hiknew hikold O hikold 2 (rui rˆui )w uk
hik
: tốc độ học (learning rate)
Quá trình cập nhập sẽ thực hiện đến khi nào hàm mục tiêu đạt giá trị nhỏ
nhất hoặc đến số lần lặp đƣợc xác định trƣớc. Sau quá trình tối ƣu, ta có đƣợc
giá trị W và H.
30
Chính tắc hóa (Regularization): Để ngăn ngừa sự quá khớp hay còn gọi là
học vẹt (overfitting – xảy ra khi mô hình dự đoán cho kết quả tốt trên dữ liệu
huấn luyện, nhƣng cho kết quả kém trên dữ liệu thử nghiệm) ngƣời ta thay đổi
hàm mục tiêu (2.2) bằng cách thêm vào một đại lƣợng gọi là chính tắc hóa
(regularization) để điều khiển độ lớn của các giá trị trong W và H. Hàm mục
tiêu (2.2) bây giờ trở thành:
K
O MF (rui w uk hik )2 ( W H F)
2 2
F
u ,iDTrain k 1
Hình 2.4. Minh hoạ dự đoán người dùng thứ 3 cho sản phẩm thứ 3
31
Factorization, tức phân tích ma trận thành tích các ma trận có các phần tử không
âm.
Bằng Matrix Factorization, các users và items đƣợc liên kết với nhau bởi
các latent features (tính chất ẩn). Độ liên kết của mỗi user và item tới mỗi latent
feature đƣợc đo bằng thành phần tƣơng ứng trong feature vector hệ số của
chúng, giá trị càng lớn thể hiện việc user hoặc item có liên quan đến latent
feature đó càng lớn. Bằng trực giác, sự liên quan của một user hoặc item đến
một latent feature nên là một số không âm với giá trị 0 thể hiện việc không liên
quan. Hơn nữa, mỗi user và item chỉ liên quan đến một vài latent feature nhất
định. Vậy nên feature vectors cho users và items nên là các vectors không âm và
có rất nhiều giá trị bằng 0. Những nghiệm này có thể đạt đƣợc bằng cách cho
thêm ràng buộc không âm vào các thành phần của X và W.
2.3.2 Thuật toán về NN-MF
Đầu vào: Một bộ dữ liệu huấn luyện X, giá trị khởi tạo ban đầu W0 và H0
Đầu ra: Hai ma trận W và H
Train
procedure NNMF (D ,K, stepMax, minImprovement)
// W[|U|][K] và H[|I|][K] là 2 tham số cần tìm
W := N(0,σ2) //khởi tạo giá trị theo phân phối chuẩn
H := N(0, σ2) //khởi tạo giá trị theo phân phối chuẩn
// khởi tạo epsilon
while(stepNum <= stepMax or W and H aren‟t stable) do
//Cập nhập cho H
WtV = WT * V
WtWH = WT * W * H
for (i:=1; i<=K; i++)
for (j:=1; j<=m; j++)
H[i][j] := H[i][j] * (WtV[i][j] / (WtWH[i][j] + ))
end for
end for
//Cập nhập cho W
VtH = V * HT
33
WHtH = W * H * HT
for (i:=1; i<=n; i++)
for (j:=1; j<=k; j++)
W[i][j] := W[i][j] * (VtH [i][j] / (WHtH[i][j] + ))
end for
end for
if ( normF(V – W*H ) < minImprovement ) break;
end while
return{W,H}
end procedure
K T LUẬN CHƢƠNG 2
Trong chƣơng 2 đã tập trung giới thiệu về các kỹ thuật phân rã bao
gồm kỹ thuật SVD, kỹ thuật phân rã ma trận MF và kỹ thuật phân rã ma
trận không âm NN-MF. Sau khi tìm hiểu các phƣơng pháp, trong chƣơng
tiếp theo tôi sẽ trình bày về ứng dụng của các kỹ thuật này vào bài toán cụ
thể để xây dựng hệ thống gợi ý và đánh giá, đó là việc tra cứu địa điểm du
lịch.
34
3.1 MÔ TẢ HỆ THỐNG
Hệ thống gợi ý địa điểm du lịch đƣợc xây dựng dƣới dạng một trang web
cung cấp các thông tin về địa điểm du lịch: Tên địa điểm du lịch, địa chỉ, hình
ảnh đại diện, nội dung và chủ đề của địa điểm du lịch. Hệ thống website đƣợc
xây dựng với mục đích tìm hiểu, nghiên cứu hoạt động của hệ thống gợi ý
Recommemder Systems. Khi có ngƣời truy cập vào website thì có thể tìm kiếm,
tham khảo thông tin địa điểm du lịch, bình chọn và đánh giá địa điểm mình yêu
thích.
Hệ thống cho phép ngƣời dùng đăng ký thành viên và đăng nhập vào hệ
thống để tìm kiếm thông tin các địa điểm du lịch cũng nhƣ đánh giá cho các địa
điểm du lịch đó. Thông tin đăng ký sẽ bao gồm Họ và tên, tên đăng nhập, mật
khẩu, ngày tháng năm sinh, giới tính, địa chỉ, số điện thoại, email. Sau khi đăng
ký thành công, hệ thống tự động đăng nhập và những thông tin đăng ký của
ngƣời dùng sẽ đƣợc lƣu vào cơ sở dữ liệu.
Sau khi đăng ký và đăng nhập thành công, hệ thống cho phép ngƣời dùng
bình chọn và đánh giá những địa điểm du lịch mà mình yêu thích với điểm số từ
1 – 5 tƣơng ứng với mức độ hài lòng của mỗi cá nhân. Đặc biệt hệ thống sẽ gợi
ý cho ngƣời dùng những địa điểm du lịch trong quá trình chọn địa điểm sử dụng
kỹ thuật lọc cộng tác và hiển thị các địa điểm tƣơng tự với địa điểm mà ngƣời
dùng đang xem. Chỉ khi nào ngƣời dùng đăng ký và đăng nhập thành công thì
mới có thể bình chọn, đánh giá cho các địa điểm du lịch của hệ thống đƣa ra và
những địa điểm mà ngƣời dùng yêu thích. Những thông tin đánh giá của ngƣời
dùng sẽ đƣợc lƣu vào cơ sở dữ liệu nhằm sử dụng cho việc tính toán sau này.
Từ những thông tin cần thiết liên quan đến bình chọn, đánh giá và nhận xét
của ngƣời dùng, hệ thống sẽ lƣu lại thông tin đó trong cơ sở dữ liệu dùng để
thực hiện chức năng gợi ý cho những lƣợc ngƣời dùng truy cập sau.
35
- Địa điểm du lịch: các thông tin gồm: tên địa điểm du lịch, địa chỉ, hình
ảnh đại diện, và một số thông tin khác.
- Thông tin ngữ cảnh: là bạn đồng hành, thời gian đi, thời tiết, vị trí và
khoảng cách của ngƣời dùng.
- Thông tin đánh giá: khi ngƣời dùng đăng nhập thành viên thì họ có thể
tham gia đánh giá xếp hạng, đƣợc quyền bình luận và xem các bình luận của
những thành viên khác. Thông tin đánh giá bao gồm: địa điểm du lịch đƣợc đánh
giá của ngƣời dùng, các thông tin ngữ cảnh, kết quả đánh giá, ngày đánh giá. Và
các thông tin bình luận nhƣ: địa điểm đƣợc bình luận, nội dung bình luận, ngày
đăng.
Hệ thống đƣợc phân quyền cho 2 nhóm ngƣời dùng chính là thành viên và
quản trị. Trong đó nh m người quản trị có đầy đủ quyền trên hệ thống nhƣ: cập
nhật địa điểm du lịch, thống kê số lƣợt truy cập và trung bình đánh giá của từng
địa điểm du lịch, thống kê số lƣợt đánh giá và liệt kê các đánh giá của từng
thành viên,… và còn nhóm thành viên thì sẽ có một số quyền trên hệ thống nhƣ:
xem thông tin địa điểm du lịch muốn đi, đánh giá xếp hạng và bình luận, xem tin
tức/sự kiện, đƣợc hệ thống gợi ý và chỉ đƣờng.
Khi sử dụng chức năng gợi ý, nếu ngƣời dùng là thành viên mới (chƣa có
bất kỳ đánh giá nào) thì hệ thống sẽ gợi ý dựa theo chủ đề mà họ thích nhƣ:
Kiến trúc – Văn hóa – Lịch sử; Mua sắm; Vui chơi giải trí;… Hệ thống sẽ gợi ý
cho ngƣời dùng những địa điểm du lịch phù hợp với chủ đề mà ngƣời dùng đã
chọn và có nhiều ngƣời đánh giá cao nhất (trung bình đánh giá cao nhất).
37
3.2.1 Sơ đồ ca sử dụng
- Sơ đồ ca sử dụng tổng quát
- Sơ đồ ca sử dụng phụ
Hình 3.8. Sơ đ hoạt động chức năng cập nhật nội dung
- Sơ đồ tuần tự chức năng cập nhật nội dung
3.2.3 Cơ sở dữ liệu
Hình 3.18. Giao diện thu thập thông tin đánh giá người dùng
Hệ thống thử nghiệm cài đặt thành công hai phƣơng pháp gợi ý đƣợc thể
hiện trong menu tiện ích của hệ thống.
Tải bản FULL (96 trang): bit.ly/2Ywib4t
Dự phòng: fb.com/KhoTaiLieuAZ
e4ed360a