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

Trong bối cảnh cuộc Cách mạng công nghiệp lần thứ tư, việc ứng dụng công nghệ thông tin vào quản lý chuỗi cung ứng và hoạt động bán lẻ tại Việt Nam có xu hướng gia tăng. Các phần mềm quản lý bán hàng phổ biến trên thị trường đã hỗ trợ chuẩn hóa quy trình kiểm kho và quản lý giao dịch. Tuy nhiên, qua khảo sát thực tế các giải pháp như Sapo, Ecount và Nhanh.vn, tác giả nhận thấy hầu hết các hệ thống hiện hành chỉ tập trung vào nghiệp vụ quản lý dữ liệu lịch sử hoặc đưa ra cảnh báo đơn thuần dựa trên lượng tồn kho và doanh số bán gần nhất, chưa tích hợp các mô hình dự báo định lượng để khuyến nghị nhập hàng.

Mặt khác, các công trình nghiên cứu khoa học trước đây về hệ thống khuyến nghị và dự báo nhu cầu (như nghiên cứu khai phá kho dữ liệu văn bản, hệ thống đề xuất cho mạng xã hội dựa trên vị trí LBSN, hay mô hình Bayesian ARIMA cho nhu cầu gián đoạn) chủ yếu hướng tới các tập đoàn lớn với cấu trúc dữ liệu đa tầng, phục vụ dự báo các chỉ số tài chính vĩ mô như tổng vốn, tổng doanh thu hay tỷ lệ tăng trưởng. Đối với các doanh nghiệp bán lẻ quy mô vừa và nhỏ (SME), nhu cầu cấp thiết là xác định cụ thể danh mục mặt hàng có tiềm năng tiêu thụ cao, số lượng dự kiến cần nhập và các nhóm sản phẩm thường được mua cùng nhau nhằm tối ưu hóa chi phí lưu kho và dòng vốn.

Nhằm giải quyết bài toán trên, khóa luận xác định các mục tiêu và nhiệm vụ nghiên cứu sau:

  1. Tìm hiểu cách thức xây dựng một hệ thống khuyến nghị sản phẩm.
  2. Nghiên cứu các quy trình và kỹ thuật dự báo chuỗi thời gian (Time Series Forecasting).
  3. Lựa chọn công nghệ để phân tích, thiết kế và phát triển hệ thống hoàn chỉnh trên nền tảng web, đáp ứng các luồng nghiệp vụ quản lý và khuyến nghị.

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

  • Đối tượng nghiên cứu: Các doanh nghiệp bán lẻ và phân phối quy mô vừa và nhỏ hoạt động theo mô hình bán hàng trực tiếp, có nhu cầu nhập hàng định kỳ với số lượng lớn.
  • Phạm vi không gian: Nghiên cứu và khảo sát thực trạng ứng dụng phần mềm bán lẻ tại thị trường Việt Nam.
  • Phạm vi thời gian: Đề tài được thực hiện từ ngày 07/09/2020 đến ngày 11/01/2021.
  • Phạm vi dữ liệu: Khai thác lịch sử đơn hàng, dữ liệu xuất nhập tồn và danh mục sản phẩm từ quá khứ đến hiện tại để trích xuất đặc trưng phục vụ bài toán dự báo.

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

Khóa luận kết hợp giữa nghiên cứu lý thuyết về khoa học dữ liệu và phương pháp kỹ thuật phần mềm để giải quyết bài toán:

Khung lý thuyết và mô hình thuật toán

  • Hệ thống khuyến nghị (Recommender System): Nghiên cứu hai kỹ thuật nền tảng là lọc cộng tác (Collaborative Filtering) và lọc dựa trên nội dung (Content-based Filtering) nhằm phân tích hành vi và thuộc tính sản phẩm.
  • Mô hình dự báo chuỗi thời gian (Time Series Forecasting):
    • Prophet: Nền tảng dự báo do Facebook phát triển, phân tách chuỗi thời gian thành các thành phần xu hướng (trend), tính mùa vụ (seasonality) và các sự kiện/ngày lễ (holidays) để xử lý dữ liệu bán hàng có biến động theo thời gian.
    • Mạng nơ-ron hồi quy LSTM (Long Short-Term Memory): Cấu trúc học sâu (Deep Learning) thuộc nhóm Recurrent Neural Network (RNN), sử dụng các cổng (gate) và hàm kích hoạt sigmoid, tanh nhằm khắc phục hiện tượng phụ thuộc xa (long-term dependencies) và triệt tiêu đạo hàm khi xử lý chuỗi số liệu tuần tự.
  • Khai phá luật kết hợp (Association Rule Mining): Ứng dụng thuật toán Apriori để xác định các tập sản phẩm phổ biến và quy luật mua hàng đồng thời của khách hàng.

Phương pháp nghiên cứu

  • Phương pháp khảo sát và phân tích hiện trạng: So sánh chức năng của các phần mềm quản lý bán hàng thực tế tại Việt Nam.
  • Phương pháp mô hình hóa phần mềm: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng biểu đồ use-case, sơ đồ hoạt động (activity diagram) và sơ đồ tuần tự (sequence diagram).
  • Phương pháp thực nghiệm hai giai đoạn:
    • Giai đoạn 1: Đánh giá khả năng phân loại và gợi ý danh sách sản phẩm tiềm năng bằng các độ đo Precision, Recall và F1-Score.
    • Giai đoạn 2: Đo lường sai số định lượng số lượng sản phẩm bán ra bằng các chỉ số sai số dự báo: Mean Absolute Error (MAE), Mean Squared Error (MSE), Root Mean Square Error (RMSE).

Nguồn dữ liệu

Dữ liệu thực nghiệm được thu thập từ các tập dữ liệu giao dịch bán lẻ lịch sử (các giai đoạn tháng 10/2011, 11/2011 và 12/2011), bao gồm thông tin hóa đơn, danh mục mặt hàng, số lượng bán ra và giá trị giao dịch.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc tách biệt giữa lớp giao diện (Front-end), lớp dịch vụ (Back-end) và lớp cơ sở dữ liệu (Database), giao tiếp thông qua chuẩn RESTful API.

+-------------------------------------------------------------------+
|                        FRONT-END (ReactJS)                        |
|  - Khuyến nghị tự động / thủ công                                 |
|  - Quản trị danh mục (Sản phẩm, Hóa đơn, Tồn kho, Đối tác)        |
+---------------------------------+---------------------------------+
                                  | RESTful API / JSON Web Token
+---------------------------------v---------------------------------+
|                         BACK-END (Flask)                          |
|  - Core Logic & Xác thực (JWT)                                    |
|  - Module Khuyến nghị (Prophet, LSTM, Apriori via Python)         |
+---------------------------------+---------------------------------+
                                  | SQL Queries
+---------------------------------v---------------------------------+
|                        DATABASE (MySQL)                           |
|  - Transaction, Inware, Product, Category, Recommended List...    |
+-------------------------------------------------------------------+

Công nghệ phát triển

  • Ngôn ngữ xử lý và phân tích dữ liệu: Python kết hợp các thư viện tính toán khoa học gồm Pandas, NumPy, Matplotlib và SciPy.
  • Hệ quản trị cơ sở dữ liệu: MySQL, lưu trữ toàn bộ dữ liệu nghiệp vụ và kết quả tính toán khuyến nghị.
  • Back-end: Flask (micro web framework viết bằng Python, sử dụng Werkzeug và Jinja2), tích hợp JSON Web Token (JWT) để xác thực và phân quyền API.
  • Front-end: ReactJS, xây dựng giao diện người dùng theo kiến trúc component, đảm bảo khả năng tương thích trên các trình duyệt Chrome, Safari, Firefox và Edge.

Thiết kế dữ liệu

Cơ sở dữ liệu bao gồm các bảng chính:

  • Product, Product Category, Product Price History: Lưu trữ thông tin định danh, phân loại và lịch sử biến động giá của sản phẩm.
  • Supplier, Manufacturer: Quản lý danh sách đối tác cung ứng và nhà sản xuất.
  • Transaction List, Transaction List Item: Lưu trữ thông tin hóa đơn bán hàng và chi tiết các mặt hàng trong từng giao dịch.
  • Inware List, Inware List Item: Quản lý nghiệp vụ và chi tiết phiếu nhập kho.
  • Recommended List, Recommended List Item: Lưu trữ danh sách kết quả khuyến nghị nhập hàng, bao gồm số lượng dự kiến, độ ưu tiên và ước tính lợi nhuận.
  • Other Fees: Quản lý các chi phí phát sinh liên quan đến vận hành kho hàng.

Phân hệ chức năng và luồng nghiệp vụ

Hệ thống phân định 2 nhóm tác nhân (Actor) gồm Administrator và User, vận hành trên 2 phân hệ cốt lõi:

  1. Module quản lý dữ liệu kho hàng: Thực hiện các chức năng CRUD cho danh mục nhà sản xuất, nhà cung cấp, nhóm sản phẩm, đơn vị tính, sản phẩm, hóa đơn nhập/bán, kiểm soát tồn kho và quản lý người dùng.
  2. Module khuyến nghị nhập kho:
    • Khuyến nghị tự động: Hệ thống phân tích dữ liệu lịch sử để xuất danh sách gợi ý các mặt hàng có nhu cầu cao trong chu kỳ tiếp theo, kèm dự báo doanh thu, lợi nhuận và mức độ ưu tiên.
    • Khuyến nghị thủ công: Cho phép người quản lý chủ động chọn mặt hàng dự kiến nhập; hệ thống sẽ tính toán số liệu chi tiết và áp dụng thuật toán Apriori để gợi ý các sản phẩm liên quan nên nhập cùng.

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

Chương 1. Tổng quan về đề tài

Trình bày cơ sở hình thành đề tài, lý do lựa chọn nghiên cứu xây dựng hệ thống khuyến nghị nhập kho cho doanh nghiệp vừa và nhỏ. Xác định 3 mục tiêu nghiên cứu cụ thể, phạm vi thực hiện và tóm lược cấu trúc 6 chương của báo cáo khóa luận.

Chương 2. Xác định bài toán khuyến nghị nhập kho

Khảo sát hiện trạng thị trường phần mềm quản lý bán hàng tại Việt Nam, phân tích ưu và nhược điểm của các hệ thống Sapo, Ecount, Nhanh.vn. Xác lập các yêu cầu chức năng (quản lý kho, khuyến nghị tự động, khuyến nghị thủ công) và yêu cầu phi chức năng (giao diện, khả năng mở rộng, bảo trì, xử lý ngoại lệ). Xây dựng biểu đồ Use-case tổng thể và lập bảng đặc tả chi tiết cho 15 use-case của hệ thống.

Tên hệ thống Ưu điểm nổi bật Nhược điểm về tính năng dự báo
Sapo Quản lý đa kênh, theo dõi lịch sử biến động hàng hóa và kiểm kho đồng bộ. Tính năng gợi ý nhập kho chỉ dựa trên tồn kho hiện tại, chưa cung cấp số liệu dự báo cụ thể.
Ecount Cung cấp đầy đủ tính năng kế toán, sản xuất, mua hàng, quản lý nhóm công ty. Chưa cung cấp các công cụ khuyến nghị và mô hình dự báo nhu cầu cho doanh nghiệp.
Nhanh.vn Quản lý chuyển kho, kiểm kho theo danh mục và tự động bù trừ cân bằng. Dự báo số lượng nhập dựa trên tổng số bán ra gần nhất, không áp dụng mô hình chuỗi thời gian.

Chương 3. Tìm hiểu và nghiên cứu các công nghệ liên quan

Trình bày cơ sở lý thuyết về hệ thống khuyến nghị (lọc cộng tác, lọc theo nội dung); phân tích nguyên lý mô hình chuỗi thời gian Prophet và mạng học sâu LSTM (cơ chế cổng, hàm kích hoạt sigmoid/tanh); trình bày thuật toán Apriori trong khai phá luật kết hợp; tổng quan về kiến trúc Flask micro web framework và cơ chế bảo mật API bằng JWT.

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

Chi tiết hóa thiết kế kỹ thuật của hệ thống trên 4 khía cạnh:

  • Thiết kế dữ liệu: Định nghĩa lược đồ cơ sở dữ liệu với hơn 10 bảng quan hệ, cấu trúc dữ liệu huấn luyện cho LSTM và Prophet.
  • Thiết kế kiến trúc: Sơ đồ kiến trúc tổng thể kết nối RESTful API giữa ReactJS, Flask và MySQL.
  • Thuật toán xử lý: Quy trình tính toán từng bước để trích xuất đặc trưng và tạo danh sách sản phẩm khuyến nghị.
  • Thiết kế giao diện: Xây dựng sơ đồ liên kết giao diện và thiết kế chi tiết 14 màn hình chức năng (đăng nhập, dashboard dự báo, danh mục quản lý kho, màn hình khuyến nghị tự động/thủ công).

Chương 5. Thực nghiệm và đánh giá kết quả

Thiết lập quy trình tiền xử lý dữ liệu và tiến hành thực nghiệm đối soát trên tập dữ liệu lịch sử các tháng 10/2011, 11/2011 và 12/2011. Đánh giá kết quả giai đoạn 1 dựa trên Precision, Recall, F1-Score; đánh giá giai đoạn 2 thông qua việc so sánh các chỉ số sai số MAE, MSE, RMSE giữa hai mô hình Prophet và LSTM.

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

Đánh giá mức độ hoàn thành so với mục tiêu đề ra; tổng kết các thuận lợi, khó khăn trong quá trình nghiên cứu và đề xuất các định hướng mở rộng kỹ thuật trong tương lai.

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

Kết quả nghiên cứu và thực nghiệm

  • Xây dựng phần mềm hoàn chỉnh: Hoàn thành hệ thống web tích hợp module quản trị dữ liệu bán hàng và module khuyến nghị sản phẩm nhập kho với đầy đủ API xác thực JWT và giao diện ReactJS.
  • Thực nghiệm so sánh mô hình: Khóa luận đã đo đạc và đối sánh hiệu năng dự báo chuỗi thời gian giữa mô hình Prophet và mạng nơ-ron LSTM qua 3 tập dữ liệu thực nghiệm (tháng 10/2011, 11/2011, 12/2011). Kết quả so sánh các giá trị sai số trung bình (MAE, MSE, RMSE) cung cấp căn cứ định lượng để lựa chọn mô hình xử lý phù hợp cho bài toán dự báo bán lẻ.

Giải pháp và kiến nghị

  • Đề xuất quy trình khuyến nghị hai luồng: Tự động (dành cho việc lập kế hoạch định kỳ tổng quát) và Thủ công kết hợp luật kết hợp Apriori (hỗ trợ nhập hàng theo nhóm sản phẩm tương quan).
  • Đưa ra giải pháp chuẩn hóa cấu trúc dữ liệu giao dịch quá khứ để làm đầu vào cho các mô hình học máy trong doanh nghiệp bán lẻ vừa và nhỏ.

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

  • Thu hẹp khoảng cách giữa các nghiên cứu dự báo lý thuyết vĩ mô với nhu cầu thực tế của các doanh nghiệp bán lẻ quy mô vừa và nhỏ tại Việt Nam.
  • Tích hợp thành công mô hình học máy (Machine Learning/Deep Learning) vào hệ thống quản lý bán hàng thực tế thay vì chỉ dừng lại ở các thuật toán thống kê mô tả truyền thống.

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

Hạn chế

  • Thời gian thực hiện đồ án có giới hạn (khoảng 4 tháng), việc thử nghiệm mô hình mới dừng lại ở việc đánh giá độc lập từng thuật toán trên các tập dữ liệu lịch sử xác định.
  • Chưa thử nghiệm triển khai hệ thống trên quy mô dữ liệu lớn thời gian thực (real-time big data) trong môi trường phân tán.

Hướng phát triển

  • Nghiên cứu và áp dụng các phương pháp mô hình kết hợp (Hybrid Models) giữa các thuật toán dự báo chuỗi thời gian để nâng cao độ chính xác.
  • Tối ưu hóa hiệu năng xử lý của hệ thống khi dữ liệu giao dịch tăng trưởng theo thời gian.
  • Bổ sung thêm các tham số đầu vào cho mô hình dự báo như biến động thị trường, chi phí vận chuyển và các chương trình khuyến mãi đặc thù.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo chuyên môn cho các đối tượng:

  • Sinh viên ngành Kỹ thuật Phần mềm, Hệ thống Thông tin, Khoa học Dữ liệu: Tham khảo quy trình phân tích thiết kế một hệ thống phần mềm hướng dữ liệu, từ khâu đặc tả use-case, thiết kế kiến trúc RESTful API đến cài đặt thực tế bằng ReactJS và Flask.
  • Kỹ sư và nhà phát triển ứng dụng bán hàng (POS/ERP): Tham khảo phương pháp tích hợp các mô hình học máy (Prophet, LSTM) và khai phá luật kết hợp (Apriori) vào module quản lý kho.
  • Nghiên cứu sinh, học viên làm đề tài chuỗi cung ứng: Tham khảo cách thiết lập các độ đo đánh giá thực nghiệm (Precision, Recall, F1, MAE, MSE, RMSE) trong bài toán dự báo nhu cầu hàng hóa.

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

1. Đề tài giải quyết hạn chế cụ thể nào của các phần mềm quản lý bán hàng hiện hành tại Việt Nam?

Các phần mềm phổ biến như Sapo, Ecount hay Nhanh.vn chủ yếu hỗ trợ nghiệp vụ quản lý giao dịch, kiểm kho hoặc dự báo nhập hàng đơn giản dựa trên số lượng bán ra gần nhất mà không sử dụng các mô hình dự báo chuỗi thời gian chuyên sâu. Khóa luận giải quyết hạn chế này bằng cách xây dựng hệ thống có khả năng dự báo định lượng nhu cầu tiêu thụ và đưa ra khuyến nghị danh mục sản phẩm nhập kho cụ thể.

2. Những mô hình và thuật toán nào được ứng dụng trong module khuyến nghị của hệ thống?

Hệ thống ứng dụng ba nhóm kỹ thuật: nền tảng Prophet và mạng nơ-ron hồi quy LSTM để dự báo chuỗi thời gian số lượng sản phẩm tiêu thụ trong tương lai; thuật toán Apriori để khai phá luật kết hợp giữa các sản phẩm thường được mua cùng nhau; cùng các phương pháp lọc cộng tác và lọc dựa trên nội dung trong bài toán khuyến nghị.

3. Quy trình đánh giá thực nghiệm trong khóa luận được chia làm mấy giai đoạn và sử dụng những độ đo nào?

Thực nghiệm được chia làm hai giai đoạn:

  • Giai đoạn 1: Đánh giá kết quả xếp hạng và phân loại danh sách sản phẩm khuyến nghị bằng các độ đo Precision, Recall và F1-Score.
  • Giai đoạn 2: Đánh giá độ chính xác của số lượng sản phẩm dự báo bằng các chỉ số sai số gồm Mean Absolute Error (MAE), Mean Squared Error (MSE) và Root Mean Square Error (RMSE).

4. Hệ thống hỗ trợ những kịch bản khuyến nghị nhập kho nào cho người dùng?

Hệ thống cung cấp hai kịch bản chính: Khuyến nghị tự động (hệ thống tự phân tích dữ liệu quá khứ và đưa ra danh sách sản phẩm tiềm năng kèm dự báo doanh thu, lợi nhuận, số lượng) và Khuyến nghị thủ công (người dùng tự chọn mặt hàng dự kiến nhập, hệ thống sẽ tính toán số liệu chi tiết và gợi ý thêm các sản phẩm mua kèm thông qua luật kết hợp).

5. Tech stack được sử dụng để xây dựng hệ thống gồm những gì?

Hệ thống sử dụng Python (kèm các thư viện Pandas, NumPy, Matplotlib, SciPy) cho các tác vụ phân tích và học máy; MySQL cho hệ quản trị cơ sở dữ liệu; Flask micro web framework kết hợp JWT cho tầng Back-end API; và ReactJS cho tầng giao diện người dùng Front-end.

Kết luận

Khóa luận "Nghiên cứu và xây dựng hệ thống khuyến nghị sản phẩm nhập kho" của sinh viên Nguyễn Tiến Dũng và Nguyễn Việt Tiến (Trường Đại học Công nghệ Thông tin – ĐHQG-HCM) đã hoàn thành việc thiết kế và cài đặt một hệ thống web hỗ trợ quản lý kho và dự báo nhu cầu hàng hóa cho doanh nghiệp bán lẻ vừa và nhỏ. Bằng việc kết hợp các mô hình chuỗi thời gian (Prophet, LSTM) và thuật toán khai phá dữ liệu (Apriori), đề tài đã đưa ra giải pháp tự động hóa quá trình lập kế hoạch nhập hàng dựa trên dữ liệu định lượng. Công trình cung cấp tài liệu tham khảo chi tiết về cả phương diện kỹ thuật phần mềm lẫn thực nghiệm đối soát mô hình học máy ứng dụng trong thương mại bán lẻ.