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

Trong nền kinh tế phát triển năng động cùng làn sóng chuyển đổi số và cuộc Cách mạng Công nghiệp 4.0, hiệu quả kinh doanh của các doanh nghiệp bán lẻ đòi hỏi sự kết hợp chặt chẽ giữa kiến thức nghiệp vụ và các giải pháp công nghệ hỗ trợ. Để duy trì sức cạnh tranh và tăng trưởng bền vững, người quản lý cần đưa ra các quyết định chuẩn xác, kịp thời về quản lý dòng vốn, điều phối tài chính và quản lý hoạt động xuất nhập hàng hóa.

Đối với ngành hàng thực phẩm, vòng đời sản phẩm thường ngắn và có yêu cầu nghiêm ngặt về hạn sử dụng. Nếu lượng hàng nhập vượt quá nhu cầu thực tế, lượng tồn kho dư thừa sẽ gây chậm luân chuyển vốn, chiếm dụng diện tích kho bãi và dẫn đến rủi ro hư hỏng, hết hạn. Ngược lại, việc nhập thiếu hàng hóa sẽ làm gián đoạn chuỗi cung ứng cục bộ, khiến cơ sở kinh doanh mất đi khách hàng tiềm năng và khách hàng thân thiết. Thực trạng này đặt ra yêu cầu cấp thiết về việc dự báo chính xác doanh số bán hàng trong tương lai.

Tuy nhiên, các cửa hàng bán lẻ vừa và nhỏ hiện nay gặp nhiều rào cản lớn:

  • Hạn chế về năng lực tài chính khiến cơ sở không thể xây dựng và duy trì đội ngũ chuyên viên phân tích dữ liệu chuyên trách.
  • Thiếu hụt các công cụ số có khả năng truy vấn, tổng hợp và phân tích dự báo trực tiếp; công tác quản lý vẫn phụ thuộc chủ yếu vào sổ sách hoặc các thao tác thủ công, gây tiêu tốn nhiều thời gian, nhân lực và tiềm ẩn nguy cơ sai sót, thất thoát dữ liệu.
  • Việc ra quyết định nhập xuất hàng hóa thiếu cơ sở định lượng dẫn đến những tổn thất nghiêm trọng cho sức khỏe tài chính của doanh nghiệp.

Xuất phát từ thực tiễn trên, khóa luận tốt nghiệp kỹ sư ngành Kỹ thuật Phần mềm với đề tài "Xây dựng ứng dụng di động bán thực phẩm trực tuyến hỗ trợ dự báo doanh số" (tên tiếng Anh: Building mobile application to sell food online with sales forecasting tools) được thực hiện bởi hai sinh viên Phạm Minh Tân (MSSV: 19520261) và Bùi Dương Duy Khang (MSSV: 19520618), dưới sự hướng dẫn của TS. Nguyễn Hồng Thủy tại Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh. Khóa luận được hoàn thành vào tháng 12 năm 2022 và bảo vệ trước Hội đồng chấm khóa luận thành lập theo Quyết định số 60/QĐ-ĐHCNTT ngày 09/02/2023.

Tác giả xác định 5 mục tiêu nghiên cứu cụ thể:

  1. Phát triển ứng dụng mua bán thực phẩm trực tuyến hoàn chỉnh trên nền tảng di động Android, đồng thời tích hợp công cụ dự báo doanh số bán hàng phục vụ trực tiếp cho các nhà bán lẻ hạn chế về nguồn lực.
  2. Cung cấp nền tảng số hóa kênh phân phối, hỗ trợ người tiêu dùng tiếp cận các mặt hàng thực phẩm nhanh chóng, tiện lợi, góp phần mở rộng thị trường và gia tăng doanh số cho cửa hàng.
  3. Cung cấp công cụ quản trị giúp chủ cửa hàng dễ dàng kiểm soát các thông số về số lượng tồn kho, lượng hàng bán ra, bảng giá, đồng thời chủ động theo dõi diễn biến doanh thu để kịp thời điều chỉnh kế hoạch kinh doanh.
  4. Nghiên cứu và ứng dụng các phương pháp phân tích chuỗi thời gian (Time Series Analysis - TSA) cùng các kỹ thuật học máy (Machine Learning - ML) tiên tiến để xử lý nguồn dữ liệu bán hàng lớn, đưa ra dự báo hỗ trợ hoạch định chiến lược kinh doanh, chính sách khuyến mãi và kế hoạch nhân sự.
  5. Cung cấp chức năng trực quan hóa dữ liệu và trích xuất dự báo trực tiếp theo yêu cầu với thời gian phản hồi ngắn, nâng cao trải nghiệm người dùng quản trị.

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

  • Đối tượng nghiên cứu: Các quy trình nghiệp vụ bán lẻ thực phẩm trực tuyến; dữ liệu chuỗi thời gian bán hàng; các mô hình thống kê và thuật toán học máy dự báo chuỗi thời gian.
  • Đối tượng sử dụng hệ thống:
    • Khách hàng cá nhân có nhu cầu mua sắm thực phẩm trực tuyến và tra cứu sản phẩm theo danh mục.
    • Người quản lý cửa hàng chịu trách nhiệm điều phối hàng hóa, giá cả và tồn kho.
    • Người hoạch định chiến lược kinh doanh cần số liệu dự báo doanh thu tương lai.
    • Người quản lý nhân sự cần định lượng khối lượng bán hàng để bố trí ca kíp làm việc phù hợp.
  • Phạm vi môi trường kỹ thuật: Ứng dụng di động hoạt động trên hệ điều hành Android; hệ thống máy chủ xây dựng trên nền tảng Java Spring Boot và Python REST API theo kiến trúc Client-Server.
  • Phạm vi chức năng: Quản lý danh mục ngành hàng, loại hàng, sản phẩm và đơn hàng; hỗ trợ định danh tài khoản, giỏ hàng, đặt hàng với các hình thức thanh toán (tiền mặt khi nhận hàng, chuyển khoản trực tiếp, tài khoản khách hàng); quản lý địa chỉ nhận hàng; dự báo doanh số chi tiết theo từng mặt hàng và từng loại hàng hóa.
  • Phạm vi thời gian thực hiện: Đề tài triển khai từ ngày 22/08/2022 đến ngày 19/12/2022 qua 4 giai đoạn làm việc.

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

Khóa luận thiết lập nền tảng lý thuyết xoay quanh đặc tính của dữ liệu chuỗi thời gian, các kỹ thuật tiền xử lý đặc trưng, các mô hình toán học dự báo chuỗi thời gian và công nghệ phần mềm liên quan.

Khung lý thuyết chuỗi thời gian (Time Series Analysis)

Văn bản phân tích hệ thống các đặc trưng cơ bản cấu thành chuỗi dữ liệu thời gian:

  • Tính xu hướng (Trend): Thể hiện sự gia tăng hoặc sụt giảm mang tính dài hạn của chuỗi dữ liệu (không nhất thiết phải là đường tuyến tính).
  • Tính thời vụ (Seasonal): Sự biến động lặp lại chịu ảnh hưởng của các yếu tố chu kỳ cố định và đã biết trước trong năm hoặc các ngày trong tuần.
  • Tính chu kỳ (Cycle): Sự tăng giảm không theo tần số cố định, thường gắn liền với chu kỳ kinh doanh vĩ mô và kéo dài ít nhất 2 năm; trong thực tế thường được tích hợp chung thành thành phần xu hướng - thời vụ (trend-seasonal).
  • Sự tự tương quan (Autocorrelation): Mối quan hệ phụ thuộc giữa các điểm dữ liệu tại các thời điểm khác nhau trong cùng một chuỗi. Mức độ phụ thuộc được kiểm tra thông qua hàm tự tương quan (ACF). Nếu mọi hệ số $r_k$ của đồ thị ACF đều nằm trong khoảng tin cậy $\pm \frac{2}{\sqrt{T}}$ (với $T$ là tổng số điểm quan sát), chuỗi được xác định là không có tự tương quan.
  • Chuỗi dừng (Stationary): Chuỗi có kỳ vọng toán học (mean) và hiệp phương sai (covariance) không đổi theo thời gian, tức $\text{Cov}(t_1, t_1+k) = \text{Cov}(t_2, t_2+k)$ với mọi độ trễ $k$. Chuỗi không dừng có thể dẫn tới hiện tượng hồi quy giả mạo (spurious regression) hoặc hồi quy vô nghĩa.
  • Giá trị ngoại lai (Outlier): Các quan sát nhận giá trị cực trị so với đa số điểm dữ liệu, làm sai lệch việc ước lượng hệ số của mô hình hồi quy. Cần kiểm tra để hiệu chỉnh nếu do lỗi nhập liệu, hoặc xem xét tác động thực tế để định lượng hệ số.
  • Tính rời rạc / ngắt quãng (Intermittent): Hiện tượng dữ liệu bán hàng xuất hiện nhiều giá trị 0 hoặc chỉ nhận các giá trị nguyên rời rạc (1, 2, 3...) thay vì biến số liên tục. Khóa luận tham chiếu phương pháp Croston để xử lý đặc tính này.
  • Hiện tượng nhiễu trắng (White noise): Trạng thái chuỗi dữ liệu hoàn toàn không tồn tại sự tự tương quan, khiến việc dự đoán xu hướng tương lai không thể thực hiện được.

Kỹ thuật xử lý và kỹ thuật đặc trưng (Feature Engineering)

Nhằm tối ưu hóa hiệu năng tính toán và duy trì độ chính xác mô hình, tác giả tổng hợp 3 nhóm kỹ thuật:

  1. Lựa chọn đặc trưng (Feature selection): Áp dụng tỷ lệ giá trị thiếu (Missing value ratios) để loại bỏ các trường bị khuyết dữ liệu vượt ngưỡng; Bộ lọc phương sai thấp (Low variance filter) loại bỏ các biến có độ biến thiên không đáng kể; Bộ lọc tương quan cao (High-correlation filter) loại bỏ các biến dư thừa có mức độ tương quan quá cao với nhau.
  2. Giảm chiều dữ liệu (Dimension reduction): Áp dụng phương pháp phân tích thành phần chính (Principal Component Analysis - PCA) nhằm cô đọng không gian đặc trưng mà vẫn lưu giữ tối đa lượng thông tin.
  3. Chuẩn hóa dữ liệu (Feature scaling): Đưa các đặc trưng có thang đo và đơn vị khác nhau về cùng một miền giá trị chung nhằm tránh việc thuật toán đánh giá sai lệch trọng số.

Các mô hình dự báo và hồi quy

Khóa luận liệt kê và phân loại các phương pháp dự báo chuỗi thời gian kinh điển cùng công thức toán học tương ứng:

  • Dự báo trung bình (Mean forecast): Lấy giá trị trung bình lịch sử làm giá trị dự đoán cho tương lai.
  • Dự báo ngây thơ (Naive forecast): Lấy giá trị quan sát cuối cùng của chuỗi làm dự báo cho tất cả các chu kỳ tiếp theo.
  • Dự báo ngây thơ theo thời vụ (Seasonal Naive forecast): Lấy giá trị của cùng kỳ mùa vụ trước làm giá trị dự đoán.
  • Dự báo xuôi dòng (Drift forecast): Biến thể của dự báo ngây thơ có bổ sung mức tăng/giảm trung bình theo thời gian để mô hình hóa xu hướng.
  • Đường trung bình động cấp $m$ (Moving Average - MA): Làm mượt chuỗi dữ liệu thông qua trung bình trượt của $m$ quan sát liền kề.
  • Mô hình Hồi quy tự động (Autoregressive - AR), Mô hình ARIMA (Autoregressive Integrated Moving Average): Mô hình hóa kết hợp giữa thành phần tự hồi quy, sai phân lấy chuỗi dừng và thành phần trung bình động của sai số.
  • Phương pháp Croston: Chuyên biệt cho chuỗi dữ liệu bán lẻ có nhu cầu ngắt quãng.
  • Các phương pháp học máy (Machine Learning): Sử dụng các thuật toán học máy giải quyết bài toán hồi quy (Regression) trên dữ liệu chuỗi thời gian kết hợp các biến ngoại sinh.
  • Đánh giá mô hình: Áp dụng phương pháp kiểm định chéo (Cross-validation) chia tập dữ liệu thành các phần huấn luyện (train), kiểm định (validation) và kiểm thử (test); đánh giá hiệu năng thông qua hệ số xác định $R^2$ cùng các chỉ số sai số dự báo.

Nguồn dữ liệu nghiên cứu

Nghiên cứu sử dụng Bộ dữ liệu M5 (từ cuộc thi dự báo M5 Competition được thu thập từ dữ liệu bán hàng thực tế của tập đoàn Walmart tại Mỹ).

  • Quy mô và phạm vi dữ liệu: Bao gồm hơn 3.000 mặt hàng phân bố trên 10 cửa hàng thuộc 3 bang lớn (California - CA, Texas - TX, Wisconsin - WI). Thời gian quan sát kéo dài 1.941 ngày (từ ngày 29/01/2011 đến ngày 19/06/2016, xấp xỉ 5,4 năm).
  • Cơ cấu danh mục: Được phân thành 3 ngành hàng chính gồm Đồ gia dụng (Household), Sở thích (Hobbies) và Thực phẩm (Foods). Trong đó, nhóm hàng Foods chiếm khoảng 47% tổng số sản phẩm, đáp ứng trực tiếp mục tiêu thử nghiệm của đề tài.
  • Cấu trúc tệp tin: Bộ dữ liệu gồm 3 tệp tin chính:
    • calendar.csv: Thông tin chi tiết về ngày bán, các ngày trong tuần, sự kiện đặc biệt, ngày lễ phục vụ nhận diện biến động bất thường.
    • sell_prices.csv: Lịch sử giá bán của từng sản phẩm tại từng cửa hàng qua các mốc thời gian.
    • sales_train.csv: Số lượng sản phẩm bán ra theo từng ngày.
  • Phân cấp dữ liệu: Tổ chức theo 3 tầng từ cao xuống thấp: Ngành hàng (Category) $\rightarrow$ Loại hàng / Phân ban (Department / Subcategory) $\rightarrow$ Mặt hàng cụ thể (Item / Product).

Phương pháp nghiên cứu và quy trình thực hiện

Đề tài được tiến hành qua quy trình chuẩn 8 bước:

  • Bước 1: Khảo sát, phân tích các ứng dụng thương mại điện tử thực phẩm trên thị trường (Bách Hóa Xanh, Shopify), đánh giá ưu điểm và hạn chế.
  • Bước 2: Xác định và phân tích các yêu cầu chức năng, phi chức năng của hệ thống.
  • Bước 3: Phân tích và đặc tả hệ thống phần mềm (sử dụng Use Case, Activity Diagram, Sequence Diagram).
  • Bước 4: Thiết kế kiến trúc tổng thể phần mềm và cơ sở dữ liệu quan hệ.
  • Bước 5: Thiết kế giao diện ứng dụng (UI/UX prototype).
  • Bước 6: Triển khai xây dựng mã nguồn ứng dụng di động, hệ thống máy chủ và module học máy.
  • Bước 7: Kiểm thử API, sửa lỗi phần mềm và thực nghiệm đánh giá mô hình dự báo.
  • Bước 8: Tổng hợp kết quả và hoàn thiện tài liệu khóa luận.

Thiết kế và triển khai hệ thống

Hệ thống được xây dựng theo kiến trúc Client-Server chuyên biệt, phân tách rõ ràng giữa phân hệ xử lý nghiệp vụ bán lẻ và phân hệ tính toán học máy dự báo chuỗi thời gian.

Thành phần kiến trúc Nền tảng / Công nghệ sử dụng Vai trò và nhiệm vụ kỹ thuật
Ứng dụng Client di động Kotlin (Android Framework) Giao diện tương tác người dùng, quản lý luồng hiển thị qua Activity, Fragment và ViewModel.
Máy chủ nghiệp vụ chính (Main Server) Java Spring Boot Cung cấp RESTful API xử lý logic bán lẻ, quản lý giỏ hàng, đơn hàng, người dùng và truy xuất CSDL.
Máy chủ dự báo (AI/ML Server) Python REST API Thực thi các pipeline tiền xử lý, huấn luyện trực tuyến/ngoại tuyến và suy luận mô hình dự báo.
Cơ chế bảo mật JSON Web Token (JWT) Định danh người dùng, xác thực và phân quyền truy cập giữa các tầng API.
Cơ sở dữ liệu Relational Database (CSDL quan hệ) Lưu trữ có cấu trúc toàn bộ dữ liệu nghiệp vụ, dữ liệu giao dịch và thông tin lịch trình dự báo.
Công cụ hỗ trợ phát triển GitHub, Figma, Postman, Microsoft Teams Quản lý phiên bản mã nguồn, thiết kế UI/UX, kiểm thử API và cộng tác dự án.

Kiến trúc phân tầng phía Android Client

Ứng dụng di động được module hóa thông qua các thành phần kế thừa:

  • Tầng Activity: Đóng vai trò khung chứa các màn hình chính và điều phối vòng đời ứng dụng.
  • Tầng Fragment: Tách biệt các giao diện con (màn hình danh sách sản phẩm, chi tiết giỏ hàng, thông tin đơn hàng, danh mục quản trị).
  • Tầng ViewModel: Quản lý và lưu trữ dữ liệu liên quan đến giao diện theo vòng đời màn hình, tách biệt hoàn toàn tầng hiển thị với tầng xử lý logic mạng.
  • Phân hệ ứng dụng: Chia thành 2 luồng giao diện độc lập:
    • Phân hệ Khách hàng (Bên người mua): Đăng ký/đăng nhập, tìm kiếm sản phẩm, xem danh mục, thao tác giỏ hàng, thanh toán và theo dõi tình trạng đơn hàng.
    • Phân hệ Quản trị (Bên người bán): Quản lý ngành hàng, loại hàng, sản phẩm, điều chỉnh trạng thái đơn hàng, quản lý tài khoản nhân viên, thiết lập lịch và tra cứu biểu đồ dự báo doanh số.

Cấu trúc cơ sở dữ liệu quan hệ

Hệ thống thiết kế cơ sở dữ liệu quan hệ gồm 21 bảng dữ liệu phục vụ vận hành:

  • customer: Lưu trữ thông tin định danh, liên hệ của người mua hàng.
  • seller: Lưu trữ thông tin tài khoản người bán và phân quyền quản trị.
  • category & category_image: Quản lý thông tin và hình ảnh danh mục ngành hàng.
  • subcategory: Quản lý danh mục loại hàng trực thuộc từng ngành hàng.
  • product & product_image: Thông tin chi tiết về sản phẩm, giá bán, số lượng tồn kho và hình ảnh minh họa.
  • classify_product, classify_product_value, set_of_product, set_value: Quản lý cấu hình phân loại và nhóm biến thể của sản phẩm.
  • cart: Lưu trữ trạng thái giỏ hàng của từng khách hàng.
  • Order & order_item: Quản lý thông tin tổng thể đơn hàng, ngày tạo, trạng thái giao nhận và chi tiết từng mặt hàng trong đơn.
  • delivery_address, province, district, ward: Quản lý địa chỉ giao hàng nhiều cấp (tỉnh/thành phố, quận/huyện, phường/xã).
  • banking_information: Lưu trữ thông tin tài khoản ngân hàng phục vụ phương thức thanh toán chuyển khoản.
  • sale_data: Bảng lưu trữ chuỗi dữ liệu bán hàng lịch sử phục vụ module dự báo.
  • calendar: Dữ liệu lịch trình, lưu vết các ngày lễ, ngày nghỉ đặc biệt để tinh chỉnh trọng số mô hình dự báo.

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

Chương 1: Giới thiệu chung

Chương này đặt nền móng cho đề tài thông qua việc phân tích bối cảnh kinh tế, nêu rõ lý do chọn đề tài và xác định 5 mục tiêu nghiên cứu cụ thể. Tác giả tiến hành khảo sát thực nghiệm 2 ứng dụng thương mại điện tử tiêu biểu để rút ra bài học thiết kế:

  • Ứng dụng Bách Hóa Xanh: Là hệ sinh thái bán lẻ thực phẩm uy tín tại Việt Nam với tông màu xanh chủ đạo. Khảo sát ngày 27/08/2022 cho thấy điểm đánh giá trên CH Play đạt mức trung bình khá là 3.5 sao (dựa trên 3.254 lượt đánh giá). Ưu điểm nổi bật gồm giao diện phân cụm trực quan, tự động định vị GPS, danh mục thực phẩm phong phú. Tuy nhiên, tồn tại hạn chế về tốc độ tải trang chậm, luồng thanh toán bắt buộc phải thông qua giỏ hàng (không có nút thanh toán ngay), thiếu màn hình riêng biệt để theo dõi tiến trình đơn hàng và lỗi thiếu đồng bộ dữ liệu tồn kho tức thời.
  • Nền tảng Shopify: Cung cấp giải pháp chuyển đổi số toàn diện cho phép dựng website bán hàng linh hoạt với hơn 70 chủ đề kéo thả. Ưu điểm là khả năng tùy biến cao, quản trị kho và giao vận chuyên nghiệp; nhược điểm là giao diện dễ rối mắt nếu cấu hình tùy tiện và đặc biệt chưa hỗ trợ công cụ tích hợp dự báo doanh số bán lẻ.

Từ khảo sát, nhóm tác giả định hình các điểm cải tiến cốt lõi cho ứng dụng: thiết kế giao diện màu xanh tươi mát, tối ưu tốc độ bằng kỹ thuật lazy load, bổ sung song song 2 nút "Thêm vào giỏ hàng" và "Thanh toán ngay", xây dựng màn hình theo dõi đơn hàng riêng biệt và tích hợp công cụ phân tích dự báo chuỗi thời gian dựa trên lịch trình tùy biến.

Chương 2: Kiến thức nền tảng

Chương 2 trình bày chi tiết cơ sở lý thuyết phục vụ đề tài. Tác giả định nghĩa bản chất dữ liệu chuỗi thời gian cùng các biểu hiện toán học: xu hướng, thời vụ, chu kỳ, hàm tự tương quan ACF, chuỗi dừng và hiện tượng nhiễu trắng. Về kỹ thuật tiền xử lý, chương phân tích các bước lựa chọn đặc trưng (lọc dữ liệu khuyết, lọc phương sai thấp, lọc tương quan cao), kỹ thuật giảm chiều dữ liệu PCA và chuẩn hóa miền giá trị đặc trưng.

Chương cũng giới thiệu chi tiết bộ dữ liệu M5 của Walmart (1.941 ngày, 3.049 mặt hàng, 47% nhóm thực phẩm) với cấu trúc 3 tệp calendar.csv, sell_prices.csv, sales_train.csv. Đồng thời, các công thức toán học của các mô hình dự báo kinh điển (dự báo trung bình, Naive, Seasonal Naive, Drift, MA cấp $m$, AR, ARIMA) và mô hình học máy được mô tả chi tiết kèm theo phương pháp đánh giá phân chia tập dữ liệu huấn luyện/kiểm định và hệ số $R^2$. Về công nghệ, chương trình bày nền tảng Kotlin Android, Java Spring Boot, Python REST API, hệ quản trị CSDL quan hệ, công cụ Postman và cơ chế bảo mật JWT.

Chương 3: Phân tích và thiết kế hệ thống

Chương 3 là phần trọng tâm về kỹ thuật phần mềm, tập trung mô tả chi tiết:

  • Kiến trúc hệ thống: Mô hình Client-Server phân tầng kết nối qua REST API giữa Android, Spring Boot Server và Python AI Server.
  • Phân tích yêu cầu và Use Case: Hệ thống thiết lập danh mục tác nhân (Actor) gồm Khách hàng (người mua) và Người quản lý (người bán). Chi tiết hóa 19 bảng đặc tả Use Case bao gồm: Đăng nhập, đăng ký, quản lý địa chỉ, quản lý giỏ hàng, tạo đơn hàng, tìm kiếm sản phẩm, xem danh mục ngành hàng/loại hàng cho khách hàng; cùng các nghiệp vụ quản lý sản phẩm, đơn hàng, tài khoản, cấu hình lịch và dự báo doanh số cho người quản trị.
  • Mô hình hóa động: Trình bày 24 sơ đồ tuần tự (Sequence Diagram) và 28 sơ đồ hoạt động (Activity Diagram) thể hiện đầy đủ các luồng nghiệp vụ: từ xác thực JWT, đặt hàng, xử lý giỏ hàng, cập nhật trạng thái đơn, đến luồng thêm dự báo và cập nhật dữ liệu lịch.
  • Thiết kế dữ liệu và giao diện: Biểu đồ thực thể - mối quan hệ (ERD) với 21 bảng dữ liệu chi tiết; thiết kế giao diện người dùng (UI/UX) với 18 cụm màn hình hoàn chỉnh cho cả hai phân hệ khách hàng và quản trị.

Chương 4: Thực nghiệm và đánh giá kết quả dự báo

Chương 4 mô tả quy trình thực nghiệm mô hình dự báo trên dữ liệu bán hàng ngành thực phẩm trích xuất từ bộ dữ liệu M5 (tập trung vào các mặt hàng thực phẩm tiêu biểu như FOODS_1_016, FOODS_1_018):

  • Quy trình thực nghiệm: Dữ liệu bán hàng và lịch trình được đưa qua khâu tiền xử lý (làm sạch, chuẩn hóa, lọc đặc trưng).
  • Cơ chế huấn luyện: Kết hợp huấn luyện ngoại tuyến (offline training) trên tập dữ liệu lịch sử lớn và huấn luyện trực tuyến (online training) nhằm cập nhật trọng số khi có dữ liệu bán hàng mới phát sinh.
  • Chiến lược tuyển chọn mô hình thắng cuộc (Winning model): Từ tập hợp các mô hình ứng viên ($K_2$ candidates) thuộc các họ mô hình khác nhau (cùng họ khác siêu tham số, hoặc khác họ thuật toán), hệ thống tiến hành kiểm định chéo để sàng lọc ra nhóm mô hình tốt nhất ($K_3$ winners), từ đó xác định ra một mô hình chiến thắng duy nhất đạt sai số thấp nhất trên tập kiểm thử để đóng gói vào API phục vụ dự báo.
  • Kết quả thực nghiệm: Đánh giá hiệu năng dự báo thông qua các chỉ số sai số chuẩn và biểu đồ trực quan hóa so khớp giữa giá trị thực tế và giá trị dự báo, chứng minh tính khả thi của việc tích hợp mô hình dự báo vào ứng dụng di động.

Chương 5: Kết luận và hướng phát triển

Chương kết luận tổng kết các kết quả kỹ thuật đã hoàn thành: xây dựng thành công ứng dụng di động bán hàng trực tuyến tích hợp mô hình học máy dự báo doanh số; chỉ ra các điểm còn hạn chế của hệ thống và vạch ra 6 định hướng phát triển trong tương lai.


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

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

  1. Xây dựng hoàn chỉnh ứng dụng di động bán thực phẩm trực tuyến trên nền tảng Android bằng ngôn ngữ Kotlin, kết nối qua hệ thống API bảo mật JWT với backend Java Spring Boot và Python REST API.
  2. Thiết kế và đặc tả chi tiết hệ thống với 21 bảng cơ sở dữ liệu quan hệ, 19 bảng đặc tả Use Case, 24 sơ đồ tuần tự và 28 sơ đồ hoạt động.
  3. Tích hợp thành công module phân tích chuỗi thời gian và học máy có khả năng dự báo số lượng bán ra theo từng sản phẩm hoặc từng danh mục hàng hóa, cho phép trực quan hóa biểu đồ dự báo trực tiếp trên ứng dụng di động của người quản lý.
  4. Xây dựng chức năng quản lý lịch trình cho phép người quản trị thiết lập các sự kiện đặc biệt (ngày lễ, ngày nghỉ, biến động dịch bệnh) để nâng cao độ chính xác của mô hình dự báo.

So sánh điểm mới và tính khác biệt của đề tài

Tiêu chí so sánh Khóa luận của nhóm tác giả Ứng dụng Bách Hóa Xanh Nền tảng Shopify
Dự báo doanh số tích hợp Có: Hỗ trợ dự báo chi tiết theo từng mặt hàng và loại hàng bằng TSA & ML. Không hỗ trợ công cụ dự báo trực tiếp cho người dùng. Không tích hợp sẵn công cụ dự báo doanh số.
Tinh chỉnh dữ liệu ngoại sinh Có: Cho phép điều chỉnh lịch (ngày lễ, sự kiện) để tối ưu độ chính xác dự báo. Không có. Không có.
Luồng thanh toán di động Tối ưu: Tách biệt nút "Thêm vào giỏ hàng" và "Thanh toán ngay". Bắt buộc phải qua bước giỏ hàng mới được thanh toán. Tùy biến theo từng giao diện cửa hàng.
Theo dõi trạng thái đơn hàng Thiết kế cụm màn hình chuyên biệt theo dõi tiến trình đơn hàng. Phải xem gián tiếp qua mục lịch sử mua hàng. Hỗ trợ quản lý đơn hàng cơ bản.
Nền tảng quản trị di động Hỗ trợ ứng dụng Android riêng biệt cho người bán/quản lý. Chủ yếu vận hành hệ thống nội bộ, không công khai. Có ứng dụng quản trị trên di động.

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

Hạn chế của đề tài

Dựa trên phạm vi thực hiện và ghi nhận của nhóm tác giả:

  • Dữ liệu thực nghiệm của mô hình dự báo mới được triển khai và kiểm thử dựa trên bộ dữ liệu chuỗi thời gian M5 (nguồn Walmart), chưa được kiểm chứng dài hạn trên dữ liệu thực tế tại các cửa hàng bán lẻ Việt Nam.
  • Hệ thống chưa hỗ trợ cơ chế dự báo theo thời gian thực (real-time forecasting) khi có biến động giao dịch tức thời phát sinh.
  • Về mặt nền tảng, hệ thống mới chỉ hoàn thiện ứng dụng di động cho hệ điều hành Android; chưa phát triển phân hệ giao diện website cho khách hàng và trang quản trị đa nền tảng.
  • Chưa tích hợp kênh liên lạc trực tiếp (như tin nhắn thời gian thực) giữa người mua và người bán ngay trên ứng dụng.

Hướng phát triển tiếp theo

Tác giả đề xuất 6 nội dung mở rộng:

  1. Tiếp tục tối ưu hóa và cải thiện thuật toán của mô hình dự báo doanh số nhằm nâng cao độ chính xác.
  2. Nâng cấp kiến trúc hệ thống để hỗ trợ khả năng phân tích và đưa ra dự báo theo thời gian thực.
  3. Mở rộng khả năng dự báo sang các danh mục ngành hàng và dịch vụ khác ngoài thực phẩm.
  4. Xây dựng và mở rộng thêm nền tảng website phục vụ hoạt động bán hàng và quản trị tập trung.
  5. Phát triển tính năng liên lạc, tương tác trực tiếp giữa khách hàng và bộ phận quản lý cửa hàng.
  6. Xây dựng hệ thống tự động gợi ý và đề xuất các chương trình khuyến mãi tối ưu dựa trên kết quả phân tích dữ liệu dự báo doanh số.

Giá trị tham khảo

Báo cáo khóa luận tốt nghiệp là tài liệu tham khảo hữu ích cho:

  • Sinh viên ngành Kỹ thuật Phần mềm và Công nghệ Thông tin: Cung cấp tài liệu mẫu mực về quy trình phân tích và thiết kế hệ thống hướng đối tượng hoàn chỉnh, bao gồm hệ thống sơ đồ Use Case, Activity, Sequence và thiết kế CSDL quan hệ chuẩn hóa 21 bảng.
  • Kỹ sư và lập trình viên phát triển ứng dụng di động (Android / Kotlin): Tham khảo kiến trúc phân tầng kết hợp Activity, Fragment, ViewModel và giải pháp tích hợp đồng thời hai hệ thống máy chủ phụ trợ (Java Spring Boot cho nghiệp vụ thương mại điện tử và Python REST API cho tác vụ trí tuệ nhân tạo).
  • Người nghiên cứu ứng dụng Khoa học Dữ liệu trong Bán lẻ: Tham khảo phương pháp tiếp cận bộ dữ liệu M5, các bước làm sạch dữ liệu, trích xuất đặc trưng chuỗi thời gian, xử lý bài toán dữ liệu ngắt quãng (Croston) và quy trình tuyển chọn mô hình dự báo kết hợp giữa thống kê kinh điển và học máy.

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

1. Bộ dữ liệu nào được sử dụng để thực nghiệm mô hình dự báo trong khóa luận và quy mô của nó ra sao?

Khóa luận sử dụng Bộ dữ liệu M5 (M5 Competition) có nguồn gốc từ chuỗi bán lẻ Walmart tại Mỹ. Bộ dữ liệu bao gồm thông tin bán hàng của hơn 3.000 sản phẩm tại 10 cửa hàng thuộc 3 bang (California, Texas, Wisconsin) trong khoảng thời gian 1.941 ngày (từ 29/01/2011 đến 19/06/2016, tương đương 5,4 năm). Nhóm hàng thực phẩm chiếm khoảng 47% tổng số sản phẩm, dữ liệu được tổ chức thành 3 tệp tin chính gồm calendar.csv (thông tin ngày lễ, lịch trình), sell_prices.csv (giá bán) và sales_train.csv (sản lượng bán ra).

2. Khóa luận giải quyết đặc tính dữ liệu bán hàng rời rạc hoặc xuất hiện nhiều giá trị 0 như thế nào?

Đối với dữ liệu bán hàng có tần suất giao dịch ngắt quãng (intermittent) hoặc số lượng bán ra nhỏ xuất hiện nhiều giá trị 0, văn bản chỉ rõ rằng các mô hình chuỗi thời gian liên tục thông thường sẽ gặp sai lệch lớn. Khóa luận nghiên cứu và đề xuất áp dụng phương pháp Croston - một kỹ thuật chuyên biệt trong phân tích chuỗi thời gian giúp tách biệt khoảng cách giữa các lần phát sinh nhu cầu và khối lượng của từng lần bán để dự báo chính xác hơn.

3. Kiến trúc hệ thống phía máy chủ được tổ chức như thế nào để vừa xử lý nghiệp vụ bán hàng vừa phục vụ dự báo?

Hệ thống sử dụng mô hình máy chủ phân tách gồm hai thành phần:

  • Máy chủ chính (Main Server) xây dựng bằng Java Spring Boot, chịu trách nhiệm xử lý các API nghiệp vụ thương mại điện tử (đơn hàng, giỏ hàng, thông tin sản phẩm, quản lý tài khoản) và giao tiếp trực tiếp với cơ sở dữ liệu quan hệ.
  • Máy chủ học máy xây dựng bằng Python REST API, chuyên trách thực thi các thuật toán phân tích chuỗi thời gian và mô hình học máy. Hai hệ thống giao tiếp qua giao thức RESTful API và được bảo vệ đồng bộ bằng cơ chế định danh JSON Web Token (JWT).

4. Từ việc khảo sát ứng dụng Bách Hóa Xanh và Shopify, nhóm tác giả đã rút ra những cải tiến kỹ thuật cụ thể nào?

Khảo sát ứng dụng Bách Hóa Xanh (đạt 3.5 sao trên CH Play ngày 27/08/2022) và nền tảng Shopify đã dẫn đến các quyết định thiết kế:

  • Bổ sung nút "Thanh toán ngay" bên cạnh nút "Thêm vào giỏ hàng" để rút ngắn luồng đặt mua đối với khách hàng chỉ mua một món đồ (khắc phục điểm yếu bắt buộc qua giỏ hàng của Bách Hóa Xanh).
  • Xây dựng giao diện màn hình riêng biệt để theo dõi trạng thái đơn hàng.
  • Tối ưu hóa tốc độ tải trang bằng kỹ thuật lazy load và nén hình ảnh.
  • Bổ sung chức năng dự báo doanh số và điều chỉnh dữ liệu lịch ngoại sinh (ngày lễ, sự kiện) - tính năng mà cả Bách Hóa Xanh và Shopify đều chưa hỗ trợ tích hợp sẵn.

5. Quy trình tuyển chọn mô hình dự báo chiến thắng (winning model) trong đề tài được tiến hành ra sao?

Quy trình thực nghiệm tiến hành qua các giai đoạn: Dữ liệu chuỗi thời gian và lịch trình được làm sạch và chuẩn hóa đặc trưng. Hệ thống thiết lập tập hợp các mô hình ứng viên ($K_2$ candidates) từ các họ thuật toán khác nhau (phương pháp chuỗi thời gian kinh điển và các thuật toán hồi quy học máy) với các bộ siêu tham số khác biệt. Thông qua kỹ thuật kiểm định chéo (Cross-validation) chia tập Train/Validation/Test, hệ thống lọc ra nhóm mô hình tối ưu ($K_3$ winners), sau đó chọn ra một mô hình chiến thắng duy nhất có chỉ số sai số thấp nhất và độ khớp dữ liệu cao nhất để triển khai vào API phục vụ dự báo thực tế.


Kết luận

Khóa luận tốt nghiệp của sinh viên Phạm Minh Tân và Bùi Dương Duy Khang đã giải quyết trọn vẹn bài toán xây dựng ứng dụng thương mại điện tử thực phẩm trên thiết bị di động Android kết hợp công cụ phân tích dữ liệu dự báo bán hàng. Đề tài thể hiện tính quy chuẩn kỹ thuật cao qua việc hoàn thiện đầy đủ hồ sơ phân tích thiết kế phần mềm, cấu trúc dữ liệu 21 bảng và cơ chế kết nối đa máy chủ Spring Boot - Python API an toàn qua JWT. Các thực nghiệm phân tích chuỗi thời gian trên bộ dữ liệu M5 mở ra giải pháp hỗ trợ thực tiễn, giúp các cửa hàng bán lẻ vừa và nhỏ chủ động tối ưu hóa hoạt động xuất nhập kho và nâng cao năng lực cạnh tranh trong môi trường kinh tế số.