Download as pdf or txt
Download as pdf or txt
You are on page 1of 60

ĐẠI HỌC ĐÀ NẴNG

TRƢỜNG ĐẠI HỌC BÁCH KHOA


-----  -----

PHẠM HOÀNG TRƢƠNG

NGHIÊN CỨU VÀ ỨNG DỤNG


KỸ THUẬT SVD VÀO HỆ THỐNG GỢI Ý

LUẬN VĂN THẠC SĨ


KHOA HỌC MÁY TÍNH

Đà Nẵng - Năm 2018


ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC BÁCH KHOA
-----  -----

PHẠM HOÀNG TRƢƠNG

NGHIÊN CỨU VÀ ỨNG DỤNG


KỸ THUẬT SVD VÀO HỆ THỐNG GỢI Ý

Chuyên ngành: KHOA HỌC MÁY TÍNH


Mã số: 60.48.01.01

LUẬN VĂN THẠC SĨ

Ngƣời hƣớng dẫn khoa học:


TS. NGUYỄN VĂN HIỆU

Đà Nẵng - Năm 2018


LỜI CAM ĐOAN

Tôi xin cam đoan:


Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn
trực tiếp của TS. Nguyễn Văn Hiệu.
Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả,
tên công trình, thời gian, địa điểm công bố.
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.

Tác giả luận văn

Phạm Hoàng Trƣơng


MỤC LỤC

LỜI CAM ĐOAN


MỤC LỤC
ANH MỤC C C TỪ VI T TẮT
DANH MỤC CÁC CÁC BẢNG
DANH MỤC CÁC HÌNH
MỞ ĐẦU .............................................................................................................. 1
1. Lý do chọn đề tài ............................................................................................... 1
2. Mục tiêu và nhiệm vụ của đề tài ....................................................................... 2
3. Đối tƣợng và phạm vi nghiên cứu ..................................................................... 3
4. Phƣơng pháp nghiên cứu ................................................................................... 3
5. Ý nghĩa khoa học và thực tiễn của đề tài .......................................................... 3
6. Bố cục luận văn ................................................................................................. 3
Chƣơng 1 - TỔNG QUAN DU LỊCH QUẢNG NGÃI VÀ HỆ THỐNG GỢI
Ý……. ................................................................................................................... 4
1.1 TỔNG QUAN VỀ DU LỊCH QUẢNG NGÃI .........................................................4
1.2. CÁC PHƢƠNG PHÁP GỢI Ý .................................................................................8
1.2.1. Phƣơng pháp gợi ý dựa trên nội dung ...................................................................8
1.2.2. Phƣơng pháp gợi ý dựa trên lọc cộng tác .............................................................. 9
1.2.3. Phƣơng pháp gợi ý lai .......................................................................................... 11
1.3 HỆ THỐNG GỢI Ý .................................................................................................11
1.3.1. Giới thiệu .............................................................................................................11
1.3.2. Bài toán tổng quát của hệ thống gợi ý .................................................................14
1.3.3. Chức năng hệ thống gợi ý ....................................................................................15
1.3.4 Dữ liệu và các nguồn tri thức ...............................................................................18
1.3.4.1. Sản phẩm ..........................................................................................................18
1.3.4.2. Ngƣời dùng .......................................................................................................19
1.3.4.3. Giao dịch...........................................................................................................19
KẾT LUẬN CHƢƠNG 1 .............................................................................................. 20
Chƣơng 2 – CÁC KỸ THUẬT PHÂN RÃ ................................................................ 21
2.1 KỸ THUẬT SVD ....................................................................................................21
2.1.1. Giới thiệu .............................................................................................................21
2.1.2. Phát biểu bài toán ................................................................................................ 22
2.1.3. Ý tƣởng thực hiện ................................................................................................ 22
2.1.4. Hƣớng tiếp cận Truncated SVD ..........................................................................23
2.1.5. Thuật toán SVD ...................................................................................................25
2.2 KỸ THUẬT PHÂN RÃ MA TRẬN-MF ................................................................ 27
2.2.1 Giới thiệu ..............................................................................................................27
2.2.2 Ý tƣởng thực hiện .................................................................................................28
2.2.3 Thuật toán MF ......................................................................................................31
2.3. KỸ THUẬT NN-MF .............................................................................................. 31
2.3.1 Giới thiệu ..............................................................................................................31
2.3.2 Thuật toán về NN-MF .......................................................................................... 32
KẾT LUẬN CHƢƠNG 2 .............................................................................................. 33
Chƣơng 3 - XÂY DỰNG HỆ THỐNG GỢI Ý VÀ Đ NH GI ................................ 34
3.1 MÔ TẢ HỆ THỐNG ............................................................................................... 34
3.2 PHÂN TÍCH, THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG .....................................37
3.2.1 Sơ đồ ca sử dụng ..................................................................................................38
3.2.2 Sơ đồ hoạt động và sơ đồ tuần tự .........................................................................40
3.2.3 Cơ sở dữ liệu ........................................................................................................43
3.2.4 Một số giao diện minh họa của hệ thống ............................................................. 46
3.3 ĐÁNH GIÁ KẾT QUẢ THỬ NGHIỆM ............................................................... 50
3.3.1 Phƣơng pháp Truncated SVD..............................................................................50
3.3.2 Phƣơng pháp MF .................................................................................................51
3.3.3 Phƣơng pháp NN-MF .......................................................................................... 52
KẾT LUẬN CHƢƠNG 3 .............................................................................................. 54
K T LUẬN VÀ HƢỚNG PHÁT TRIỂN ................................................................. 55
1. Kết luận......................................................................................................................55
2. Hƣớng phát triển ........................................................................................................ 56
TÀI LIỆU THAM KHẢO
PHỤ LỤC
TÓM TẮT LUẬN VĂN

NGHIÊN CỨU VÀ ỨNG DỤNG KỸ THUẬT SVD


VÀO HỆ THỐNG GỢI Ý

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.

RESEARCH AND APPLICATION SVD RECOMMENDATION


SYSTEMS
Abstract - Recommender Systems are widely used in many areas, such as in e-
commerce (for online shopping), in entertainments (for movie recommendation, music
recommendation, etc) and so on, to predict users‟ preference based on their past
preferences/behaviors. In this work, propose an approach for Research Recommender
Systems. Then applying this approach for a recommendation system so that the system
can recommend appropriate places to tourists. This system combines several
approaches such as Singular Value Decomposition, matrix factorization, Nonnegative
Matrix Factorization to improve the prediction accuracy of the model. Experimental
results show that this is a promising approach for building Tourist Recommender
Systems.
Key words - Recommender Systems, Singular Value Decomposition, matrix
factorization, Nonnegative Matrix Factorization.
ANH MỤC C C TỪ VI T TẮT

CF Collaborative filtering (Lọc cộng tác)


Singular Value Decomposition (Kỹ thuật phân rã giá trị
SVD
đơn)
MF Matrix Factorization (Kỹ thuật phân rã ma trận)
RS Recommender Systems (Hệ thống gợi ý)
Nonnegative Matrix Factorization (Kỹ thuật phân rã ma
NN-MF
trận không âm)
DANH MỤC CÁC BẢNG

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

- Xây dựng và đánh giá hệ thống gợi ý.


3. Đối tƣợng và phạm vi nghiên cứu
3.1. Đối tượng nghiên cứu
- Kỹ thuật SVD (Singular Value Decomposition).
- Hệ thống gợi ý (Recommender system - RS).
- Hệ thống Du lịch Quảng Ngãi
3.2. Phạm vi nghiên cứu
- Tập trung vào phƣơng pháp SVD và các hƣớng cải tiến chúng.
- Ứng dụng cho hệ thống gợi ý tra cứu các địa điểm du lịch trong phạm vi
tỉnh Quảng Ngãi và đƣợc đƣa lên Internet.
4. Phƣơng pháp nghiên cứu
Trong luận văn đã sử dụng các phƣơng pháp sau:
- Tìm hiểu thực tế, tổng hợp thống kê dữ liệu về du lịch Quảng Ngãi.
- Kỹ thuật phân rã ma trận (matrix factorization – MF).
- Kỹ thuật SVD (Singular Value Decomposition).
- Phƣơng pháp đánh giá.
5. Ý nghĩa khoa học và thực tiễn của đề tài
- Ý nghĩa khoa học:
 Đề xuất đƣợc mô hình gợi ý mới sử dụng kỹ thuật SVD.
 Đề tài nghiên cứu trƣờng hợp riêng của kỹ thuật SVD.
 Góp phần vào công cuộc nghiên cứu và phát triển ứng dụng thông minh.
- Ý nghĩa thực tiễn:
 Ứng dụng triển khai tới ngƣời dùng, giúp tiết kiệm thời gian, chi phí
và tạo sự tiện dụng tối đa cho ngƣời dùng.
6. Bố cục luận văn
Ngoài phần mở đầu và kết luận, nội dung đề tài đƣợc chia thành 03 chƣơng:
Chƣơng 1 – Tổng quan du lịch Quảng Ngãi và hệ thống gợi ý
Chƣơng 2 – Các kỹ thuật phân rã
Chƣơng 3 – Xây dựng hệ thống gợi ý và đánh giá
4

Chƣơng 1 - TỔNG QUAN DU LỊCH QUẢNG NGÃI VÀ HỆ


THỐNG GỢI Ý

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

Hình 1.1 Minh hoạ hệ thống gợi ý


Trong hầu hết các trƣờng hợp, bài toán gợi ý đƣợc coi là bài toán ƣớc
lƣợng xếp hạng (rating) của các item chƣa đƣợc ngƣời dùng xem xét. Việc ƣớc
lƣợng này thƣờng dựa trên những đánh giá đã có của chính ngƣời dùng đó
hoặc từ những ngƣời dùng khác. Những item có xếp hạng cao nhất sẽ đƣợc
dùng để gợi ý. Từ đó ngƣời dùng có những lựa chọn thích hợp với nhu cầu và
thị hiếu của mình.
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,..
Đã có rất nhiều ứng dụng liên quan đến tích hợp RS vào thực tế trong nhiều
lĩnh vực khác nhau nhƣ Thƣơng mại điện tử, giải trí, giáo dục, khoa học phải kể
đến Amazon, Ebay, YouTube, Netflix, LastFM,… Một số ứng dụng mà các
nhóm nghiên cứu đã thực hiện trong thời gian gần đây nhƣ: đề xuất xây dựng hệ
thống gợi ý cho bán hàng trực tuyến sử dụng kỹ thuật lọc cộng tác sử dụng phản
hồi tƣờng minh từ ngƣời dùng thông qua các đánh giá trên sản phẩm; đề xuất
một giải pháp xây dựng hệ thống gợi ý dành cho bán hàng trực tuyến sử dụng
phản hồi tiềm ẩn từ ngƣời dùng. Trong lĩnh vực giải trí đã giới thiệu một giải
14

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

Hình 1.2. Ma trận đánh giá của ngƣời dùng


Gọi U là tập hợp tất cả ngƣời dùng, I là tập hợp tất cả các sản phẩm có thể
tƣ vấn. Tập I có giá trị trong khoảng {1,n}, tập U có giá trị trong khoảng {1,m}.
Hàm f(u,i) đo độ phù hợp (hay hạng) của sản phẩm I với ngƣời dùng u : f : U x I
→ R với R là tập đƣợc sắp thứ tự. Với mỗi ngƣời dùng u  U , cần tìm sản phẩm
i ,  I sao cho hàm f(i‟,u) đạt giá trị lớn nhất [9]:

u U , iu'  arg max f (u, i)


Trong hệ tƣ vấn, độ phù hợp của một sản phẩm thƣờng đƣợc cho bằng
điểm ví dụ ngƣời dùng A đánh giá bộ pham “Star war 3” là mức 7 trên 10 điểm.
15

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

- ả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.
- à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.
- Tác động tới những người d ng khác: Trong hệ thống 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ệ thống 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.
1.3.4 Dữ liệu và các nguồn tri thức
Hệ thống gợi ý là hệ thống xử lý thông tin thu thập từ các loại dữ liệu khác
nhau để xây dựng các gợi ý. Dữ liệu chủ yếu là về các sản phẩm cần gợi ý và
ngƣời dùng sẽ nhận đƣợc các gợi ý này. Tuy nhiên, dữ liệu và các nguồn tri thức
sẵn có cho các hệ thống gợi ý có thể rất đa dạng. Trong bất kỳ trƣờng hợp nào,
dữ liệu đƣợc sử dụng bởi hệ thống gợi ý thuộc ba loại: sản phẩm (Item), ngƣời
dùng (User) và các giao dịch (Transactions), đó chính là quan hệ giữa ngƣời
dùng và sản phẩm.
1.3.4.1. Sản phẩm
Sản phẩm là các đối tƣợng đƣợc gợi ý. Các sản phẩm này đặc trƣng bởi
tiện ích và giá trị của nó. Giá trị của một sản phẩm có thể là tích cực nếu hữu ích
cho ngƣời dùng, hoặc tiêu cực nếu sản phẩm không phù hợp với ngƣời dùng.
Công nghệ cốt lõi của hệ thống gợi ý là sử dụng một loạt các thuộc tính và
các tính năng của các item. Ví dụ nhƣ trong một hệ thống gợi ý phim, thể loại
(Hài, kinh dị,...) cũng nhƣ tên tuổi các đạo diễn và diễn viên có thể đƣợc sử
dụng để mô tả một bộ phim và là đặc điểm nổi bật của nó.
19

1.3.4.2. Người dùng


Ngƣời dùng trong hệ thống gợi ý là đối tƣợng để gợi ý có những mục tiêu
và đặc điểm rất đa dạng. Để cá nhân hoá các gợi ý và tƣơng tác ngƣời-máy, hệ
thống gợi ý khai thác một loạt các thông tin về ngƣời dùng. Những thông tin này
có thể đƣợc cấu trúc theo nhiều cách khác nhau và việc chọn thông tin phụ thuộc
vào kỹ thuật gợi ý.
Ngƣời dùng cũng có thể đƣợc mô tả bằng mô hình hành vi của họ, ví dụ
trong mô hình trình duyệt, mô hình tìm kiếm du lịch. Ngoài ra, dữ liệu ngƣời
dùng còn có thể bao gồm mối quan hệ giữa ngƣời dùng nhƣ mức độ tin cậy của
các mối quan hệ giữa các ngƣời dùng. Hệ thống gợi ý có thể sử dụng thông tin
này để giới thiệu các item từ một ngƣời dùng đáng tin cậy khác đã thích item
này.
1.3.4.3. Giao dịch
Giao dịch là sự tƣơng tác giữa một ngƣời dùng và hệ gợi ý. Nó lƣu trữ dữ
liệu, thông tin đăng nhập quan trọng đƣợc tạo ra trong quá trình tƣơng tác giữa
con ngƣời - máy tính và có ích cho thuật toán gợi ý mà hệ thống đang sử dụng.
Ví dụ, một bản ghi giao dịch có thể chứa một tham chiếu đến sản phẩm đƣợc lựa
chọn bởi ngƣời dùng và một mô tả về bối cảnh (mục tiêu ngƣời dùng/truy vấn)
cho gợi ý cụ thể. Nếu có sẵn, giao dịch cũng có thể bao gồm một thông tin phản
hồi rõ ràng của ngƣời dùng đã cung cấp, chẳng hạn nhƣ đánh giá cho các sản
phẩm đƣợc chọn.
Trên thực tế, hình thức phổ biến nhất của dữ liệu giao dịch mà hệ thống gợi
ý thu thập là các xếp hạng. Những đánh giá này có thể đƣợc thu thập một cách
rõ ràng hoặc dƣới dạng các biến ẩn. Trong trƣờng hợp các xếp hạng là rõ ràng,
ngƣời dùng sẽ đƣợc yêu cầu cung cấp ý kiến của mình về một mục trên thang
điểm đánh giá.
Các xếp hạng có thể ở các hình thức sau:
- Xếp hạng từ số 1 đến 5 sao.
20

- 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

Chƣơng 2 – CÁC KỸ THUẬT PHÂN RÃ


Hệ thống gợi ý đóng vai trò rất lớn trong hệ thống tƣ vấn, hệ thống gợi ý,
đã có ứng dụng đem lại lợi ích về kinh tế, chính trị... Một mảng kỹ thuật đƣợc
nhiều nhà nghiên cứu quan tâm đó đó là Kỹ thuật Phân rã. Đặc biệt trong hệ
thống gợi ý chú trọng đến phƣơng pháp SVD, phƣơng pháp phân rã ma trận MF
và phƣơng pháp phân rã ma trận không âm NN-MF. Nội dung cụ thể sẽ đƣợc
trình bày trong chƣơng này.
2.1 KỸ THUẬT SV
2.1.1. Giới thiệu
Kỹ thuật SVD đƣợc G. Golub và W. Kahan giới thiệu vào năm 1965 [8].
Đây là một kỹ thuật phân tích dùng để tính toán các giá trị đơn, nghịch đảo và
hạng ma trận. Kỹ thuật này phân tích một ma trận thành ba ma trận mới dựa vào
các giá trị đơn đƣợc phân tích. Kể từ khi đƣợc giới thiệu SVD đã trở thành một
kỹ thuật phân tích ma trận tiêu chuẩn trong đại số tuyến tính.
Năm 1988 Deerwester et al sử dụng SVD để giải quyết vấn đề từ vựng
trong tƣơng tác ngƣời-máy (human-computer interaction) và Ông gọi cách tiếp
cận này là Latent Semantic Indexing (LSI) – chỉ mục ngữ nghĩa tiềm ẩn, hay còn
đƣợc biết đến là Latent Semantic Analysis (LSA) – phân tích ngữ nghĩa tiềm ẩn.
SVD đã giải quyết đƣợc các vấn đề mà LSI trƣớc đây gặp phải nhƣ: lƣu trữ, tốc
độ, độ tin cậy... Từ đó SVD đƣợc xem nhƣ nền tảng của kỹ thuật phân tích ngữ
nghĩa tiềm ẩn và đƣợc áp dụng rộng rãi trong các bài toán.
Trong thực tiễn, ngƣời ta muốn xấp xỉ ma trận lớn ban đầu với một ma trận
có kích thƣớc nhỏ hơn mà vẫn giữ lại đƣợc những đặc trƣng gần giống nhƣ ban
đầu. Sớm nhận ra rằng trong việc rút gọn số chiều, SVD làm những đặc trƣng
giống nhau thì càng tƣơng quan nhau hơn, nếu chúng khác nhau thì càng cách xa
nhau hơn [7][8]. Vấn đề này có thể giải thích khi quan sát những vectơ trong U
và V bên trên. Những vectơ bao gồm việc cấu thành từ sự biến đổi nhỏ nhất từ
dữ liệu trực giao.
22

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 đó.

ri,j là đánh giá của ngƣời dùng i ( ) cho sản phẩm j ( ).


Bằng các mô hình của hệ gợi ý, ta cần đƣa ra các dự đoán cho đánh giá của
một ngƣời dùng bất kì trong hệ thống cho một sản phẩm bất kì mà ngƣời dùng
đó chƣa đánh giá. Và trong thực tế, các sản phẩm đƣợc hệ gợi ý dự đoán ngƣời
dùng đó sẽ đánh giá cao, sẽ đƣợc đƣa lên để gợi ý cho ngƣời dùng đó trải
nghiệm.
2.1.3. Ý tƣởng thực hiện
SVD là phƣơng pháp giúp phân rã bất cứ ma trận nào thành tích của 3 ma
trận với tính chất đặc biệt.
M nm  U V T

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

Hình 2.1. Mô hình tư ng của SVD

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

L( A, X , Y ,W ,  )   im1  nj1 i , j l ( Aij , xi y Tj )    im1 xi xiT    nj1 y j y Tj

Tối ƣu hóa hàm mất mát trên , ta đƣợc:


xi  (1   ) xi   j  ( Ai , j  xi y Tj ) y j

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:

với chú ý rằng mỗi là một ma trận có rank bằng 1. Và


là số các giá trị khác 0 trên đƣờng chéo của ma trận Σ.
Ví dụ minh hoạ với m=4,n=6,r=2:

Hình 2.2: Biểu diễn SVD


Chú ý rằng trong ma trận Σ, các giá trị trên đƣờng chéo là không âm và
giảm dần . Thông thƣờng, chỉ một lƣợng nhỏ
các mang giá trị lớn, các giá trị còn lại thƣờng nhỏ và gần 0. Khi đó ta có thể
xấp xỉ ma trận A bằng tổng của k<r ma trận có rank 1. Từ đó :
25

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

2.2 KỸ THUẬT PHÂN RÃ MA TRẬN-MF


2.2.1 Giới thiệu
Kỹ thuật phân rã ma trận đƣợc xem là kỹ thuật tiến bộ nhất trong số
các kỹ thuật dùng trong phƣơng pháp CF vì nó cho phép ta khám phá ra
những đặc tính tiềm ẩn nằm bên dƣới các tƣơng tác giữa ngƣời dùng và
hạng mục. Một trong những thành công nhất của mô hình thuộc tính ẩn
(Latent Factor Model) là dựa trên phân tích ma trận. Trong hình thức cơ
bản, ma trận thừa số đƣợc đặc trƣng bởi các sản phẩm và ngƣời dùng bằng
các vectơ của các yếu tố đƣợc suy ra từ mô hình đánh giá sản phẩm.
Phƣơng pháp này ngày càng trở nên phổ biến bằng cách kết hợp khả năng
mở rộng tốt và độ chính xác cao.
Hệ thống gợi ý dựa trên các loại dữ liệu đầu vào khác nhau, thƣờng đƣợc
đặt trong một ma trận hai chiều với một chiều biểu diễn cho các ngƣời dùng và
chiều còn lại là các sản phẩm đƣợc ngƣời dùng quan tâm. Có 2 phƣơng pháp thu
thập dữ liệu. Thu thập dữ liệu trực tiếp qua thông tin phản hồi trực tiếp (explicit
feedback) từ phía ngƣời dùng về quan tâm của họ dành cho sản phẩm. Các quan
tâm này thƣờng đƣợc đặc trƣng bởi các con số đƣợc gọi là điểm đánh giá. Ma
trận điểm đánh giá từ thu thập trực tiếp thƣờng là các ma trận thƣa vì bất kỳ một
ngƣời dùng nào cũng thƣờng có xu hƣớng chỉ đánh giá một tỉ lệ nhỏ các hạng
mục có sẵn. Trƣờng hợp không thu thập dữ liệu trực tiếp đƣợc, hệ tƣ vấn sẽ phải
thu thập dữ liệu gián tiếp (implicit feedback) để suy diễn ra các quan tâm của
ngƣời dùng bằng cách quan sát thái độ của ngƣời dùng trong quá khứ từ các dữ
liệu lịch sử đi mua, duyệt các dữ liệu này để tìm kiếm các mô hình, … Dữ liệu
gián tiếp thƣờng là có hoặc không có một sự kiện nào đó nên ma trận dữ liệu là
một ma trận dầy đặc. Điểm mạnh của phƣơng pháp phân rã ma trận là khả năng
cho phép kết hợp thông tin bổ sung, xử lý đƣợc các trƣờng hợp mà Content
filtering khó xử lý nhƣ ngƣời dùng mới, sản phẩm mới...
28

2.2.2 Ý tƣởng thực hiện


Mục đích của kỹ thuật phân rã ma trận là việc chia một ma trận lớn X thành
hai ma trận có kích thƣớc nhỏ hơn W và H, sao cho ta có thể xây dựng lại X từ
hai ma trận nhỏ hơn này càng chính xác càng tốt, nghĩa là:
T
X ~ WH

Hình 2.3. Minh họa kỹ thuật phân rã ma trận


Trong đó, W ∈ |U|×K là một ma trận mà mỗi dòng u là một véc-tơ bao gồm

K nhân tố tiềm ẩn (latent factors) mô tả ngƣời dùng u, và H ∈|I|×K là một ma


trận mà mỗi dòng i là một vectơ bao gồm K nhân tố tiềm ẩn mô tả cho item i.
Ví dụ, X là ma trận đƣợc tạo nên từ việc xếp hàng của ngƣời dùng U và
Item(địa điểm du lịch) I. Thông thƣờng, khi tiến hành đánh giá các xếp hạng
chỉ dựa vào tiêu chí ngƣời dùng – địa điểm du lịch thì sự đánh giá này không
đƣợc chính xác. Do vậy, cần phải đƣợc đánh giá trên nhiều tiêu chí khác, từ
đó cần có một số K tiêu chí để phân tích ma trận xếp hàng ban đầu thành hai
ma trận nhỏ hơn, có sự tham gia của các tiêu chí ẩn. Điều này cho thấy việc
đánh giá các xếp hạng có độ chính xác cao hơn.
Gọi wuk và hik là các phần tử tƣơng ứng của hai ma trận W và H, khi đó
xếp hạng của ngƣời dùng u trên mục tin i đƣợc dự đoán bởi công thức:
k
rˆui   w ik hik = w.hT (2.1)
k 1

eui  rui  rˆui ∀ u,i ∈ X


eui là sai số huấn luyện trên xếp hạng thứ (u,i).
29

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

 eui   (rui  rˆui )   (rui   wui hui )2 (2.2)


2 2
O MF 
u ,iX u ,iX u ,iX k 1

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 ,iDTrain k 1

Trong đó  là hệ số chính tắc hoá (0   <1) và . là chuẩn Frobenius. Với


hàm mục tiêu mới này, giá trị của wuk và hik đƣợc cập nhập theo công thức:
new
w uk  w uk
old
  (2(rui  rˆui )hik  .w uk
old
)
hiknew  hikold   .(2(rui  rˆui )w uk  .hikold
Quá trình cập nhập giá trị của W và H đƣợc lặp lại cho đến khi đạt độ lỗi
chấp nhận hoặc lặp lại đến số lần quy định trƣớc.
Quá trình dự đoán: Sau quá trình huấn luyện ta đƣợc 2 ma trận W và H đã
tối ƣu thì quá trình dự đoán (công thức 2.2) đƣợc thực hiện nhƣ minh họa trong
Hình 2.4

Hình 2.4. Minh hoạ dự đoán người dùng thứ 3 cho sản phẩm thứ 3
31

2.2.3 Thuật toán 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
procedure MF (DTrain,K, β, λ, stopping condition)
// 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
while(stopping condition) do
Draw randomly (u,i,x) from DTrain
rˆ := 0
for (k:=1; k<=K; k++)
rˆ := rˆ + W[u][k] * H[i][k]
end for
e = r – rˆ
for (k:=1; k<=K; k++)
W[u][k] := W[u][k] + β * (eui * H[i][k] - λ * W[u][k])
H[i][k] := H[i][k] + β * (eui * W[u][k] - λ* H[i][k])
end for
end while
return{W,H}
end procedure

2.3 . KỸ THUẬT NN-MF


2.3.1 Giới thiệu
Khi dữ liệu chƣa đƣợc chuẩn hoá, chúng đều mang các giá trị không âm.
Nếu dải giá trị của ratings có chứa giá trị âm, ta chỉ cần cộng thêm vào Utility
Matrix một giá trị hợp lý để có đƣợc các ratings là các số không âm. Khi đó,
một phƣơng pháp Matrix Factorization khác cũng đƣợc sử dụng rất nhiều và
mang lại hiệu quả cao trong Recommendation Systems là Nonnegative Matrix
32

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

Chƣơng 3 - XÂY DỰNG HỆ THỐNG GỢI Ý VÀ Đ NH GI

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

Hình 3.1. Quy trình sử d ng website


Một số giai đoạn ở Hình 3.1 có thể đảo vị trí cho nhau, ví dụ ngƣời dùng
không nhất thiết phải đăng nhập rồi mới xem thông tin địa điểm du lịch mà có
thể xem trƣớc và đăng nhập sau.
Các đối tƣợng chính trong hệ thống:
- Thành viên: Các thông tin nhƣ: họ tên, năm sinh, giới tính, email, tên
đăng nhập và mật khẩu.
36

- Đị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

Sơ đồ kiến trúc của hệ thống đƣợc mô tả nhƣ sau:

Hình 3.2. Sơ đ kiến trúc tổng thể của hệ thống

3.2 PHÂN TÍCH, THI T K VÀ XÂY ỰNG HỆ THỐNG


Để hạn chế những sơ đồ không cần thiết, trong luận văn chỉ tập trung xây
dựng các sơ đồ cho chức năng chính là gợi ý địa điểm du lịch.
38

3.2.1 Sơ đồ ca sử dụng
- Sơ đồ ca sử dụng tổng quát

Hình 3.3. Sơ đ ca sử d ng tổng quát của hệ thống


39

- Sơ đồ ca sử dụng phụ

Hình 3.4. Sơ đ ca sử d ng khách hàng

Hình 3.5. Sơ đ ca sử d ng người quản trị


40

3.2.2 Sơ đồ hoạt động và sơ đồ tuần tự


- Sơ đồ hoạt động chức năng gợi ý địa điểm du lịch

Hình 3.6. Sơ đồ hoạt động chức năng gợi ý


- Sơ đồ tuần tự chức năng gợi ý địa điểm du lịch

Hình 3.7. Sơ đ tuần tự chức năng gợi ý


41

- Sơ đồ hoạt động chức năng cập nhật nội dung

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

Hình 3.9. Sơ đ tuần tự chức năng cập nhật nội dung


42

- Sơ đồ hoạt động chức năng đánh giá

Hình 3.10. Sơ đ hoạt động chức năng đánh giá


- Sơ đồ tuần tự chức năng đánh giá

Hình 3.11. Sơ đ tuần tự chức năng đánh giá


43

3.2.3 Cơ sở dữ liệu

Hình 3.12. Sơ đ quan hệ cơ s dữ liệu


Mô tả dữ liệu:
Bảng 3.1. Bảng khách hàng
Tên trƣờng Thuộc tính Ghi chú
Khóa chính;
makh int
Mã của khách hàng
tenkh nvarchar(250) Tên đầy đủ của khách hàng
tendn varchar(15) Tên đăng nhập khách hàng
Mật khẩu đăng nhập
matkhau varchar(15)
của khách hàng
ngaysinh datetime Ngày tháng năm sinh
gioitinh bit Giới tính của khách hàng
diachi nvarchar(100) Địa chỉ của khách hàng
dienthoai int Điện thoại của khách hàng
email varchar(50) Email của khách hàng
44

Bảng 3.2. Bảng loại tin


Tên trƣờng Thuộc tính Ghi chú
idlt int Khóa chính; ID của loại tin
Ten nvarchar(100) Tên loại tin
url varchar(255) Đƣờng dẫn
thutu int Thứ tự loại tin
anhien bit Ảnh hiển thị loại tin
Bảng 3.3. Bảng địa điểm
Tên trƣờng Thuộc tính Ghi chú
madiadiem int Khóa chính;
Mã địa điểm du lịch
tendiadiem nvarchar(500) Tên địa điểm du lịch
dongia int Đơn giá
noidung ntext Nội dung
hinhanh varchar(250) Hình ảnh
khuyenmai bit Khuyến mãi
diadiemhot bit Địa điểm hấp dẫn
matinh int Mã của tỉnh thành
vote int Đánh giá địa điểm du lịch
Bảng 3.4. Bảng quảng cáo
Tên trƣờng Thuộc tính Ghi chú
Stt int Khóa chính; Số thứ tự
tencty nvarchar(200) Tên công ty
hinhminhHoa varchar(20) Hình minh họa
url varchar(255) Đƣờng dẫn
ngaybatdau datetime Ngày bắt đầu
ngayhethan datetime Ngày hết hạn
chieucao int Chiều cao
chieurong int Chiều rộng
anhien bit Ảnh hiển thị
45

Bảng 3.5. Bảng đánh giá


Tên trƣờng Thuộc tính Ghi chú
Khóa chính;
Id int
ID đánh giá
makh int Mã của khách hàng
madiadiem int Mã địa điểm du lịch
diem int Điểm đánh giá
Bảng 3.6. Bảng loại hình
Tên trƣờng Thuộc tính Ghi chú
ID int Khóa chính;
ID của loại hình gợi ý
Ten nvarchar(250) Tên loại hình gợi ý
GhiChu nvarchar(250) Ghi chú
Bảng 3.7. Bảng đặt lịch tham quan
Tên trƣờng Thuộc tính Ghi chú
Khóa chính;
Ma int
Mã đặt lịch
makh int Mã của khách hàng
madiadiem int Mã địa điểm du lịch
dongia int Đơn giá
Bảng 3.8. Bảng quản trị
Tên trƣờng Thuộc tính Ghi chú
Khóa chính;
idquantri int
ID của ngƣời quản trị
Tên đăng nhập ngƣời quản
username varchar(15)
trị
Mật khẩu đăng nhập của
matkhau varchar(15)
ngƣời quản trị
Bảng 3.9. Bảng Menu
Tên trƣờng Thuộc tính Ghi chú
Khóa chính;
idmenu Int
ID của menu
tenmenu nvarchar(100) Tên menu
urlhinh nvarchar(255) Đƣờng dẫn
anhien Bit Ảnh hiển thị
46

Bảng 3.10. Bảng liên hệ


Tên trƣờng Thuộc tính Ghi chú
Khóa chính;
malienhe int
Mã liên hệ
hoten nvarchar(50) Họ và tên ngƣời liên hệ
chucdanh nvarchar(100) Chức danh
congty nvarchar(255) Công ty
diachi nvarchar(100) Địa chỉ
dienthoai int Điện thoại
email varchar(50) Email liên hệ
noidung ntext Nội dung
Bảng 3.11. Bảng tin tức
Tên trƣờng Thuộc tính Ghi chú
Khóa chính;
Idtin int
ID của tin tức
tieude ntext Tiêu đề tin tức
tomtat ntext Tóm tắt
urlhinh varchar(255) Đƣờng dẫn
ngay datetime Ngày đăng tin
noidung ntext Nội dung tin tức
solanxem int Số lần xem
tinnoibat bit Tin nổi bật

3.2.4 Một số giao diện minh họa của hệ thống

Hình 3.13. Giao diện đăng nhập


47

Hình 3.14. Giao diện đăng k

Hình 3.15. Giao diện liên hệ


48

Hình 3.16. Giao diện chính hệ thống

Tải bản FULL (96 trang): bit.ly/2Ywib4t


Dự phòng: fb.com/KhoTaiLieuAZ

Hình 3.17. Giao diện gợi địa điểm ưu thích.


49

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

Hình 3.19 Giao diện tiện ích


50

3.3 Đ NH GI K T QUẢ THỬ NGHIỆM


Tập dữ liệu thử
Tập dữ liệu thử bao gồm 5 file input có giá trị và kích thƣớc nhƣ sau (Các
file dữ liệu test đƣợc đính kèm theo)
Bảng 3.12. Tập dữ liệu thử nghiệm
Tên file Số lƣợng user Số lƣợng item ratings
Kịch bản 1 10 10 100
Kịch bản 2 20 50 1000
Kịch bản 3 25 80 2000
Kịch bản 4 50 100 5000
Kịch bản 5 100 200 20000

3.3.1 Phƣơng pháp Truncated SVD


Bảng 3.13. cho thấy Kết quả chạy thực thi với tốc độ học là 0.01, tốc độ tôi
luyện là 10, giá trị khởi gán cho các phần từ là 0.5, regularization là 0.025, mức
độ cải thiện để có thể dừng sớm là 0.0000052, số lần lặp tối thiểu là 100, số lần
lặp tối đa 1000. Một bộ dữ liệu đầu vào sẽ đƣợc chạy 100 lần để tính trung bình
thời gian thực thi và độ lệch.
Bảng 3.13. kết quả thử nghiệm trên 2 độ đo
Thời gian
chuẩn
Bộ dữ liệu Số chiều thực thi
Số hàng Số cột RMSE Frobenius loại
đầu vào tối đa (Mili
2
giây)
Kịch bản 1 10 10 8 73ms 0.597 35.656

Kịch bản 2 20 50 16 173ms 0.502 252.012

Kịch bản 3 25 80 20 294ms 0.481 464.46

Kịch bản 4 50 100 40 1166ms 0.42 884.762

Kịch bản 5 100 200 80 4748ms 0.424 3595.902

e4ed360a

You might also like