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

Sự phát triển của thương mại điện tử tại Việt Nam đã thúc đẩy sự chuyển dịch mạnh mẽ từ phương thức mua sắm truyền thống sang mua sắm trực tuyến. Đối với ngành hàng thiết bị điện tử—bao gồm điện thoại di động, máy tính bảng, máy tính xách tay và phụ kiện—nhu cầu tiêu dùng liên tục gia tăng. Trong phương thức bán hàng truyền thống, nhân viên bán hàng đóng vai trò tư vấn trực tiếp giúp khách hàng lựa chọn sản phẩm phù hợp. Khi chuyển dịch lên môi trường trực tuyến, trang web cần một cơ chế tự động đóng vai trò như một "người trợ giúp mua hàng" nhằm điều hướng và hỗ trợ quyết định mua sắm của người dùng giữa danh mục hàng nghìn sản phẩm đa dạng.

Khảo sát hiện trạng thị trường thương mại điện tử Việt Nam quý 1 năm 2022 cho thấy top 10 doanh nghiệp có lượng truy cập cao nhất có sự góp mặt của nhiều đơn vị kinh doanh thiết bị điện tử. Tác giả tiến hành khảo sát chi tiết 04 trang web tiêu biểu gồm: Thế Giới Di Động (thegioididong.com), FPT Shop (fptshop.com.vn), Siêu thị Điện Máy – Nội Thất Chợ Lớn (dienmaycholon.vn) và Sàn thương mại điện tử Tiki (tiki.vn). Kết quả khảo sát cho thấy:

  • Phần lớn các trang web cung cấp đầy đủ các tiện ích hiển thị danh mục, tìm kiếm, giỏ hàng, đặt hàng và đánh giá.
  • Thế Giới Di Động và FPT Shop tối ưu quy trình mua hàng nhanh gọn bằng cách cho phép đặt hàng không cần đăng nhập tài khoản.
  • Chức năng khuyến nghị sản phẩm có sự phân hóa rõ rệt: Thế Giới Di Động gợi ý theo từ khóa tìm kiếm, phụ kiện thường mua cùng và danh mục "Gợi ý hôm nay"; Tiki triển khai "Gợi ý hôm nay" và "Sản phẩm tương tự"; Điện Máy Chợ Lớn bắt buộc đăng nhập để khai thác sở thích và hiển thị "Sản phẩm cùng phân khúc giá"; trong khi FPT Shop chủ yếu dừng lại ở danh mục sản phẩm được tìm kiếm nhiều mà chưa cá nhân hóa danh mục khuyến nghị.

Từ thực trạng các hệ thống khuyến nghị tại Việt Nam hoặc chưa được áp dụng phổ biến, hoặc chưa hoàn thiện thuật toán cá nhân hóa dựa trên hành vi đánh giá thực tế, đề tài đặt ra các mục tiêu và nhiệm vụ nghiên cứu sau:

  1. Nghiên cứu các công nghệ lập trình hiện đại gồm Golang, MySQL, Python và thư viện giao diện Bootstrap.
  2. Tìm hiểu nghiệp vụ thương mại điện tử và xây dựng hoàn chỉnh ứng dụng bán hàng trực tuyến thiết bị điện tử.
  3. Nghiên cứu cơ sở lý thuyết, xây dựng và tích hợp hệ thống khuyến nghị sản phẩm vào ứng dụng web thương mại điện tử.
  4. Áp dụng kiến thức chuyên ngành Hệ thống thông tin để xây dựng một giải pháp thực tế có khả năng ứng dụng thực tiễn.

Đối tượng nghiên cứu: Khách hàng có nhu cầu mua sắm thiết bị điện tử; nhà bán lẻ có nhu cầu vận hành trang web thương mại điện tử; lịch sử tương tác, giao dịch và dữ liệu đánh giá sản phẩm (ratings) của người dùng.

Phạm vi nghiên cứu:

  • Thời gian và không gian: Thực hiện tại Khoa Hệ thống Thông tin, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh, hoàn thành vào tháng 07 năm 2022.
  • Giới hạn hệ thống: Xây dựng nền tảng web theo kiến trúc Microservices sử dụng Go, Python và MySQL; tập trung nghiên cứu hai phương pháp khuyến nghị là Content-based Filtering và Collaborative Filtering, trong đó đi sâu triển khai kỹ thuật Item-item Collaborative Filtering với độ đo Adjusted Cosine Similarity trên bộ dữ liệu thương mại điện tử tại Việt Nam.

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 cho hệ thống khuyến nghị (Recommendation System) dựa trên hai thực thể chính là người dùng ($Users$) và sản phẩm ($Items$).

  1. Ma trận tiện ích (Utility Matrix): Tập hợp toàn bộ các cặp người dùng - sản phẩm được gán giá trị xếp hạng $Rating \in [0, 5]$ sao. Ma trận này có độ thưa (sparsity) rất lớn do số lượng sản phẩm một người dùng đã tương tác chiếm tỷ lệ rất nhỏ so với tổng thể danh mục sản phẩm. Việc xây dựng ma trận dựa trên hai nguồn: đánh giá chủ động của người dùng (explicit feedback) và hành vi gián tiếp (implicit feedback) như lượt mua lặp lại hoặc thời gian xem.

  2. Mô hình khuyến nghị dựa trên nội dung (Content-based Filtering): Xây dựng hồ sơ sản phẩm (Item profiles) dưới dạng các vector đặc trưng. Để khai phá dữ liệu mô tả sản phẩm dạng văn bản, khóa luận áp dụng kỹ thuật trọng số TF-IDF (Term Frequency – Inverse Document Frequency):

  • Tần suất xuất hiện của từ $t$ trong văn bản $d$: $$tf(t, d) = \frac{f(t, d)}{\max({f(w, d) : w \in d})}$$
  • Nghịch đảo tần suất văn bản chứa từ $t$ trong tập văn bản $D$: $$idf(t, D) = \log \frac{|D|}{|{d \in D : t \in d}|}$$
  1. Mô hình lọc cộng tác (Collaborative Filtering - CF):
  • User-user CF: Tìm kiếm người dùng lân cận có mức độ tương đồng cao dựa trên ma trận người dùng chuẩn hóa để dự đoán mức độ quan tâm của một người dùng lên sản phẩm chưa xem.
  • Item-item CF: Khóa luận lựa chọn tiếp cận theo hướng tương quan giữa các sản phẩm (Item-item) thay vì người dùng (User-user). Nguyên nhân xuất phát từ đặc thù thực tế: số lượng người dùng luôn lớn hơn rất nhiều so với số lượng sản phẩm ($N_{users} \gg N_{items}$), dẫn đến ma trận tương đồng người dùng có kích thước khổng lồ và chi phí tính toán cập nhật rất lớn. Ngược lại, ma trận tương đồng sản phẩm có kích thước cố định nhỏ hơn, vector đánh giá sản phẩm ổn định hơn theo thời gian, giúp tiết kiệm tài nguyên tính toán và lưu trữ.
  1. Độ đo tương đồng Adjusted Cosine Similarity: Khi sử dụng Cosine thông thường, hệ thống chỉ đo góc định hướng giữa hai vector mà không xét đến vị trí tuyệt đối và thiên kiến cá nhân (người dùng dễ tính thường cho điểm cao từ 4-5 sao, người dùng khắt khe chỉ cho 1-3 sao). Khóa luận áp dụng công thức Cosine điều chỉnh: $$s(i, j) = \frac{\sum_{u \in U} (R_{u, i} - \bar{R}u)(R{u, j} - \bar{R}u)}{\sqrt{\sum{u \in U} (R_{u, i} - \bar{R}u)^2} \sqrt{\sum{u \in U} (R_{u, j} - \bar{R}u)^2}}$$ Trong đó $R{u, i}$ là điểm đánh giá của người dùng $u$ cho sản phẩm $i$, và $\bar{R}_u$ là điểm đánh giá trung bình của người dùng $u$ trên toàn bộ các sản phẩm họ đã từng xếp hạng.

  2. Đánh giá sai số: Hiệu năng thuật toán được kiểm chứng thông qua chỉ số căn bậc hai sai số trung bình bình phương (Root Mean Squared Error - RMSE): $$RMSE = \sqrt{\frac{1}{|D_{test}|} \sum_{(u, i) \in D_{test}} (r_{u, i} - \hat{r}_{u, i})^2}$$

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình Microservices phân tách các thành phần độc lập nhằm tối ưu hóa khả năng bảo trì, mở rộng và triển khai công nghệ chuyên biệt cho từng tác vụ.

Thành phần kiến trúc Công nghệ sử dụng Vai trò và chức năng kỹ thuật
API Nghiệp vụ & Quản trị Golang (Go 1.x), Echo Framework, GORM Cung cấp các REST API cho phía khách hàng và ban quản trị (Admin). Xử lý truy vấn CSDL, điều hướng logic đơn hàng, tài khoản, giỏ hàng với tốc độ thực thi cao và cơ chế goroutines xử lý đồng thời.
Dịch vụ Khuyến nghị Python, NumPy, Pandas Đảm nhiệm tác vụ tính toán ma trận tiện ích, chuẩn hóa dữ liệu, tính toán độ đo tương đồng Adjusted Cosine Similarity và sinh danh sách gợi ý sản phẩm.
Hệ quản trị CSDL MySQL CSDL quan hệ lưu trữ dữ liệu có cấu trúc về người dùng, danh mục, thông số kỹ thuật, đơn hàng và lịch sử xếp hạng sao.
Giao diện người dùng (Frontend) HTML5, CSS3, JavaScript, Bootstrap Xây dựng giao diện web responsive, tương thích đa nền tảng thiết bị từ màn hình máy tính đến thiết bị di động.
Kiểm thử & Phát triển Postman, DataGrip, VS Code, GoLand, Git/GitHub Kiểm thử toàn diện các endpoint REST API (GET, POST, PUT, DELETE), quản lý cấu trúc bảng CSDL và kiểm soát phiên bản mã nguồn.

Cơ sở dữ liệu quan hệ MySQL của hệ thống được chuẩn hóa qua các bảng thực thể nghiệp vụ:

  • Địa chỉ và phân vùng hành chính: Address_district, Address_province, Address_ward.
  • Danh mục và thông tin sản phẩm: Category, Product, Product_option, Product_category, Product_image, Option_attribute_value.
  • Tương tác và phản hồi: Product_rating, User_favorite.
  • Bán hàng và giao dịch: Sale_cart, Sale_cart_item, Sale_order, Sale_order_item, Sale_transaction, Payment_method.
  • Tài khoản người dùng: User_account, User_address.

Quy trình khuyến nghị được tích hợp vào hệ thống theo luồng: Khi người dùng tương tác hoặc xem chi tiết sản phẩm, dịch vụ web gửi yêu cầu qua giao thức HTTP đến API Python. API khuyến nghị tính toán ma trận tương đồng sản phẩm đã tiền xử lý, trích xuất top các sản phẩm có điểm số tương đồng cao nhất và trả kết quả JSON về giao diện để hiển thị.

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

Chương 1: Tổng quan

Chương 1 phân tích bức tranh tổng thể về thị trường thương mại điện tử tại Việt Nam. Tác giả tiến hành khảo sát và lập bảng so sánh chức năng chi tiết của 04 website kinh doanh thiết bị điện tử đầu ngành (Thế Giới Di Động, FPT Shop, Siêu thị Điện Máy – Nội Thất Chợ Lớn và Tiki). Từ việc nhận diện các điểm thiếu hụt trong hệ thống gợi ý sản phẩm hiện có, chương 1 xác định mục tiêu đề tài, giới hạn phạm vi nghiên cứu, liệt kê công cụ phục vụ phát triển phần mềm và bố cục toàn văn khóa luận.

Chương 2: Các công nghệ sử dụng xây dựng hệ thống

Chương 2 trình bày toàn bộ cơ sở kỹ thuật và lý thuyết thuật toán. Tác giả thực hiện phân tích đối sánh giữa Go và Node.js (chỉ ra ưu thế của Go về hiệu năng thực thi, khả năng xử lý đồng thời bằng goroutines/channels và tính ổn định khi mở rộng quy mô), đồng thời so sánh MySQL với các hệ quản trị CSDL quan hệ khác (PostgreSQL, MariaDB, SQLite). Chương này đi sâu vào cơ chế hoạt động của REST API, thư viện GORM, framework Go Echo, kiến trúc Microservices và framework Bootstrap. Phần cuối chương trình bày chi tiết toán học của hệ thống khuyến nghị, bao gồm ma trận tiện ích, độ đo Adjusted Cosine Similarity và thuật toán Item-item Collaborative Filtering.

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

Chương 3 tập trung mô hình hóa quy trình nghiệp vụ mua bán hàng trực tuyến và quy trình xử lý hàng hóa qua 4 giai đoạn: nhập kho, tiếp nhận đơn hàng, đóng gói và hậu mãi. Hệ thống được mô tả cụ thể thông qua:

  • Danh sách 2 tác nhân (Actors): Khách hàng và Quản trị viên.
  • Danh mục use case tổng quát và đặc tả chi tiết cho từng chức năng (quản lý sản phẩm, danh mục, khuyến mãi, quảng cáo, kho hàng, giỏ hàng, đặt hàng, đánh giá, địa chỉ và quản lý hồ sơ).
  • Sơ đồ phân rã chức năng và mô hình quan hệ cơ sở dữ liệu gồm 19 bảng thực thể chính.
  • Sơ đồ thiết kế quy trình khuyến nghị sản phẩm cho cả hai phương pháp Lọc cộng tác (CF) và Lọc theo nội dung (CB).

Chương 4: Áp dụng thuật toán khuyến nghị

Chương 4 ghi nhận quá trình thực nghiệm thuật toán trên bộ dữ liệu thực tế tại Việt Nam. Các nội dung chính được triển khai gồm:

  • Thiết lập môi trường phát triển và môi trường triển khai hệ thống.
  • Thu thập và tiền xử lý dữ liệu: làm sạch dữ liệu thô, loại bỏ các bản ghi không hợp lệ, gộp bộ dữ liệu sản phẩm với bộ dữ liệu đánh giá sao của người dùng.
  • Thử nghiệm các kịch bản lọc người dùng có số lượng đánh giá khác nhau để kiểm soát độ bao phủ ma trận.
  • Chạy thuật toán so sánh giữa Cosine thông thường và Adjusted Cosine Similarity trước và sau khi nhân hệ số điều chỉnh.
  • Tích hợp 4 khối hiển thị khuyến nghị lên ứng dụng web: Sản phẩm dành cho bạn, Sản phẩm liên quan, Sản phẩm bán chạy và Sản phẩm được yêu thích nhất.

Chương 5: Một số màn hình của trang web

Chương 5 giới thiệu kết quả hiện thực hóa giao diện người dùng và trang quản trị hệ thống:

  • Giao diện người dùng: Trang chủ, danh mục sản phẩm khuyến nghị, sản phẩm mới, sản phẩm bán chạy, trang đăng ký/đăng nhập, trang khôi phục mật khẩu qua email, trang hồ sơ cá nhân và đổi mật khẩu.
  • Giao diện sản phẩm và giao dịch: Trang thông tin chi tiết sản phẩm kèm thông số kỹ thuật, khu vực đánh giá số sao của khách hàng, thanh tìm kiếm sản phẩm, giao diện đặt hàng và thanh toán, màn hình danh sách sản phẩm yêu thích và quản lý sổ địa chỉ.
  • Giao diện quản trị: Quản lý trạng thái và danh sách đơn hàng.

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

Chương 6 tổng kết toàn bộ kết quả đạt được về mặt xây dựng phần mềm thương mại điện tử và tích hợp dịch vụ khuyến nghị sản phẩm. Tác giả đánh giá mức độ hoàn thành so với mục tiêu ban đầu, đồng thời chỉ rõ những điểm hạn chế cần hoàn thiện trong các giai đoạn tiếp theo.

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

Khóa luận đạt được các kết quả cụ thể cả về khía cạnh kỹ thuật phần mềm lẫn giải pháp thuật toán:

  1. Xây dựng hoàn chỉnh ứng dụng web thương mại điện tử: Triển khai thành công nền tảng web bán lẻ thiết bị điện tử có giao diện thân thiện, tương thích responsive trên nhiều thiết bị. Hệ thống vận hành đầy đủ chu trình mua sắm trực tuyến từ tìm kiếm, xem chi tiết cấu hình, quản lý giỏ hàng, quy trình đặt hàng đến đánh giá chất lượng sản phẩm.
  2. Hiện thực hóa kiến trúc Microservices: Tách biệt thành công dịch vụ nghiệp vụ viết bằng Golang (Echo, GORM) với dịch vụ khuyến nghị chuyên biệt viết bằng Python. Kiến trúc này giúp tối ưu hóa hiệu năng máy chủ, đảm bảo tính độc lập và khả năng mở rộng khi mở rộng danh mục sản phẩm.
  3. Thực nghiệm và áp dụng thuật toán khuyến nghị:
    • Hoàn thiện pipeline tiền xử lý dữ liệu đánh giá sản phẩm của người dùng Việt Nam.
    • Chứng minh tính ưu việt của thuật toán Item-item Collaborative Filtering kết hợp độ đo Adjusted Cosine Similarity so với Cosine thông thường trong việc khử độ lệch xếp hạng giữa các nhóm người dùng khác nhau.
    • Tích hợp trực tiếp 4 luồng khuyến nghị tự động vào giao diện web: khối "Sản phẩm dành cho bạn", khối "Sản phẩm liên quan" tại trang chi tiết, cùng các khối "Sản phẩm bán chạy" và "Sản phẩm được ưa thích".

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

Khóa luận chỉ rõ các giới hạn còn tồn tại và đề xuất định hướng phát triển cụ thể:

  • Hạn chế về mặt dữ liệu: Do phạm vi nghiên cứu và thời gian thực hiện có hạn, bộ dữ liệu đánh giá thực tế thu thập được tại thị trường Việt Nam vẫn còn gặp hiện tượng ma trận thưa (sparse matrix). Khả năng gợi ý đối với người dùng mới hoàn toàn (vấn đề Cold Start) vẫn phụ thuộc chủ yếu vào các sản phẩm bán chạy hoặc khuyến nghị theo nội dung tĩnh.
  • Hạn chế về mặt hệ thống: Hệ thống khuyến nghị hoạt động theo cơ chế tính toán định kỳ; chưa hỗ trợ cập nhật ma trận tương đồng theo thời gian thực (real-time streaming) ngay khi phát sinh một đánh giá hoặc lượt tương tác mới.
  • Hướng phát triển về hệ thống:
    • Nghiên cứu cơ chế đồng bộ và tính toán song song ma trận tương đồng trên các nền tảng phân tán để nâng cao năng lực phục vụ khi lượng người dùng tăng cao.
    • Tối ưu hóa sâu hơn các dịch vụ trong kiến trúc Microservices, ứng dụng Docker container để tự động hóa quá trình đóng gói và triển khai.
  • Hướng phát triển về thuật toán và vận hành:
    • Kết hợp linh hoạt (hybrid) giữa Lọc cộng tác và Lọc theo nội dung để khắc phục triệt để bài toán Cold Start.
    • Xây dựng cơ chế phát hiện và ngăn chặn đánh giá ảo (spam reviews) nhằm đảm bảo tính khách quan của dữ liệu đầu vào.

Giá trị tham khảo

Báo cáo khóa luận cung cấp tài liệu tham khảo thực tiễn cho sinh viên chuyên ngành Hệ thống thông tin, Công nghệ thông tin và Kỹ thuật phần mềm:

  • Tài liệu thiết kế hệ thống thương mại điện tử: Các sơ đồ use case tổng quát, bảng đặc tả chi tiết 20 nghiệp vụ và cấu trúc 19 bảng cơ sở dữ liệu quan hệ (MySQL) là tài liệu tham khảo trực quan cho các đề tài xây dựng trang web bán hàng trực tuyến.
  • Mô hình kết hợp công nghệ Microservices: Cung cấp giải pháp mẫu trong việc phân tách dịch vụ: sử dụng Golang xử lý các tác vụ API I/O bound và Python xử lý các tác vụ tính toán dữ liệu (Data processing).
  • Hiện thực hóa thuật toán Recommender System: Trình bày chi tiết các bước toán học và quy trình lập trình thực tế cho thuật toán Item-item Collaborative Filtering sử dụng công thức Adjusted Cosine Similarity.

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

1. Vì sao nhóm tác giả lựa chọn Item-item Collaborative Filtering thay vì User-user Collaborative Filtering?
Do trong thực tế thương mại điện tử, số lượng khách hàng ($Users$) luôn lớn hơn rất nhiều so với số lượng sản phẩm ($Items$). Ma trận tương đồng người dùng có kích thước rất lớn và liên tục thay đổi khi có người dùng mới đăng ký hoặc cập nhật đánh giá, gây tốn kém chi phí tính toán. Trong khi đó, số lượng sản phẩm ít hơn, ma trận tương đồng giữa các sản phẩm có kích thước nhỏ hơn, ổn định hơn và ít bị biến động khi có thêm một vài lượt đánh giá mới, giúp tiết kiệm đáng kể tài nguyên hệ thống.

2. Công thức Adjusted Cosine Similarity khắc phục nhược điểm gì của Cosine Similarity thông thường?
Cosine Similarity thông thường chỉ đo góc giữa các vector mà không xét đến vị trí tuyệt đối và thiên kiến cá nhân của người đánh giá. Khách hàng dễ tính thường đánh giá từ 4-5 sao, còn khách hàng khắt khe thường cho điểm thấp hơn. Adjusted Cosine Similarity giải quyết vấn đề này bằng cách trừ điểm đánh giá của người dùng cho điểm trung bình của chính người đó trên toàn bộ sản phẩm đã đánh giá ($\bar{R}_u$), giúp phản ánh chính xác sự tương quan chất lượng giữa các sản phẩm.

3. Kiến trúc Microservices trong đồ án được phân chia như thế nào?
Hệ thống gồm 3 thành phần chính:

  • Dịch vụ API nghiệp vụ người dùng và quản trị viên viết bằng ngôn ngữ Golang (Echo Framework, GORM).
  • Dịch vụ API khuyến nghị sản phẩm viết bằng Python sử dụng hai thư viện NumPy và Pandas.
  • Hệ quản trị cơ sở dữ liệu MySQL. Các dịch vụ giao tiếp với nhau thông qua chuẩn REST API với định dạng dữ liệu JSON.

4. Dữ liệu đầu vào chính để hệ thống đưa ra khuyến nghị sản phẩm là gì?
Dữ liệu đầu vào chính là lịch sử đánh giá số sao (ratings từ 1 đến 5 sao) của người dùng đối với các sản phẩm đã mua trên trang web, kết hợp với các thuộc tính thông tin sản phẩm và dữ liệu lịch sử đơn hàng để xây dựng ma trận tiện ích.

5. Điểm khác biệt về quy trình đặt hàng giữa 04 trang web được khảo sát ở Chương 1 là gì?
Thế Giới Di Động và FPT Shop cho phép người dùng đặt hàng nhanh chóng mà không cần đăng nhập tài khoản cá nhân (chỉ cần cung cấp thông tin người nhận). Ngược lại, Siêu thị Điện Máy – Nội Thất Chợ Lớn và Sàn thương mại điện tử Tiki bắt buộc người dùng phải đăng ký và đăng nhập tài khoản thì mới có thể tiến hành đặt mua sản phẩm.

Kết luận

Khóa luận tốt nghiệp của sinh viên Lê Võ Đình Kha và Lê Phúc Khang đã giải quyết hoàn chỉnh bài toán xây dựng nền tảng thương mại điện tử kinh doanh thiết bị điện tử có tích hợp cơ chế gợi ý sản phẩm tự động. Bằng việc ứng dụng kiến trúc Microservices kết hợp giữa Golang, Python và MySQL, hệ thống vừa đáp ứng yêu cầu xử lý nghiệp vụ bán hàng với hiệu năng cao, vừa thực hiện hiệu quả thuật toán Item-item Collaborative Filtering dựa trên độ đo Adjusted Cosine. Đề tài thể hiện tính ứng dụng thực tiễn rõ nét, đóng vai trò là một tài liệu tham khảo giá trị cho các nghiên cứu và triển khai hệ thống khuyến nghị trong thương mại điện tử.