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

Trong bối cảnh công nghệ thông tin và trí tuệ nhân tạo phát triển mạnh mẽ, các ứng dụng thông minh ngày càng thâm nhập sâu rộng vào đời sống lao động và giải trí của con người. Bên cạnh nhu cầu sinh hoạt thiết yếu, nhu cầu thưởng thức nghệ thuật và giải trí, đặc biệt là xem phim, đã trở thành một phần quan trọng trong đời sống tinh thần. Tuy nhiên, sự bùng nổ về số lượng tác phẩm điện ảnh dẫn đến tình trạng quá tải thông tin, khiến người dùng mất nhiều thời gian và công sức để lựa chọn được bộ phim phù hợp với sở thích cá nhân.

Về phía các đơn vị phát hành, rạp chiếu phim và nền tảng cung cấp dịch vụ, phương thức kinh doanh truyền thống đang bộc lộ nhiều điểm hạn chế:

  • Việc hiển thị áp phích (poster) và danh mục phim đại trà, thiếu tính cá nhân hóa cho từng nhóm đối tượng khách hàng.
  • Khách hàng gặp khó khăn khi phải tự tìm kiếm, cân nhắc hoặc xem thử phim mà không có công cụ định hướng, làm giảm sự hứng thú đối với dịch vụ.
  • Hoạt động quảng bá, tiếp thị nội dung tốn kém nhưng hiệu quả không cao do thiếu sự tập trung vào sở thích riêng biệt của từng người xem.

Trước thực trạng đó, nhóm tác giả thuộc Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh đã thực hiện đề tài môn học Đồ án 1: "Xây dựng ứng dụng đề xuất phim kết hợp sử dụng hai phương pháp: Latent Factor Collaborative Filtering using Deep Learning (LFCF-DL) và Content-Based Filtering".

Mục tiêu nghiên cứu của đề tài được xác định cụ thể:

  1. Mục tiêu chung: Nâng cao kiến thức chuyên môn về quy trình xây dựng phần mềm tích hợp các mô hình trí tuệ nhân tạo; vận dụng kiến thức lý thuyết đã học để phát triển sản phẩm có khả năng ứng dụng thực tế.
  2. Mục tiêu cụ thể: Xây dựng hoàn chỉnh một ứng dụng di động đề xuất phim thông minh trên nền tảng React Native, tích hợp mô hình học sâu Latent Factor Collaborative Filtering (LFCF-DL) và kỹ thuật lọc dựa trên nội dung (Content-Based Filtering).

Nhiệm vụ nghiên cứu bao gồm:

  • Nghiên cứu cơ sở lý thuyết về hệ thống khuyến nghị, kỹ thuật lọc cộng tác nhân tử ẩn kết hợp học sâu (LFCF-DL) và lọc theo nội dung.
  • Tìm hiểu và làm chủ công nghệ phát triển ứng dụng di động React Native và nền tảng cơ sở dữ liệu Firebase.
  • Khảo sát hiện trạng, phân tích yêu cầu nghiệp vụ và thiết kế hệ thống phần mềm bằng ngôn ngữ mô hình hóa UML.
  • Hiện thực hóa hệ thống cơ sở dữ liệu, huấn luyện mô hình học máy và lập trình hoàn thiện giao diện ứng dụng.

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

  • Đối tượng nghiên cứu: Các thuật toán gợi ý dữ liệu (LFCF-DL, Content-Based Filtering) và quy trình phát triển ứng dụng di động đa nền tảng.
  • Phạm vi dữ liệu: Bộ dữ liệu chuẩn MovieLens 100K phục vụ huấn luyện và kiểm thử mô hình.
  • Phạm vi hệ thống: Ứng dụng di động hỗ trợ người dùng cuối tìm kiếm, xem thông tin, nhận gợi ý và tương tác đánh giá phim.

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

Đề tài kết hợp cơ sở lý thuyết về học máy, học sâu và công nghệ phần mềm di động nhằm giải quyết bài toán gợi ý phim cá nhân hóa.

1. Khung lý thuyết và mô hình giải thuật

  • Latent Factor Collaborative Filtering using Deep Learning (LFCF-DL): Phương pháp lọc cộng tác dựa trên nhân tử ẩn nhằm học các đặc trưng tiềm ẩn của người dùng ($u_i$) và bộ phim ($v_j$) từ ma trận đánh giá (user-item rating data). Hệ thống sử dụng mạng neural nhân tạo với các lớp nhúng (Embedding layers).
    • Mỗi người dùng $i$ được ánh xạ thành một vector nhúng $u_i \in \mathbb{R}^k$.
    • Mỗi bộ phim $j$ được ánh xạ thành một vector nhúng $v_j \in \mathbb{R}^k$.
    • Điểm đánh giá dự đoán $\hat{r}{ij}$ giữa người dùng $i$ và bộ phim $j$ được tính toán qua tích vô hướng của hai vector nhúng: $\hat{r}{ij} = u_i^T v_j$ (có bổ sung các giá trị độ lệch - bias cho người dùng và phim). Ma trận nhúng người dùng $U$ có kích thước $m \times k$ (với $m$ người dùng), ma trận nhúng sản phẩm $V$ có kích thước $n \times k$ (với $n$ sản phẩm).
    • Quá trình huấn luyện sử dụng phương pháp tối ưu hóa Gradient Descent với giải thuật Adam Optimizer, mục tiêu tối thiểu hóa hàm mất mát sai số toàn phương trung bình (Mean Squared Error - MSE).
  • Content-Based Filtering: Phương pháp lọc dựa trên nội dung được nhóm áp dụng nhằm xử lý bài toán khởi đầu lạnh (cold-start) cho người dùng mới khi hệ thống chưa có lịch sử đánh giá. Mỗi bộ phim được mô tả qua tập thuộc tính (thể loại, từ khóa, diễn viên) và được vector hóa để đo độ tương đồng thông qua phép đo Cosine Similarity. Ngoài ra, phương pháp này còn kết hợp tính toán trọng số dựa trên số lượng đánh giá từ cộng đồng để ưu tiên các tác phẩm có độ tin cậy cao.
  • Nền tảng công nghệ phần mềm:
    • React Native: Framework phát triển ứng dụng di động đa nền tảng (Android và iOS) bằng ngôn ngữ JavaScript.
    • Thư viện bổ trợ: React Navigation (quản lý điều hướng màn hình), Redux (quản lý trạng thái ứng dụng), Axios (giao tiếp API).
    • Cơ sở dữ liệu & Dịch vụ nền: Nền tảng Firebase phục vụ lưu trữ dữ liệu và xác thực người dùng.

2. Phương pháp nghiên cứu thực tế

  • Phương pháp nghiên cứu lý thuyết: Tổng quan các tài liệu chuyên ngành về hệ thống gợi ý, giải thuật nhúng học sâu, cơ chế lọc nội dung và các tài liệu kỹ thuật về JavaScript, React Native, Firebase.
  • Phương pháp tổng hợp: Phân tích, so sánh ưu nhược điểm của từng phương pháp lọc dữ liệu, từ đó thiết kế mô hình lai (hybrid) kết hợp giữa LFCF-DL và Content-Based Filtering.
  • Phương pháp thực nghiệm: Thu thập bộ dữ liệu, tiền xử lý, phân chia tập dữ liệu để huấn luyện và đánh giá mô hình mạng neural; đồng thời tiến hành cài đặt ứng dụng thực tế trên thiết bị di động để kiểm thử toàn diện các luồng nghiệp vụ.

3. Nguồn dữ liệu thực nghiệm

Nghiên cứu sử dụng bộ dữ liệu chuẩn MovieLens 100K do tổ chức GroupLens phát hành (tải về từ trang chủ GroupLens):

  • Tổng số lượt đánh giá: 100.000 đánh giá (thang điểm từ 1 đến 5 sao).
  • Quy mô đối tượng: 943 người dùng và 1.682 bộ phim.
  • Tiêu chí ràng buộc: Mỗi người dùng trong tập dữ liệu đều có tối thiểu 20 lượt đánh giá.
  • Tỷ lệ phân chia dữ liệu: Tập huấn luyện (Train set) chiếm 80% tương đương 80.000 đánh giá; tập kiểm thử (Test set) chiếm 20% tương đương 20.000 đánh giá.

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

Hệ thống được thiết kế theo quy trình công nghệ phần mềm chuẩn, bao gồm mô hình hóa chức năng (UML), thiết kế cơ sở dữ liệu và triển khai giao diện người dùng.

1. Phân tích tác nhân và ca sử dụng (Use Case)

Hệ thống phân chia quyền hạn qua 2 tác nhân (Actor):

  • User: Khách hàng sử dụng ứng dụng di động để tìm kiếm, xem thông tin, nhận gợi ý và tương tác với các bộ phim.
  • Admin: Quản trị viên quản lý danh mục phim và thông tin người dùng trong hệ thống.
STT Tên Use-case Mục đích / Ý nghĩa
1 Đăng ký Cho phép người dùng mới tạo tài khoản truy cập vào hệ thống.
2 Đăng nhập Xác thực danh tính người dùng bằng tài khoản đã đăng ký.
3 Xem danh sách phim Hiển thị toàn bộ danh mục phim hiện có trên trang chính.
4 Tìm kiếm phim Truy vấn trực tiếp các bộ phim theo từ khóa yêu cầu của người dùng.
5 Đề xuất phim Đưa ra danh sách phim gợi ý dựa trên sở thích cá nhân và đánh giá cộng đồng.
6 Xem chi tiết phim Xem thông tin chi tiết, thao tác đánh dấu yêu thích, đã xem hoặc chấm điểm phim.

Nhóm tác giả đã hoàn thiện đặc tả chi tiết kèm theo Sơ đồ tuần tự (Sequence Diagram) và Sơ đồ hoạt động (Activity Diagram) cho toàn bộ 6 ca sử dụng chính nêu trên.

2. Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của ứng dụng được chuẩn hóa thành 3 bảng chính:

Bảng users (Lưu thông tin tài khoản người dùng):

STT Tên trường Kiểu dữ liệu Ràng buộc Mô tả
1 userId int Khóa chính (PK) Mã định danh người dùng
2 userName string Not null Tên tài khoản người dùng
3 email string Not null Địa chỉ email đăng ký
4 password string Not null Mật khẩu tài khoản

Bảng movies (Lưu trữ danh mục phim):

STT Tên trường Kiểu dữ liệu Ràng buộc Mô tả
1 movieId int Khóa chính (PK) Mã định danh bộ phim
2 title string Not null Tên tác phẩm điện ảnh
3 genres string Not null Các thể loại của bộ phim
4 image string Not null Đường dẫn hình ảnh/poster phim

Bảng Chitiet (Lưu trữ tương tác và đánh giá):

STT Tên trường Kiểu dữ liệu Ràng buộc Mô tả
1 userId int Khóa ngoại (FK) Mã người dùng thực hiện tương tác
2 movieId int Khóa ngoại (FK) Mã phim được tương tác
3 rating float Not null Điểm đánh giá (sao)
4 isFavorite bool Null Trạng thái yêu thích (True/False)
5 isWatched bool Null Trạng thái đã xem (True/False)

3. Cài đặt giao diện ứng dụng di động

Ứng dụng được cài đặt trên nền tảng React Native với 8 màn hình chức năng chính:

  1. Màn hình đăng nhập: Tiếp nhận thông tin tài khoản, kiểm tra xác thực với hệ thống.
  2. Màn hình đăng ký: Thu thập thông tin người dùng mới và khởi tạo tài khoản.
  3. Màn hình trang chủ: Hiển thị danh mục phim thịnh hành và danh sách phim gợi ý cá nhân hóa.
  4. Màn hình thông tin chi tiết phim: Trình bày tóm tắt nội dung, hình ảnh, thể loại, đồng thời cho phép thả tim (yêu thích), chuyển trạng thái đã xem và chấm điểm đánh giá.
  5. Màn hình phim theo thể loại: Phân loại và lọc danh sách phim theo các danh mục thể loại cụ thể.
  6. Màn hình phim yêu thích: Quản lý danh sách các bộ phim người dùng đã gắn cờ yêu thích.
  7. Màn hình phim đã xem: Thống kê lịch sử các bộ phim người dùng đã thưởng thức.
  8. Màn hình thông tin người dùng: Hiển thị và quản lý thông tin hồ sơ cá nhân.

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

Chương 1. Mở đầu

Chương 1 giới thiệu lý do chọn đề tài xuất phát từ sự bùng nổ của trí tuệ nhân tạo và nhu cầu giải quyết tình trạng quá tải thông tin trong việc lựa chọn phim giải trí. Tác giả xác định mục tiêu chung và mục tiêu cụ thể, nội dung nghiên cứu, phương pháp nghiên cứu (lý thuyết, tổng hợp, thực nghiệm), kết quả đạt được ban đầu và cấu trúc tổng thể của báo cáo khóa luận.

Chương 2. Cơ sở lý thuyết

Chương 2 trình bày chi tiết về nguồn dữ liệu và các nền tảng công nghệ cốt lõi:

  • Cấu trúc tập dữ liệu chuẩn MovieLens 100K gồm 100.000 đánh giá từ 943 người dùng cho 1.682 phim, được chia thành 80.000 mẫu huấn luyện và 20.000 mẫu kiểm thử.
  • Kiến trúc mạng neural LFCF-DL với các lớp Embedding biểu diễn người dùng và sản phẩm thành các vector nhúng $k$ chiều ($u_i, v_j$), tối ưu bằng hàm mất mát MSE và thuật toán Adam.
  • Cơ chế giải thuật Content-Based Filtering sử dụng không gian vector thuộc tính và độ tương đồng Cosine kết hợp lọc cộng tác để giải quyết bài toán người dùng mới.
  • Tổng quan về framework React Native, kiến trúc quản lý luồng điều hướng và trạng thái qua React Navigation, Redux, Axios và kết nối Firebase.

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

Chương 3 tập trung vào công tác kỹ thuật phần mềm:

  • Khảo sát thực trạng kinh doanh phim truyền thống và xác định yêu cầu nghiệp vụ của hệ thống quản lý đề xuất phim.
  • Xây dựng sơ đồ Use-case tổng quát với 2 Actor (User, Admin) và 6 Use-case cốt lõi.
  • Trình bày bảng đặc tả chi tiết, Sơ đồ tuần tự (Sequence Diagram) và Sơ đồ hoạt động (Activity Diagram) cho từng Use-case: Đăng ký, Đăng nhập, Xem danh sách phim, Tìm kiếm phim, Đề xuất phim, Xem chi tiết phim.
  • Thiết kế mô hình cơ sở dữ liệu quan hệ với 3 thực thể dữ liệu chính: users, movies, Chitiet.

Chương 4. Cài đặt ứng dụng

Chương 4 mô tả quá trình hiện thực hóa phần mềm trên thiết bị di động:

  • Trình bày kiến trúc và ảnh chụp giao diện của 8 màn hình chức năng: Đăng nhập, Đăng ký, Trang chủ, Chi tiết phim, Phim theo thể loại, Phim yêu thích, Phim đã xem, Thông tin người dùng.
  • Mô tả chi tiết các thành phần giao diện, luồng tương tác của người dùng từ bước tìm kiếm, xem phim đến thao tác chấm điểm đánh giá và lưu trữ trạng thái.

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

Chương 5 tổng kết toàn bộ kết quả đạt được của đồ án, đánh giá những mặt thuận lợi, khó khăn trong quá trình thực hiện và vạch ra các định hướng mở rộng, nâng cấp hệ thống trong tương lai.


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

1. Kết quả chính đạt được

  • Hoàn thành đúng tiến độ: Thực hiện đầy đủ các nội dung nghiên cứu lý thuyết và báo cáo môn học Đồ án 1 theo đúng kế hoạch đề ra.
  • Hiện thực hóa mô hình học sâu: Xây dựng và huấn luyện thành công mô hình gợi ý Latent Factor Collaborative Filtering using Deep Learning trên tập dữ liệu MovieLens 100K (100.000 đánh giá, 943 người dùng, 1.682 phim) với hàm mất mát MSE và bộ tối ưu Adam Optimizer.
  • Xây dựng phần mềm hoàn chỉnh: Triển khai thành công ứng dụng di động đa nền tảng bằng React Native kết nối cơ sở dữ liệu Firebase, tích hợp đầy đủ 6 nhóm chức năng nghiệp vụ và 8 giao diện người dùng trực quan, ổn định.

2. Giải pháp kỹ thuật được đề xuất

  • Đề xuất mô hình lai kết hợp giữa LFCF-DL và Content-Based Filtering: Mô hình LFCF-DL chịu trách nhiệm phân tích các đặc trưng ẩn từ lịch sử đánh giá của cộng đồng để đưa ra gợi ý chuyên sâu, trong khi Content-Based Filtering đóng vai trò giải quyết bài toán khởi đầu lạnh (cold-start) cho người dùng mới dựa trên việc lựa chọn thể loại ban đầu kết hợp trọng số số lượng đánh giá.

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

  • Cung cấp tài liệu hoàn chỉnh về quy trình phân tích thiết kế hệ thống thông tin cho một ứng dụng gợi ý thông minh, từ khảo sát hiện trạng, mô hình hóa UML đến thiết kế lược đồ cơ sở dữ liệu.
  • Minh chứng tính khả thi của việc tích hợp các mô hình học sâu biểu diễn vector tiềm ẩn vào ứng dụng di động thực tế, tạo ra công cụ hỗ trợ người dùng tiếp cận tác phẩm điện ảnh phù hợp một cách nhanh chóng.

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

Dựa trên phạm vi nghiên cứu và nội dung được trình bày trong Chương 5 của báo cáo, các hạn chế và định hướng phát triển bao gồm:

  • Hạn chế:
    • Quy mô dữ liệu thực nghiệm mới dừng lại ở bộ dữ liệu MovieLens 100K với 943 người dùng và 1.682 phim; chưa thử nghiệm trên các tập dữ liệu lớn hơn ở quy mô hàng triệu lượt đánh giá.
    • Các thuộc tính mô tả phim phục vụ Content-Based Filtering chủ yếu dựa vào thể loại, chưa tích hợp sâu các dữ liệu phi cấu trúc phức tạp như phân tích văn bản kịch bản hay thị giác máy tính trên trailer/poster phim.
  • Hướng phát triển tiếp theo:
    • Mở rộng quy mô huấn luyện mô hình trên các tập dữ liệu lớn hơn (như MovieLens 1M, MovieLens 20M) nhằm nâng cao độ chính xác và khả năng khái quát hóa.
    • Bổ sung và tinh chỉnh các lớp mạng trong kiến trúc Deep Learning, tích hợp thêm các yếu tố ngữ cảnh (thời gian xem, địa điểm, tâm trạng) vào mô hình gợi ý.
    • Nâng cấp hệ thống quản trị (Admin Dashboard) để theo dõi thống kê chi tiết lượt xem, đánh giá và quản lý danh mục phim linh hoạt theo thời gian thực.

Giá trị tham khảo

Tài liệu báo cáo đồ án có giá trị tham khảo hữu ích cho các nhóm đối tượng:

  • Sinh viên ngành Công nghệ Phần mềm, Công nghệ Thông tin, Khoa học Dữ liệu: Là tài liệu tham khảo thực tế về cách triển khai một đề tài kết hợp giữa mô hình học máy (Machine Learning/Deep Learning) và kỹ thuật lập trình ứng dụng di động (Mobile App Development).
  • Người nghiên cứu hệ thống khuyến nghị (Recommender Systems): Cung cấp công thức toán học, kiến trúc lớp nhúng (Embedding) trong mô hình LFCF-DL và cách tiếp cận kết hợp Content-Based Filtering để xử lý bài toán Cold-start.
  • Nhà phát triển phần mềm ứng dụng: Cung cấp mẫu thiết kế hoàn chỉnh từ sơ đồ Use-case, sơ đồ tuần tự, sơ đồ hoạt động đến thiết kế cơ sở dữ liệu quan hệ cho các hệ thống quản lý và tương tác nội dung đa phương tiện.

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

1. Đồ án sử dụng bộ dữ liệu nào để huấn luyện mô hình và tỷ lệ phân chia ra sao?
Đồ án sử dụng bộ dữ liệu chuẩn MovieLens 100K từ GroupLens, bao gồm 100.000 đánh giá (thang điểm 1–5) của 943 người dùng cho 1.682 bộ phim (mỗi người dùng có ít nhất 20 đánh giá). Dữ liệu được chia theo tỷ lệ Train/Test là 8:2, tương ứng 80.000 đánh giá cho tập huấn luyện và 20.000 đánh giá cho tập kiểm thử.

2. Mô hình LFCF-DL trong báo cáo dự đoán điểm đánh giá dựa trên nguyên lý gì?
Mô hình sử dụng các lớp nhúng (Embedding layers) để biểu diễn người dùng $i$ thành vector $u_i \in \mathbb{R}^k$ và bộ phim $j$ thành vector $v_j \in \mathbb{R}^k$. Điểm đánh giá dự đoán được tính bằng tích vô hướng $\hat{r}_{ij} = u_i^T v_j$ (có cộng thêm độ lệch - bias). Quá trình huấn luyện sử dụng thuật toán tối ưu Adam để cực tiểu hóa hàm mất mát sai số toàn phương trung bình (MSE).

3. Phương pháp Content-Based Filtering được nhóm tác giả ứng dụng nhằm mục đích gì?
Phương pháp Content-Based Filtering được sử dụng chủ yếu để đề xuất phim cho người dùng mới (giải quyết bài toán cold-start) dựa trên các thể loại họ lựa chọn ban đầu, đồng thời kết hợp tính toán trọng số số lượng đánh giá từ cộng đồng để ưu tiên các bộ phim có độ tin cậy cao.

4. Ứng dụng di động được xây dựng bằng công nghệ gì và gồm những màn hình nào?
Ứng dụng được phát triển bằng framework React Native (ngôn ngữ JavaScript) kết hợp nền tảng Firebase, sử dụng Redux, React Navigation và Axios. Giao diện bao gồm 8 màn hình: Đăng nhập, Đăng ký, Trang chủ, Chi tiết phim, Phim theo thể loại, Phim yêu thích, Phim đã xem và Thông tin người dùng.

5. Cơ sở dữ liệu của hệ thống gồm những bảng nào?
Cơ sở dữ liệu gồm 3 bảng: users (lưu thông tin người dùng: userId, userName, email, password), movies (lưu thông tin phim: movieId, title, genres, image) và Chitiet (lưu quan hệ và tương tác: userId, movieId, rating, isFavorite, isWatched).


Kết luận

Báo cáo cuối kỳ môn học Đồ án 1 của nhóm sinh viên Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM đã hoàn thành việc xây dựng ứng dụng đề xuất phim cá nhân hóa kết hợp hai phương pháp LFCF-DL và Content-Based Filtering. Đề tài đã phân tích và mô hình hóa chi tiết hệ thống bằng chuẩn UML, thiết kế cơ sở dữ liệu quan hệ chặt chẽ và triển khai thành công giao diện ứng dụng di động trên nền tảng React Native. Kết quả nghiên cứu là tài liệu tham khảo có giá trị thực tiễn cho việc tích hợp các mô hình trí tuệ nhân tạo vào quy trình phát triển phần mềm ứng dụng di động.