Hệ thống có thể để xuất câu hỏi đến người dùng một cách linh hoạt, tùy theo loại, đặc điểm ban đầu của người dùng, khảo sát có chiến lược đặt câu hỏi ngắn gọn nhất mà vẫn thu được thông
GIỚI THIỆU ĐỀ TÀI
Hiện trạng vấn đề
Ta đang sống và vận động trong xã hội và thế giới tràn ngập thông tin mới phát sinh mỗi ngày, tính đa chiều phức tạp, khó đoán định Cụ thể là vấn đề thông tin dữ liệu tràn ngập trong môi trường kết nối thông tin qua internet từ các thiết bị, con người ở mọi nơi của cuộc sống Từ đó phát sinh nhu cầu xử lý thông tin, chọn lọc kết quả cần thiết đến người dùng phù hợp, tức là chức năng khuyến nghị cái gì đúng ý người dùng đang quan tâm, trúng sở thích, phù hợp nhu cầu người dùng, giúp gạn lọc bớt những thông tin dư thừa, không hợp ý người dùng, là tạo ra tính ưu việt của hệ thống.
Hệ thống khuyến nghị
Hệ thống khuyến nghị (Recommender System) nhằm đưa ra các gợi ý về sản phẩm, dịch vụ, vấn đề liên quan giúp người dùng tự quyết định có cơ sơ tin cậy hơn trong môi trường thông tin đa dạng, ngập tràn, đa chiều, đúng sai lẫn lộn Hệ khuyến nghị được áp dụng trong nhiều ngành, lĩnh vực như thương mại điện tử, dịch vụ, đào tạo trực tuyến, như gợi ý sản phẩm quan tâm của Amazon, hệ tư vấn phim NetFlix, hệ gợi ý môn học phù hợp với sinh viên tại một học kỳ, khóa học gồm nhiều môn học, hệ đề xuất tour du lịch phù hợp với sự quan tâm, sở thích cá nhân người dùng.
Bài toán khuyến nghị người dùng về du lịch
Kinh tế xã hội phát triển dẫn đến nhu cầu chi tiêu hoạt động du lịch tăng cao về số lượng, chất lượng, đa dạng về hình thức, phương cách thực hiện chuyến du lịch
Người dùng có xu hướng tìm kiếm thông tin về du lịch để tham khảo và chọn lựa cho mình chuyến du lịch ưng ý nhất Với môi trường thông tin du lịch trên internet tràn ngập, ý kiến đa chiều, đa dạng, làm cho người dùng rất khó tự quyết định, hoặc sẽ mất rất nhiều thời gian và công sức để chắc lọc được thông tin phù hợp với nhu cầu sở thích của mình Thực tế này dẫn đến sự cần thiết, vai trò quan trọng của hệ thống khuyến nghị du lịch cho người dùng nắm bắt thông tin, quyết định nhanh chóng dễ dàng cho chuyến du lịch ưng ý của mình, và nhằm gia tăng tiện ích, giá trị cho các tổ chức hoạt động trong ngành du lịch để thu hút khách hàng
Hệ thống khuyến nghị du lịch (TRS - Tourism Recommender Systems) là một nhánh cụ thể của hệ thống khuyến nghị, có khả năng xử lý dữ liệu input là user profile,
11 đặc điểm cá nhân, sở thích, mối quan hệ cá nhân trong mạng xã hội (social networking), thông tin ngữ cảnh về thời tiết, khí hậu, lễ hội, vị trí địa lý vùng miền, GPS thu được từ nhiều nguồn như internet, mobile phone, facebook, blog, social network,… nhằm đưa ra các gợi ý về chuyến du lịch, lời khuyên về chuyến đi, các điểm quan tâm (POI – Points of Interest), đề nghị về gói du lịch đang có, theo các tiêu chí phù hợp cá nhân về độ hấp dẫn, giá cả, khoảng thời gian, chi phí phù hợp ngân sách cá nhân người dùng
Thách thức đối với TRS là dữ liệu input liên quan người dùng có tường minh (explicitly) và ngầm định (implicitly) qua xử lý khai thác dữ liệu hoạt động trực tuyến của người dùng (user online activity), cảm xúc, ý kiến người dùng cũng có thay đổi nhanh chóng theo từng thời điểm khác nhau Sự thay đổi sở thích người dùng có thể thay đổi theo ngữ cảnh, tâm trạng, môi trường kinh tế xã hội, khí hậu, thời tiết
Các hệ thống TRS hiện tại, [1], thường được áp dụng thực tế tại các đơn vị du lịch đạt mức tìm kiếm đưa ra gợi ý cho chuyến du lịch muốn đến dựa trên giới hạn về thời gian, ngân sách, nhu cầu cụ thể, hoặc thông tin user nhập vào Hệ thống tính tương quan các lựa chọn của user với các điểm đến định sẵn theo các thông số các vector xác định trước
Cùng với sự phổ dụng của mobile như điện thoại thông minh, thiết bị di động nhỏ gọn, đã có thể tích hợp sẵn các cảm biến, định vị địa lý, suy diễn user, môi trường xã hội và ngữ cảnh, là điều kiện thuận lợi khai thác thông tin và khá nhiều nghiên cứu vài năm gần đây giới thiệu các kết quả đáng giá khi gợi ý người dùng theo các môi trường ngữ cảnh, đặc trưng cá nhân hóa [1] Hệ thống cụ thể là VISIT (Mehaan, 2013) [3], EnoSigTur (Simó, 2012), DieToRecs (Bauernfeind, 2003) [18], TripMatcher -
MePrint (Ricci, 2002) [2], TripAdvisor (2012), TripSay (2012) Dựa theo các đặc điểm về kiến trúc hệ thống (web application, mobile), mức độ quan tâm và nhu cầu người dùng (user involvement), tiêu chí nguồn cơ sở khuyến nghị (deriving recommendation), các hệ thống này được xếp vào loại hình dịch vụ khác nhau Dù không tách bạch rõ ràng thấu đáo, nhưng ta có thể phân loại tương đối, các mục tiêu, dịch vụ được cung cấp gồm có 5 loại chính
1 Đầu tiên là Attractions (POIs) Recommendations, gợi ý điểm quan tâm, điểm đến của một chuyến du lịch
2 Hai là Tourist Services Recommendations, hệ thống này lọc các thông tin dựa trên ràng buộc để gợi ý thông tin về nhà hàng, khách sạn, giao thông, trung tâm thông tin, chi phí
12 3 Ba là Collaborative Filtering Recommendations, loại hệ thống này nhắm đến các gợi ý có tính khám phá, mới lạ vượt mong đợi, ngạc nhiên cho người dùng từ ý kiến, sở thích, nhận định của nhiều người khác chia sẻ Nguồn dữ liệu xử lý từ kho tàng thông tin cá nhân của mạng xã hội, nơi chia sẻ, kho lưu trữ trên thiết bị của người dùng
4 Bốn là Routes and Tours Recommendations, dựa trên trích lọc thông tin vị trí có từ thiết bị như GPS, Wi-Fi, cell-id, RFID, hệ thống này gợi ý giúp người dùng đường đi từ điểm hiện tại đến nơi quan tâm
5 Năm là Personalized Multiple-days Tour Tour Planning, người du lịch có thể muốn tham quan, trải nghiệm tối đa nhiều nơi, nhiều ngày, nhưng do có giới hạn về thời gian, ngân sách, hệ thống này gợi ý giúp người dùng tham quan chọn các điểm (POIs) hấp dẫn nhất, xứng đáng nhất phù hợp điều kiện cho phép và thông tin cá nhân, sở thích của họ Ý tưởng này dẫn đến bài toán thiết kế tour khách du lịch (TTDP, tourist trip design problem), các giải thuật heuristic hiệu quả được dùng để giải bài toán này cho các ứng dụng trực tuyến vì không thể giải trong thời gian đa thức
(Vansteenwegen, 2011) Các nghiên cứu cố gắng đơn giản hóa bài toán TTDP đã được thực hiện như mô hình TTDP đơn giản nhất là bài toán chạy định hướng (OP, orienteering problem) được giới thiệu năm 1984 bởi Tsiligirides [1], các mở rộng là bài toán TOP (Team Orienteering Problem) năm 1996 bởi Chao, TOP with Time Windows (TOPTW) bởi Vansteenwegen, 2009, và nghiên cứu gần đây là Time- dependent TOPTW bởi Garcia, 2013
Các nhu cầu người dùng đa dạng và thay đổi nhanh, dữ liệu xử lý quá nhiều và khắp nơi, môi trường ngữ cảnh có thay đổi, vì vậy để đáp ứng nhu cầu thực tế trong ngành du lịch là một thách thức lớn đối với người làm việc khoa học máy tính cùng hệ thống thông tin, giải thuật phù hợp.
Tóm tắt đề tài
Hiện nay nhiều người dựa vào các dịch vụ trực tuyến để hoạch định một chuyến đi du lịch Tuy nhiên, họ thường đối mặt với vấn đề quá có nhiều thông tin tham khảo
Kết quả là họ tốn nhiều thời gian để tìm và quyết định đi đâu, đi khi nào, chi phí tiêu tốn bao nhiêu, và tour du lịch đáng giá hấp dẫn thì có thể bị quên lãng, không được chú ý Số lượng quá nhiều gói du lịch có sẵn trên mạng làm khó khăn cho người dùng nhận ra được tour du lịch hấp dẫn hơn trong số các tour của phần còn lại Để tăng hiệu quả người dùng chọn tour, hệ thống khuyến nghị xử lý đề xuất các thông tin được cá nhân hóa đến các người dùng Nói cách khác, hệ thống chọn lựa ra các đề
13 xuất phù hợp và thích đáng cho mỗi người dùng, và đề xuất các hoạt động phù hợp với hồ sơ thông tin của họ
Trong đề tài nghiên cứu này, tôi giới thiệu "Hệ thống khuyến nghị tương tác người dùng tự nhiên ứng dụng trong ngành du lịch", là hệ thống khuyến nghị thông minh giúp người dùng quan tâm đến tìm kiếm gói dịch vụ du lịch hấp dẫn phù hợp cá nhân thông qua hệ thống ứng dụng web trực tuyến Người dùng chỉ tương tác với hệ thống này qua thông tin đơn giản thể hiện sở thích, đặc điểm cá nhân, sau đó hệ thống sẽ đề xuất các kết quả đề xuất phù hợp với người dùng Hệ thống này có khả năng điều chỉnh thông tin cá tính, thị hiếu người dùng bằng cách học ghi nhận sự tương tác giữa người và hệ thống, sau đó đề xuất các khuyến nghị được điều chỉnh phù hợp hơn Ứng dụng giao tiếp trên smartphone sẽ cho phép người dùng theo dõi ,đánh giá gói du lịch được chọn Hệ thống này nâng cao khả năng tương tác người dùng tự nhiên, tạo sự thân thiện hiệu quả khuyến nghị đến người dùng
MỤC TIÊU GIỚI HẠN ĐỀ TÀI NGHIÊN CỨU
Các nghiên cứu liên quan
Hệ thống khuyến nghị du lịch đến nay đã có nhiều nhóm nghiên cứu và phát triển đa dạng theo kiến trúc, công nghệ, chức năng của hệ thống
Hệ thống khuyến nghị di động có nhận thức ngữ cảnh dựa theo vị trí, lộ trình, tốc độ di chuyển khi lái xe, để làm cá nhân hóa các đề xuất về địa điểm quan tâm POI, Barranco (2012) Các điểm POI được chọn ra trong phạm vi bán kính xung quanh người dùng, sau đó bộ lọc theo ngữ cảnh sẽ đề xuất điểm POI nào phù hợp với đặc điểm và sự quan tâm của người dùng
Bộ khuyến nghị collaborative filtering, Gavalas (2011), thực hiện ghi nhận đánh giá của người dùng trong chuyến đi du lịch qua thiết bị di động, một cách tiếp cận khác với hệ thống web-based, có quan tâm tính thời gian tức thời, điều kiện thời tiết, và các điểm đi qua Bằng cách này, dữ liệu nhận xét của người dùng về điểm tham quan được thu thập và giúp nâng cao độ chính xác, phù hợp khi đề xuất các điểm tham quan mới cho người dùng
Hệ thống học thông tin sở thích người dùng qua dữ liệu hồ sơ cá nhân trong hệ thống Foursquare social network dựa theo vị trí, Savage (2011), ràng buộc vật lý được phân định bởi vị trí người dùng, phương tiện di chuyển, được nhận diện qua thiết bị smartphone Áp dụng cây quyết định theo Hidden Markov Model, suy diễn thông tin từ dữ liệu cá nhân được thu thập, và đề xuất đúng các điểm quan tâm mới của người dùng
Bộ khuyến nghị Magitti, Bellotti (2008), dựa vào 3 dữ liệu chính là quan tâm ngữ cảnh (context awareness) như thời gian hiện tại, vị trí, thời tiết, giờ mở cửa điểm đến, user patterns Dữ liệu hoạt động (activity awareness), và dữ liệu ngẫu nhiên bất ngờ trải nghiệm người dùng (người dùng không nhập vào profile)
Hệ thống ReRex, Baltrunas (2012), giới thiệu hướng tiếp cận là đánh giá và mô hình hóa quan hệ giữa hệ số ngữ cảnh và các mục đánh giá Người dùng được hỏi để điền các đánh giá khi hệ số ngữ cảnh thật sự ảnh hưởng các mức rating tùy điều kiện môi trường cụ thể Mô hình dự báo dựa theo Matrix Factorization, và điều chỉnh ngắn gọn các kết quả đề xuất Hệ thống này cho các đề xuất về điểm quan tâm POI, trợ giúp thiết lập, hoàn thiện kế hoạch cho chuyến đi du lịch, và giúp điều chỉnh lịch trình du lịch thích ứng theo điều kiện và môi trường thực tế
Mục tiêu thực hiện đề tài
2.2.1 Mục tiêu tổng quát Đề tài chọn hướng phát triển hệ thống khuyến nghị Tour của ngành du lịch vì được sự hỗ trợ dữ liệu kinh nghiệm tri thức miền, domain expert của công ty du lịch, và phù hợp để áp dụng các cơ sở lý thuyết khoa học về Luật kết hợp, Apriori, cơ sở tri thức ngữ nghĩa Ontology Tính khả thi của đề tài để thực hiện được, và đóng góp ý nghĩa cho việc nâng cao công nghệ kinh doanh ngành du lịch hiện nay
2.2.2 Mục tiêu cụ thể Đề tài xây dựng hệ thống khuyến nghị tour phù hợp nhu cầu thực tế của ngành du lịch Kịch bản đề tài là có hệ thống xử lý được thông tin người dùng qua chức năng khảo sát thông tin Hệ thống có thể để xuất câu hỏi đến người dùng một cách linh hoạt, tùy theo loại, đặc điểm ban đầu của người dùng, khảo sát có chiến lược đặt câu hỏi ngắn gọn nhất mà vẫn thu được thông tin đặc trưng cần thiết để xử lý và xuất ra kết quả đề nghị tour phù hợp cho user.
Phạm vi nghiên cứu đề tài
Đề tài này không thể trình bày thấu đáo hết mọi khía cạnh đặc tính đầy đủ của một hệ thống khuyến nghị, nhưng cung cấp một kết quả nghiên cứu khá hợp lý trong lĩnh vực nghiên cứu hệ thống khuyến nghị du lịch.
Nội dung nghiên cứu
Đề tài nghiên cứu cơ sở lý thuyết khoa học về các loại hệ thống khuyến nghị, chọn ra cho mình hướng xử lý khuyến nghị phù hợp, và tiến hành thực hiện hệ thống để kiểm thử và đánh giá thực tế
Hệ thống thực hiện sẽ gồm 2 phần: Frontend sẽ là web-apps hoặc mobile-apps, và phần Backend sẽ là web service xử lý như server trung tâm, giao tiếp dữ liệu qua json với frontend Hệ thống backend xử lý tất cả các tác vụ logic, giải thuật chính của hệ thống từ truy vấn ontology bằng ngôn ngữ sparql, đến chiến lược đặt câu hỏi, tính toán luật kết hợp Apriori, tính điểm tour, xuất kết quả khuyến nghị đến client
CƠ SỞ LÝ THUYẾT
Hành vi chọn tour đi du lịch của người dùng
Du lịch được xem như là nhu cầu không thể thiếu, được hình thành từ trong cuộc sống của mỗi người, nhóm người, hoặc tổ chức Trong điều kiện kinh tế phát triển, thông tin và phương tiện hỗ trợ du lịch, nhu cầu tham quan học hỏi kỳ quan thế giới, tìm hiểu thiên nhiên nhiều vùng miền khí hậu, giao lưu văn hóa giữa các dân tộc, vùng miền lãnh thổ, quốc gia khác nhau, ngày càng phát triển, và đa dạng Ý tưởng xác định loại hình tour đi du lịch, đăng ký tham gia mang tính cá nhân, chủ ý của người dùng hoặc tổ chức Quyết định chọn lựa này phụ thuộc rất nhiều vào yếu tố cá nhân như sở thích, văn hóa, nhu cầu và khả năng đặc trưng cá nhân, và yếu tố môi trường như sự kiện xã hội như lễ, ngày nghỉ tết, cuối tuần, sự kiện quan tâm chung của cộng đồng như festival, thể thao, âm nhạc Yếu tố phát sinh về thiên tai, bão lụt, thời tiết hạn hán, vấn đề xung đột chính trị xã hội cũng ảnh hưởng mạnh đến kết quả chọn lựa đi du lịch của người dùng
Qua quá trình làm việc trong ngành du lịch nhiều năm, các chuyên gia của công ty cung cấp tour du lịch lớn của Nhật có được đúc kết hiểu biết về hành vi của người dùng khi chọn lựa tour Kinh nghiệm này được diễn tả thành dữ liệu hành vi tìm kiếm và chọn tour của người dùng như dưới đây i Tìm tour đi du lịch có mục đích xác định trước Mua sắm
1 Mua sắm nhiều đồ giảm giá rẻ 2 Mua sắm đặc sản vùng miền, quốc gia
3 Mua sắm sản phẩm địa phương Ẩm thực
4 Ăn món ăn của đầu bếp nổi tiếng 5 Chủ đề, sự kiện ẩm thực của nhà hàng
6 Sự kiện món ăn địa phương
Có hoạt động muốn thực hiện
7 Thể thao 8 Massage, Spa 9 Leo núi
10 Trải nghiệm văn hóa địa phương
17 11 Thăm, tiếp cận động vật
Muốn xem sự kiện nổi tiếng
12 Muốn đi đến nơi phải đi 1 lần trong đời 13 Tham quan di sản thế giới
14 Bảo tàng mỹ thuật 15 Tham quan thắng cảnh
16 Công trình kiến trúc Địa điểm đã từng biết trong sách
17 Nơi đã nói đến trong tiểu thuyết 18 Nơi có nền tảng lịch sử
19 Nơi được giới thiệu từ người quen
Muốn mở rộng kiến thức
20 Du học ngôn ngữ 21 Volunteer
22 Trải nghiệm nghề nghiệp công việc
Trải nghiệm chia sẻ với ngôi sao diễn viên nổi tiếng
24 Khán giả cổ động viên
Có xác định địa điểm đến
26 Dự hội nghị 27 Giám sát khảo sát
28 Làm việc với công ty địa phương
29 Xem thể thao 30 Xem lễ hội ii Tìm tour đi du lịch theo cảm hứng, mục đích không xác định trước Có tiền
31 Đã là cán bộ thành viên hội du lịch 32 Đã tích lũy đủ tiền du lịch
33 Có nguồn thu nhập nhất thời
Hiện thực làm lại nhân sinh quan
34 Thực hiện ước mơ từ lúc nhỏ 35 Chia sẻ thời gian với người thân 36 Làm quà tặng cho cha mẹ
38 Du lịch sau khi vừa tốt nghiệp
39 Du lịch ngày kỷ niệm đáng nhớ
Có kỳ nghỉ Có kỳ nghỉ đã xác định
40 Vào kỳ nghỉ mùa hè, xuân,…
41 Ngày nghỉ công ty đã xác định
Kỳ nghỉ có thời gian giới hạn
42 Các ngày khuyến khich nghỉ
43 Nghỉ thãnh thơi để tái làm việc
45 Nghỉ về hưu bắt buộc
Bay đến nơi khác thường Muốn xã stresss, cân bằng tinh thần
46 Du lịch vì thất tình 47 Du lịch để tưởng thưởng thành quả làm việc cực nhọc
48 Nghỉ dưỡng ở resort 49 Làm biếng, xếp xó, né tránh làm việc nhà 50 Muốn tiếp xúc với điều gì khác thường 51 Tưởng thưởng cá nhân
Nghe theo chuyện ai đó
52 Nghe chuyện du lịch của người vừa trải qua 53 Ảnh hưởng từ tờ rơi quảng cáo ở khu phố 54 Đã xem chuyện kể du lịch trên web
56 Đã xem trên báo tạp chí
Các thuộc tính liên quan đến đặc điểm tour
Nhóm thuộc tính của tour
2 Length of Tour B – Thời gian tour
5 Specific Features E – Đặc điểm địa lý
Chi tiết các thuộc tính để tính điểm tour
2 A1 Dưới 1 triệu 3 A2 Từ 1 đến 2 triệu 4 A3 Từ 2 đến 4 triệu 5 A4 Từ 4 đến 6 triệu 6 A5 Từ 6 đến 10 triệu 7 A6 Trên 10 triệu 8 B Thời gian Tour 9 B1 1 buổi
10 B2 1 ngày 11 B3 1-2 ngày 12 B4 2-4 ngày 13 B5 Trên 4 ngày 14 C Cự ly tuyến 15 C1 Nội thành 16 C2 Ngoại thành 17 C3 Khu vực lân cận 18 C4 Cùng vùng 19 C5 Khác vùng 20 D Khí hậu
22 D2 Mát mẻ 23 D3 Lạnh 24 E Đặc điểm địa lý 25 E1 Đồng bằng
30 E6 Hang động 31 E7 Khu bảo tồn- Khu di sản- Vườn quốc gia 32 E8 Thôn quê
33 E9 Thành thị 34 F loại hình du lịch 35 F1 Nghỉ dưỡng 36 F2 Sinh thái 37 F3 Tham quan 38 F4 Vui chơi-giải trí
39 F5 Văn hóa-nghệ thuật 40 F6 Du lịch tâm linh-hành hương 41 F7 Du lịch tình nguyện
42 F8 Du lịch thực thế 43 G Hoạt động
45 G2 Mua sắm 46 G3 Ẩm thực 47 G4 Cắm trại 48 G5 Leo núi 49 G6 Ngắm cảnh 50 G7 Thể thao 51 G8 Trò chơi tập thể 52 H Người đi với 53 H1 Một mình 54 H2 Người yêu 55 H3 Gia đình 56 H4 Bạn bè 58 H5 Tổ chức-đoàn thể
Các loại hệ thống khuyến nghị
Recommender Systems (RS) là hệ thống chọn lọc thông tin cần thiết nhằm đưa ra gợi ý, dự báo mà phù hợp người dùng về vấn đề thông tin (như là sách, âm nhạc, phim) hoặc vấn đề xã hội (là người, nhóm người) mà người đó có thể chưa xem xét
Các hệ thống RS giới thiệu các khuyến nghị có thể phù hợp tốt hơn với thị hiếu, cá nhân người dùng và hạn chế việc thông tin tràn ngập, quá tải làm rối người dùng
Nguồn dữ liệu của RS là dạng tường minh (explicitly) được user mô tả, chia sẻ khi yêu cầu việc gợi ý Dữ liệu input là dạng ngầm định (implicitly) thông qua hoạt động tham dò khảo sát, nhận phản hồi từ hình thức hỏi như “bạn đã mua sản phẩm đó, thì bạn có thể cũng mua cái này”
Hệ thống khuyến nghị là ngành đặc thù mới, tạo nền tảng cho triển khai tiếp vào các nhóm ngành cụ thể như thương mại điện tử về hàng hóa, dịch vụ, tư vấn, du lịch, đào tạo Hệ thống khuyến nghị được nghiên cứu phát triển nhiều và hình thức khá đa dạng, tuy nhiên dựa vào mục tiêu ứng dụng, tri thức được sử dụng, giải thuật xử lý, và cách hệ thống hóa các khuyến nghị, RS có thể được phân thành 6 loại (Gavalas, 2014)
1 Collaborative filtering (Breece, 1998), loại này được dùng nhiều trong e- commerce, social media Người dùng mục tiêu được gợi ý các món hàng, tiết
21 mục, item tương tự với các thứ được chọn bởi những người khác có tương đồng về sở thích, thị hiếu Các cá nhân có tương quan (correlate) với mỗi người khác nhau Về cơ bản, một cặp người có tương quan nhau là thể hiện mức độ tương đồng nhau về cá tính, sở thích, qua sự đánh giá, sự lựa chọn của quá khứ trước đây
2 Content-based filtering (Pazzani, 1999), hệ thống khuyến nghị loại này dựa trên nội dung các món hàng, tiết mục mà người dùng mục tiêu đã từng chọn trong các lần giao tác trước đó Cụ thể là nhiều món hàng đề cử được so sánh với các món được đánh giá (rate) trước đó bởi người dùng, và món hàng phù hợp nhất được chọn đưa ra gợi ý
3 Knowledged-based filtering (Trewin, 2000), loại này theo hướng dựa trên cơ sở tri thức để tạo một khuyến nghị bằng cách suy diễn về các món hàng đáp ứng được yêu cầu người dùng (ví dụ một khuyến nghị về một chiếc xe hơi sẽ xem xét dựa trên tiêu chí nào trọng yếu hơn như tính kinh tế tiết kiệm xăng hay tính tiện nghi, thoải mái, sang trọng đối với người dùng mục tiêu) Tri thức được xây dựng từ thu thập các lựa chọn, sở thích người dùng, hoặc qua hỏi đáp người dùng để cung cấp thông tin liên quan đến các lựa chọn Hàm tương tự thể hiện mức độ nhu cầu người dùng tương quan với nội dung của các món hàng tùy chọn, item options Giá trị của hàm tương tự thường thể hiện mức độ hữu ích của mỗi gợi ý
4 Demographic filtering (Pazzani, 1999): hệ thống này được dùng nhiều trong ngành marketing để gợi ý món hàng dựa trên dữ liệu nhân khẩu học của user
Dữ liệu này như là số lần xem một món hàng cụ thể liên quan đến vùng miền, ngôn ngữ, tuổi, giới tính
5 Matrix factorization (Koren, 2008): loại này gồm biến thể của collaborative filtering và dùng thông số đường cơ sở (baseline parameter) cho mỗi user và món hàng Baseline là các tham số mô hình cộng thêm mô tả cho mỗi user và món hàng, chúng thể hiện độ lệch tổng quát của mức đánh giá (rating) người dùng hay món hàng so với trung bình toàn cục (global average) Ví dụ, đường cơ sở người dùng, user baseline của một người có xu hướng mức đánh giá (rate) cao hơn trung bình dân số sẽ là số dương (positive number)
6 Hybrid RSs (Burke, 2002): loại này dùng kết hợp các phương pháp trên bằng cách khai thác điểm mạnh của kỹ thuật này để bù đắp điểm yếu của cái kia, vì vậy nâng cao hiệu quả hiệu suất tổng thể Lai ghép hóa có thể được thực hiện bằng nhiều cách, ví dụ tạo dự đoán theo cách content-based và collaborative- based độc lập rồi kết hợp kết quả lại; hoặc thêm khả năng của content-based
22 vào collaborative-based và ngược lại; hợp nhất các phương pháp lại thành một mô hình tổng thể
Mỗi loại RS có khác nhau về ưu nhược điểm, tùy vào đặc thù ngành nghề, mức độ chính xác mà RS phù hợp được chọn Trên thực tế có 3 loại RS được quan tâm áp dụng nhiều, và ta đánh giá rõ hơn về ưu nhược điểm như bảng dưới đây
Kỹ thuật Dữ liệu nền Quy trình Ưu điểm Nhược điểm
Collaborative Đánh giá, bình chọn của users
Không cần thu thập đặc trưng items
Nhận diện users profile trong hệ thống giống với users mục tiêu
Có thể gợi ý items đến các người dùng tương đồng trong nhóm
Không gặp trở ngại sở thích của user dù có thay đổi
Khó khăn với items mới, users mới vì chưa có dữ liệu rating
Content-based Các đặc trưng của hàng hóa, items
Dữ liệu đánh giá, bình chọn của users
Phân lớp các items nhằm làm khớp với bình chọn, hành vi users
Không trở ngại với items mới
Có thể giới thiệu chính xác items hợp với profile
Khó khăn với users mới chưa có profile
Khó khăn nếu user có nhiều sở thích đa chiều, trung du
Thiếu ngạc nhiên đột phá vì không thể gợi ý items nằm ngoài user profile
Knowledged Đặc trưng items tri thức về tính đáp ứng nhu cầu user của items đó
Tìm kiếm sự phù hợp giữa người dùng và đặc trưng item
Không cần thống kê dữ liệu profile người dùng
Thích nghi với sở thích cá tính user nếu có thay đổi
Kỹ thuật xử lý tri thức phức tạp
Khả năng khuyến nghị là tĩnh lặng (static), không ảnh hưởng trên các tập dữ liệu nhiều item
Bảng 3.1 Ưu nhược điểm của 3 loại khuyến nghị cơ bản
Hệ thống khuyến nghị du lịch
Hệ thống khuyến nghị du lịch (TRS, Tourism Recommeder System) là một nhánh của RS Hệ thống TRS hiện tại thu thập nhu cầu mong muốn người dùng, ở dạng tường minh (bởi vấn đáp, khảo sát) hoặc ngầm định (bởi khai phá dữ liệu hoạt động user online), và đưa ra gợi ý để tham quan, điểm quan tâm, sự kiện, hoạt động, hoặc tour du lịch trọn gói Mục tiêu chính của TRS là làm đơn giản quá trình tìm kiếm
23 thông tin cho người muốn du lịch, hoặc thuyết phục các dịch vụ đề nghị phù hợp với người đó
Vài năm gần đây, nhiều hệ thống TRS đã được tích hợp và hoạt động trong các cổng thông tin portal du lịch uy tín, có tên tuổi lớn, khẳng định ý nghĩa thực tiễn của TRS Ta thấy xuất hiện trong các hệ thống web du lịch nổi tiếng như sau
1 TripAdvisor (2012), là website du lịch cung cấp khuyến nghị các chuyến đi chơi, vị trí, hoạt động cho mỗi người, và có một thành phần xã hội (social component) cho phép nhiều yếu tố được reviewed, commented, rated bởi các người dùng khác để trợ giúp quy trình ra quyết định phức tạp liên quan ngành du lịch
2 DieToRecs (2012), hỗ trợ sự lựa chọn các sản phẩm du lịch (hotel, museum, climbing school) và tạo một giỏ du lịch (travel bag) là một nhóm các sản phẩm du lịch hài hòa nhau
3 Heracle (2012), hiện thực content-based filtering dựa trên thông tin du lịch khai phá từ nhiều nguồn dữ liệu online và search engine
4 TripSay (2012), dùng phương pháp collaborative filtering để kết hợp điểm đến, nơi, cảnh quan, nội dung và hoạt động, dựa vào mạng kết nối bạn bè người dùng có tham gia như social networking hoặc tương tự.
Graph database
3.5.1 Mô hình Graph-based User-Item
Kỹ thuật kết hợp giữa content-based và collaborative-filtering tạo ra kết quả hiệu quả tốt cho hệ thống khuyến nghị Mô hình user-item trong cấu trúc đồ thị cho cách tiếp cận tốt hơn khi hiện thực hệ thống khuyến nghị kết hợp này [21] Thay vì thể hiện users và items là các vector của các thuộc tính, với mô hình lưu dữ liệu dạng đồ thị (graph-based data stores), users – items – attributes có thể được mô hình như là các nodes, và quan hệ giữa các nodes là trọng số của các cạnh để thể hiện mức độ liên quan của các node được nối nhau Mô hình kiến trúc đồ thị 2 lớp được giới thiệu bởi Huang (2002) trong bài báo về hệ thống khuyến nghị dựa trên đồ thị cho thư viện kỹ thuật số [21], gồm có lớp đầu tiên chứa các nodes về customers, và lớp kia chứa các nodes về loại sách, quan hệ giữa hai lớp trong đồ thị thể hiện mức tương đồng giữa customers và books tương ứng
Hình 3.1 Mô hình đồ thị 2 lớp của customer, item, và giao dịch mua
Công nghệ database hiện nay có nhiều phát triển mới, loại graph database là một điển hình về sự tiến bộ mới so với cơ sở dữ liệu quan hệ RDBMS đã thông dụng
Graph database có đặc trưng là dùng cấu trúc đồ thị cho các truy vấn bằng cách thể hiện và lưu trữ dữ liệu dưới dạng nút, cạnh, và thuộc tính
Cơ sở dữ liệu đồ thị tổng quát có thể lưu trữ bất cứ đồ thị nào, tuy vậy loại chuyên dụng như TripleStore được phát triển và ứng dụng để lưu trữ dữ liệu dạng triple như
“Bob searches Tour” theo format chuẩn như RDF
Liên quan đến cơ sở dữ liệu đồ thị này, công nghệ hiện nay đã có nhiều framework, sản phẩm hoàn thiện như: Neo4j, Ontotext, AllegroGraph, Sesame framework, Jena framework
RDF
Resource Description Framework (RDF) là bộ đặc tả ngôn ngữ để thể hiện các mô hình dữ liệu là metadata Căn bản mô hình này gồm 3 kiểu dữ liệu tương ứng một triple như sau:
1 Resource: các đối tượng dữ liệu được mô tả bởi một câu lệnh RDF được gọi là resources, ví dụ resource là CustomerA, TourB
2 Properties: các quan hệ, đặc điểm, khía cạnh đặc biệt của một resource được gọi là một property, ví dụ một property của một tour du lịch là ngày bắt đầu, ngày kết thúc, giá tiền
3 Statements: là câu lệnh kết nối 1 resource với giá trị thuộc tính mô tả của resource đó
Một câu lệnh RDF thường được biểu diễn dạng triple như “resource – property
– value”, viết dạng ký hiệu như P(R,V): một resource R có một thuộc tính P là một giá trị V
Item Layer (nội dung) Mỗi node là 1 item, sản phẩm Mỗi link giữa 2 node thể hiện độ tương đồng giữa 2 items
Customer Layer (cá nhân) Mỗi node là 1 user
Mỗi link giữa 2 node thể hiện độ tương đồng giữa 2 users
Lịch sử mua sắmMỗi link giữa 2 layers thể hiện 1 giao dịch của 1 customer về 1 item
25 Mô hình triple này có thể được xem như là bộ ba object – attribute – value
Hình 3.2 Đồ thị thể hiện RDF triple
RDF được phát triển từ 1995, là đặc tả chuẩn được quản lý bởi tổ chức W3C Với vai trò quan trọng và được ứng dụng nhiều trong semantic web, xử lý tri thức, RDF đã có nhiều cải tiến, và phiên bản RDF 1.1 specification được phát hành năm 2014 bởi W3C
RDF là định dạng dữ liệu cho phép mô tả mọi thứ, mọi sự vật hiện tượng (say anything about anything), có đặc tính thỏa mãn tiêu chí: có thể áp dụng cho tất cả định dạng dữ liệu có thể hiểu được cho người và máy, chuẩn hóa, và độc lập platforms
Ngôn ngữ phổ biến để truy vấn dữ liệu đồ thị RDF là SPARQL, cũng được công nhận là chuẩn của W3C từ năm 2008 Câu lệnh SPARQL cho phép truy vấn thao tác các phép toán đặc trưng của triple như là patterns, conjuntions, disjuntions, và optional patterns
Ví dụ câu truy vấn cho biết kết quả của câu hỏi: “What are all the country capitals in Africa ?”
Hình 3.4 Câu lệnh SPARQL mẫu
SPARQL
SPARQL là ngôn ngữ truy vấn cho phép thu thập giá trị từ dữ liệu có cấu trúc và bán cấu trúc, khám phá dữ liệu bằng cách truy vấn các quan hệ chưa biết, thực hiện các liên kết phức tạp của các database riêng biệt bằng một query đơn giản, và có thể chuyển hóa dữ liệu RDF từ vocabulary sang dạng khác
Cấu trúc của lệnh query SPARQL
PREFIX abc:
?x abc:cityname ?capital ; abc:isCapitalOf ?y ?y abc:countryname ?country ; abc:isInContinent abc:Africa }
Các biến có ký hiệu trước “?” hoặc “$”
Kết hợp như “?capital”, và “?country” sẽ là giá trị trả về
26 PREFIX foo:
- Prefix declarations: tiền tố ngắn gọn về URIs - Dataset definition: mô tả cái RDF graph gì được truy vấn - A result clause: nhận dạng kết quả trả về từ query
- The query pattern: xác định truy vấn cái gì trong dataset - Query modifiers: xử lý, sắp xếp kết quả query
Ontology
Semantic Web được khởi xướng từ năm 2001 bởi T.Berners-Lee là thành phần mở rộng của web hiện tại, có đủ các thông tin đầy đủ ý nghĩa nhằm cho phép người và máy tính có thể hiểu và làm việc cộng tác nhau dễ dàng Ý tưởng chính là cung cấp tri thức bên cạnh tài nguyên web sao cho máy tính có thể xử lý, suy diễn được
Ontology được phát triển trên nền RDF và trở thành cơ chế biểu diễn tri thức chuẩn cho Semantic Web Hình thức ngữ nghĩa trên nền ngôn ngữ ontology cho phép xử lý thông tin tự động và có thể dùng bộ suy diễn (reasoner) để suy luận ra tri thức mới
Ontology Web Language (OWL) là chuẩn W3C để diễn đạt ontology trong Semantic Web, và có thể được dùng để biểu diễn tri thức trích ra từ các văn bản
Ontology là chìa khóa của Semantic Web vì Ontology được dùng để nâng cao khả năng giao tiếp dễ hiểu giữa người và máy tính, và các công cụ hiện thực ontology có chức năng biểu diễn đồ họa làm công cụ giao tiếp dễ dàng giữa các nhóm chuyên gia
27 khác ngành khi làm việc chung với nhau về một dự án cụ thể Ba chức năng hữu ích chính của ontology là:
1 Trợ giúp giao tiếp giữa nhiều người trong dự án 2 Có khả năng giao tiếp giữa các hệ thống phần mềm 3 Tăng cường linh hoạt thiết kế và chất lượng của hệ thống phần mềm vì việc xây dựng phát triển ontology có thể độc lập với việc lập trình
Ontology là một mô hình dữ liệu biểu diễn một lĩnh vực bằng các class, entity, property, và có khả năng suy diễn về các đối tượng trong lĩnh vực đó và mối quan hệ giữa chúng Ontology cung cấp một bộ từ vựng chung bao gồm các khái niệm, các thuộc tính quan trọng và các định nghĩa về các khái niệm và các thuộc tính này Ngoài bộ từ vựng, ontology còn cung cấp các ràng buộc, đôi khi các ràng buộc này được coi như các giả định cơ sở về ý nghĩa mong muốn của bộ từ vựng, nó được sử dụng trong một miền mà có thể được giao tiếp giữa người và các hệ thống ứng dụng phân tán hỗn tạp khác
Các ontology được sử dụng như là một biểu mẫu trình bày tri thức về thế giới hay một phần của nó Các ontology thường miêu tả:
- Các cá thể (Individual): các đối tượng cơ bản, nền tảng - Các lớp (class): các tập hợp, hay kiểu của các đối tượng - Các thuộc tính (property): thuộc tính, tính năng, đặc điểm, tính cách, hay các thông số của các đối tượng có và có thể thể hiện được
- Các mối liên hệ (relationship): Các con đường mà các đối tượng có thể liên hệ tới một đối tượng khác, quan hệ giữa các lớp
Bộ từ vựng ontology được xây dựng trên cơ sở tầng RDF, RDFS, OWL
Ngành du lịch có nhiều khái niệm đặc thù, hoạt động chuyên môn và thông tin đa dạng, nên việc tìm hiểu xây dựng Tourism Ontology cũng là một thách thức để có được kết quả ontology là cơ sở tri thức, tập trung các khái niệm, hoạt động ngành du lịch phù hợp thực tế và hữu ích cho phát triển hệ thống khuyến nghị RS được Ví dụ sau là kết quả của ontology từ kiến thức thực tế của một công ty đang cung cấp dịch vụ du lịch có tiện ích liên quan như khách sạn
Hình 3.5 Ontology du lịch khách sạn
Việc xây dựng ontology du lịch hoàn chỉnh để phản ánh đầy đủ hệ tri thức ngành du lịch là vấn đề hấp dẫn và thách thức, đây là cơ sở tri thức cần thiết cho hệ thống khuyến nghị du lịch phương pháp knowledged-based.
Công cụ sử dụng cho đề tài
- Protegé dùng để xây dựng ontology Tour - Ngôn ngữ SPARQL dùng truy vấn data Triple type - Jena Framework được dùng để xử lý truy vấn bên trong hệ thống back-end server từ file tour.owl - Java servlet, web service hiện thực hệ thống xử lý back-end, với Eclipse IDE - Front-end mobile app được thực hiện dùng Android Studio IDE
Mô hình PEU
Đề tài tập trung vào hệ thống khuyến nghị phương pháp cơ sở tri thức nhằm có gợi ý gần chính xác với nhu cầu ý thích của người dùng Công việc nghiên cứu hiện thực gồm thiết lập một framework có kết quả thử nghiệm với người dùng thực tế được
Kỹ thuật sử dụng đầu tiên là xây dựng ontology tri thức ngành du lịch được tạo mới và có đánh giá chất lượng phù hợp thực tế và đạt chuẩn file OWL W3C
Kỹ thuật thứ hai trên cơ sở kế thừa các kỹ thuật cơ bản liên quan hệ thống khuyến nghị hiện nay Knowledge-based, đề tài tập trung vào xây dựng giải thuật xử lý tri thức và suy diễn tri thức mới liên quan phù hợp nhằm đề ra gợi ý có độ chính xác nhu cầu, ý thích người dùng theo mô hình đề xuất PEU Model Dựa trên thực tế cần phải khuyến nghị tour cho user theo các đặc điểm, như cầu người dùng như đã đề cập, thì mô mình PEU có cơ sở phân tích dữ liệu đầu vào để phản ánh kết quả khuyến nghị có độ chính xác, hợp lý hơn cho người dùng Đây là mô hình tác động của 3 yếu tố tổng quát Product – Enviroment – User, gọi tắt là PEU Model Khi áp dụng vào Tour du lịch thì mô hình được mô tả cụ thể với các thuộc tính, mức độ ảnh hưởng, tác động tương tác nhau giữa các thuộc tính như hình bên dưới
Hình 3.6 PEU Model cơ bản cho khuyến nghị du lịch
3.10.1 Mô hình PEU cho khuyến nghị du lịch Các attribute vector có độ dài ngắn thể hiện mức độ tác động, sẽ thể hiện bằng hệ số x
Có các thuộc tính tác động tực tiếp đến điểm của một thuộc tính liên quan trong Module Tour Về tổng thể đặc điểm User cũng ảnh hưởng đến Vector User U
Tiếp theo là Vector U có tác động chung cuộc đến Vector Tour T theo mũi tên UT
Có các thuộc tính Competition ảnh hưởng đến thuộc tính Price, Supplier của Tour, theo quan điểm thị trường: khi có đơn vị khác cùng cung cấp Tour tương tự, thì Price của Tour này ảnh hưởng, và điểm quan trong của Supplier có giảm xuống
Thuộc tính Nature (fog climate, earthquake, storm), Social (bad politic, war, disaster, infectious disease) có tác động tiêu cực mạnh đến vector Tour T
Từ kết quả tác động của U, E đến T, ta sẽ có được vector T cụ thể về giá trị của mỗi thuộc tính Tiếp theo ta so sánh T với tập TourDB có cùng thuộc tính và giá trị được xây dựng từ database, tại bước c, kết quả từ tính giá trị tour score s tổng thể, ta sẽ có được danh sách các Tour phù hợp, sắp xếp theo mức độ giảm dần
Từ mô hình cơ sở này, đề tài tiếp tục áp dụng một số kỹ thuật máy học nhằm phân tích hệ số tác động, xử lý kết quả output khuyến nghị có độ chính xác với user
Thành quả của đề tài là một framework thực hiện được các kỹ thuật nghiên cứu và cho ra kết quả đo kiểm được
Phương pháp đo độ chính xác sẽ là phương pháp chuẩn trong đo kiểm phần trăm chính xác của các kỹ thuật máy học hiện nay Tập dữ liệu là dữ liệu thực tế của đơn vị cung cấp dịch vụ du lịch đang có Quá trình kiểm nghiệm sẽ chia tập dữ liệu huấn luyện chiếm 50%, và tập kiểm thử là 50% Các bước thực hiện và đo đạt kết quả sẽ làm theo phương pháp chuẩn của machine learning
Kết quả đánh giá độ chính xác sau cùng vẫn là áp dụng thử nghiệm với một nhóm người dùng truy cập và giao dịch theo ý thích thật sự của họ Kết quả mời dùng thực tế và kết quả gợi ý với kết quả ghi nhận ý thích người dùng sẽ được đối chiếu để đo độ chính xác của hệ thống
HỆ THỐNG ĐỀ XUẤT
Xây dựng mô hình
4.1.1 Kiến trúc tổng thể hệ thống khuyến nghị TRS
Hình 4.1 Kiến trúc tổng thể Hệ thống Khuyến nghị Tour
Tomcat Server: web http server Tour Score: tính điểm mỗi tour với thuộc tính được query từ ontology Q&A strategy: tạo câu hỏi để khảo sát user, ghi nhận trả lời và tính độ khớp giữa Tour và User
Tour Result View: xử lý kết quả và hiển thị đến người dùng
32 4.1.2 Mô hình thu thập thông tin người dùng và xử lý khuyến nghị
Hình 4.2 Sơ đồ khối chức năng
Mô tả chi tiết sơ đồ khối chức năng
Khối này thực hiện tìm hiểu đặc điểm sở thích, nhu cầu đang quan tâm của User, bằng cách đặt câu hỏi để ghi nhận sự trả lời của User Thứ tự đưa ra câu hỏi là: chọn thuộc tính quan trọng nhất để đặt câu hỏi đầu tiên theo chiến lược hỏi đáp, nhằm nhanh chóng thu thập được đặc điểm user phù hợp
Khối này xây dựng ma trận cho giá trị tương tác giữa hai thuộc tính với nhau
Hệ thống thực hiện chiến lược: số lần hỏi ít nhất, và thu thập đặc trưng người dùng đủ để ra kết quả khuyến nghị
Ma trận tương tác, Interaction Matrix, là cần thiết để hệ thống chỉ hỏi đáp User vào 1 vài thuộc tính quan trọng nhất, còn các thuộc tính khác của Tour, sẽ được hệ thống tự động tính trên cơ sở là Interaction Matrix
Giá trị Interaction Matrix sẽ được điền giá trị trước từ sự thu thập dữ liệu theo kinh nghiệm chuyên gia, hoặc tự động bổ sung dựa vào tính quy luật kết hợp các dữ liệu khảo sát, theo giải thuật Apriori
Giải thuật Apriori điền giá trị tương tác giữa hai thuộc tính, và ghi vào Interaction Matrix, nhưng chỉ với các thuộc tính khảo sát có tương tác Phần giá trị còn trống, sẽ được điền đầy theo chiến lược của giải thuật Matrix Factorization
(2.c) Tính điểm Tour theo dữ liệu khảo sát User
Bước này thực hiện tính điểm tour kết hợp với mỗi lần nhận kết quả trả lời của User trong hỏi đáp Việc tính toán sẽ dựa vào phương pháp tính theo mức độ tương tác, hệ số ảnh hưởng trực tiếp, gián tiếp, thứ tự hỏi đáp trước sau
Tính điểm Tour theo dữ liệu khảo sát User
Xử lý kết quả Tour khớp với dữ liệu khảo sát User
33 Tính điểm theo nguyên tắc trọng số cao cho câu hỏi đầu tiên, giảm dần cho các câu hỏi sau
Trả lời của User đạt hệ số tối đa 100% Các thuộc tính gián tiếp có hệ số thấp dần, và tính dựa trên Interaction Matrix
(2.d) Xử lý kết quả Tour khớp với dữ liệu khảo sát User:
Tính độ khớp của đặc trưng Tour và đặc trưng User Lọc và hiển thị có độ khớp theo thứ tự cao đến thấp
4.1.3 Cơ sở lý thuyết tính ma trận tương tác các thuộc tính tour Interaction Matrix là bảng giá trị trọng số [0,1] thể hiện mức độ tương tác giữa các thuộc tính tour với nhau Ví dụ, khi tham khảo dữ liệu thuộc tính tour của một công ty kinh doanh tour du lịch, thuộc tính Giá tour tương tác với thuộc tính Thời gian tour là 0.9, điều này nói rằng khi tour giá thấp thì thời gian tour sẽ ngắn, và ngược lại
Vấn đề điền giá trị cho bảng Interaction Matrix có hai cách làm là: a Thực hiện điền giá trị thủ công, bằng cách thu thập ý kiến, nhận định của chuyên gia ngành, domain expert, hoặc kiến thức kinh nghiệm nào đó, rồi điền giá trị vào cơ sở dữ liệu để có bảng Interaction Matrix cần thiết cho tính tour b Thực hiện tự động cập nhật giá trị Interaction Matrix, áp dụng lý thuyết thống kê hành vi người dùng chọn tour được đề xuất của công ty tour, là bộ kinh nghiệm phản ánh các lý do, mục đích, hành vi, biểu cảm tâm lý chọn lựa tour của người dùng Kết hợp với kỹ thuật Luật Kết hợp để tìm ra giá trị trọng số thể hiện mức độ tương tác giữa các thuộc tính tour với giải thuật Apriori Dữ liệu hành vi chọn tour của người dùng thực tế của các domain expert từ công ty tour, khi xem xét cùng với Quy luật kết hợp, Association Rule, sẽ cho ta biết các cặp thuộc tính có mức độ tương tác, xuất hiện cùng nhau theo thống kê các dữ liệu tìm kiếm chọn tour của User Vì vậy luật kết hợp là cơ sở toán học tin cậy để giúp xây dưng Interation Matrix
Khi thực hiện đề tài nghiên cứu hệ thống khuyến nghị Tour này, nhóm nghiên cứu chúng tôi nhận thấy cần thiết phải xây dựng bảng tương tác, Interaction Matrix, bằng phương pháp tự động nhằm tăng giá trị công nghệ và hàm lượng kiến thức khoa học vào hệ thống khuyến nghị này khi áp dụng các kỹ thuật hiện có như Luật Kết hợp và Giải thuật Apriori Do đó việc xử lý điền tự động giá trị cho bảng Interaction Matrix là một công việc ý nghĩa của đề tài
34 4.1.4 Ví dụ dùng dữ liệu cần thu thập được để tính Interaction Matrix bằng
Bảng dữ liệu nhị phân (binary database), gồm có mỗi cột là tập hợp các thuộc tính có giá trị {0, 1}, với ý nghĩa của 0 là không có tương tác (người mua tour chọn giao dịch, hoặc xét thấy liên quan), ý nghĩa của 1 là có tương tác là giao dịch hoặc liên quan của trường hợp chọn mua tour đó Dữ liệu mỗi hàng là tương ứng cho mỗi thực thể mục đích mua sắm tour hoặc là giao dịch (instance or transaction)
A Giá Tour A1 Dưới 1 triệu A2 Từ 1 đến 2 triệu A3 Từ 2 đến 4 triệu A4 Từ 4 đến 6 triệu A5 Từ 6 đến 10 triệu A6 Trên 10 triệu B Thời gian Tour B1 1 buổi
B2 1 ngày B3 1-2 ngày B4 2-4 ngày B5 Trên 4 ngày C Cự ly tuyến C1 Nội thành C2 Ngoại thành C3 Khu vực lân cận C4 Cùng vùng C5 Khác vùng
Dòng 1 là dữ liệu của thực thể mục đích đi du lịch là mua sắm đồ giá rẻ, gồm có các thuộc tính liên quan xuất hiện cùng nhau là: A1, A3, B1, B2, C1
Dòng 2 là dữ liệu của thực thể mục đích đi du lịch là mua sắm hàng hiệu của quốc gia, gồm có các thuộc tính liên quan xuất hiện cùng nhau là: A4, A5, B1, B2, C1
Dòng 3 là dữ liệu của thực thể mục đích đi du lịch là mua sắm ăn uống hương vị địa phương, gồm có các thuộc tính liên quan xuất hiện cùng nhau là: A3, A4, B1,
B2, C1, C3 Tương tự cho các dòng còn lại từ dòng 4 đến dòng 11.
Xây dụng Ontology Tour Recommendation System
Giai đoạn 1: thu thập các khái niệm, yếu tố ảnh hưởng đến tour, hành vi mua tour của người dùng, là kinh nghiệm thực tế của chuyên gia miền bên công ty du lịch
Giai đoạn 2: xây dụng ontology mô tả Tour
Hình 4.3 Ontology Tourism tổng quát
37 Thống kê về Ontology này:
Hình 4.4 Thống kê class, property, individual
Số lớp, thực thể (class, entity): 69 Số thuộc tính đối tượng (object property): 32 Số cá thể (individual): 168
38 4.2.2 Ontology cài đặt câu hỏi tư vấn, điểm tour, interaction matrix
Hình 4.6 Ontology xử lý tư vấn Tour
Thông kê về ontology này:
Hình 4.7 Thống kê số thực thể, thuộc tính, class của ontology
39 Số lớp, thực thể (class, entity): 13 Số thuộc tính đối tượng (object property): 9 Số thuộc tính đối tượng (data property): 21 Số cá thể (individual): 3641
Các truy vấn SPARQL thực tế trên ontology
4.3.1 Truy vấn quan hệ class phân cấp cha con
PREFIX rdf:
PREFIX owl:
PREFIX rdfs:
PREFIX xsd:
SELECT ?subject ?object WHERE { ?subject rdfs:subClassOf ?object } Kết quả trả về minh họa:
Hình 4.8 query subclass in ontology
Hình 4.9 query subclass in ontology
4.3.2 Truy vấn tất cả class của ontology
PREFIX rdf:
PREFIX owl:
PREFIX rdfs:
PREFIX xsd:
WHERE { ?sub rdf:type owl:Class } Kết quả:
Hình 4.10 Kết quả truy vấn class của ontology
Lý thuyết luật kết hợp và giải thuật Apriori
4.4.1 Định nghĩa 𝑅 là tập hợp các thuộc tính của cơ sở dữ liệu
Ví dụ: dữ liệu ở đây:
𝑅 = { 𝐴1, 𝐴2, 𝐴3, 𝐴4, 𝐴5, 𝐴6, 𝐵1, 𝐵2, 𝐵3, 𝐵4, 𝐵5, 𝐵6, 𝐶1, 𝐶2, 𝐶3, 𝐶4, 𝐶5 } 𝑋 là tập thuộc tính con của 𝑅
Ví dụ: tập thuộc tính 𝑋 tại dòng 1 có giá tri 1 là: 𝑋 = {𝐴1, 𝐴3, 𝐵1, 𝐵2, 𝐶1}
Ta định nghĩa độ hỗ trợ (support, or frequency) của một mẫu đặc tính 𝑋 là phương trình
|𝑟| với |𝑀(𝑋, 𝑟)| là số lần đặc tính 𝑋 xuất hiện trong DB, và |𝑟| là kích thước, số instance hay transaction của DB
Ví dụ: với DB là bảng dữ liệu trên, khi quan tâm 𝑋 = {𝐴1} thì
11≃ 0.36 Khi được cho trước ngưỡng hỗ trợ tối thiểu, (min_𝑠𝑢𝑝 ∈ [0,1]) , ta nói rằng thuộc tính 𝑋 là thường xuyên (frequent itemset) nếu 𝑓𝑟(𝑋) ≥ min_𝑠𝑢𝑝
Ta định nghĩa ℱ(𝑟, min_𝑠𝑢𝑝) là tập các thuộc tính có thường xuyên (frequent) là:
Trong cơ sở dữ liệu DB có tập thuộc tính 𝑅 và 𝑋, 𝑌 là tập thuộc tính con (𝑋, 𝑌 ⊂ 𝑅) ∧ (𝑋 ∩ 𝑌 = ∅) thì luật kết hợp 𝑋, 𝑌 là biểu thức
𝑋 ⇒ 𝑌 Định nghĩa 𝑐𝑜𝑛𝑓(𝑋 ⇒ 𝑌) là độ tin cậy, confidence, của luật kết hợp, được tính như sau:
𝑓𝑟(𝑋) Ta quan tâm đến mức tin cậy tối thiểu, min _𝑐𝑜𝑛𝑓 ∈ [0,1]
Ví dụ: với DB ở trên, ta có 𝑐𝑜𝑛𝑓(𝐴3 ⇒ 𝐵1) = 5
Cho trước mức hỗ trợ tối thiểu, min_𝑠𝑢𝑝 , và độ tin cậy tối thiểu, min_𝑐𝑜𝑛𝑓, ta nói tồn tại luật kết hợp (X ⇒ Y) trong cơ sở dữ liệu nếu:
Cách tiếp cận thực tế bình thường là
Có khả thi để tìm tất cả tập con kết hợp thường xuyên, frequent subsets, từ 𝑅
Ta cần phải khám phá luật kết hợp
Tồn tại 2 |𝑅| khả năng 4.4.3 Tìm các tập thường xuyên
Gọi ℱ 𝑙 (r, min_𝑠𝑢𝑝) là tập thường xuyên của tập con 𝑟 kích thước là 𝑙 của tập 𝑅
Cho 1 tập thuộc tính có kích thước 𝑙 , thì tập kết hợp thường xuyên, candidate, có kích thước là 𝑙 + 1 sẽ là tập các kết hợp trong tập frequent có kích thước 𝑙
Việc tính toán để tìm luật kết hợp là lặp lại liên tục từ các tập thường xuyên kích thước nhỏ nhất, đến khi không còn khả năng kết hợp tập nào
Algorithm: Apriori (R, min_sup, min_conf) Input: R, min_sup, min_conf
42 RAs: tập hợp của các luật kết hợp L: integer
Algorithm: Apriori (R, min_sup, min_conf)
C, CCan, CTemp: tập hợp các tập con thường xuyên, frequent subsets RAs: tập các luật kết hợp, L: integer
L=1 CCan = Frequent_sets_1(R,fr_min) RAs = ∅ while CCan ≠ ∅ do
L = L + 1 CTemp = Candidate_sets(L, R, CCan) = C(ℱ 𝑙+1 (𝑟)) C = Frequent_sets(CTemp, min_sup)
RAs = RAs ∪ Confidence_rules(C, min_conf) CCan = C end
4.4.5 Ví dụ áp dụng Apriori
Ta có cơ sở dữ liệu nhị phân của các thuộc tính tour như sau:
Các bước tìm luật kết hợp theo giải thuật Apriori
Step 1: Xác định ngưỡng min_𝑠𝑢𝑝 , min_𝑐𝑜𝑛𝑓 Ví dụ giá trị cho là: min_ sup = 0.5 , min_𝑐𝑜𝑛𝑓 = 0.6
Step 2: Lập danh sách tất cả các thuộc tính có thể có
Step 2: Duyệt hết số dòng DB Đếm số lần xuất hiện của mỗi thuộc tính, lưu vào biến fr(X) là giá trị mức độ thường xuyên của thuộc tính tên là 𝑋 Tính độ hỗ trợ của các thuộc tính 𝑋 này
Step 3: nhận diện các thuộc tính thỏa ngưỡng min_ sup = 0.5
Vậy cac thuộc tính thỏa là: A2, A3, B1, B2, C1
Step 3: Lập danh sách tổ hợp biến 𝑋 có 2 thuộc tính xuất hiện cùng nhau: 𝑋 1 _𝑋 2 , với 𝑋 1 , 𝑋 2 ⊂ 𝑅
Step 4: Tương tự step 2, đếm số lần xuất hiện, và độ hỗ trợ của mỗi thuộc tính này
Step 5: nhận diện các thuộc tính thỏa ngưỡng min_ sup = 0.5
Vậy các thuộc tính thỏa là: A3_C1
𝑐𝑜𝑛𝑓(𝑌 ⇒ 𝑋) 𝑐𝑜𝑛𝑓(𝐶1 ⇒ 𝐴3) =6/9 ≈ 0.67 Đối chiếu với ngưỡng min_𝑐𝑜𝑛𝑓 = 0.6 , ta thấy A3_C1 thỏa điều kiện min_𝑐𝑜𝑛𝑓
Step 7: bước này ta lập lại step 3, để lập tổ hợp các biến 𝑋 ghép 2 thuộc tính lại cùng nhau để tính kết hợp mới Tuy nhiên với dữ liệu mẫu này, tại step 3, ta chỉ tìm được 1 kết hợp là A3_C1 , nên vòng lặp đến đây dừng, vì không tìm ra kết hợp mới
Step 8: dừng vòng lặp, kết thúc giải thuật Apriori
Xuất ra kết quả là các mối kết hợp thỏa điều kiện min_𝑠𝑢𝑝 , min_𝑐𝑜𝑛𝑓
Kết quả là: 𝐴𝑅 = {𝐴3, 𝐶1} , length = 2 , 𝑐𝑜𝑛𝑓(𝐴3 ⇒ 𝐶1) = 1 , conf(C1 ⇒A3) = 0.67 , sup = 0.55
Lý thuyết và giải thuật Matrix Factorization
Dữ liệu đầu vào cho các hệ tư vấn có nhiều kiểu và thường được biểu diễn trong một ma trận 2 chiều với một chiều biểu diễn cho các user và chiều còn lại là các item được user 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 user 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 rating Ma trận điểm rating từ thu thập trực tiếp thường là các ma trận thưa vì bất kỳ một user nào cũng thường có xu hướng chỉ đánh giá một tỉ lệ nhỏ các item 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 user
45 bằng cách quan sát thái độ của user 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 matrix factorization là khả năng cho phép kết hợp thông tin bổ sung, tránh hiện tượng ramp- up cho hệ tư vấn
Giả sử ta có mỗi user đã cho điểm rating cho một số item trong hệ thống, ta sẽ dự báo xem các user sẽ cho điểm rating như thế nào cho các item mà họ chưa đánh giá, nghĩa là ta sẽ tư vấn (dự báo) cho các user này rating các item chưa được họ rating Các thông tin rating sẽ được lưu trữ trong một ma trận Bảng 3.1 là một ví dụ về ma trận điểm rating gồm có 5 user và 4 item
Tác vụ dự báo được xem như là công việc lấp đầy cho ma trận Ta có thể khám phá các đặc tính (yếu tố) tiềm ẩn qua việc dự báo điểm rating mà một user nào đó đánh giá một item nào đó, vì các đặc tính mà user quan tâm sẽ trùng khớp các đặc tính của item đó
Bảng 4.1: Ma trận điểm rating
Dấu (-) có nghĩa là user U i chưa cho điểm rating item D j
Matrix factorization ánh xạ user và item sang một không gian có hướng f các yếu tố tiềm ẩn kết hợp với nhau, nghĩa là tương quan user-item được mô hình thành tích vô hướng bên trong không gian đó Đặt U là tập các user, D là tập các item, khi đó ma trận R có kích thước |U| x |D| là ma trận chứa tất cả các điểm rating thu thập được mà các user đã đánh giá các item Ý tưởng chính của mô hình matrix factorization trong xây dựng hệ tư vấn là xem ma trận điểm rating R là kết quả nhân từ 2 ma trận có hạng nhỏ hơn P và Q Ma trận
P gọi là ma trận cơ sở user với mỗi hàng trong P tượng trưng cho một user Các giá trị p ik trong vector hàng i của P biểu thị mức độ quan tâm của người dùng i đến đặc tính k của item Ma trận Q là ma trận đặc tính của item với mỗi cột trong Q tượng trưng cho một item Các giá trị q kj trong cột j biểu thị mức độ thuộc về của đặc tính k với item j Hình 3.1 minh họa cho ý tưởng này Như vậy từ ma trận R ban đầu, ta có thể phân rã ra thành 2 ma trận P và Q có hạng thấp hơn Sau đó tìm P và Q sao cho phép nhân PQ xấp xỉ với R
Hình 4.11 Mô hình toán học Matrix factorization
Giả sử ta cần khám phá K đặc tính tiềm ẩn (K < |U|, |D|), khi đó ta sẽ tìm 2 ma trận P |U| x K và Q |D| x K sao cho tích P x Q xấp xỉ được ma trận R , nghĩa là:
Giả sử ta cần khám phá K đặc tính tiềm ẩn (K < |U|, |D|), khi đó ta sẽ tìm 2 ma trận
P |U| x K và Q |D| x K sao cho tích P x Q xấp xỉ được ma trận R , nghĩa là:
Mỗi hàng của P biểu diễn mức độ quan tâm của user với các đặc tính Mỗi hàng của Q biểu diễn mức độ thuộc về của các đặc tính trong các item Để dự báo điểm rating của user u i dành cho item d j, ta sẽ tính tích vô hướng của hai vector tương ứng với u i và d j:
𝑘=𝑖 Để tìm P và Q , đầu tiên khởi tạo trị ban đầu cho P và Q , tính M = PQ rồi tối thiểu hóa độ lệch giữa ma trận M với R Mỗi lần lặp là một lần điều chỉnh P và Q để tối thiểu hóa độ lệch giữa M và R
Chiến lược đặt câu hỏi, questionnaire strategy
Việc đặt câu hỏi người dùng nhằm có được thông tin i Xác định vị trí hiện tại đang cư trú của user ii Xác định mức độ quan tâm của người dùng vào các nhóm thuộc tính tour iii Xác định điểm mỗi thuộc tính
Từ mục tiêu của chiến lược đặt câu hỏi này, ta có thể thực hiện đặt câu hỏi với nội dung và thứ tự như sau:
4.6.1 Xác định vị trí hiện tại đang cư trú của user Câu hỏi số 1:
47 Q1: Nơi xuất phát Tour ? (Q1: Vị trí hiện tại của bạn ?) Ý nghĩa:
Là câu hỏi đầu tiên, nhưng được dùng sau cùng, tức là có yếu tố quyết định lớn đến kết quả tìm Tour
Ta có dữ liệu về khoảng cách của các tỉnh thành toàn quốc đến 3 địa điểm xuất phát tour chính hiện có là: TpHCM, Hà Nội, Đà Nẵng Từ đây, ta có thể tính khoảng cách từ vị trí hiện tại của User đến 3 điểm xuất phát của Tour trong danh sách
Kết hợp với thông tin khoảng cách User đến 3 điểm xuất phát Tour, ta có thể sắp xếp thứ tự ưu tiên kết quả tìm tour và hiển thị kết quả danh sách này đến User
Tiêu chí ở đây là User sẽ ưu tiên chọn tour có điểm xuất phát gần khoảng cách địa lý với vị trí hiện tại của User
4.6.2 Xác định mức độ quan tâm của User vào các nhóm thuộc tính tour
Q2: Bạn làm nghề gì ? (Q2: Công việc của bạn ?) Q3: Bạn bao nhiêu tuổi ? (Q3: Độ tuổi của bạn ?)
Q4: Giới tính của bạn ? (Q4: Phái nam/nữ ?) Ý nghĩa:
Việc xác định cá tính, đặc điểm tính cách riêng của mỗi người là phức tạp Thực tế đặt ra đủ câu hỏi và lắng nghe trả lời của User để xác định đặc tính, sở thích cá nhân User thường có kết quả tương đối hạn chế Tuy nhiên phạm vi đề tài ở đây cố gắng đưa ra câu hỏi tổi thiểu, mà vẫn thu được thông tin cần thiết về đặc trưng tính cách của User
Q2: Bạn làm nghề gì ? Chọn lựa trả lời:
Nhóm nghề: PM, CEO, dầu khí, ngân hàng, thương gia, thương mại, xuất nhập khẩu,
Thu thập cao Nhóm nghề: Cán bộ, Nhân viên, chuyên viên, kỹ thuật, cơ khí, hóa chất,
Nhóm nghề: Buôn bán nhỏ, công nhân, sinh viên, tự do, thất nghiệp,
Thu thập thấp Q3: Bạn bao nhiêu tuổi ?
người lớn tuổi Q4: Giới tính của bạn ?
Nam Nữ 4.6.3 Xác định điểm mỗi thuộc tính của User
Nhóm câu hỏi này hiện tại là có 8 câu Thứ tự hỏi không cố định Việc 1 câu hỏi trong số 8 câu hỏi này được xuất hiện để hỏi user và được trả lời trước sẽ là 1 đặc điểm đáng quan tâm, tính vào đánh giá mức độ quan trọng, ảnh hưởng đến định hướng đặt câu hỏi tiếp theo, và điểm thuộc tính User thu được
1 Mức giá tour dự định chi tiêu ? 2 Thời gian tour dự định đi ? 3 Khí hậu phù hợp ?
4 Địa hình địa lý yêu thích thích ? 5 Loại du lịch quan tâm ?
6 Hoạt động tour yêu thích ? 7 Người đi cùng tour là ? 8 Cự ly tour muốn đi ?
Giải thuật tính điểm tour
4.7.1 Xác định vector Attribute, gồm list đủ các Attribute của Tour
Phạm vi Attribute xem xét trong Project hiện tại
2 A1 Dưới 1 triệu 3 A2 Từ 1 đến 2 triệu 4 A3 Từ 2 đến 4 triệu 5 A4 Từ 4 đến 6 triệu 6 A5 Từ 6 đến 10 triệu 7 A6 Trên 10 triệu 8 B Thời gian Tour 9 B1 1 buổi
13 B5 Trên 4 ngày 14 C Cự ly tuyến 15 C1 Nội thành 16 C2 Ngoại thành 17 C3 Khu vực lân cận 18 C4 Cùng vùng 19 C5 Khác vùng 20 D Khí hậu 21 D1 Ấm áp 22 D2 Mát mẻ 23 D3 Lạnh 24 E Đặc điểm địa lý 25 E1 Đồng bằng 26 E2 Núi
27 E3 Biển - Đảo 28 E4 Sông 29 E5 Hồ 30 E6 Hang động 31 E7 Khu bảo tồn- Khu di sản- Vườn quốc gia 32 E8 Thôn quê
33 E9 Thành thị 34 F loại hình du lịch 35 F1 Nghỉ dưỡng 36 F2 Sinh thái 37 F3 Tham quan 38 F4 Vui chơi-giải trí 39 F5 Văn hóa-nghệ thuật 40 F6 Du lịch tâm linh-hành hương 41 F7 Du lịch tình nguyện
42 F8 Du lịch thực thế 43 G Hoạt động 44 G1 Spa 45 G2 Mua sắm 46 G3 Ẩm thực 47 G4 Cắm trại 48 G5 Leo núi 49 G6 Ngắm cảnh 50 G7 Thể thao 51 G8 Trò chơi tập thể 52 H Người đi với 53 H1 Một mình 54 H2 Người yêu 55 H3 Gia đình 56 H4 Bạn bè 58 H5 Tổ chức-đoàn thể
No Attribute Group 1 Length of Tour B – Thời gian tour
7 Interested in G – Hoạt động 8 Specific Features E – Đặc điểm địa lý
4.7.2 Tính điểm các thuộc tính của Tour, User Để xác định được mức độ phù hợp của 1 Tour với 1 User, ta sử dụng phương pháp tính độ khớp của thuộc tính Tour với User Mô hình toán là tính diện tích tạo ra bởi 3 vector A, B, C và trục hoành, trục tung
- Vector A: vector trọng số thuộc tính User, thể hiện mức độ quan tâm của User đối với mỗi nhóm thuộc tính
- Vector B: chứa giá trị là điểm thuộc tính có được sau khi tính toán trực tiếp và tương tác thuộc tính của User
- Vector C: chứa điểm đã được đánh giá, khảo sát thực tế về 1 tour cụ thể, được lưu sẵn trong cơ sở dữ liệu Database
Vector A là hệ số factor thể hiện mức độ quan tâm về các nhóm thuộc tính đối với User Giá trị vector A có được từ kết quả trả lời trực tiếp của User tại 3 câu hỏi bắt buộc: Q2, Q3, Q4
Giả sử với mỗi câu hỏi có các lựa chọn trả lời tương ứng như sau:
Lựa chọn, option, trả lời:
J1, group 1: PM, CEO, dầu khí, ngân hàng, thương gia, thương mại, xuất nhập khẩu,
J2, group 2: Cán bộ, Nhân viên, chuyên viên, kỹ thuật, cơ khí, hóa chất,
nhóm thu nhập trung bình
J3, group 3: Buôn bán nhỏ, công nhân, sinh viên, tự do, thất nghiệp,
nhóm thu nhập thấp Q3: Bạn bao nhiêu tuổi ?
Lựa chọn, option, trả lời:
nhóm thu nhập trung bình
Lựa chọn, option, trả lời:
G1, group 1: Nam G2, group 2: Nữ Ở mỗi vị trí ngữ cảnh người dùng, mức độ quan tâm, tác động mạnh khi mua sắm tour sẽ có mức độ ảnh hưởng lớn nhỏ khác nhau Bảng giá trị trọng số sau đây có được từ dữ liệu kinh nghiệm của domain expert công ty du lịch
Factor Nghề nghiệp Tuổi Giới tính
Bảng 4.1 Bảng dữ liệu trọng số nhóm thuộc tính
Khi thực hiện hỏi đáp User 3 câu hỏi Q2, Q3, Q4, ta sẽ có được kết quả option trả lời của User Tiến hành tra với dữ liệu có sẵn ở bảng 1, ta có được kết quả trọng số của User đang quan tâm như dưới đây
Thông tin User: Nhân viên CNTT, 35 tuổi, Nam
Factor Job Age Gender Kết quả
Bảng 4.2: Kết quả Factor của User sau hỏi đáp Q2-3-4
Vector B là giá trị điểm các thuộc tính của User Các giá trị điểm thuộc tính User có được qua giải thuật tính điểm trực tiếp từ hỏi đáp Q5 Q12, và tự tính toán khi kết hợp với giá trị ma trận tương tác thuộc tính
Bảng ma trận tương tác của các thuộc tính có được từ giá trị có sẵn theo dữ liệu kinh nghiệm domain expert công ty du lịch
Bảng 4.2 Giá trị tương tác các thuộc tính Tour
Giải thuật tính điểm thuộc tính Tour
Algorithm Calc-user-attributes-point Input: user factor value of each attribute group: vector F{ag1, ag2, ag3, ag4, ag5, ag6, ag7, ag8} max question number Q_n , with question list and appliable answer options AO{
} interaction matrix value: interaction { 𝑨 𝒊 , 𝑨 𝒋 } 𝒘𝒊𝒕𝒉 𝒊, 𝒋 ∈ ℕ Answer of each question from Q5 help to calculate direct attribute and interaction relationship: QA{q, a}
Output: vector B is attribute point of user { A1, A2, A3, A4, A5, A6, B1, B2, , H3, H4,
6: B{} Calculate_Attribute_Point_indirect_with_interaction();
7: Check Loop_cont( Q_n, B{} ) 8: Check remain blank Attribute Point of B{}, prepare for next Question_Answer with priority for Attribute Group which have not set point yet, and have most interaction relation-link
9: If exist blank Attribute Point and the asked Question number is not exceed
Vector C là vector chứa điểm thực tế của tour theo các thuộc tính đã xác định như User Mức độ quan tâm của User đối với từng Attribute cũng sẽ phản ánh tương đương đối với Attribute đó trên vector C
4.7.6 Tính điểm Tour Sau khi xác định được vector A, B, C, ta có đủ cơ sở để thực hiên bước cuối cùng của mục tiêu tính điểm tour là tính độ khớp của đặc điểm User với Tour
(6.a) Xác định vector factor của User: F{}
(6.b) Lập đường tạo bởi Vector C
54 Vì nhóm A có giá trị factor = 2, nên đồ thị Line của Attribute nhóm A là C_A(40, 70, 100, 70, 40, 10) như sau:
Hình 4.12 Đồ thị thuộc tính vector C nhóm A
Tương tự, vì nhóm D có giá trị factor = 3, nên đồ thị Line của Attribute nhóm D là C_D(70, 20, 10) như sau:
Hình 4.13 Đồ thị thuộc tính vector C nhóm D
Tương tự, nhóm F có giá trị factor = 1, nên đồ thị Line của Attribute nhóm F là C_F(60, 50, 100, 30, 60, 60, 0, 20) như sau:
Point Line for Attribute Group A
Point Line for Attribute Group D
Hình 4.14 Đồ thị thuộc tính vector C nhóm F
(6.c) Lập đường tạo bởi Vector B
Ví dụ Để đơn giản, đồ thị sau minh họa đường tạo bởi Attribute đã tính được của User
Với factor group D là f = 3, nên đồ thị như sau:
Hình 4.15 Đồ thị thuộc tính vector B nhóm D
(6.d) Tính diện tích phần khác biệt giữa vector C và vector B
Ví dụ Khi ghép 2 vector C và B vào cùng hệ trục tọa độ, với cùng Attribute, nên ta có thể tính được diện tích phần chênh lệch giữa C và B
Point Line for Attribute Group F
Point Line for Attribute Group D user
Hình 4.16 Đồ thị thuộc tính vector C và vector B cùng nhóm D
Tính cho toàn bộ Attribute của tour, Giá trị diện tích này thể hiện độ khớp giữa user và tour, diện tích càng nhỏ nói lên rằng tour này càng phù hợp hơn với user
Như vậy tour có diện tích minimum, sẽ là tour phù hợp nhất với user.
Mô hình kiến trúc kỹ thuật xử lý khuyến nghị tổng thể
Sau khi đã có cơ sở lý thuyết phương pháp khoa học cho xử lý giải thuật khuyến nghị Tour, ta cần xây dựng hệ thống chương trình xử lý hiện thực các giải pháp này Từ mục tiêu tiếp cận nhu cầu thực tế hiện nay như mức độ phổ biến đa số của smartphone, tính tiện ích dễ sử dụng cho người sử dụng khi tiếp cận hệ thống qua web, mobile app, ta thấy cần thiết phải thiết kế một hệ thống tổng quát framework TRS, nhằm phân đoạn từng khối chức năng, xác định vai trò liên kết của từng khối trong hệ thống
Point Line for Attribute Group D tour user
Hình 4.17 Mô hình thiết kế chức năng kỹ thuật xử lý TRS
THIẾT KẾ HIỆN THỰC
User case diagram
Hình 5.1 Sơ đồ user case của TRS
Class diagram
Khối back-end xử lý tính toán tourscore, gồm các class xử lý logic, xử lý giao tiếp web service qua json, đọc và truy vấn data ontology từ file owl qua ngôn ngữ Sparql
59 5.2.1 Class diagram of main control and web service interface
Hình 5.2 class diagram of TRS, main control
60 5.2.2 Class diagram of processing data
Hình 5.3 class diagram of TRS, processing data
61 5.2.3 Class diagram Tour Score Calculate, Questionnaires Generation
Hình 5.4 class diagram of TRS, calculate tour score, generate questionnaires
ERD – sơ đồ cơ sở dữ liệu TRS
Dữ liệu Tour ban đầu được thu thập từ domain expert công ty du lịch, được xử lý lưu trữ dưới dạng dữ liệu quan hệ trong RDBMS
Hình 5.5 ER diagram – sơ đồ thực thể cơ sở dữ liệu quan hệ TRS
Ontology TRS
Nền tảng dữ liệu Tour được ánh xạ qua ontology, làm cơ sở tri thức của hệ thống khuyến nghị TRS
Giao tiếp dữ liệu qua web service
Front end là ứng dụng mobile apps hoặc web apps đầu cuối có thể liên hệ với hệ thống back-end qua giao thức dữ liệu webservice dùng JSON
Hình 5.7 Giao tiếp dữ liệu giữa Frontend và Backend
- Start request: bắt đầu ứng dụng - 1 +3 Q&A: server gửi về 4 câu hỏi và option answer: Q1 , Q2, Q3, Q4 (liên tục hoặc tuần tự) - Answer: client gửi kết quả trả lời (answer), hoặc click lệnh Next để đi đến câu hỏi tiếp theo của backend - ShowTour: client muốn xem kết quả tìm kiếm Tour ngay - Back: client yêu cầu Server quay lại câu hỏi trước có kèm answer options - Exit: thoát, server sẽ xóa hết dữ liệu transaction session
- Restart: làm lại từ đầu
KIỂM THỬ ĐÁNH GIÁ
Mục tiêu kiểm thử
Việc kiểm thử Recommender System nhằm tìm hiểu các yếu tố tác động đến chất lượng, hiệu quả hoạt động của hệ thống Kết quả quá trình kiểm thử sẽ giúp trả lời các vấn đề liên quan của hệ thống khuyến nghị là
- Phương pháp, kỹ thuật xử lý khuyến nghị là gì ? Nó hoạt động như thế nào ? Mang lại lợi ích và vấn đề gì ?
- Các yếu tố tác động của hệ khuyến nghị ? Khía cạnh nào ảnh hưởng quan trọng đến đánh giá kết quả khuyến nghị ?
- Người dùng thỏa mãn cái gì ? Làm sao đo được mức độ thỏa mãn người dùng ? - Làm thế nào để hài hòa danh sách các thuộc tính khuyến nghị và mức thỏa mãn người dùng ?
Phương pháp kiểm thử đánh giá
Có 3 phương pháp cơ bản thực hiện kiểm thử đánh giá hệ khuyến nghị được áp dụng thực tế
6.2.1 Offline experiments Phương pháp offline dễ thực hiện, chi phí thấp để thực hiện Quá trình thực nghiệm này dùng các tập data sets hiện có và phương pháp mô hình hóa hành vi người dùng để ước lượng kết quả đo đạt hiệu suất kết quả khuyến nghị, như là độ chính xác dự đoán (prediction accuracy)
6.2.2 User studies Phương pháp làm thực nghiệm với một tập nhỏ các người dùng bằng cách mời họ dùng thử, để khảo sát thực tế trải nghiệm, nhận xét đánh giá của họ sau khi trải nghiệm
6.2.3 Online experiments Phương pháp này đánh giá trên hệ thống đã được triển khai thực tế, thường có quy mô lớn, nhằm đánh giá hiệu quả, mức tác động trên người dùng thực tế
Giới hạn phạm vi kiểm thử của đề tài
Quá trình kiểm thử của đề tài được thực hiện nhằm giới thiệu phương pháp khoa học có cơ sở đánh giá hệ thống khuyến nghị, và qua thực nghiệm để nhận định được mức độ hiệu quả của hệ thống
Phạm vi kiểm thử của đề tài này là tiến hành thực nghiệm offline experiments, là phường pháp đủ cơ sở khoa học để đánh giá các yếu tố tác động và hiệu quả của hệ thống khuyến nghị.
Các tham số đánh giá hệ khuyến nghị
Việc kiểm thử nhằm thực hiện đánh giá hệ thống, là làm sáng tỏ các vấn đề câu hỏi đã nêu ở phần mục tiêu kiểm thử
Tính chính xác của giải thuật xử lý hệ thống là quan trọng thiết yếu, nhưng chưa đáp ứng được thực tế người dùng Có nhiều yếu tố tác động đến sự chấp nhận sử dụng của người dùng, có thể được phân chia làm hai nhóm:
6.4.1 Tiêu chuẩn khảo sát dựa trên giải thuật hệ khuyến nghị
Accuracy: độ chính xác của giải thuật khuyến nghị, prediction accuracy
Coverage: mức bao phủ, được đo bằng phần trăm các thuộc tính mà hệ thống xử lý khuyến nghị được Coverage = Nhc / Nupc
Novelty: tính mới lạ, đo lường khả năng khuyến nghị đến cái mà người dùng chưa biết đến
Serendipity: tính ngạc nhiên, serendipity có hai đặc điểm là: ngạc nhiên
(suprising), và hấp dẫn (attractive) Hệ khuyến nghị có yếu tố này sẽ giúp người tìm thấy kết quả tạo ngạc nhiên và thích thú
Diversity: tính đa dạng khi đưa ra kết quả khuyến nghị Tính chất này mâu thuẩn với sự tương tự (similar), vì khi đưa ra nhiều kết quả tương tự sẽ không hấp dẫn được người dùng
Scalability: time complexity and space complexity
67 N hc : the number of hit coupons
N trc : the number of total coupons system recommended
N upc : the number of coupons which user actually printed
N cc : the number of different companies of the recommended coupons
N uhc : means the number of coupons except hit ones
Ntpc(uhc