Tải bản đầy đủ (.pdf) (26 trang)

Nghiên cứu và xây dựng hệ thống gợi ý địa điểm du lịch

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.28 MB, 26 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA

TRẦN HỮU PHƯỚC

NGHIÊN CỨU VÀ XÂY DỰNG
HỆ THỐNG GỢI Ý ĐỊA ĐIỂM DU LỊCH

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

TÓM TẮT LUẬN VĂN KHOA HỌC MÁY TÍNH

Đà Nẵng – Năm 2017


Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA

Người hướng dẫn khoa học: TS. Nguyễn Văn Hiệu

Phản biện 1: PGS. TS. Võ Trung Hùng

Phản biện 2: GS. TS. Nguyễn Thanh Thủy

Luận văn đã được bảo vệ trước Hội đồng chấm Luận văn tốt
nghiệp thạc sĩ Khoa học máy tính họp tại Đại học Đà Nẵng vào ngày
13 tháng 8 năm 2017.

* Có thể tìm hiểu luận văn tại:
- Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng


- Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách
khoa – Đại học Đà Nẵng


1
MỞ ĐẦU
1. Lý do chọn đề tài
Trong thời đại bùng nổ thông tin, nhu cầu tìm kiếm thông tin
trên Internet ngày càng trở nên phổ biến. Việc cần tìm thông tin về
sản phẩm nào đó, giải pháp được hầu hết người dùng sử dụng là đưa
câu hỏi vào công cụ tìm kiếm thay vì tìm trên những website/forum
chuyên ngành. Tuy nhiên, các công cụ tìm kiếm có thể đưa ra một
danh sách các lựa chọn chứ không thể đưa ra được lựa chọn nào là tốt
nhất. Ví dụ, một du khách lần đầu đến Quảng Nam, muốn tìm một
địa điểm du lịch bằng cách tìm trên Google “Quang Nam tour”, thì sẽ
nhận gần 20.000.000 kết quả trả về. Hầu hết mọi địa điểm du lịch
trong danh sách kết quả đều xa lạ và tự quảng cáo mình là tốt nhất,
làm cho du khách bối rối trong biển thông tin, vì vậy, du khách cần
lời khuyên cho trường hợp này.
Hệ thống gợi ý (Recommender system - RS) đã trở thành
một trong những lĩnh vực nghiên cứu quan trọng kể từ khi bài báo
đầu tiên về lọc cộng tác (Collaborative filtering - CF) xuất hiện vào
giữa những năm 1990. Hiện nay, sự quan tâm đối với hệ thống gợi ý
đang rất cao vì sự cần thiết của những ứng dụng có thể giúp người
dùng xử lý với tình trạng quá tải thông tin và đưa ra những nội dung
hoặc lời khuyên phù hợp cho từng cá nhân. Hệ thống gợi ý là một
dạng kỹ thuật trong lọc thông tin và đang được sử 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á) từ người dùng. Hệ thống gợi ý học từ người dùng

và gợi ý sản phẩm tốt nhất trong số sản phẩm phù hợp. Các hệ thống
gợi ý thường dùng trong các ứng dụng chỉ có hai thực thể đó là người


2
dùng và các sản phẩm mà nó không đặt chúng vào một ngữ cảnh khi
cung cấp các gợi ý. Nói cách khác hệ thống gợi ý đa số tập trung vào
giới thiệu các sản phẩm phù hợp nhất với người dùng cá nhân mà
không xem xét đến thông tin ngữ cảnh của người dùng như thời gian,
địa điểm… Để hệ thống gợi ý có thể dự đoán chính xác về các sở
thích của người dùng thì nó phụ thuộc vào mức độ mà hệ thống gợi ý
đã kết hợp các thông tin theo ngữ cảnh.
Với việc ngành du lịch trong những năm qua phát triển mạnh
mẽ, đem lại lợi ích to lớn về kinh tế - xã hội, góp phần thúc đẩy các
ngành sản xuất và dịch vụ phát triển. Nhờ tiềm năng đa dạng và
phong phú với nhiều danh lam thắng cảnh, từ đó thu hút không ít
khách du lịch trong và ngoài nước. Tuy nhiên, khách du lịch thường
gặp phải những khó khăn khi đến những nơi lạ lẫm. Du khách thường
phải nhờ đến sự trợ giúp của hướng dẫn viên du lịch hoặc ít nhất là
phải dựa vào sách hướng dẫn hay bản đồ, công cụ tìm kiếm để có
được những thông tin về các địa điểm du lịch tốt nhất đối với họ. Tuy
nhiên, những sự trợ giúp này cũng có những hạn chế nhất định như:
khách du lịch sẽ khó tìm thấy những thông tin chi tiết về những địa
điểm du lịch cần tham quan để có sự chuẩn bị cần thiết. Hoặc là,
hướng dẫn viên thường đưa khách du lịch đến những tour du lịch
định sẵn và chỉ được tham quan những điểm du lịch chính, trong khi
đi những điểm du lịch thú vị lại không được tham quan, mặc dù cách
địa điểm chính rất gần. Vì 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à xây dựng hệ thống gợi ý
địa điểm du lịch” sử dụng công nghệ trong 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ọ, phù hợp với những điều kiện ngữ cảnh xung quanh.
2. Mục tiêu và nhiệm vụ của đề tài.


3
2.1. Mục tiêu
- Nghiên cứu lý thuyết và các phương pháp, kỹ thuật xây
dựng hệ thống gợi ý. Từ đó, tối ưu phương pháp dự đoán để hỗ trợ
cho hệ thống gợi ý.
- Xây dựng được hệ thống gợi ý địa điểm du lịch.
2.1. 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:
- Phân tích các phương pháp gợi ý đã tồn tại và đề xuất
hướng tiếp cận tối ưu.
- Ứng dụng hướng tiếp cận để tiến đến phân tích, thiết kế và
xây dựng hệ thống gợi ý.
- Triển khai xây dựng hệ thống gợi ý địa điểm du lịch và
đánh giá kết quả.
3. Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
- Nghiên cứu phương pháp lọc cộng tác, kỹ thuật phân rã ma
trận và xử lý các thông tin theo ngữ cảnh.
- Thông tin liên quan đến du lịch ở tỉnh Quảng Nam.
3.2. Phạm vi nghiên cứu
- Nghiên cứu tổng quan về lý thuyết các phương pháp gợi ý,
tập trung vào phương pháp lọc cộng tác, kỹ thuật phân rã ma trận và
cơ sở dữ liệu thực nghiệm để xây dựng hệ thống gợi ý và các hướng
cải tiến.

- Ứ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 Nam và được đưa lên Internet.
5. Phương pháp nghiên cứu
Trong luận văn đã sử dụng các phương pháp sau:


4
- Tìm hiểu thực tế, tổng hợp thống kê dữ liệu về du lịch
Quảng Nam.
- Kỹ thuật phân rã ma trận (matrix factorization – MF).
- Phương pháp xử lý thông tin ngữ cảnh đầu vào, đầu ra.
- Phương pháp đánh giá dựa trên độ đo (Root Mean Squared
Error – RMSE).
7. Ý nghĩa khoa học và thực tiễn của đề tài
- Ý nghĩa khoa học:
 Đề xuất được kỹ thuật phân rã ma trận vào hệ thống gợi ý
ngữ cảnh.
 Đề tài là bước đầu nghiên cứu trường hợp riêng của kỹ
thuật phân rã ma trận.
 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. Giúp phát
triển du lịch ở Quảng Nam
8. 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 về du lịch Quảng Nam và hệ thống gợi
ý.

Chương 2: Phương pháp gợi ý và mô hình đề xuất.
Chương 3: Xây dựng hệ thống gợi ý địa điểm du lịch: Trong
chương này tập trung vào việc phân tích thiết kế, xây dựng, thử
nghiệm hệ thống và từ đó đánh giá kết quả đạt được.


5
Chương 1 - TỔNG QUAN DU LỊCH QUẢNG NAM 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 Nam, 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Ề DU LỊCH QUẢNG NAM
1.2. CÁC PHƯƠNG PHÁP GỢI Ý
1.2.1. Phương pháp gợi ý dựa trên nội dung
Gợi ý dựa trên nội dung khai thác những khía cạnh có liên
quan đến nội dung thông tin sản phẩm người dùng đã từng sử dụng
hay truy cập trong quá khứ để tạo nên gợi ý hay nói cách khác gợi ý
trên nội dung được dựa trên mô tả có sẵn về đối tượng. Các phương
pháp tiếp cận cho 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 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.
Phương pháp gợi ý dựa trên nội dung của người dùng u với sản phẩm
i được đánh giá dựa trên độ phù hợp r(u, i).
1.2.2. Phương pháp gợi ý dựa trên lọc cộng tác
Lọc cộng tác là kỹ thuật sử dụng các sở thích cá nhân của
người dùng để đưa ra gợi ý. Một hệ thống lọc cộng tác xác định
người dùng có sở thích tương tự những người dùng trước và gợi ý

các sản phẩm mà họ có thể thích. Bản chất của phương pháp này
chính là hình thức gợi ý truyền miệng tự động. Trong phương pháp
này, hệ thống sẽ so sánh, tính toán độ tương tự giữa những người
dùng hay sản phẩm, từ đó người dùng sẽ được gợi ý những thông tin,
sản phẩm được ưa chuộng nhất bởi những người dùng có cùng thị


6
hiếu. Các hệ gợi ý dựa trên lọc cộng tác không yêu cầu quá nặng vào
việc tính toán, do đó nó có thể đưa ra những gợi ý có độ chính xác
cao và nhanh chóng cho một số lượng lớn người dùng.
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.
1.3. HỆ THỐNG GỢI Ý
1.3.1. Giới thiệu hệ thống gợi ý
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, ...

1.3.2. Chức năng hệ thống gợi ý
1.3.3. Dữ liệu và các nguồn tri thức
1.3.3.1. Sản phẩm
1.3.3.2. Người dùng
1.3.3.3. Giao dịch


7
1.3.4. Bài toán tổng quát của hệ thống gợi ý
Cho U là tập tất cả người dùng trong hệ thống gợi ý, I là tập tất
cả cảc sản phẩm có thể gợi ý.
Hàm r(u,i) có tác dụng đo độ phù hợp của sản phẩm i với

người dùng u: r:U  I  R, trong đó R là tập các đánh giá được
sắp thứ tự.
Với mỗi người dùng u ∈ U, hệ thống gợi ý cần chọn ra các sản
phẩm i ∈ I chưa biết với người dùng u sao cho hàm r(u, i) đạt giá trị
lớn nhất. Vậy công việc chính của giải thuật là đi tìm giá trị hàm
r=f(u, i), với r lớn nhất là sản phẩm i được người dùng u ưa thích nhất.
Trong các hệ thống gợi ý, mức độ phù hợp của sản phẩm
thường được biểu diễn theo đánh giá thang điểm (rating), tùy vào
từng ứng dụng các đánh giá này có thể được thực hiện trực tiếp bởi
người dùng hoặc được tính toán bởi hệ thống. Hệ thống gợi ý gồm ba
hoạt động chính:
Bước 1: Thu thập thông tin của người dùng khi người dùng
tương tác với hệ thống và lưu vào trong hồ sơ người dùng.
Bước 2: Hệ thống xác định mối quan tâm của người dùng và
thực thi một thuật toán tư vấn nhằm so sánh, đánh giá mối liên hệ đối
với hồ sơ của người dùng tương tự khác hoặc đối với hồ sơ sản phẩm
đã có.

Bước 3: Đề xuất một tập hợp những sản phẩm người dùng có
thể quan tâm.
1.3.5. Các website du lịch của Việt Nam

Chương 2 - PHƯƠNG PHÁP GỢI Ý VÀ MÔ HÌNH ĐỀ XUẤT


8
Mỗi phương pháp gợi ý có những ưu điểm và hạn chế riêng,
khai thác các mối liên hệ trên mạ trận đánh giá người dùng. Không
giống như phương pháp lọc theo nội dung, lọc công tác khai thác sở
thích của người dùng để tạo ra các gợi ý và được áp dụng bởi kỹ
thuật phân rã ma trận là kỹ thuật tiến bộ nhất trong số các kỹ thuật
trong phương pháp CF.
2.1. PHƯƠNG PHÁP LỌC CỘNG TÁC
Lọc cộng tác (Collaborative Filtering - CF) là gợi ý những sản
phẩm mới hoặc dự đoán một sản phẩm hợp lý cho người dùng, dựa
trên những hành vi quá khứ của người dùng, ví dụ như: lịch sử giao
dịch, đánh giá sản phẩm, thời gian xem một mục tin… và đặc biệt là
nó không cần thiết phải tạo ra các hồ sơ tường minh (Explicit
feedback) cho người dùng.
Bài toán lọc cộng tác:
Cho tập hợp hữu hạn U = {u1, u2, …, uN} là tập gồm N người
dùng, P = {p1, p2, …, pM} là tập gồm M sản phẩm mà người dùng có
thể lựa chọn. Mỗi sản phẩm pi ϵ P có thể là hàng hóa, phim, ảnh, tạp
chí, tài liệu, sách, báo, dịch vụ hoặc bất kỳ dạng thông tin nào mà
người dùng cần đến.
Mối quan hệ giữa tập người dùng U và tập sản phẩm P được
biểu diễn thông qua ma trận đánh giá R = { rij }, i = 1, ..., N, j = 1, ...,
M là ma trận đánh giá, trong đó mỗi người dùng ui ϵ U đưa ra đánh

giá của mình cho một số sản phẩm pi ϵ P bằng một số rij. Giá trị rij
phản ánh mức độ ưa thích của người dùng ui đối với sản phẩm pj, giá
trị rij có thể được thu thập trực tiếp bằng cách hỏi ý kiến người dùng
hoặc thu thập gián tiếp thông qua cơ chế phản hồi của người dùng.
Giá trị rij =  trong trường hợp người dùng ui chưa đánh giá hoặc
chưa bao giờ biết đến sản phẩm pj.


9
Với một người dùng cần được gợi ý ua, bài toán lọc cộng tác là
bài toán dự đoán đánh giá của ua đối với sản phẩm mà ua chưa đánh
giá (rij = ), trên cơ sở đó gợi ý cho ua những sản phẩm được đánh
giá cao.

Hình 2.2. Quy trình của hệ thống gợi ý dựa trên lọc cộng tác
Ma trận đánh giá R = (rij) là thông tin đầu vào duy nhất của
các phương pháp lọc cộng tác. Dựa trên ma trận đánh giá, các
phương pháp lọc cộng tác thực hiện hai tác vụ: Dự đoán quan điểm
của người dùng hiện thời (Active user) về các sản phẩm mà họ
chưa đánh giá, đồng thời đưa ra một danh sách các sản phẩm có
đánh giá cao nhất phân bổ cho người dùng hiện thời. Hình 2.2 mô
tả các thành phần của hệ thống lọc cộng tác.
Như vậy, phương pháp lọc cộng tác là phương pháp sử dụng
các sở thích của người dùng để tạo ra các gợi ý. Phương pháp lọc
cộng tác bao gồm các kỹ thuật như kỹ thuật láng giềng, kỹ thuật
mạng Bayesian, kỹ thuật mạng Neural kết hợp SVD (Singular
value decomposition), kỹ thuật quy tắc quy nạp.


10

Lọc cộng tác được tiếp cận theo hai xu hướng chính: Lọc
cộng tác dựa trên bộ nhớ và lọc cộng tác dựa trên mô hình. Mỗi
phương pháp tiếp cận có những ưu điểm và hạn chế riêng, khai thác
các mối liên hệ trên ma trận đánh giá người dùng.
2.1.1. Ưu điểm của phương pháp lọc cộng tác
2.1.2. Các hình thức tiếp cận
2.1.2.1. Phương pháp tiếp cận dựa trên bộ nhớ
2.1.2.2. Phương pháp tiếp cận dựa trên mô hình
2.2. KỸ THUẬT PHÂN RÃ MA TRẬN
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ỉ



11
đá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...
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à:
X ~ WH

T

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


12
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.
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:


eui  rui  rˆui ∀ u,i ∈ X
eui làˆsai số huấn luyện trên xếp hạng thứ (u,i).
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 :

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


13
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(r  rˆ )h
ui
ui
ik
w uk
 OMF= 2(r  rˆ ) w
uk
ui
ui
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
old
w uk
 w uk


hiknew  hikold  


old
O MF  w uk
 2 (rui  rˆui )hik
w uk
 MF
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.
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


14
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:
O MF 



u ,iD

Train

Trong đó

K

(rui   w uk hik )2   ( W
k 1

2
F

 H F)
2

 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
old
old
w uk
 w uk
  (2(rui  rˆui )hik  .w uk
)

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 item thứ 3


15
Thuật toán phân rã ma trận
Đầu vào: Một bộ dữ liệu huấn luyện X, giá trị khởi tạo bạn đầu
W0 và H0.
Đầu ra: Hai ma trận W và H.
1: procedure MF (D

Train


,K, β, λ, stopping condition)

// W[|U|][K] và H[|I|][K] là 2 tham số cần tìm
2:

W := N(0,σ2) //khởi tạo giá trị theo phân phối chuẩn

3:

H := N(0, σ2) //khởi tạo giá trị theo phân phối chuẩn

4:

while() do

5:

Draw randomly (u,i,x) from DTrain

6:

rˆ := 0

7:

for (k:=1; k<=K; k++)
rˆ := rˆ + W[u][k] * H[i][k]

8:
9:


end for

10:

e = r – rˆ

11:

for (k:=1; k<=K; k++)

12:
W[u][k])

W[u][k] := W[u][k] + β * (eui * H[i][k] - λ *

13:

H[i][k] := H[i][k] + β * (eui * W[u][k] - λ*

H[i][k])
14:
15:

end for
end while


16
16:


return{W,H}

17:end procedure
2.3. MÔ HÌNH ĐỀ XUẤT

Hình 2.5. Mô hình đề xuất quy trình gợi ý
2.3.1. Xử lý đầu vào
2.3.2. Xử lý đầu ra
2.3.3. Kết hợp phương pháp gợi ý theo ngữ cảnh


17
Chương 3 - XÂY DỰNG HỆ THỐNG GỢI Ý ĐỊA ĐIỂM DU LỊCH
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.


18
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.

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

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


19
3.2.1. Sơ đồ ca sử dụng

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

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



20

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

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


21
3.2.3. Cơ sở dữ liệu

Hình 3.12. Sơ đồ quan hệ cơ sở dữ liệu
3.2.4. Một số giao diện minh họa của hệ thống

Hình 3.20. Giao diện gợi ý theo loại hình


22
3.3. ĐÁNH GIÁ
Dữ liệu: Tạo dữ liệu đánh giá của người dùng cho các địa
điểm du lịch trong phạm vi thành phố Hội an. Tập dữ liệu gồm 123
người dùng (users), 51 địa điểm du lịch (items) và 693 đánh giá
(ratings – từ 1 – 5 tương ứng với mức độ thích từ thấp đến cao). Các
ngữ cảnh người dùng có thể chọn là “bạn đồng hành”, “thời điểm”,
“thời tiết” và “phạm vi”.
Độ đo: Để đánh giá hiệu quả của giải thuật (hay tổng quát là
của cả hệ thống), ta sử dụng độ đo phổ biến nhất mà cộng đồng người
dùng trong lĩnh vực hệ thống gợi ý thường sử dụng là Root Mean
Squared Error (RMSE). Đây là độ đo hay được dùng trong dự đoán

xếp hạng (rating prediction), lấy ngẫu nhiên 2/3 tập dữ liệu để học
(train) và 1/3 còn lại để kiểm tra (test).
RMSE được xác định qua công thức:

1.1
1.08
1.06
1.04
1.02
1
0.98

Global Average
User Average
Item Average

MF - Context

0.96

0.94

Hình 3.21. So sánh RMSE giữa các phương pháp


23
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Kết luận
Hiện nay, sự quan tâm đối với hệ thống gợi ý đang rất cao vì
sự cần thiết của những ứng dụng có thể giúp khách du lịch nắm bắt

tốt thông tin và đưa ra những nội dung hoặc lời khuyên phù hợp cho
từng cá nhân. Đề tài luận văn hướng đến việc thu thập dữ liệu đánh
giá của người dùng cung cấp cho hệ thống gợi ý thông qua một
website du lịch đơn giản, tích hợp kỹ thuật lọc cộng tác để gợi ý sản
phẩm cho người dùng và thực nghiệm từ phản hồi của người dùng có
thể đưa ra những lời gợi ý khá phù hợp. Các địa điểm du lịch mà
website gợi ý là kết quả có được dựa trên những đánh giá của nhiều
người dùng trước đó. Qua quá trình nghiên cứu một cách tổng quan
nhất về du lịch Quảng Nam và hệ thống gợi ý địa điểm du lịch thì
việc ứng dụng nó để lập website gợi ý địa điểm du lịch về cơ bản đã
hoàn thành, thực hiện được đầy đủ các mục tiêu đề tài đặt ra đó là
giới thiệu các địa điểm du lịch, lấy đánh giá người dùng làm CSDL
cho hệ thống gợi ý.
Mặc dù hệ thống về cơ bản đã đáp ứng khá đầy đủ các mục
tiêu đề ra, tuy nhiên vẫn còn tồn tại thiếu sót như chưa thể hiện được
đầy đủ một hệ thống gợi ý địa điểm du lịch, cũng như đạt được một
CSDL đủ lớn. Để khắc phục những thiếu xót trên cần có nhiều thời
gian đặc biệt trong việc thu thập dữ liệu, làm sao tạo được một CSDL
đủ lớn và đầy đủ cho hệ thống gợi ý địa điểm du lịch là nội dung
quan trọng nhất mà đề tài hướng tới, bên cạnh đó cần nâng cao chất
lượng và số lượng của thông tin chi tiết cho các điểm du lịch, tìm
cách thu hút người dùng để lại thông tin cá nhân và đánh giá một
cách đầy đủ.


×