Một tình huống có thể được biểudiễn bằng cách sử dụng véc-tơ đặc điểm tuyến tính linear featured vector,văn bản bán cấu trúc semi-structured text, hay các đối tượng có cấu trúcphức tạp n
Trang 1NGUYỄN ĐÌNH GIỚI
NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG LẬP KẾ HOẠCH DU LỊCH
DỰA TRÊN HỆ GỢI Ý
LUẬN VĂN THẠC SĨ Chuyên ngành: Khoa học máy tính
Hà Nội - Năm 2016
Trang 2NGUYỄN ĐÌNH GIỚI
NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG LẬP KẾ HOẠCH DU LỊCH
DỰA TRÊN HỆ GỢI Ý Chuyên ngành: Khoa học máy tính
Mã số: 60480101
CÁN BỘ HƯỚNG DẪN KHOA HỌC Cán bộ hướng dẫn chính: TS Nguyễn Thị Hiền
Hà Nội - Năm 2016
Trang 3Cán bộ chấm phản biện 1:
Cán bộ chấm phản biện 2:
Luận văn thạc sĩ được bảo vệ tại:
HỘI ĐỒNG CHẤM LUẬN VĂN THẠC SĨHỌC VIỆN KỸ THUẬT QUÂN SỰNgày…tháng…năm 2016
Trang 4BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn: Nguyễn Đình Giới
Đề tài luận văn: Nghiên cứu, xây dựng hệ thống lập kế hoạch du lịch dựa trên hệ gợi ý
Chuyên ngành: Khoa học máy tính
Mã số: 60480101
Cán bộ hướng dẫn: TS Nguyễn Thị Hiền
Tác giả, cán bộ hướng dẫn khoa học và Hội đồng chấm luận văn xác nhận tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng ngày với các nội dung như sau:
Ngày tháng năm 2016
Trang 6pháp luật Việt Nam Nếu sai, tôi hoàn toàn chịu trách nhiệm trước pháp luật.
TÁC GIẢ LUẬN VĂN
Nguyễn Đình Giới
Trang 7Bản xác nhận chỉnh sửa luận văn:
Bản cam đoan:
Mục lục:
Tóm tắt luận văn:
Danh mục chữ viết tắt
Danh mục bảng biểu
Danh mục hình vẽ
MỞ ĐẦU 1
Chương 1 HỆ THỐNG GỢI Ý VÀ GIẢI THUẬT CBR 3
1.1 Giới thiệu hệ thống gợi ý 3
1.1.1 Hệ thống gợi ý 3
1.2.2 Các phương pháp gợi ý truyền thống 4
1.2 Giải thuật CBR 6
1.2.1 Khái niệm CBR 6
1.2.2 Giải thuật CBR 7
CHƯƠNG 2: BÀI TOÁN GỢI Ý TOUR DU LỊCH 12
2.1 Mô hình lô-gic và các hàm chức năng 12
2.2 Biểu diễn thành phần tour 16
2.2.1 Cấu trúc của một case 18
2.2.2 Độ tương đồng và xếp hạng các item 24
2.2.3 Hệ thức khoảng cách không đồng nhất 31
2.2.4 Độ tương đồng giữa hai case 33
Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG CỔNG THÔNG TIN DU LỊCH 47
Trang 83.2 Thiết kế chương trình 53
3.2.1 Thiết kế các lớp dữ liệu 53
3.2.2 Sơ đồ liên kết lớp 60
3.2.3 Luồng xử lý hệ thống 61
Chương 4 XÂY DỰNG HỆ THỐNG 62
4.1 Xây dựng hệ thống 62
4.2 Kết quả thực hiện 62
KẾT LUẬN VÀ HƯỚNG MỞ RỘNG 64
TÀI LIỆU THAM KHẢO 65
Trang 9+ Cán bộ hướng dẫn: TS Nguyễn Thị Hiền
+ Tên đề tài: Nghiên cứu, xây dựng hệ thống lập kế hoạch du lịch dựa trên hệgợi ý
+ Tóm tắt: Nghiên cứu giải thuật CBR để áp dụng vào cổng thông tin du lịchnhằm gợi ý cho người dùng những tour du lịch hợp lý nhất Kết quả gợi ýđược đưa ra khá tốt
Trang 10CBR Case –Based Reasoning
Trang 11Bảng 3 Bảng dữ liệu đặc điểm, loại hình du lịch
Bảng 13 Bảng dữ liệu case base
Bảng 14 Bảng dữ liệu điểm số các thành phần của caseBảng 21 Lớp CBRConfig
Bảng 22 Lớp DBAdapter
Bảng 23 Lớp CBR
Trang 12Hình 1.2 Qui trình giải thuật CBR
Hình 3.2 Qui trình làm việc của hệ thống
Hình 4.1 Các gợi ý ban đầu cho khách lựa chọn
Hình 4.2 Khi đã hoàn thành các gợi ý
Trang 13MỞ ĐẦU
1 Tính cấp thiết của đề tài
Việt Nam là một trong những điểm đến hấp dẫn và an toàn nhất thế giới.Trong những năm gần đây, mặc dù phải đối mặt với cuộc khủng hoảng kinh
tế toàn cầu, GDP ngành Du Lịch vẫn tăng với một tốc độ đáng nể và du lịchước tính đã đóng góp 13,1% cho tổng sản phẩm quốc dân (GDP)
Ngành du lịch Việt Nam được dụ báo sẽ phát triển mạnh mẽ hơn nữatrong tương khi mà chúng ta vẫn chưa biết cách khai thác hết lợi thế vốn có
"rừng vàng, biển bạc" của đất nước Và một thực tế vẫn tồn tại, tại hầu hếtnhững khu du lịch lối tư duy bóc ngắn cắn dài đã ăn sâu vào tiềm thức củanhững người làm kinh doanh dẫn đến việc thiếu tôn trọng du khách, lợi dụngthời cơ cơ hội để chặt chém lừa bịp du khách để nhanh chóng kiếm lợi nhuậntrong một mùa nào đó để bù lại thời điểm ế khách trong năm Chính nhữngđiều đó đã và đang cản trở sự phát triển của ngành du lịch nước nhà
Đứng trước vấn đề đó, tôi đã lựa chọn đề tài “Nghiên cứu, xây dựng hệ
thống lập kế hoạch du lịch dựa trên hệ gợi ý” làm đề tài luận văn tốt nghiệpthạc sỹ của mình
2 Mục tiêu của đề tài
- Tìm hiểu kỹ thuật kỹ thuật xây dựng hệ gợi ý
- Xây dựng cổng thông tin du lịch
- Tích hợp kỹ thuật gợi ý vào cổng thông tin du lịch
3 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Giải thuật CBR
Trang 14- Phạm vi nghiên cứu:
4 Nội dung nghiên cứu
Chương 1 HỆ THỐNG GỢI Ý VÀ GIẢI THUẬT CBR
1.1 Giới thiệu hệ thống gợi ý
1.2 Giải thuật CBR
CHƯƠNG 2: BÀI TOÁN GỢI Ý TOUR DU LỊCH
2.1 Mô hình lô-gic và các hàm chức năng
2.2 Biểu diễn thành phần tour
Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG CỔNG THÔNG TIN DU LỊCH3.1 Thiết kế cơ sở dữ liệu
Trang 15Chương 1 HỆ THỐNG GỢI Ý VÀ GIẢI THUẬT CBR
1.1 Giới thiệu hệ thống gợi ý
1.1.1 Hệ thống gợi ý
Hệ thống gợi ý [1] là một hệ thống có khả năng dự đoán và đưa ra sự gợi
ý cho một items tới người sử dụng Sự gợi ý liên quan đến việc đưa ra quyếtđịnh của người dùng, chẳng hạn như chọn sản phẩm nào để mua, chọn nghebài hát nào hay chọn địa điểm nào để đi du lịch…
Thuật ngữ “Items” sử dụng để đại diện cho bất cứ một đối tượng, nộidung nào mà hệ thống gợi ý cho người dùng
Các lĩnh vực ứng dụng: Thương mại điện tử, Giáo dục, Học tập, Giải trí,Mạng xã hội…
Các hệ thống điển hình: Amazon.com, Pandora Radio, Netflix…
Trang 161.2.2 Các phương pháp gợi ý truyền thống
1.1.2.1 Lọc cộng tác (Collaborative filtering)
Đây là phương pháp được thực hiện dựa trên việc thu thập và phân tíchmột lượng lớn những thông tin về thói quen, hành vi hay sở thích của ngườidùng và từ đó dự đoán những item mà người dùng có khả năng hài lòng thôngqua việc so sánh sự giống nhau của họ với những người dùng khác Điểmmạnh chính của phương pháp lọc cộng tác (collaborative filtering) [1] đó là
nó không thực sự phụ thuộc vào khả năng phân tích nội dung của máy tính và
do đó, phương pháp này có khả năng gợi ý một cách chính xác những itemphức tạp Chẳng hạn như hệ thống có thể xem xét một bộ phim mà không cần
“hiểu” về nội dung của bộ phim đó Có khá nhiều thuật toán đã được sử dụng
để đo lường độ tương tự giữa những người dùng hoặc giữ các item với nhautrong một hệ thống gợi ý Điển hình như: k-nearest neighborhood (k-NN) vàPearson Correlation
Trang 17Việc xây dựng một mô hình mẫu từ hồ sơ của người dùng thường đượcthực hiện giữa hai phương pháp thu thập dữ liệu tường mình và không tườngminh.
Một vài ví dụ về việc thu thập dữ liệu tường minh:
- Yêu cầu người dùng bầu chọn một item theo một thang điểm nào đó
- Yêu cầu người dùng xếp hạng một hoặc một nhóm các item mà người
đó yêu thích nhất
- Đưa ra cho người sử dụng hai item, yêu cầu họ chọn một item tốt hơn
- Yêu cầu người dụng tạo ra danh mục sản phẩm yêu thích của riêng họMột vài ví dụ về việc thu thập dữ liệu không tường minh:
- Theo dõi những item mà người dùng đã xem
- Phân tích thời gian mà người dùng xem một item
- Lưu giữ thông tin về những sản phẩm mà người dùng đã mua trựctuyến
- Thu thập danh sách những item mà người dùng đã xem trên máy tínhcủa họ
- Phân tích người dùng trên mạng xã hội để biết họ thích, không thíchđiều gì
Nhược điểm:
Hình 1.1 Minh họa về lọc cộng tác (Collaborative filtering) [3]
Trang 18- Phụ thuộc nhiều vào lượng lớn thông tin từ phía người dùng, khó khănvới một hệ thống mới, gặp khó khăn với những item mới
1.1.2.2 Lọc dựa trên nội dung (Content-based filtering)
Lọc dựa trên nội dung (Content-based filtering) [1] là phương pháp dựatrên những đặc điểm của chính item Nói cách khác, thuật toán cho phươngpháp này cố gắng gợi ý những item có những điểm giống với những item màngười dùng đã từng quan tâm trong quá khứ Item được đề xuất là những itemđược chọn ra với độ tương đồng lớn nhất bằng việc so sánh với những item đãđược người dùng xếp hạng, đánh giá trước đó
Về cơ bản, phương pháp này sử dụng một hồ sơ các đặc điểm về mộtitem ở bên trong hệ thống Hệ thống tạo một hồ sơ của người dùng dựa trênmột véc-tơ trọng số các thuộc tính của item Mỗi trọng số biểu thị cho mức độquan trọng của mỗi thuộc tính tương ứng đối với người sử dụng và có thểđược tính toán từ véc-tơ xếp hạng nội dung bằng nhiều công nghệ khác nhau.Phương pháp tiếp cận đơn giản nhất là sử dụng giá trị trung bình từ véc-
tơ xếp hạng item Bên cạnh đó có một số phương thức phức tạp hơn sử dụng
kỹ thuật học máy chẳng hạn như Bayesian Classifiers, Cluster Analysis,Decision Trees và Artificial Neural Networks để ước lượng xác xuất màngười dùng có khả năng thích một item nào đó Sự phản hồi trực tiếp từ ngườidùng (thường là nút like, dislike) cũng có thể được sử dụng để gán thiết đặtnhững trọng số cho những thuộc tính nhất định (using Rocchio Classification
or other similar techniques)
Nhược điểm chính của lọc dựa trên nội dung đó là liệu rằng hệ thống cókhả năng học những sở thích từ những hoạt động của người dùng liên quanđến một nguồn nội dung và sử dụng chúng cho những kiểu nội dung khác
Trang 19Khi hệ thống bị giới hạn bởi việc gợi ý các nội dung cùng loại mà người dùng
đã sử dụng, các sản phẩm gợi ý từ hệ thống có thể ít hơn nhiều so với các kiểunội dung từ những dịch vụ khác
1.2 Giải thuật CBR
1.2.1 Khái niệm CBR
CBR (Case –Based Reasoning) [2, 3] có thể được coi như một hệ thứcphương pháp luận hoạt động dựa trên sự tái sử dụng những kinh nghiệm,được mô hình hóa như một tình huống (case) Bên cạnh đó, CBR có thể đượchiểu như một mô hình bậc cao mô hình hóa quá trình nhận thức, hay mộtdạng thức tính toán để giải quyết một bài toán phát sinh Giải thuật CBR ápdụng trong hệ tư vấn được tập trung chủ yếu theo cách hiểu thứ hai Trong đó,như Amoodt và Plaza [3] đã khẳng định, CBR được coi như một qui trình tìmlời giải cho một vấn đề, qui trình này sử dụng một nguồn tri thức cụ thể đượcthu thập qua những tình huống cố định đã phát sinh Điều này đối nghịch vớinhững phương pháp luận truyền thống chỉ dựa trên những nguồn tri thức phổquát thuộc về một miền vấn đề nhất định Những tri thức này được thể hiệnbằng cách sử dụng một trong những ngôn ngữ biểu diễn tri thức như nhữngqui tắc, dạng logic (first-order logic), hay các mạng ngữ nghĩa (semanticnetworks),
1.2.2 Giải thuật CBR
Để có thể áp dụng qui trình giải lập luận tình huống CBR, vấn đề cănbản đầu tiên liên quan đến việc sử dụng ngôn ngữ mô tả tình huống (caserepresentation language) và phạm vi sử dụng của những khái niệm trong mô
tả tình huống Những khái niệm xuất hiện trong một ứng dụng CBR bao gồmnội dung tình huống, cấu trúc thích hợp mô tả một tình huống, cách thức sắp
Trang 20xếp các tri thức về tình huống đã diễn ra Trong đó, nội dung tình huống phụthuộc vào lĩnh vực mà tình huống đó diễn ra Một tình huống có thể được biểudiễn bằng cách sử dụng véc-tơ đặc điểm tuyến tính (linear featured vector),văn bản bán cấu trúc (semi-structured text), hay các đối tượng có cấu trúcphức tạp như đồ thị (graph), mẫu đối tượng (object pattern) trong ngôn ngữhướng đối tượng
Trong phương pháp sử dụng véc-tơ đặc điểm tuyến tính, một tình huốngđược mô tả như một danh sách cố định những đặc điểm không đồng nhất(heterogeneous features) bao gồm những chuỗi (string), số thực, số nguyên,Boolean, Về cơ bản, phương pháp mô tả tình huống với véc-tơ tuyến tínhđược bắt nguồn từ các phương pháp học máy (machine learning) hay nhậndạng mẫu (pattern recognition), và được định nghĩa như một phương pháp saochép (exemplar), ánh xạ (instance) hay ghi nhớ (memory) Đối với nhữngphương pháp này, quá trình giải quyết vấn đề có thể được coi như một bàitoán phân loại (classification) hay một tác vụ phỏng đoán chức năng (functionapproximation) Trong phương pháp thứ hai, thông tin đầu vào của một tìnhhuống được biểu diễn dưới dạng văn bản Bản thân những dữ liệu văn bảnđầu vào đã trải qua quá trình tiền xử lý Ví dụ, quá trình tiền xử lý có thể baogồm việc xây dựng chỉ mục (index), thông tin siêu dữ liệu (metadata), tómlược cho dữ liệu văn bản Quá trình này gắn kết CBR với các phương phápthu thập dữ liệu (information retrieval) Trong phương pháp cuối cùng, mộttình huống có thể là sự kết hợp giữa mô tả văn bản (text-based) với mô tả véc-
tơ (vector-based representation) hoặc có thể được biểu diễn bằng những môhình dữ liệu đồ thị Phương pháp này thường được sử dụng trong trường hợptình huống có cấu trúc phức tạp, bao gồm nhiều thành phần phân cấp(hierarchy) Những tình huống xuất hiện trong tư vấn tour du lịch có thể đượccoi như những tình huống có cấu trúc phức tạp với sự xuất hiện của nhiều
Trang 21thành phần dạng cây như địa điểm (location), chỗ ở (accomodation), sự kiện(event), hoạt động (activity), Vấn đề biểu diễn một tình huống tour cụ thể sẽđược đề cập chi tiết trong mục 2.2.1 của chương 2 với việc sử dụng XML làngôn ngữ mô hình hóa dữ liệu chính.
Tóm lại, một tình huống thường bao gồm ba thành phần chính: Mô tảvấn đề (problem description), giải pháp (solution) và kết quả (outcome).Thành phần thứ nhất chứa đựng những thông tin cần thiết miêu tả một tìnhhuống phát sinh, mô tả này biểu thị khả năng tái sử dụng dữ liệu của nhữngtình huống đã xảy ra để giải quyết vấn đề mới Nếu coi quá trình tìm lời giảicho một tình huống vấn đề mới như một hàm ước đoán thì phần mô tả dữ liệuđược xem như miền xác định của hàm, trong khi giải pháp và kết quả xácđịnh các miền giới hạn tương đồng (codomain) Giải pháp biểu thị lượngthông tin cần thiết để giải quyết vấn đề, ví dụ như xây dựng một kế hoạch hợp
lý để có thể đưa du khách đến địa điểm đúng thời điểm Cuối cùng, kết quảđược coi như một đánh giá tổng kết mức độ hữu ích của giải pháp được ápdụng giải quyết vấn đề phát sinh Trong trường hợp giải thuật CBR của hệ tưvấn du lịch được trình bày trong chương này, tình huống tour sẽ được mô tảvới những thành phần phức tạp, đồng nghĩa với không có sự khác biệt rõ rànggiữa những thành phần mô tả vấn đề với những thành phần biểu thị giải pháp.Trong quá trình xử lý, giải pháp giải quyết vấn đề tìm kiếm, gợi ý điểm đến(destination) có thể được dùng như mô tả của vấn đề gợi ý địa điểm thắngcảnh (attraction) du khách nên đến
Về cơ bản, qui trình giải quyết vấn đề theo phương pháp lập luận tìnhhuống CBR có thể được diễn tả bởi hình 1.2:
Case Library
Domain Model
Trang 22Hình 1.2 Qui trình giải thuật CBR [2]
- Đầu vào của giải thuật: là các tình huống, mô tả tình huống đó và sử
dụng các kỹ thuật phân vùng, phân cụm và các phương pháp tính khoảng cách
để lọc từ CSDL ra các tình huống tương đồng
- Đầu ra của giải thuật: Là các tình huống tương đồng có độ tươngđồng cao nhất và được lưu vào CSDL tình huống
Trong đó:
Bước 1 Tiếp nhận vấn đề: Trong bước đầu tiên của qui trình, mô tả về
vấn đề mới được tiếp nhận Bằng cách sử dụng những phương pháp tínhkhoảng cách (distance metric) với miền xác định là dữ liệu mô tả vấn đề đầuvào, những tình huống tương đồng với tình huống đại diện cho vấn đề phátsinh được lọc ra từ cơ sở dữ liệu chứa những tình huống đã được giải Các kỹthuật phân vùng (case partition), phân cụm (case cluster) tình huống có thểđược dùng để đẩy nhanh tốc độ phân lọc dữ liệu tình huống
Retrieved Solution
4 Review
Trang 23Bước 2 Tái sử dụng giải pháp: Những tình huống tương đồng được tiếp
nhận sau quá trình tính toán mức độ tương đồng ở bước đầu tiên sẽ được dùng
để xây dựng giải pháp cho tình huống mới Việc xây dựng giải pháp có thểchỉ đơn giản là trích chọn những giải pháp từ những tình huống tương đồng
áp dụng để giải quyết tình huống mới, cũng có thể phức tạp khi những giảipháp từ những tình huống tương đồng được trích chọn và tích hợp với nhauthành một giải pháp mới chung nhất cho vấn đề mới
Bước 3 Sửa đổi giải pháp: Giải pháp mới sau khi được xây dựng sẽ
được xem xét sửa đổi để đáp ứng đúng những yêu cầu cụ thể của tình huốnghiện tại Ví dụ trong điều trị y học, bác sĩ có thể tái sử dụng một pháp đồ điềutrị cho cùng một bệnh nhưng cần cân nhắc sự khác nhau về đặc điểm (tuổitác, cân nặng) giữa các bệnh nhân
Bước 4 Xét duyệt giải pháp: Giải pháp sau khi được sửa đổi hoàn chỉnh
sẽ được xét duyệt, đánh giá khi áp dụng vào giải quyết tình huống hiện tại.Trong trường hợp giải pháp thất bại trong giải quyết vấn đề, tình huống sẽđược đưa về trạng thái trước đó trong bước 2, 3 Các bước 2, 3, 4 trong lậpluận CBR có thể được coi như các giai đoạn tìm kiếm giải pháp thích ứng vớivấn đề mới
Bước 5 Lưu trữ giải pháp: Giải pháp cho tình huống mới sau khi trải
qua các quá trình thích ứng (2, 3, 4) sẽ được cân nhắc để lưu trữ vào cơ sở dữliệu các giải pháp tình huống Trong trường hợp tình huống mới không đượcđánh giá kỹ lưỡng hay quá tương đồng với những tình huống đã được lưu trữ,tình huống này sẽ không được lưu trữ vì không mang lại tri thức mới
Trang 24CHƯƠNG 2: BÀI TOÁN GỢI Ý TOUR DU LỊCH
Trong chương này tác giả sẽ sử dụng giải thuật CBR áp dụng vào bàitoán gợi ý tour du lịch
Ta có thể thấy các thành phần khái niệm liên quan đến giải thuật lập luậntình huống được dùng trong hệ gợi ý bao gồm những thành phần sau: Cáckhái niệm liên quan đến qui trình lập luận tình huống, các khái niệm mô tảcấu trúc biểu diễn của một tình huống tour cùng các thành phần thiết yếu nhấtcấu tạo nên một tour như điểm đến, nơi ăn nghỉ, và thắng cảnh, mô hình logic
và các hàm chức năng trong hệ tư vấn, các hệ thức khoảng cách giúp tính toánmức độ tương đồng, độ tương đồng giữa các thành phần tour và tình huốngtour, cuối cùng là mô tả qui trình gợi ý một tour hoàn chỉnh dựa trên tính toán
độ tương đồng và gợi ý lần lượt từng thành phần tour riêng lẻ Dựa trên những
mô tả chi tiết về các khái niệm, định nghĩa cùng qui trình, giải thuật, ta có thểtừng bước xây dựng và kiểm thử tính hiệu quả của giải thuật CBR bao gồmcác mục sau đây:
Trang 252.1 Mô hình lô-gic và các hàm chức năng
Hình 2.1 Mô hình logic CBR [2]
Hình 2.1 là lược đồ biểu diễn mối quan hệ giữa các lớp đối tượng được
sử dụng trong giải thuật CBR của hệ tư vấn Các thành phần gồm có: case,base constraint, location, attraction, accommodation, item, user profile,reward, travel wish, travel bag, travel information
Case: Được hiểu như một tình huống biểu thị một phiên (session) hoàn
chỉnh tương tác giữa người dùng và hệ thống Tình huống (phiên) này đượckhởi tạo và kết thúc bởi người dùng Trong biểu đồ 2, một tình huống (case)được hợp thành bởi các thành phần travel information (bao gồm travel wish
và travel bag), user profile và reward Những thành phần này sẽ lần lượt đượctrình bày chi tiết dưới đây
UserProfile: Là lớp chứa những thông tin về người dùng Thông tin
này bao gồm tên, tuổi, giới tính và được dùng trong tính toán độ tương đồng
Trang 26giữa hai người dùng Đối với người dùng không đăng ký, thông tin được lưutrữ dưới dạng dữ liệu null
TravelInformation: Là lớp chứa thông tin về giới hạn yêu cầu (base
constraint) từ người dùng, đồng thời bao gồm những thành phần cơ bản củamột tour như điểm đến (location), thắng cảnh (attraction) và chỗ ở(accommodation) Travel information là lớp tổng quát của hai lớp con travelbag và travel wish
TravelBag: Là lớp lưu trữ thông tin về những thành phần tour (điểm
đến, thắng cảnh, chỗ ở) được người dùng chú ý chọn từ danh sách được gợi ý.Những thành phần này đại diện cho một tour phù hợp với yêu cầu của ngườidùng
TravelWish: Là lớp lưu trữ những yêu cầu, nguyện vọng về một tour
du lịch từ phía người dùng Các thành phần tour tương tự với các thành phầnnằm trong travel bag, bao gồm điểm đến, thắng cảnh và chỗ ở, đồng thời với
dữ liệu yêu cầu (base constraint) của người dùng TravelWish có thể được coinhư tập hợp các cặp đặc tính-giá trị (feature-value) mà người dùng chỉ địnhtrong quá trình tương tác với hệ thống Những đặc tính được mô tả trongTravelWish phải cố định, nhất quán với những đặc tính được mô tả trongnhững thành phần (item) của TravelBag Như vậy, những đặc tính xuất hiệntrong TravelBag phải thỏa mãn những đặc tính đại diện cho yêu cầu củangười dùng xuất hiện trong TravelWish
Reward: Là lớp lưu trữ những đánh giá của người dùng về từng thành
phần của một tour biểu thị trong TravelBag Những điểm đánh giá này sẽđược lưu lại như một trong những thành phần của một case
Trang 27 Item: Là sản phẩm của hệ tư vấn Không gian sản phẩm (item space)
có thể bao gồm toàn bộ một tình huống case hay từng thành phần trong mộttour như điểm đến, thắng cảnh hay chỗ ở
Bên cạnh các lớp đối tượng mô tả tình huống case và các thành phần trongmột tình huống, các hàm chức năng được dùng để tính toán kết quả gợi ý baogồm:
SearchItem: Hàm có dữ liệu đầu vào là những yêu cầu về đặc tính sản
phẩm từ người dùng, kết quả trả về gồm danh sách những sản phẩm thỏa mãnnhững yêu cầu về đặc tính Sản phẩm được tìm kiếm là những thành phầnchính tạo nên một tour, bao gồm điểm đến, chỗ ở, và thắng cảnh Vì vậy, hàmSearchItem đại diện cho những hàm tìm kiếm sản phẩm cụ thể như tìm kiếmđiểm đến (searchLocation), tìm kiếm chỗ ở (searchAccommodation) và tìmkiếm thắng cảnh (searchAttraction)
FindSimilarCases: Hàm có dữ liệu đầu vào là mô tả của một tình
huống mới biểu thị yêu cầu từ người dùng Mô tả này gồm có những thông tin
về travelWish, travelBag, userProfile và reward Quá trình tìm kiếm tìnhhuống tương đồng sử dụng những hệ thức khoảng cách, áp dụng cho từngthành phần con trong tình huống mới Những hệ thức này sẽ được trình bàychi tiết trong mục 1.2.8 của chương Kết quả trả về sau quá trình tìm kiếm làdanh sách những tình huống có độ tương đồng cao nhất với tình huống hiệntại Danh sách này được coi như một danh sách (tập) tham chiếu (referenceset), sử dụng trong quá trình gợi ý các thành phần tour sau này
ItemSimilarity: Hàm itemSimilarity đại diện cho những hàm tính độ
tương đồng của những thành phần tạo nên một tour Dữ liệu đầu vào là nhữngthành phần tour cùng loại, với kết quả định lượng được trả về, biểu thị mức độ
Trang 28tương đồng Các hàm đo độ tương đồng thành phần gồm có locationSimilarity(đo độ tương đồng giữa các điểm đến), accommodationSimiliarity (đo độtương đồng giữa những địa điểm nghỉ chân), attractionSimilarity (đo độ tươngđồng giữa những thắng cảnh, địa điểm thu hút khách du lịch),userProfileSimilarity (đo độ tương đồng giữa hồ sơ người dùng)
ItemScore: Tham số được truyền vào hàm gồm có đối tượng thành
phần của một tour (điểm đến, nơi nghỉ chân, thắng cảnh) và danh sách nhữngtình huống tham chiếu (reference cases) có độ tương đồng cao nhất với tìnhhuống hiện tại (current case) Sau xử lý, các thành phần tour sẽ nhận đượcđiểm đánh giá tương ứng với độ tương đồng cao nhất với các thành phần tourcùng loại trong tập tình huống tham chiếu Điểm số đánh giá này sẽ đượcdùng để xếp hạng các thành phần tour trong danh sách gợi ý
RecommendItem: Các thành phần tour được gợi ý và sắp xếp dựa trên
giá trị tính toán tương đồng kép sử dụng kết quả tìm kiếm tình huống tourtham chiếu và những thành phần tour có độ tương đồng lớn nhất với nhữngthành phần tour có trong danh sách tham chiếu
SortItem: Là một hàm tiện ích giúp sắp xếp các kết quả tìm kiếm thành
phần tour theo thứ tự giảm dần độ tương đồng
2.2 Biểu diễn thành phần tour
Như đã đề cập, một tour du lịch được cấu tạo nên từ những thành phần
cơ bản riêng lẻ Những thành phần tour chính được gợi ý bao gồm điểm đến(location), địa điểm nghỉ chân (accommodation) và điểm du lịch (attraction).Các thành phần tour có thể được coi như những sản phẩm được hệ thống xử
lý và đưa ra thành những gợi ý, thỏa mãn yêu cầu của người dùng Những sảnphẩm thành phần này được chia thành nhiều loại sản phẩm khác nhau Tập
Trang 29hợp những sản phẩm cùng loại tạo nên một không gian sản phẩm, được kýhiệu là X Không gian X đại diện cho tập hợp những sản phẩm cùng loại,
được coi như một không gian véc-tơ các đặc tính (X = ∏
x = (Hà Nội, 23 Hàng Bài, New Sun, 3, 20, center, T) Địa điểm(Location) x Địa chỉ (Address) x Tên (Name) x Nhóm khách sạn (category) xGiá (Price) x Thang máy (Lift), trong đó “Hà Nội”, “23 Hàng Bài” lànhững giá trị cho những đặc tính mô tả một địa điểm nghỉ chân của du khách.Những giá trị này có thể được chia ra làm ba nhóm chính:
Đặc tính dưới dạng tập số nguyên hữu hạn (finite integer): Là tập
hợp những giá trị biểu thị nhóm hữu hạn những thành phần đặc tính của sảnphẩm Ví dụ như trong trường hợp của khách sạn kể trên, khách sạn có thểthuộc vào một trong những lớp khách sạn loại 1, 2 hay 3, category = {1, 2, 3}.Tập những giá trị hữu hạn này biểu thị cho sự thay đổi trong mức độ sangtrọng của khách sạn Khách sạn loại 1 là những khách sạn có quy mô lớn, chấtlượng dịch vụ tốt nhất đi kèm với giá thành cao nhất Tương ứng, khách sạnloại 2, 3 có qui mô và giá cả giảm dần so với loại 1 Đây có thể coi như mộtquá trình mã hóa (encode) những thuộc tính có tính chất phân cấp của sảnphẩm Quá trình này không thể áp dụng với những thuộc tính của sản phẩm
mà giá trị có tính chất ngang bằng về cấp độ Ví dụ có thể thấy trong trường
hợp “màu sắc” = {đỏ, xanh, vàng} hay “loại phòng ở” = {khách sạn, căn
hộ} Những đặc tính này được gọi là những đặc tính dạng biểu tượng
(symbolic hay norminal)
Trang 30Đặc tính dưới dạng số thực (real): Với những đặc tính này, giá trị của
đặc tính nằm trong khoảng những số thực, ví dụ như giá thuê phòng của mộtkhách sạn Khoảng giá trị này có thể được chuẩn hóa về khoảng giá trị [0, 1]
Đặc tính dưới dạng biểu tượng (symbolic): Là đặc tính chứa đựng tập
hợp hữu hạn những giá trị phần tử Ví dụ cho lớp đặc tính này có thể thấy
trong trường hợp khách sạn kể trên, khi “địa điểm” có thể thuộc {Hà Nội, Đà
Nẵng, Sài Gòn} Trong trường hợp những đặc tính với giá trị có dạng biểutượng, khác với hai đặc tính trước đó, mối tương quan về giá trị không tồn tại
Để có thể tính toán khoảng cách giữa những đặc tính dạng biểu tượng, nhữngđặc tính này có thể được chuyển đổi sang dạng những đặc tính dưới dạng sốthực hay có hữu hạn những phần tử dạng số nguyên Cách thứ hai để tính toánkhoảng cách là áp dụng những hệ thức được thiết kế riêng cho những đặc tínhdạng biểu tượng Chi tiết về những hệ thức tính khoảng cách sẽ được trìnhbày trong mục 2.7
Cuối cùng, với mỗi không gian sản phẩm X = ∏
i=1
n
Xi , những kháiniệm thành phần có thể được ký hiệu và mô tả như sau:
Trang 31range CX (X i ) = (maxx ∈CX {xi} - minx ∈CX {xi}) (1.1)
2.2.1 Cấu trúc của một case
Trong mục này, những khái niệm chính về cấu trúc của một tình huốngtour sẽ được trình bày dưới dạng biểu diễn toán học và khai triển dưới dạngmột văn bản XML Dạng biểu diễn này sẽ được dùng để tính toán mức độtương đồng giữa các case
2.2.1.1 Biểu diễn toán học
Tập hợp những tình huống tour có thể được hiểu theo khái niệm mộtkhông gian tình huống (case space) CB Trong đó, một tình huống tour có thểđược cấu tạo từ bốn thành phần riêng biệt:
Những thành phần này bao gồm: travelWish (TW), travelBag (TB),userPofile (U), và reward (R) Trong đó, từng thành phần lần lượt thuộc vềmột kiểu không gian nhất định Ví dụ, với c = (tw, tb, u, r) ϵ CB, type (tw) =
TW Bên cạnh đó, từng thành phần của không gian CB có thể được tạo nên từnhững thành phần nhỏ hơn Điểm khác của một không gian tình huống là yếu
tố chiều thời gian (temporal dimension) Yếu tố này tồn tại khi một tìnhhuống tour được xây dựng thông qua quá trình tương tác giữa người dùng và
hệ thống Vì vậy, một tình huống trong không gian CB luôn luôn được coinhư một “ảnh chụp” có cấu trúc về một quá trình tương tác người-máy trongmột khoảng thời gian nhất định
Trang 32Hình 2.2 Minh họa một case
Nhìn vào hình 1.4, một tình huống tour được biểu thị dưới cấu trúc dạngcây Gốc của cây đại diện cho tình huống tuor hiện tại Các nhánh nhỏ hơn đạidiện cho từng thành phần trong một tình huống tour Từng thành phần nàytiếp theo được cấu thành từ những phần nhỏ hơn được biểu diễn dưới dạngmột véc-tơ đặc tính Từng thành phần cấu thành một tình huống tuor được mô
tả như sau
TB (TravelBag): Có thể được coi như một giỏ hàng ảo tập hợp những
thành phần tour được người dùng chọn lựa trong quá trình tương tác với hệthống TB có cấu trúc dữ liệu phức tạp, được cấu thành từ những phần tử nốitiếp thuộc nhiểu không gian khác nhau
TB = B x Seq(X1) x … x Seq(X3) (1.3)
Trong biểu thức (1.3), B, X1, …, X3 là những không gian véc-tơ, vớiX1, , X3 là những không gian thành phần tuor tương ứng với điểm đến(location), điểm nghỉ chân (accomodation), và thắng cảnh (attractions) B làkhông gian mô tả những đặc điểm yêu cầu chung nhất của một TB từ phía
Trang 33người dùng Những đặc tính này có thể là tổng chi phí của một tour TB (cost),loại hình nhà nghỉ (accomodation type), khoảng thời gian du lịch (travelduration) hay nhóm hành khách (travel party) Một trong những đặc điểm này
có thể trùng với đặc điểm của một thành phần trong tour Ví dụ về loại hìnhnhà nghỉ là một đặc tính xác định nơi nghỉ chân (accommodation) của dukhách có thể là khách sạn hay căn hộ
Các thành phần Seq (X1), …, Seq(X3) mô tả những chuỗi các đặc tínhthuộc cùng một không gian Vì vậy, một TravelBag có thể chứa nhiều thànhphần thuộc cùng một kiểu Ví dụ như một travelbag được diễn tả bằng haithành phần tb1, tb2 như hình 1.4 Với mỗi thành phần trong một travelbag cóthể được phân chia theo cấp thành phần nhỏ hơn, biểu thức biểu diễn mộttravelbag trở thành:
tb = (b, [x1,1, …, x1,j1], …, [x3,1, …, x3,j3])
với mỗi xi,j = (x11,1, …, xni,j) Trong hình 1.4, ta có:
tb = (1000, couple), [(Hanoi, historic), (New Sun, 120, 23 Hang Bai), ϕ,ϕ]Với những đặc điểm chung b = (1000, couple) Trong ví dụ này, nhữngđặc điểm chung được giả định gồm có chi phí (budget) dành cho chuyến đicủa du khách và loại hình du khách (travel party) Những đặc tính tiếp theolần lượt mô tả điểm đến tb1 = (Hanoi, historic) (với giả định điểm đến được
mô tả bởi hai đặc điểm chính là tên name) và loại hình type)), nơi nghỉ chân tb2 = (New Sun, 120, 23 Hang Bai) (với giả định cácđặc điểm mô tả một địa điểm nghỉ chân gồm có tên, giá thuê/đêm, địa chỉ).Trong quá trình người dùng tương tác với hệ thống, người dùng có thể tiếptục chọn và thêm một địa danh thắng cảnh sẽ tham quan vào trong túi du lịch
(location-ảo (travel bag) của mình Thắng cảnh này có thể gồm những thông tin về tên,
Trang 34địa chỉ, giá vé, loại hình, Ví dụ tb3 = (Van Mieu, Quoc Tu Giam St,historic) Như vậy túi du lịch ảo đại diện cho các thành phần của một tourngười dùng lựa chọn sẽ được mô tả như sau:
tb = (1000, couple), [(Hanoi, historic), (New Sun, 120, 23 Hang Bai),(Van Mieu, Quoc Tu Giam St, historic), ϕ]
TW (Travel Wish): Biểu thị mong muốn, yêu cầu về một tour du lịch từ
phía người dùng TW có cấu trúc dữ liệu phức tạp, được diễn tả như một tậphợp những truy vấn (queries) về các thành phần trong một tour, có cấu trúcgiống với TravelBag Một TW có thể được biểu diễn như sau:
TW = Q(B) x Seq(Q(X1)) x … x Seq(Q(X3)) (1.4)
Trong đó, các thành phần trong một TW có cấu trúc tương tự với cácthành phần tạo nên một TravelBag
Q (B): truy vấn chứa những đặc điểm chung của một tour
Seq (Q(Xi)): chuỗi những truy vấn về từng loại sản phẩm có trong tour,
ví dụ, Seq(Q(X1)) là chuỗi truy vấn biểu thị mong muốn của người dùng vềđiểm đến (location) cho chuyến du lịch Bên cạnh đó, một TB có thể có nhiềusản phẩm thuộc cùng loại, vì vậy, mỗi sự lựa chọn sẽ tương ứng với mỗi truyvấn khác nhau Một ví dụ về biểu diễn chuỗi truy vấn TW có thể có dạng nhưsau với:
Q (B) = (budget < 2000) ∧ (party = couple): Truy vấn với yêu cầu chung
về tour với điều kiện chi phí cho phép nhỏ hơn 1000$, và dành cho một người
đi du lịch
Trang 35Seq(Q(X1)) = Seq(Q(accommodation)) = (location = Ha Noi) ∧ (cost <150) ∧ (position = center): Truy vấn với yêu cầu về chỗ ở, điều kiện là địađiểm tại Hà Nội, vị trí trung tâm và giá thuê nhỏ hơn 150$/đêm.
Seq(Q(X2)) = Seq(Q(attraction)) = (attraction-type = historic) ∧ (date =10/02/2009), (attraction-type = entertainment): Tập hợp hai truy vấn về địađiểm thắng cảnh người dùng muốn đến Truy vấn đầu tiên là yêu cầu về thắngcảnh mang tính lịch sử và ngày tham gia là 10/02/2009 Truy vấn thư hai làyêu cầu về thắng cảnh mang tính giải trí
Như vậy: TW = ((budget < 2000) ∧ (party = couple)) x ((location = HaNoi) ∧ (cost < 150) ∧ (position = center)) x (attraction-type = historic) ∧((date = 10.02.2009), (attraction-type = entertainment))
U: Thông tin về người dùng hệ thống được biểu diễn dưới dạng một
véc-tơ đặc tính trong không gian giống với không gian sản phẩm X có dạng U =
∏n
của người dùng như tên, tuổi, giới tính:
U = (name = Nam) ∧ (age = 20) ∧ (gender = male) (1.5)
R: Đánh giá về một tour đã được xây dựng và tham gia từ phía người
dùng Cấu trúc đánh giá giống với cấu trúc của một travelbag đại diện chomột tour Đánh giá bao gồm đánh giá chung cho toàn bộ tour du lịch, đồngthời với từng thành phần trong tour Một đánh giá là một tập con hữu hạn cácphần từ của tập số nguyên Cấu trúc của một đánh giá có thể có dạng sau:
R = RB x Seq(RX1) x …x Seq(RX3) (1.6)
Trang 36Trong đó, RB = RX1 = = RX4 = {1, 2, 3, 4, 5} Ví dụ, một tour du lịch
có thể được đánh giá bởi điểm số như sau r = {4, [5], [4], ∅} Các điểm sốđánh giá lần lượt tương ứng với toàn bộ tour được đánh giá với điểm số 4/5.Từng thành phần được đánh giá lần lượt là điểm đến (5/5), nơi nghỉ chân(4/5), thắng cảnh (3/5) Điểm số 3/5 được coi như điểm đánh giá mặc định,được áp dụng cho những thành phần tour không được đánh giá bởi ngườidùng Giả thiết này được áp dụng cho những trường hợp không có điểm đánhgiá bởi vì điểm đánh giá 3/5 là trị số trung gian, nằm giữa những điểm đánhgiá tích cực (4/5, 5/5) và điểm đánh giá tiêu cực (1/5, 2/5)
Trang 372.2.1.2 Đặc tả XML
Đây là cấu trúc của một tình huống tour và được khai triển dưới dạng XML như sau:
Trang 38Trong đặc tả XML trên, người dùng tên Nam, 20 tuổi, mong muốn được
đi du lịch cùng người thân tại Hà Nội với chi phí tối đa cho phép là 2000$,muốn tìm kiếm một phòng đôi khách sạn ở vị trí trung tâm với giá thuê tối đa
<Location>Ha Noi</Location>
<LocationType>historic</LocationType>
Trang 39150$/đêm Nam đã thêm Hà Nội là điểm đến, với khách sạn New Sun ở địachỉ 23 Hàng Bài vào tour du lịch của mình.
2.2.2 Độ tương đồng và xếp hạng các item
Khái niệm “tương đồng” (similarity) [3] được sử dụng trong tính toánkhoảng cách giữa hai đối tượng Những đối tượng này có thể là cùng loạihoặc khác loại Ví dụ, độ tương đồng biểu thị mức độ gần gũi giữa một ngườidùng tới một nhóm người dùng, hay một sản phẩm tới danh mục những sảnphẩm Trong trường hợp của hệ tư vấn, độ tương đồng mô tả khoảng cáchgiữa các thành phần tour cũng như các tình huống tour sẽ được tính toánthông qua các hệ thức tính khoảng cách Các hệ thức này sẽ được dùng trongtính toán độ tương đồng cũng như xếp hạng sản phẩm dựa trên mức độ tươngđồng Các khái niệm về tìm kiếm sản phẩm tương tự cũng như sắp xếp sảphẩm sẽ được trình bày trong mục này Các hệ thức khoảng cách sẽ đượctrình bày trong mục 1.2.7
2.2.2.1 Thu thập và xếp hạng sản phẩm
Với X = ∏n
i=1 Xi là không gian các thành phần tour (sản phẩm), một hệthức khoảng cách được định nghĩa là một hàm có giá trị dương ứng với từngcặp sản phẩm Có nhiều loại hệ thức khoảng cách đã được nghiên cứu và sửdụng, trong khuôn khổ giải thuật CBR dùng trong hệ tư vấn, những hệ thức códạng sau sẽ được sử dụng
d(x,y) = f(w1(x) * d1(x1, y1), … , wn(x) * dn(xn, yn))
Với x, y ϵ X, 0 < wi(x) < 1 là trọng số của đặc điểm thứ i, f là hàm đơnđiệu tăng (monotone increasing function), di(xi, yi) là hệ thức khoảng cách
Trang 40định nghĩa theo loại của đặc tính thứ i Bên cạnh đó, những hệ thức di còn
được gọi như những “phép đo độ tương đồng cục bộ (local similarity
measures)” trong thuật ngữ CBR Yếu tố cục bộ xảy ra trong trường hợp
những trọng số trong hàm d (x, y) là những trị số thay đổi, phụ thuộc vào từng
điểm đặc tính
Trong thực tế, di là những giá trị biểu thị độ bất tương đồng Ví dụ, hai
đặc tính có khoảng cách lớn sẽ dẫn đến giá trị tương đồng nhỏ giữa hai đặc
tính Từng giá trị khoảng cách cục bộ sẽ được kiểm soát bởi hàm tổ hợp tổng
quát f, tổ hợp những giá trị khoảng cách cục bộ và đưa ra kết quả khoảng cách
là một số thực dương R+
Ví dụ, một trong những hệ thức khoảng cách là hệ thức khoảng cách
không đồng nhất Euclid – Overlap (Heterogeneous Euclid – Overlap Metric)