Bối cảnh và vấn đề nghiên cứu

Trong xu hướng phát triển của ngành du lịch hiện đại, hình thức du lịch tự túc ngày càng được nhiều du khách lựa chọn. Tuy nhiên, nhóm khách du lịch tự túc đang phải đối mặt với nhiều rào cản thực tế trong việc tự lập kế hoạch cho các chuyến đi. Cụ thể, việc tìm kiếm nguồn thông tin xác thực về các địa điểm du lịch, đặc biệt là các điểm đến bản địa ít người biết, đòi hỏi nhiều thời gian và công sức. Bên cạnh đó, các công đoạn phân bổ lịch trình, dự trù ngân sách và đặt dịch vụ lưu trú thường phân mảnh, thiếu tính đồng bộ. Các nền tảng dịch vụ du lịch hiện hành chủ yếu vận hành qua khâu trung gian, chưa tạo được kênh kết nối tương tác trực tiếp giữa khách du lịch và các đối tác cung cấp dịch vụ tại địa phương.

Xuất phát từ thực tiễn trên, đề tài khóa luận tốt nghiệp kỹ sư ngành Công nghệ phần mềm tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh của nhóm tác giả Nguyễn Hữu Thoại, Hoàng Công Thiện và Phạm Bá Thành (dưới sự hướng dẫn của ThS. Nguyễn Thủy An) đã thực hiện việc nghiên cứu và xây dựng nền tảng "VCompass" (Website hỗ trợ tour du lịch).

Mục tiêu nghiên cứu của đề tài được xác định thông qua bốn nhiệm vụ kỹ thuật cụ thể:

  1. Tìm hiểu và tích hợp các giao diện lập trình ứng dụng (API) của bên thứ ba, điển hình là Google Maps API, nhằm hỗ trợ chức năng định vị địa lý và xây dựng kế hoạch du lịch trên bản đồ trực quan.
  2. Ứng dụng dịch vụ cơ sở dữ liệu MongoDB Atlas để thiết lập hệ thống lưu trữ phân tán, đảm bảo tính an toàn và bảo mật cho toàn bộ dữ liệu ứng dụng.
  3. Thiết kế giao diện người dùng theo hướng tương tác, hỗ trợ quản lý lịch trình linh hoạt và tích hợp bản đồ số.
  4. Tích hợp giải pháp thông báo thời gian thực và tự động hóa gửi thư điện tử nhằm hoàn thiện chu trình trải nghiệm của người dùng trên nền tảng.

Về đối tượng và phạm vi nghiên cứu:

  • Đối tượng người dùng cá nhân: Nhóm du khách trẻ trong độ tuổi từ 18 đến 35 tuổi, có nhu cầu đi du lịch tự túc, mong muốn tối ưu hóa thời gian xây dựng kế hoạch cá nhân hóa và tìm kiếm các điểm đến địa phương độc đáo.
  • Đối tượng cung cấp dịch vụ: Các đơn vị, hộ kinh doanh dịch vụ du lịch địa phương bao gồm khách sạn, cơ sở lưu trú, nhà hàng và hướng dẫn viên du lịch.
  • Phạm vi thời gian: Đề tài được triển khai thực hiện theo kế hoạch từ ngày 06/01/2025 đến ngày 10/06/2025.

Cơ sở lý thuyết và phương pháp

Khóa luận kết hợp giữa phương pháp luận kỹ nghệ phần mềm hiện đại và kỹ thuật học tăng cường (Reinforcement Learning) nhằm giải quyết bài toán gợi ý lịch trình tự động. Các nền tảng lý thuyết và công nghệ cốt lõi bao gồm:

  • Thư viện React.js kết hợp Vite: Ứng dụng cơ chế Virtual DOM để tối ưu hóa quá trình kết xuất giao diện đơn trang (Single-Page Application - SPA). Cấu trúc thành phần UI có khả năng tái sử dụng cao, kết hợp cùng các công cụ quản lý trạng thái và định tuyến (Redux, React Router) giúp xử lý các luồng tương tác phía máy khách (Client-side).
  • Môi trường thực thi Node.js và Framework Express.js: Vận hành theo mô hình kiến trúc hướng sự kiện (event-driven), xử lý I/O không đồng bộ (asynchronous non-blocking), thích hợp cho các dịch vụ đòi hỏi tần suất truy xuất dữ liệu cao như trao đổi tin nhắn, thông báo và gọi API liên tục.
  • Hệ quản trị cơ sở dữ liệu NoSQL MongoDB: Lưu trữ dữ liệu dưới định dạng tài liệu nhị phân BSON với cấu trúc lược đồ linh hoạt (flexible schema), tích hợp khung tổng hợp dữ liệu (aggregation framework) và hỗ trợ phân mảnh dữ liệu (sharding) khi mở rộng hệ thống.
  • Mô hình học tăng cường Deep Q-Network (DQN): Mô hình DQN sử dụng mạng nơ-ron nhân tạo để xấp xỉ hàm giá trị hành động tối ưu $Q(s, a)$. Trong hệ thống gợi ý lịch trình, trạng thái $s$ đại diện cho hồ sơ đặc trưng của người dùng (độ tuổi, sở thích, danh mục thẻ quan tâm, mức ngân sách chi tiêu), còn hành động $a$ tương ứng với một lịch trình cụ thể (đặc trưng bởi số ngày, chi phí, địa điểm, dịch vụ đi kèm). Mô hình được xây dựng trên nền tảng môi trường tương tác Gymnasium và thư viện Stable Baselines3.
  • Thuật toán Cosine Similarity: Được sử dụng phối hợp cùng DQN để đo lường độ tương đồng giữa các vector đặc trưng sở thích của người dùng và thẻ phân loại của lịch trình, hỗ trợ xếp hạng và giải quyết các trường hợp mô hình học tăng cường chưa cung cấp đủ số lượng gợi ý cần thiết.
  • Nguồn dữ liệu thực nghiệm: Toàn bộ quá trình huấn luyện và kiểm thử mô hình gợi ý lịch trình sử dụng tập dữ liệu nội bộ được cấu trúc từ các tệp tin All_users.json và All_schedules.json.

Thiết kế và triển khai

Hệ thống VCompass được phân tích, thiết kế theo mô hình phân tầng chuẩn mực của ứng dụng web hiện đại, phục vụ ba tác nhân người dùng chính: Khách hàng (Customer), Đối tác cung cấp dịch vụ (Partner) và Quản trị viên (Admin).

1. Kiến trúc hệ thống và ngăn xếp công nghệ

  • Giao diện người dùng (Frontend): Xây dựng bằng React.js, Vite, HTML5, CSS3 và JavaScript. Thiết kế giao diện thực hiện qua công cụ Figma trước khi chuyển đổi sang mã nguồn.
  • Xử lý trung gian và dịch vụ nền (Backend): Xây dựng hệ thống RESTful API dựa trên Express.js chạy trên nền tảng Node.js. Xác thực quyền hạn truy cập của các phân hệ thông qua chuẩn mã hóa JSON Web Token (JWT).
  • Lưu trữ dữ liệu (Database): CSDL MongoDB lưu trữ các thực thể thông tin gồm người dùng, dịch vụ, đặt phòng, đánh giá cùng các bảng dữ liệu chuyên biệt như log_activities, activity (trong schedule), short_videos và user_satisfaction.
  • Hệ thống liên kết dịch vụ ngoài (Third-party Integration):
    • Google Maps API: Hiển thị bản đồ số tương tác, xác định vị trí các điểm tham quan và hỗ trợ định tuyến lịch trình.
    • Socket.IO (WebSocket): Cung cấp giao thức truyền thông hai chiều thời gian thực cho tính năng nhắn tin nội bộ và hệ thống phát sinh thông báo tức thời.
    • Nodemailer: Tự động hóa gửi email phục hồi mật khẩu và thông báo giao dịch đơn hàng.
    • Gemini API: Tích hợp chatbot thông minh hỗ trợ giải đáp thắc mắc của người dùng về địa điểm và dịch vụ theo ngữ cảnh tự nhiên.

2. Thiết kế tính năng theo phân hệ

  • Phân hệ Người dùng cá nhân: Tìm kiếm dịch vụ đa tiêu chí (địa điểm, giá cả, dịch vụ kèm theo); lập và quản lý lịch trình du lịch cá nhân hoặc nhóm; tự động khởi tạo lịch trình bằng AI; lưu trữ dịch vụ yêu thích; tương tác cộng đồng (thích, bình luận, chia sẻ); xem và tải lên video ngắn (định dạng MP4 dung lượng dưới 50MB); nhắn tin thời gian thực với đối tác hoặc chatbot AI; đặt phòng khách sạn trực tiếp.
  • Phân hệ Nhà cung cấp dịch vụ (Partner): Quản lý hồ sơ kinh doanh; đăng tải và cập nhật dịch vụ lưu trú, ăn uống; tiếp nhận, phê duyệt hoặc từ chối các đơn đặt dịch vụ của khách hàng; theo dõi phản hồi đánh giá; xem báo cáo phân tích doanh thu và số lượng tương tác.
  • Phân hệ Quản trị viên (Admin): Kiểm duyệt và phê duyệt dịch vụ của đối tác; quản trị cơ sở dữ liệu địa điểm tham quan du lịch và hệ thống tiện ích chung; giám sát, khóa hoặc mở khóa tài khoản người dùng; tiếp nhận xử lý khiếu nại báo cáo vi phạm chính sách; kích hoạt và theo dõi tiến trình huấn luyện lại mô hình AI (Train model AI).

Nội dung chính theo từng chương

Báo cáo khóa luận được cấu trúc thành 6 chương chuyên môn cùng phần mở đầu và kết luận:

Chương 1: Cơ sở lý thuyết

Tập trung phân tích các nền tảng công nghệ được lựa chọn cho dự án. Tác giả trình bày ưu điểm, nhược điểm và lý do sử dụng của từng công nghệ:

  • ReactJS: Tận dụng hiệu năng render từ Virtual DOM và khả năng tái sử dụng thành phần, khắc phục rào cản về hệ sinh thái thư viện biến động liên tục.
  • Node.js và Express.js: Tối ưu hóa năng lực xử lý I/O không đồng bộ cho các tác vụ thời gian thực, đồng nhất ngôn ngữ JavaScript xuyên suốt từ client đến server.
  • MongoDB: Đáp ứng nhu cầu lưu trữ dữ liệu phi cấu trúc và bán cấu trúc có quy mô mở rộng linh hoạt, khắc phục hạn chế về tính toàn vẹn giao dịch phức tạp bằng việc thiết kế cấu trúc document phù hợp.
  • Mô hình DQN trong gợi ý lịch trình: Phân tích nguyên lý mô hình hóa trạng thái và hành động trên không gian vector, ứng dụng môi trường Gymnasium để tối ưu hóa gợi ý lịch trình cá nhân hóa dựa trên học tăng cường.

Chương 2: Tổng quan về hệ thống website hỗ trợ du lịch

Chương này định nghĩa khái niệm website hỗ trợ du lịch, chỉ rõ bốn đặc điểm chính của VCompass: khả năng tùy biến lịch trình cao, tập trung thông tin bản địa chưa khai thác, tích hợp trọn vẹn quy trình lập kế hoạch kèm tính toán chi phí, và hỗ trợ đặt dịch vụ trực tiếp. Tác giả tiến hành so sánh hệ thống với các nền tảng thương mại điện tử du lịch quy mô lớn:

Tiêu chí so sánh Nền tảng hiện hành (Traveloka, Booking.com) Nền tảng VCompass
Trọng tâm dịch vụ Đặt phòng, vé máy bay tại các điểm du lịch lớn, phổ biến Khám phá điểm đến địa phương độc đáo, ít người biết
Mức độ tùy biến lịch trình Cố định theo gói dịch vụ hoặc sản phẩm đơn lẻ Tùy biến chi tiết từng mốc thời gian, chi phí, dịch vụ
Quy trình kết nối Đặt chỗ thông qua hệ thống phân phối trung gian Kết nối trực tiếp giữa du khách và đối tác dịch vụ địa phương
Hỗ trợ lập kế hoạch AI Gợi ý dựa trên lọc cộng tác cơ bản hoặc danh mục phổ biến Gợi ý lịch trình tự động bằng DQN kết hợp Cosine Similarity
Tích hợp mạng xã hội Đánh giá truyền thống dạng văn bản và số sao Video ngắn dọc (tương tự TikTok), theo dõi trang cá nhân, chat trực tiếp

Chương 3: Phân tích và mô hình hóa yêu cầu

Trình bày chi tiết hệ thống hóa các yêu cầu chức năng thông qua bảng danh mục yêu cầu (từ Bảng 3.1 đến Bảng 3.26), đặc tả chi tiết 25 trường hợp sử dụng (Use case từ Bảng 3.27 đến Bảng 3.51), cùng 49 lược đồ tuần tự (Sequence Diagram) và 49 lược đồ hoạt động (Activity Diagram). Các luồng tương tác nghiệp vụ được chuẩn hóa cho toàn bộ các chức năng từ xác thực tài khoản, xử lý video ngắn, quản trị đặt phòng, đến cơ chế xử lý ngoại lệ khi gửi thông báo.

Chương 4: Thiết kế ứng dụng

Trình bày lược đồ thiết kế cơ sở dữ liệu chi tiết cho hệ thống MongoDB, bao gồm cấu trúc các tập tài liệu quản trị hoạt động người dùng, danh mục điểm tham quan, dịch vụ, tương tác xã hội và tiện ích hệ thống. Đi kèm với thiết kế CSDL là hệ thống hóa các màn hình giao diện người dùng chính (trang chủ, tạo lịch trình, chi tiết dịch vụ, quản lý đặt phòng, bảng điều khiển phân tích số liệu của đối tác và quản trị viên).

Chương 5: Mô hình hệ thống gợi ý lịch trình

Đi sâu vào khía cạnh học máy của hệ thống. Mô hình tiếp nhận đầu vào là các vector đặc trưng người dùng và lịch trình, thực thi trong môi trường Gymnasium. Để xử lý bài toán khởi đầu lạnh (Cold-start) cho người dùng mới chưa có dữ liệu lịch sử tương tác, hệ thống tự động gán hồ sơ mặc định dựa trên giá trị trung vị của độ tuổi, chi phí dự kiến, số ngày du lịch và các thẻ gắn nhãn phổ biến. Mô hình DQN được cấu hình với chu kỳ huấn luyện kéo dài 500,000 bước (steps), kết hợp tính điểm thưởng để lựa chọn danh sách đề xuất đạt chỉ số $topK = 30$ lịch trình phù hợp nhất hiển thị trên giao diện người dùng.

Chương 6: Kiểm thử hệ thống

Mô tả phương pháp tiếp cận kiểm thử phần mềm, triển khai các bộ kịch bản kiểm thử (Test cases) trên các mô-đun chức năng nghiệp vụ, xác thực tính ổn định của API và hiệu năng tương tác thời gian thực trên giao diện.


Kết quả và đóng góp

1. Kết quả kỹ thuật đạt được

  • Triển khai thành công nền tảng phần mềm VCompass đáp ứng đầy đủ chu trình nghiệp vụ trên ba phân hệ: Quản trị viên, Nhà cung cấp dịch vụ và Khách hàng.
  • Tích hợp đồng bộ hệ sinh thái công nghệ gồm ReactJS, Node.js, Express.js và MongoDB Atlas, vận hành ổn định các cơ chế thông báo thời gian thực qua WebSocket và gửi email xác thực tự động qua Nodemailer.
  • Xây dựng thành công kênh kết nối đặt phòng trực tiếp không qua khâu trung gian, giảm bớt chi phí phát sinh và tạo tính chủ động cho các cơ sở kinh doanh dịch vụ địa phương.
  • Tích hợp thử nghiệm mô hình học tăng cường DQN cho chức năng gợi ý lịch trình với thông số đánh giá thực nghiệm:
Chỉ số đánh giá mô hình Tập huấn luyện (Training Set) Tập kiểm tra (Test Set)
Số bước huấn luyện (Steps) 500,000 -
Hit Rate Đã ghi nhận trong log huấn luyện 0.0909 (tương đương 9.09%)
Mean Reciprocal Rank (MRR) Đã ghi nhận trong log huấn luyện 0.0909
Số lượng đề xuất trả về (topK) 30 30

2. Đóng góp của đề tài

  • Cung cấp một giải pháp phần mềm hướng đến thị trường ngách của ngành du lịch: tập trung vào du lịch tự túc và các điểm đến ít người biết đến tại Việt Nam.
  • Kết hợp hình thức mạng xã hội du lịch hiện đại (chia sẻ video ngắn định dạng dọc, theo dõi tài khoản, tương tác nhóm trên lịch trình) với các tính năng thương mại điện tử chuyên ngành.
  • Ứng dụng thực nghiệm mô hình học tăng cường DQN vào bài toán lập kế hoạch du lịch cá nhân hóa kết hợp cùng kỹ thuật Cosine Similarity để xử lý dữ liệu vector thưa.

Hạn chế và hướng nghiên cứu tiếp

Khóa luận thẳng thắn chỉ ra những hạn chế kỹ thuật tồn tại trong hệ thống, đặc biệt là ở phân hệ trí tuệ nhân tạo:

  • Hiệu suất mô hình gợi ý chưa cao: Cả hai chỉ số Hit Rate và MRR trên tập kiểm tra của mô hình DQN mới chỉ đạt mức 0.0909. Điều này phản ánh khả năng tổng quát hóa trên dữ liệu mới còn hạn chế, tiềm ẩn hiện tượng quá khớp (overfitting) hoặc do cấu trúc thiết kế hàm phần thưởng (reward function) chưa bao quát hết mọi khía cạnh tương tác của người dùng.
  • Sự phụ thuộc vào dữ liệu đầu vào: Quá trình huấn luyện phụ thuộc chặt chẽ vào độ phong phú và tính chuẩn hóa của hai tệp dữ liệu All_users.json và All_schedules.json. Sự thiếu hụt các trường dữ liệu đa dạng có thể làm giảm độ chính xác của vector đặc trưng.
  • Chi phí tính toán lớn: Quá trình huấn luyện mô hình DQN với 500,000 bước đòi hỏi tài nguyên tính toán đáng kể và tiêu tốn nhiều thời gian thực thi.

Hướng phát triển tiếp theo được nhóm tác giả xác định bao gồm:

  • Tinh chỉnh hàm thưởng và tối ưu hóa hệ thống siêu tham số của mô hình DQN.
  • Mở rộng tập dữ liệu huấn luyện, bổ sung thêm các chiều đặc trưng theo ngữ cảnh thời gian thực và tọa độ địa lý động.
  • Cải thiện thuật toán lai ghép để nâng cao các chỉ số đánh giá Hit Rate và MRR trên tập dữ liệu kiểm thử thực tế.

Giá trị tham khảo

Báo cáo khóa luận có giá trị tham khảo thiết thực cho các đối tượng sau:

  • Sinh viên chuyên ngành Công nghệ thông tin và Công nghệ phần mềm: Cung cấp tài liệu mẫu mực về quy trình xây dựng ứng dụng web quy mô lớn theo kiến trúc MERN-stack (MongoDB, Express, React, Node.js), kết hợp với kỹ thuật xác thực bảo mật JWT và điều hướng dữ liệu thời gian thực qua WebSocket.
  • Người nghiên cứu hệ thống gợi ý và ứng dụng AI: Đáng chú ý ở Chương 5 khi cung cấp phương pháp thiết lập môi trường Gymnasium cho bài toán lập lịch trình, cách xây dựng không gian trạng thái/hành động cho mô hình DQN, cũng như phương pháp tiếp cận giải quyết bài toán khởi đầu lạnh (Cold-start).
  • Các nhóm phát triển dự án du lịch thông minh: Cung cấp tài liệu đặc tả yêu cầu chi tiết (với 26 bảng yêu cầu và hệ thống sơ đồ UML hoàn chỉnh) phục vụ việc phân tích nghiệp vụ cho các nền tảng thương mại điện tử kết hợp mạng xã hội du lịch.

Câu hỏi thường gặp

1. Hệ thống VCompass giải quyết bài toán khởi đầu lạnh (Cold-start) cho người dùng mới như thế nào khi áp dụng mô hình DQN?
Đối với người dùng mới hoàn toàn chưa phát sinh lịch sử tương tác trên hệ thống, VCompass tự động khởi tạo một hồ sơ người dùng mặc định dựa trên các giá trị trung vị thống kê từ tập dữ liệu gồm: độ tuổi, mức chi phí trung bình, số ngày lưu trú dự kiến và các thẻ gắn nhãn sở thích phổ biến nhất, từ đó cho phép mô hình DQN và Cosine Similarity đưa ra đề xuất ngay lập tức.

2. Hiệu năng của mô hình gợi ý lịch trình DQN được ghi nhận cụ thể với những con số nào?
Trong quá trình thử nghiệm với 500,000 bước huấn luyện, mô hình DQN đạt chỉ số Hit Rate là 0.0909 (9.09%) và chỉ số Mean Reciprocal Rank (MRR) là 0.0909 trên tập dữ liệu kiểm tra. Kết quả phản ánh mô hình cần được tiếp tục tối ưu hóa hàm thưởng và cấu trúc dữ liệu để nâng cao khả năng tổng quát hóa.

3. Sự khác biệt cốt lõi giữa nền tảng VCompass và các ứng dụng du lịch trực tuyến hiện hành như Traveloka hay Booking.com là gì?
Trong khi Traveloka và Booking.com tập trung phân phối vé máy bay và phòng khách sạn phổ biến thông qua hệ sinh thái trung gian thương mại, VCompass hướng tới du lịch tự túc bằng cách cung cấp thông tin các điểm đến bản địa ít người biết, cho phép du khách tùy biến sâu toàn bộ lịch trình, giao tiếp và đặt phòng trực tiếp không qua trung gian với đối tác địa phương.

4. Tính năng video ngắn (short video) trên hệ thống VCompass có những ràng buộc kỹ thuật nào?
Tính năng video ngắn được thiết kế theo dạng cuộn dọc (tương tự định dạng TikTok). Hệ thống quy định video tải lên phải ở định dạng MP4 với giới hạn dung lượng dưới 50MB, cho phép gắn thẻ (tag) trực tiếp liên kết tới trang chi tiết của lịch trình hoặc dịch vụ liên quan.

5. Nền tảng tích hợp những giải pháp công nghệ nào để nâng cao tính tương tác thời gian thực và tự động hóa?
VCompass sử dụng thư viện Socket.IO trên nền giao thức WebSocket để phục vụ tính năng nhắn tin tức thời và gửi thông báo hệ thống tự động; sử dụng thư viện Nodemailer để xử lý các luồng gửi email xác thực/khôi phục mật khẩu; và tích hợp Gemini API để xây dựng chatbot hỗ trợ người dùng giải đáp thông tin tự động theo ngữ cảnh.


Kết luận

Đồ án tốt nghiệp "Xây dựng website hỗ trợ tour du lịch" của nhóm sinh viên Trường Đại học Sư phạm Kỹ thuật TP.HCM đã hiện thực hóa thành công nền tảng VCompass phục vụ nhu cầu du lịch tự túc và kết nối trực tiếp với nhà cung cấp bản địa. Đề tài thể hiện khối lượng kỹ thuật hoàn chỉnh từ phân tích nghiệp vụ, thiết kế kiến trúc phân tầng MERN-stack đến việc tích hợp thực nghiệm mô hình học tăng cường DQN và chatbot ngữ cảnh thông minh. Mặc dù hiệu suất tổng quát hóa của mô hình gợi ý AI trên tập kiểm tra còn khiêm tốn ở mức 0.0909, công trình đã xây dựng được một khung kiến trúc phần mềm đồng bộ, mở ra cơ sở thực tiễn để tiếp tục nghiên cứu và hoàn thiện các giải pháp công nghệ số trong lĩnh vực du lịch cá nhân hóa.