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

Lý do chọn đề tài và bối cảnh thực tiễn

Trong bối cảnh công nghệ thông tin và ngành lập trình ứng dụng trên thiết bị di động phát triển bùng nổ, các ứng dụng di động đã trở thành một phần thiết yếu trong đời sống thường nhật, bao phủ nhiều lĩnh vực từ giáo dục, y tế, tài chính đến thương mại điện tử. Tại thị trường Việt Nam, mặc dù các website và ứng dụng bán hàng trực tuyến xuất hiện ngày càng nhiều với quy mô đa dạng, phần lớn các hệ thống này còn mang tính tương đồng và thiếu sự tương tác cá nhân hóa sâu sắc với người tiêu dùng.

Khi tiếp cận một nền tảng thương mại điện tử, hành vi của khách hàng thường chia thành hai xu hướng rõ rệt:

  1. Nhóm khách hàng đã xác định chính xác sản phẩm cần mua: Vấn đề chỉ dừng lại ở việc lựa chọn nơi mua hàng.
  2. Nhóm khách hàng chỉ xác định được loại/danh mục sản phẩm hoặc dạo xem mà chưa biết chính xác nên chọn sản phẩm nào: Nhóm này gặp khó khăn lớn trong việc ra quyết định giữa vô vàn sản phẩm cùng chủng loại.

Để giải quyết bài toán hỗ trợ người dùng tìm kiếm sản phẩm phù hợp nhất với nhu cầu mà không tốn nhiều thời gian tìm kiếm thủ công, việc tích hợp hệ thống gợi ý sản phẩm (Recommender System) vào ứng dụng di động là một yêu cầu cấp thiết. Đề tài "Xây dựng và phát triển ứng dụng bán hàng tích hợp gợi ý sản phẩm đến người dùng — EC Mobile" được thực hiện bởi sinh viên Lê Thành An (ngành Truyền thông và Mạng máy tính, Trường Đại học Công nghệ Thông tin – ĐHQG-HCM, 12/2020) nhằm khai thác các giải pháp gợi ý dựa trên hành vi tương tác và dữ liệu đồ thị, từ đó tối ưu hóa trải nghiệm mua sắm và nâng cao hiệu quả thương mại.

Mục tiêu nghiên cứu

Khóa luận đặt ra các mục tiêu cụ thể sau:

  1. Xây dựng hoàn chỉnh ứng dụng di động mua sắm mang tên "EC Mobile" hoạt động trên nền tảng di động.
  2. Thiết kế cơ chế gợi ý sản phẩm phù hợp dựa trên thông tin ngữ cảnh, hành vi mua sắm trước đó của tài khoản, danh mục sản phẩm tương tự và mức độ tương tác thông qua hành vi yêu thích sản phẩm.
  3. Xây dựng công cụ thu thập tự động (crawl) dữ liệu sản phẩm từ nền tảng thương mại điện tử Tiki (tiki.vn) để làm nguồn dữ liệu chính cho hệ thống.
  4. Cung cấp đầy đủ các chức năng nghiệp vụ bán hàng: đăng ký, đăng nhập bằng số điện thoại, chỉnh sửa hồ sơ người dùng, xem danh mục, quản lý giỏ hàng, thanh toán và bình luận/đánh giá sản phẩm.
  5. Triển khai các tính năng nâng cao: hiển thị danh sách sản phẩm nổi bật (sản phẩm Hot), sản phẩm giảm giá mạnh theo tuần, các chiến dịch khuyến mãi và gợi ý cá nhân hóa cho từng người dùng dựa trên các thuật toán đồ thị.

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

  • Đối tượng nghiên cứu:
    • Nhu cầu thực tế của người dùng đối với các ứng dụng mua sắm trực tuyến có tích hợp tính năng gợi ý cá nhân hóa.
    • Các kỹ thuật và công nghệ xây dựng giao diện ứng dụng di động thông qua thư viện React Native.
    • Cơ chế hoạt động, kiến trúc và ứng dụng của môi trường thực thi Node.js trong việc xây dựng hệ thống máy chủ (server) xử lý API.
    • Hệ quản trị cơ sở dữ liệu đồ thị Neo4j cùng các thuật toán phân tích đồ thị hỗ trợ bài toán gợi ý (Recommender Systems).
  • Phạm vi nghiên cứu:
    • Đề tài tập trung nghiên cứu, thiết kế ứng dụng cho thiết bị di động (hỗ trợ nền tảng Android và mở rộng iOS).
    • Hệ thống được triển khai, kiểm thử và đánh giá trong phạm vi phòng thí nghiệm với quy mô dữ liệu thử nghiệm vừa phải.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết và mô hình công nghệ

Nghiên cứu tập trung vào mô hình cơ sở dữ liệu đồ thị và hệ gợi ý dựa trên mạng liên kết:

  1. Cơ sở dữ liệu đồ thị Neo4j: Khác với cơ sở dữ liệu quan hệ truyền thống (RDBMS) tổ chức dữ liệu theo các bảng và khóa ngoại, Neo4j lưu trữ dữ liệu dưới dạng cấu trúc đồ thị bao gồm:

    • Đỉnh (Node): Đại diện cho các thực thể cụ thể (ví dụ: User, Product, Order, Comment, Campaign).
    • Nhãn (Labels): Nhóm các đỉnh có cùng kiểu dữ liệu hoặc vai trò trong hệ thống (ví dụ: :Person, :Movie, :User).
    • Quan hệ (Relationships): Biểu diễn các liên kết có hướng giữa hai đỉnh, phản ánh tương tác nghiệp vụ (ví dụ: quan hệ FOCUS, SIMILARITY, ACTED_IN). Mọi quan hệ đều có đỉnh bắt đầu và đỉnh kết thúc.
    • Thuộc tính (Properties): Cặp name-value lưu trữ thông tin chi tiết trên cả đỉnh và quan hệ với các kiểu dữ liệu như chuỗi ký tự, số, logic.
    • Đặc tính giao dịch (ACID): Đảm bảo tính nguyên tử (Atomicity), tính nhất quán (Consistency), tính độc lập (Isolation) và tính bền vững (Durability). Hệ thống mặc định áp dụng mức cô lập READ_COMMITTED và cơ chế tự động phát hiện bế tắc (deadlock detection).
    • Ngôn ngữ truy vấn Cypher: Ngôn ngữ truy vấn dạng khai báo được thiết kế riêng cho đồ thị, sử dụng cú pháp trực quan kết hợp giữa SQL và khớp mẫu (pattern matching).
  2. Các thuật toán gợi ý áp dụng trong hệ thống:

    • Thuật toán PageRank: Được sử dụng để đánh giá tầm quan trọng tương đối (độ Hot/độ ảnh hưởng) của từng sản phẩm trong toàn bộ mạng lưới dữ liệu. Chỉ số PageRank của sản phẩm $A$ được xác định dựa trên số lượng và chất lượng các tương tác (lượt xem, bình luận, mua hàng) từ khách hàng $T_1, \dots, T_n$:

$$PR(A) = (1 - d) + d \sum_{i=1}^{n} \frac{PR(T_i)}{C(T_i)}$$

 Trong đó:
 - $PR(A)$: Chỉ số PageRank của sản phẩm $A$.
 - $T_i$: Nút khách hàng có tương tác quan tâm đến sản phẩm $A$.
 - $C(T_i)$: Tổng số liên kết ngoài (outlink) của nút $T_i$.
 - $d$: Hệ số suy giảm/điều chỉnh (thường thiết lập $d = 0.85$).
 - Tổng điểm PageRank phân bố trên toàn hệ thống bằng 1; sản phẩm có điểm số càng cao thì độ phổ biến càng lớn.
  • Thuật toán tìm điểm tương đồng nút (Node Similarity - Chỉ số Jaccard): Dùng để so sánh mức độ tương đồng giữa các cặp khách hàng dựa trên tập hợp các sản phẩm mà họ cùng quan tâm hoặc tương tác:

$$J(A, B) = \frac{|A \cap B|}{|A \cup B|} = \frac{|A \cap B|}{|A| + |B| - |A \cap B|}$$

 Trong đó:
 - $A$: Tập hợp các sản phẩm mà khách hàng $A$ đã quan tâm/tương tác.
 - $B$: Tập hợp các sản phẩm mà khách hàng $B$ đã quan tâm/tương tác.
 - Dựa trên điểm $J(A, B)$, hệ thống thiết lập mối quan hệ `SIMILARITY` giữa hai người dùng để gợi ý chéo các sản phẩm mà người này đã mua cho người kia và ngược lại.

Phương pháp nghiên cứu và thu thập dữ liệu

  • Phương pháp phân tích và thiết kế hệ thống: Khảo sát nhu cầu thực tế, phân rã chức năng, xây dựng mô hình use case, lược đồ luồng dữ liệu và thiết kế mô hình thực thể đồ thị.
  • Phương pháp thu thập dữ liệu (Web Scraping): Để có tập dữ liệu thử nghiệm ban đầu mà không phải tạo thủ công, tác giả xây dựng công cụ thu thập dữ liệu tự động từ trang thương mại điện tử Tiki (tiki.vn). Kết quả đã crawl được hơn 700 sản phẩm phân bố theo các danh mục khác nhau.
Thuộc tính dữ liệu (Field) Kiểu dữ liệu (Data Type) Mô tả chi tiết
id String Mã định danh duy nhất của từng sản phẩm
name String Tên đầy đủ của sản phẩm
price Number Giá bán của sản phẩm
image String Đường dẫn liên kết hình ảnh đại diện của sản phẩm
decription String Đoạn văn bản mô tả thông tin chi tiết về sản phẩm

Thiết kế và triển khai

Kiến trúc công nghệ

Hệ thống EC Mobile được xây dựng dựa trên kiến trúc client-server nhiều tầng:

  • Client di động (Mobile App): Sử dụng React Native (nền tảng đa nền tảng, xây dựng giao diện người dùng dựa trên JavaScript/React, biên dịch sang mã native).
  • Client quản trị (Web Admin): Giao diện quản lý dành cho quản trị viên để kiểm soát sản phẩm, chiến dịch giảm giá và khách hàng.
  • Máy chủ trung gian (Back-end Server): Xây dựng trên môi trường Node.js sử dụng JavaScript, áp dụng mô hình hướng sự kiện (Event-driven) và Non-blocking I/O, tiếp nhận và phản hồi các yêu cầu qua chuẩn giao tiếp RESTful API.
  • Hệ quản trị cơ sở dữ liệu: Neo4j lưu trữ toàn bộ các thực thể, nhãn và quan hệ tương tác phức tạp.

Bảng tổng hợp các chức năng nghiệp vụ của hệ thống

Nhóm chức năng Tên chức năng cụ thể Mô tả chi tiết nghiệp vụ
Cơ bản Đăng ký & Đăng nhập Sử dụng số điện thoại để xác thực tài khoản khách hàng
Cơ bản Tìm kiếm & Giỏ hàng Tìm kiếm sản phẩm theo từ khóa, thêm vào giỏ hàng và thực hiện thanh toán
Cơ bản Xem & Bình luận Xem chi tiết sản phẩm (tên, giá, điểm sao tổng hợp), gửi đánh giá theo mức độ hài lòng (tốt / không tốt)
Quản trị Thu thập dữ liệu Tiki Công cụ crawl dữ liệu sản phẩm từ tiki.vn nạp tự động vào cơ sở dữ liệu
Gợi ý Chiến dịch giảm giá Tạo các chiến dịch khuyến mãi theo chủ đề với mức giá giảm cụ thể
Gợi ý Giảm giá trong tuần Tổng hợp danh sách toàn bộ sản phẩm đang giảm giá, sắp xếp theo tỷ lệ % giảm giảm dần
Gợi ý Sản phẩm liên quan Trích xuất các sản phẩm cùng danh mục khi khách hàng đang xem một sản phẩm chi tiết
Gợi ý (Nổi bật) Sản phẩm Hot (PageRank) Ứng dụng PageRank xếp hạng tầm quan trọng của sản phẩm dựa trên tương tác toàn hệ thống
Gợi ý (Nổi bật) Tương đồng khách hàng (Node Similarity) Sử dụng chỉ số Jaccard tìm tập khách hàng có chung sở thích để gợi ý sản phẩm chéo
Gợi ý (Nổi bật) Gợi ý theo tương tác bạn bè Gợi ý các sản phẩm tương tự mà những người dùng có liên kết đã từng tương tác

Mô hình dữ liệu đồ thị trong Neo4j

Hệ thống thiết kế các tập đỉnh và thuộc tính để lưu trữ trong cơ sở dữ liệu đồ thị:

  • Node Products: Chứa thông tin sản phẩm (id, name, price, image, decription, rating).
  • Node Categories: Chứa thông tin danh mục sản phẩm (id, name).
  • Node Customers: Chứa thông tin tài khoản người mua (id, phone, name, address).
  • Node Admins: Chứa thông tin tài khoản quản trị viên (id, username, password).
  • Node Orders: Chứa thông tin hóa đơn thanh toán của người dùng (id, date, total_price, status).
  • Node Comments: Chứa nội dung đánh giá và trạng thái phản hồi (id, content, sentiment).
  • Node Campaigns: Chứa thông tin chương trình khuyến mãi (id, name, discount_rate).
  • Các quan hệ chính:
    • (:Customers)-[:FOCUS]->(:Products): Mối quan hệ thể hiện mức độ chú ý của khách hàng đối với sản phẩm, tổng hợp từ 3 hành vi: xem, bình luận, mua hàng.
    • (:Customers)-[:SIMILARITY]->(:Customers): Mối quan hệ tương đồng giữa hai khách hàng dựa trên kết quả tính toán chỉ số Jaccard.
    • (:Customers)-[:ORDERED]->(:Orders): Quan hệ tạo đơn đặt hàng.
    • (:Orders)-[:CONTAINS]->(:Products): Quan hệ chi tiết mặt hàng trong đơn hàng.
    • (:Customers)-[:WROTE]->(:Comments)-[:ABOUT]->(:Products): Luồng liên kết bình luận sản phẩm.

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

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

Chương mở đầu phân tích tính cấp thiết của đề tài, thực trạng các ứng dụng thương mại điện tử hiện hành tại Việt Nam và nhu cầu cá nhân hóa trải nghiệm khách hàng. Tác giả xác định rõ mục tiêu xây dựng ứng dụng EC Mobile, phân chia phạm vi nghiên cứu ở quy mô phòng thí nghiệm và vạch ra quy trình nghiên cứu qua 4 giai đoạn:

  • Giai đoạn 1: Khảo sát, phân tích và thiết kế hệ thống (xây dựng sơ đồ phân rã chức năng, use case, mô hình luồng dữ liệu).
  • Giai đoạn 2: Nghiên cứu công nghệ Node.js, Neo4j, xây dựng máy chủ back-end và thiết lập API.
  • Giai đoạn 3: Phát triển giao diện React Native, lập trình các chức năng và kiểm thử hệ thống.
  • Giai đoạn 4: Hoàn thiện báo cáo, đánh giá kết quả so với mục tiêu ban đầu. Nội dung chương cũng trình bày chi tiết công thức PageRank, chỉ số Jaccard và quy trình trích xuất hơn 700 sản phẩm từ trang Tiki.vn.

Chương 2. Tổng quan công nghệ sử dụng

Chương này đi sâu vào cơ sở lý thuyết và lý do lựa chọn các công nghệ nền tảng:

  • Node.js: Đánh giá các đặc tính không đồng bộ (Event-driven, Non-blocking I/O), hiệu năng luồng đơn (Single Thread) trên nền tảng V8 JavaScript Engine của Google Chrome, giúp xây dựng các API nhận/gửi dữ liệu thời gian thực với tốc độ xử lý nhanh.
  • Hệ quản trị cơ sở dữ liệu Neo4j: Trình bày chi tiết kiến trúc đồ thị, cách tổ chức Nodes, Labels, Relationships, Properties và Traversal. Phân tích cơ chế đảm bảo tính toàn vẹn dữ liệu ACID, cơ chế khóa (locking behavior), xử lý bế tắc (deadlocks), ngữ nghĩa xóa (delete semantics) và giao dịch lồng (nested transactions). Giới thiệu ngôn ngữ Cypher với cấu trúc truy vấn trực quan kết hợp giữa SQL và SPARQL.
  • React Native: Trình bày ưu điểm phát triển ứng dụng di động đa nền tảng từ một cơ sở mã nguồn JavaScript, khả năng tái sử dụng thành phần giao diện và hiệu năng tiệm cận ứng dụng bản địa (native).

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

Chương 3 tập trung vào khâu thiết kế chi tiết toàn bộ hệ thống:

  • Trình bày sơ đồ kiến trúc tổng thể kết nối giữa React Native Client, Web Admin, Node.js Server và cơ sở dữ liệu Neo4j.
  • Phân tích chi tiết 10 kịch bản Use Case trọng tâm kèm bảng đặc tả luồng sự kiện: Use Case đăng ký khách hàng, đăng nhập khách hàng, mua hàng, xem danh sách sản phẩm, đăng nhập Admin, quản lý sản phẩm, quản lý danh mục, quản lý hóa đơn, quản lý khách hàng và thống kê doanh thu.
  • Xây dựng các sơ đồ tuần tự (Sequence Diagram) và lược đồ tương tác luồng dữ liệu cho các chức năng: Đăng nhập, Xem danh sách sản phẩm, Bình luận sản phẩm, Thêm giỏ hàng và Thanh toán.
  • Thiết kế mô hình thực thể liên kết đồ thị (ERD trên nền tảng Graph DB) và định nghĩa bảng thuộc tính chi tiết cho các đỉnh Products, Categories, Customers, Admins, Orders, Comments, Campaigns.

Chương 4. Hiện thực ứng dụng EC Mobile

Chương này minh họa kết quả triển khai giao diện và chức năng thực tế của hệ thống:

  • Giao diện ứng dụng di động (EC Mobile):
    • Giao diện đăng nhập/đăng ký bằng số điện thoại.
    • Giao diện Trang chủ hiển thị thanh tìm kiếm, banner sự kiện, danh sách sản phẩm giảm giá mạnh trong tuần, danh mục sản phẩm và mục sản phẩm nổi bật (sản phẩm Hot dựa trên PageRank).
    • Giao diện Tìm kiếm và Danh mục sản phẩm hỗ trợ bộ lọc và xem nhanh thông tin.
    • Giao diện Chi tiết sản phẩm hiển thị giá bán, mô tả, đánh giá sao, bình luận phản hồi và danh sách sản phẩm liên quan cùng danh mục.
    • Giao diện Quản lý cá nhân và Giỏ hàng/Thanh toán.
  • Giao diện Web Admin:
    • Giao diện Đăng nhập dành cho ban quản trị.
    • Giao diện Quản lý chiến dịch giảm giá: Thiết lập các chương trình khuyến mãi và mức chiết khấu.
    • Giao diện Quản lý sản phẩm: Xem, chỉnh sửa thông tin mặt hàng.
    • Giao diện Thêm sản phẩm tự động: Công cụ crawl dữ liệu trực tiếp từ Tiki.vn theo đường dẫn danh mục để tự động nạp vào hệ thống.

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

Tổng kết toàn bộ các kết quả đạt được của khóa luận sau quá trình triển khai, nhìn nhận các ưu điểm về mặt giao diện, hiệu năng và khả năng gợi ý sản phẩm; đồng thời chỉ ra các hạn chế kỹ thuật còn tồn đọng và đề xuất định hướng nghiên cứu tiếp theo.


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

Kết quả nghiên cứu chính

  1. Sản phẩm phần mềm hoàn chỉnh: Xây dựng thành công ứng dụng di động EC Mobile trên nền tảng Android (phát triển bằng React Native) và hệ thống Web Admin quản trị kết nối qua API Node.js.
  2. Triển khai thành công cơ sở dữ liệu đồ thị: Xây dựng cấu trúc lưu trữ dữ liệu bằng Neo4j, nạp thành công bộ dữ liệu thử nghiệm ban đầu gồm hơn 700 sản phẩm theo các danh mục trích xuất tự động từ Tiki.vn.
  3. Hiện thực hóa các mô hình gợi ý sản phẩm:
    • Ứng dụng thuật toán PageRank để tính toán độ ảnh hưởng của sản phẩm trên toàn bộ hệ thống dựa trên trọng số tương tác (lượt xem, bình luận, mua hàng), tự động đưa ra danh sách sản phẩm nổi bật (Hot items).
    • Ứng dụng thuật toán Node Similarity (chỉ số tương đồng Jaccard) để phân tích sự tương đồng giữa các khách hàng có cùng hành vi quan tâm sản phẩm (FOCUS), từ đó tạo mối quan hệ SIMILARITY và gợi ý chéo các sản phẩm từ hóa đơn của người dùng tương đồng.
    • Triển khai các cơ chế gợi ý phụ trợ: gợi ý sản phẩm cùng danh mục, gợi ý theo chiến dịch giảm giá và sản phẩm giảm giá mạnh trong tuần.

Đóng góp về mặt giải pháp

Khóa luận đã chứng minh tính khả thi và hiệu quả của việc ứng dụng công nghệ cơ sở dữ liệu đồ thị (Neo4j) thay thế cho cơ sở dữ liệu quan hệ truyền thống trong bài toán phân tích hành vi và xây dựng hệ thống gợi ý thương mại điện tử. Việc mô hình hóa dữ liệu người dùng - sản phẩm dưới dạng các nút và cạnh liên kết giúp các truy vấn tìm kiếm điểm tương đồng và phân tích liên kết được thực hiện trực quan, linh hoạt và giảm thiểu độ phức tạp so với các phép nối bảng (JOIN) nhiều tầng trong SQL.


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

Hạn chế

  • Hệ thống chỉ mới được kiểm tra, thử nghiệm trong phạm vi phòng thí nghiệm với quy mô dữ liệu ở mức vừa phải (hơn 700 sản phẩm), chưa được đánh giá toàn diện trên môi trường thực tế với lượng truy cập đồng thời lớn.
  • Khả năng gợi ý đối với người dùng mới (bài toán Cold Start) khi chưa có đủ dữ liệu tương tác (xem, bình luận, mua hàng) còn phụ thuộc nhiều vào các danh mục chung và danh sách sản phẩm Hot từ PageRank.

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

  • Tiếp tục tối ưu hóa và hoàn thiện hệ thống máy chủ back-end nhằm nâng cao hiệu năng xử lý truy vấn thời gian thực.
  • Mở rộng thuật toán gợi ý để xử lý chính xác hơn các ngữ cảnh mua sắm phức tạp và nâng cao độ chính xác của mối quan hệ tương đồng.
  • Xuất bản và tối ưu hóa ứng dụng trên cả hai hệ điều hành Android và iOS.
  • Bổ sung các tính năng nâng cao như cổng thanh toán trực tuyến đa kênh, tích hợp thông báo đẩy (Push Notification) theo thời gian thực về các chương trình khuyến mãi và sản phẩm gợi ý mới cho khách hàng.

Giá trị tham khảo

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

  • Sinh viên ngành Mạng máy tính và Truyền thông, Công nghệ thông tin, Kỹ thuật phần mềm: Cung cấp tài liệu tham khảo thực tế về quy trình xây dựng ứng dụng di động hoàn chỉnh từ khâu phân tích yêu cầu, thiết kế kiến trúc client-server đến hiện thực mã nguồn.
  • Người nghiên cứu hệ thống gợi ý (Recommender Systems): Cung cấp cách tiếp cận cụ thể trong việc triển khai thuật toán PageRank và Node Similarity (Jaccard Index) trực tiếp trên cơ sở dữ liệu đồ thị Neo4j bằng ngôn ngữ Cypher.
  • Kỹ sư phát triển ứng dụng di động: Cung cấp mô hình tích hợp giữa React Native, Node.js RESTful API và cơ sở dữ liệu NoSQL dạng đồ thị.

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

1. Ứng dụng EC Mobile sử dụng nguồn dữ liệu sản phẩm ban đầu từ đâu và gồm những thông tin nào?

Dữ liệu ban đầu của ứng dụng được thu thập tự động (crawl) từ trang thương mại điện tử Tiki (tiki.vn) với quy mô hơn 700 sản phẩm phân theo danh mục. Mỗi sản phẩm được trích xuất gồm 5 trường thuộc tính: mã định danh (id), tên sản phẩm (name), giá bán (price), đường dẫn hình ảnh (image) và mô tả chi tiết (decription).

2. Thuật toán PageRank được áp dụng như thế nào trong bài toán gợi ý của đề tài?

Thuật toán PageRank được sử dụng để đánh giá tầm quan trọng tương đối (độ Hot) của từng sản phẩm trong toàn hệ thống. Mức độ quan tâm của khách hàng đối với một sản phẩm được tổng hợp dựa trên 3 yếu tố: lượt xem, lượt bình luận và lượt mua hàng. Với hệ số điều chỉnh $d = 0.85$, thuật toán tính toán phân bố điểm số trên toàn bộ các sản phẩm, từ đó hệ thống trích xuất danh sách các sản phẩm có chỉ số PageRank cao nhất để hiển thị tại mục "Sản phẩm Hot" trên trang chủ.

3. Cơ chế gợi ý sản phẩm tương đồng giữa các khách hàng hoạt động dựa trên nguyên lý nào?

Hệ thống sử dụng thuật toán Node Similarity dựa trên chỉ số tương tự Jaccard để so sánh tập hợp các sản phẩm mà hai khách hàng $A$ và $B$ cùng quan tâm. Chỉ số Jaccard $J(A, B)$ được tính bằng tỷ số giữa số phần tử giao và số phần tử hợp của hai tập sản phẩm. Khi đạt ngưỡng tương đồng, hệ thống thiết lập mối quan hệ SIMILARITY giữa hai nút người dùng trong Neo4j và tiến hành gợi ý các sản phẩm mà khách hàng này đã mua sang cho khách hàng kia.

4. Hệ thống công nghệ (Tech Stack) chính được tác giả lựa chọn để phát triển đề tài là gì?

Hệ thống sử dụng React Native để phát triển ứng dụng di động cho khách hàng; xây dựng giao diện Web Admin để quản lý danh mục, sản phẩm, khuyến mãi và công cụ crawl dữ liệu; sử dụng môi trường Node.js (JavaScript) xây dựng máy chủ back-end xử lý các RESTful API; và sử dụng hệ quản trị cơ sở dữ liệu đồ thị Neo4j kết hợp ngôn ngữ truy vấn Cypher để lưu trữ dữ liệu và tính toán các thuật toán gợi ý.


Kết luận

Khóa luận tốt nghiệp của tác giả Lê Thành An đã hoàn thành việc thiết kế và xây dựng ứng dụng thương mại điện tử EC Mobile tích hợp hệ thống gợi ý sản phẩm dựa trên nền tảng cơ sở dữ liệu đồ thị Neo4j, Node.js và React Native. Đề tài đã giải quyết bài toán hỗ trợ người dùng tìm kiếm sản phẩm phù hợp thông qua việc áp dụng thuật toán PageRank để xếp hạng sản phẩm nổi bật và thuật toán Node Similarity (Jaccard) để gợi ý cá nhân hóa dựa trên độ tương đồng hành vi. Mặc dù còn giới hạn thử nghiệm ở phạm vi phòng thí nghiệm với hơn 700 sản phẩm từ Tiki.vn, hệ thống đã chứng minh tính khả thi cao và tạo nền tảng vững chắc cho việc phát triển các ứng dụng thương mại điện tử thông minh.