1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng hệ thống đề xuất phim anime

61 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN XÂY DỰNG HỆ THỐNG ĐỀ XUẤT PHIM ANIME GVHD: ThS QCH ĐÌNH HỒNG SVTH : NGUYỄN QUỐC BẢO VÕ HOÀNG KHẢ DIỆU SKL011256 Tp Hồ Chí Minh, tháng năm 2023 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN  NGUYỄN QUỐC BẢO: 19133002 VÕ HOÀNG KHẢ DIỆU: 19133014 Đề tài: XÂY DỰNG HỆ THỐNG ĐỀ XUẤT PHIM ANIME KHÓA LUẬN TỐT NGHIỆP NGÀNH KỸ THUẬT DỮ LIỆU GIÁO VIÊN HƯỚNG DẪN ThS Qch Đình Hồng KHÓA 2019 – 2023 ĐH SƯ PHẠM KỸ THUẬT TP.HCM CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA CNTT Độc lập – Tự – Hạnh Phúc ******** ******** PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên 1: Nguyễn Quốc Bảo MSSV: 19133002 Họ tên Sinh viên 2: Võ Hoàng Khả Diệu MSSV: 19133014 Ngành: Kỹ thuật liệu Tên đề tài: XÂY DỰNG HỆ THỐNG ĐỀ XUẤT PHIM ANIME Họ tên giáo viên hướng dẫn: ThS.Qch Đình Hồng NHẬN XÉT Về nội dung đề tài khối lượng thực hiện: ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… Ưu điểm: ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… Khuyết điểm ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… Điểm: Tp Hồ Chí Minh, ngày tháng năm 2023 Giáo viên hướng dẫn (Ký & ghi rõ họ tên) PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên 1: Nguyễn Quốc Bảo MSSV: 19133002 Họ tên Sinh viên 2: Võ Hoàng Khả Diệu MSSV: 19133014 Ngành: Kỹ thuật liệu Tên đề tài: XÂY DỰNG HỆ THỐNG ĐỀ XUẤT PHIM ANIME Họ tên giáo viên phản biện: NHẬN XÉT Về nội dung đề tài khối lượng thực hiện: ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… Ưu điểm: ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… Khuyết điểm ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… Điểm: Tp Hồ Chí Minh, ngày tháng năm 2023 Giáo viên phản biện (Ký & ghi rõ họ tên) LỜI CAM ĐOAN Tiểu luận cơng trình nghiên cứu chúng tôi, thực hướng dẫn khoa học thầy Qch Đình Hồng Các số liệu, kết luận nghiên cứu sản phẩm tạo chúng tơi trình bày khố luận trung thực Chúng tơi xin hồn tồn chịu trách nhiệm lời cam đoan Sinh viên thực Sinh viên thực (Ký ghi rõ họ tên) (Ký ghi rõ họ tên) Nguyễn Quốc Bảo Võ Hoàng Khả Diệu LỜI CẢM ƠN Một khóa luận tốt nghiệp trơi qua để lại nhiều cảm xúc Chúng xin gửi lời cảm ơn chân thành đến Thầy Qch Đình Hồng Cảm ơn thầy cung cấp tài liệu hướng dẫn tận tình cho chúng tơi suốt trình thực tiểu luận chuyên ngành, Thầy theo dõi tiến độ giải đáp, chia sẻ giúp chúng tơi vượt qua khó khăn Chúng trân quý tâm huyết trách nhiệm Thầy công việc giảng dạy truyền đạt kiến thức Chúng xin gửi lời cảm ơn sâu sắc đến Thầy Cô khoa Công nghệ Thông tin - Đại học Sư phạm Kỹ thuật TP.HCM đồng hành hỗ trợ chúng tơi suốt q trình học tập thực tiểu luận Chúng xin cảm ơn trường Đại học Sư phạm Kỹ thuật tạo nhiều điều kiện thuận lợi cho hoạt động phục vụ học tập sinh viên chúng tôi, đặc biệt thư viện số với nguồn tri thức vô tận Chúng gửi lời cảm ơn chân thành đến bạn khóa 2019 ngành Kỹ thuật Dữ liệu, cảm ơn góp ý chia sẻ quý giá từ tất bạn Cảm ơn động viên từ bạn để nhóm chúng tơi giữ vững tinh thần thực khóa luận tiến độ Những giá trị cốt lõi nhà trường, Thầy Cô bạn bè mang đến, ghi nhớ để làm động lực thúc đẩy thân phát triển hồn thiện Cuối cùng, chúng tơi xin cám ơn đến tác giả báo khoa học mà tham khảo Các báo giúp tiếp thu nhiều kiến thức quan trọng hiểu rõ đề tài nghiên cứu Chúng nhận thấy thân có khuyết điểm thiếu sót cần cố gắng cải thiện để tốt hơn, hướng tới mục tiêu lớn tương lai Xin chân thành cảm ơn! TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN o-ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP Họ tên SV thực 1: Nguyễn Quốc Bảo MSSV: 19133002 Họ tên SV thực 2: Võ Hoàng Khả Diệu MSSV: 19133014 Thời gian làm luận văn: Từ: 02/2023 Đến: 07/2023 Chuyên ngành: Kỹ thuật liệu Tên luận văn: Xây dựng hệ thống đề xuất phim Anime Giáo viên hướng dẫn: Ths Qch Đình Hồng NHIỆM VỤ CỦA LUẬN VĂN Nhiệm vụ luận văn áp dụng vài thuật toán học máy vào tập liệu để đưa kết đề xuất phim tối ưu cho người dùng Sau đó, luận văn tập trung vào tiến hành đánh giá hiệu số thuật tốn từ xây dựng giao diên hệ thống đề xuất phim cho người dùng Để đạt điều đó, chúng tơi tập trung tìm hiểu số vấn đề sau: Tìm hiểu tổng quan hệ thống đề xuất Tìm hiểu tổng quan thuật tốn đề xuất Tìm hiểu tổng quan cơng nghệ, kỹ thuật cần sử dụng Tìm hiểu tập liệu Tiến hành xây dựng mô hình đề xuất Xây dựng giao diện người dùng cho hệ thống đề xuất phim KẾ HOẠCH THỰC HIỆN STT Thời gian Cơng việc dự kiến Tìm hiểu tống quan hệ thống đề xuất 14/2 - 27/2 28/2 – 10/3 Tìm hiểu thuật tốn đề xuất 11/3 – 17/3 Tìm hiểu thuật tốn Collaborative Filtering 18/3 – 24/3 Tìm hiểu ALS tham số 25/3 – 8/4 Tìm hiểu ALS tham số (tiếp theo) Tìm hiểu liệu sử dụng 9/4 – 15/4 Tìm hiểu ngơn ngữ lập trình Python 16/4 – 29/4 Tìm hiểu tiền xử lí liệu với tập liệu đầu vào chọn 30/4 – 5/5 6/5 – 12/5 10 13/5 – 19/5 11 20/5 – 26/5 Nghiên cứu công nghệ: Flask API Tiến hành xây dựng mơ hình đề xuất Kiểm tra độ xác mơ hình điều parameter Hồn thành mơ hình dự đốn Ngun cứu Web-service Viết báo cáo Xây dựng hệ thống đề xuất phim Anime cho người dùng Viết báo cáo 12 27/5 – 3/6 Hồn thành tính cho hệ thống Chuẩn bị phần thuyết trình 13 4/6 – 10/6 14 11/6 – 25/6 Viết báo cáo Tiến hành kiểm tra tính hệ thống đề xuất Hoàn thiện báo cáo Kiểm tra kiểm thử hệ thống Ý kiến giảng viên hướng dẫn TP Thủ Đức, Ngày … Tháng…Năm (Ký ghi rõ họ tên) Người viết đề cương MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN PHẦN 1: MỞ ĐẦU 13 Giới thiệu toán 13 Mục tiêu 14 Bố cục 14 PHẦN 2: NỘI DUNG 15 CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG ĐỀ XUẤT 15 1.1 Khái niệm hệ thống đề xuất 15 1.2 Lịch sử 15 1.3 Kiến trúc 16 1.3 Tại phải sử dụng hệ thống gợi ý 17 CHƯƠNG 2: TỔNG QUAN VỀ CÁC THUẬT TỐN TRONG HỆ THỐNG 19 2.1 Thuật tốn Content-Based 19 2.1.1 Khái niệm 19 2.1.2 Utility matrix 19 2.1.3 Cách thuật toán lọc thường hoạt động 20 2.1.4 Xây dựng hàm mát 21 2.2 Thuật toán Collaborating Filtering 23 2.2.1 Khái niệm 23 2.2.2 Cách thuật toán hoạt động 24 2.2.3 Thuật toán ALS ( Alternating Least Square ) 25 2.2.4 Nguyên lý hoạt động thuật toán ALS (Alternating least squares) 27 2.2.4 Các tham số thuật toán ALS (Alternating least squares) 28 CHƯƠNG 3: CÁC CÔNG NGHỆ VÀ NỀN TẢNG SỬ DỤNG 30 3.1 Ngơn ngữ lập trình Python 30 3.2 Flask API 31 3.3 React JS 34 3.3.1 Các lợi ích việc sử dụng React.js 34 3.3.2 Các tính React 35 3.4 Công nghệ Node JS 36 3.4.1 Ứng dụng Node JS 36 3.4.2 Ưu nhược điểm công nghệ Node JS 37 3.5 Docker 37 3.6 Apache Spark 39 CHƯƠNG 4: TẬP DỮ LIỆU VÀ XÂY DỰNG MÔ HÌNH DỰ ĐỐN 44 4.1 Tổng quan tập liệu 44 4.2 Xây dựng mơ hình đoán 45 4.2.1 Xử lí liệu 45 4.2.2 Chọn tham số ( Parameter ) cho thuật toán 46 4.2.3 Đánh giá độ xác mơ hình 46 4.2.4 Thực nghiệm kết đánh giá 47 CHƯƠNG 5: XÂY DỰNG GIAO DIỆN NGƯỜI DÙNG CHO HỆ THỐNG 49 5.1 Xây dựng API 49 5.2 Triển khai API web phim Anime 50 5.3 Giao diện chức trang Web 51 5.3.1 Chức Đăng ký đăng nhập 51 5.3.2 Chức Recommend Anime 52 10 Trong đó: • n số lượng điểm liệu quan sát • y_pred giá trị dự đốn • y_actual giá trị thực tế RMSE hữu ích làm việc với biến số liên tục số học Nó cung cấp đánh giá độ lớn trung bình sai số dự đốn, với giá trị cao thể sai số lớn Bằng cách lấy bậc hai trung bình sai số bình phương, RMSE cho giá trị đơn vị với biến số gốc, giúp dễ dàng hiểu diễn giải Tóm lại, RMSE số phổ biến để đánh giá độ xác dự đốn mơ hình cách đo lường sai số trung bình giá trị dự đốn giá trị thực tế, bao gồm hướng độ lớn sai số 4.2.4 Thực nghiệm kết đánh giá Trước tiên, nhóm em lựa chọn thuật tốn ALS (Alternating Least Square) để tiến hành thực nghiệm Độ đo sử dụng RMSE (Root Mean Square Error) Đầu tiên nhóm sử dụng kĩ thuật Grid search để lựa chọn tham số, nhóm tạo lưới giá trị để tìm kiếm tham số phù hợp với mơ hình Hình Giá trị tham số Đối với tham số tiến hành đánh giá độ xác thơng qua độ đo RMSE Ở bước nhóm sử dụng tập Validation để sử dụng cho phần hiệu chỉnh tham số 47 Hình Kết đánh giá tham số chọn Theo kết tìm tham số, nhóm chọn tham số cho model rank = 20, maxIter = 15 regParam = 0.1, với RMSE = 0.9388 Sau tìm tham số phù hợp nhóm tiến hành đánh giá độ xác tập testing cho kết RMSE = 0.6544 Kết cho thấy mơ hình nhóm xây dựng có độ tin cậy tương đối Sai số cho rating chạy mơ hình dự đốn khoảng điểm (cho thang điểm 5) 48 CHƯƠNG 5: XÂY DỰNG GIAO DIỆN NGƯỜI DÙNG CHO HỆ THỐNG 5.1 Xây dựng API Flask thư viện dành cho Python Rất dễ dàng để bắt đầu API web, cách nhập vào tập lệnh chúng em sử dụng số thích để liên kết điểm cuối dịch vụ chúng em với hàm Python Trong trường hợp chúng em, phương pháp RecommendationEngine xung quanh số end-points trao đổi liệu có định dạng JSON với ứng dụng web Với create_app Tại đây, đối tượng Recommendation Engine tạo sau chúng em kết hợp thích @ main.route xác định Mỗi thích xác định : Một URL chứa tham số Chúng ánh xạ tới đối số hàm Có ba số thích xác định, tương ứng với ba phương thức RecommendationEngine: GET / / rating / top nhận đề xuất hàng đầu từ engine GET / / xếp hạng nhận xếp hạng dự đoán cho phim POST / / xếp hạng thêm xếp hạng Định dạng chuỗi dòng (kết thúc dấu phân cách dòng mới) với movie_id xếp hạng phân tách dấu phẩy Ví dụ: tệp sau tương ứng với mười xếp hạng người dùng sử dụng làm ví dụ: [{{"movieId":"5114","rating":"5.005904"}, {"movieId":"11757","rating":"3.9983082"}, {"movieId":"21881","rating":"3.7371461"}, {"movieId":"10793","rating":"3.5269465"}, {"movieId":"6702","rating":"3.3817616"}, {"movieId":"28171","rating":"3.2254221"}, {"movieId":"24415","rating":"3.2254221"}, {"movieId":"16894","rating":"3.2254221"}, {"movieId":"16498","rating":"3.2254221"}, {"movieId":"11771","rating":"3.2122562"}}] 49 5.2 Triển khai API web phim Anime Ở web phim gợi ý nhóm em sử dụng REACT.js để làm giao diện liệu load từ Spark SQL Và gọi thêm liệu từ api WEB phim https://www.miyou.me/ Nhóm chúng em ứng dụng sử dụng data load từ API phim để lưu liệu phim lớn server giúp trải nghiệm từ người dung nâng cao Sơ lược UI hệ thống: 50 Hình Giao diện phim phổ biến 5.3 Giao diện chức trang Web Nhóm em chọn trang web https://www.miyou.me/ - trang web phim Anime để tham khảo phần giao diện ứng dụng, thêm vào chức mà nhóm em phát triển thêm phần giao diện tính hệ thống gợi ý phim 5.3.1 Chức Đăng ký đăng nhập Ở giao diện chính, có chức login tài khoản người dùng Ở chức này, người dùng đăng ký tài khoản login tài khoản có để đăng nhập vào trang web Ở mục Đăng ký người dùng cần tạo tài khoản cho tên username không tồn trước 51 Hình Giao diện đăng ký tài khoản Để đăng nhập vào trang web cần có username password xác đăng ký trước Hình 10 Giao diện đăng nhập 5.3.2 Chức Recommend Anime 52 Sau người dùng đăng nhập vào trang web hệ thống dựa vào lịch sử xem phim đánh giá người dùng dựa người dùng khác có sở thích tương tự để gợi ý cho người dùng phim Anime phù hợp Ngoài chức này, người dùng Filter Anime theo tên, thể loại khoảng đánh giá tùy theo sở thích Hình 11 Giao diện chức Recommend Anime 5.3.3 Chức tìm kiếm Anime theo tên Ở giao diện chính, có mục tìm kiếm “search” có chức giúp người dùng tìm kiếm phim theo tên phim Anime cách nhanh chóng 53 Kết tìm kiếm: Hình 12 Chức tìm kiếm 5.3.4 Chức xem phim đánh giá Ở chức người dùng xem thơng tin phim, xem mô tả phim, thể loại, số lượng tập phim, thơng tin khác đánh giá 54 rating cho phim, đánh giá lưu database để sử dụng cho chức recommend Anime Ngồi xem phim có gợi ý thêm Anime có liên quan tới phim mà người dùng xem 55 Hình 13 Chức xem phim đánh giá 5.3.5 Chức quản lý thông tin người dùng Ở chức này, người dùng quản lý thơng tin cá nhân Tại mục “profile” người dùng chỉnh sửa thơng tin tài khoản, quản lý thông tin lịch sử đánh giá 56 Hình 14 Chức quản lý thông tin tài khoản 57 PHẦN 3: KẾT LUẬN 3.1 KẾT QUẢ ĐẠT ĐƯỢC Chúng em xây dựng mơ hình gợi ý phim dựa thuật toán Collaborative Filtering (lọc cộng tác) với độ xác tương đối Chúng em có xây dựng chức để người dùng tương tác với hệ thống thông qua API Xử lý model tập liệu lớn áp dụng Apache Spark RDD trình xử lý liệu, train test model Áp dụng lưu liệu ban đầu sau thu thập model dạng HDFS (Hadoop Distributed File System) Train model mơ hình học máy Spark (Apache Spark MLib) tận dụng tối ưu tài nguyên server tăng tính ổn định cho model recommendation engine Nghiên cứu việc tạo Flask app để chuyển số liệu sang Spark Đưa giải pháp đóng gói cho web xem phim chưa có nhiều liệu người dùng cập nhật liệu người dùng phù hợp theo trang web xem phim Đưa gợi ý cho người dùng thuận tiện xử dụng trang web Ngoài ra, chúng em xây dựng giao diện Web để người dùng tương tác trực tiếp Giao diện Web thể rõ thông tin phim, TV Show, diễn viên người dùng xem trailer phim 3.2 ƯU ĐIỂM Ưu điểm hệ thống: - Mơ hình đạt độ xác tương đối cao - Xử lý giao tiếp Recommendation engine với website - Có giao diện web để người dùng tương tác tốt - Thể thông tin chi tiết đối tượng thông qua giao diện Web: đạo diễn, diễn viên, năm sản xuất, lượt đánh giá trailer - Có chức lọc phim theo lượt đánh giá thể loại phim - Xây dựng hệ thống công nghệ API giúp dễ dàng xử dụng với tất trang web xem phim 58 3.3 NHƯỢC ĐIỂM Nhược điểm hệ thống: - Dữ liệu q lớn xây dựng mơ hình phức tạp nên thời gian xử lý chưa đáp ứng tốc độ cao - Chưa có chức xem phim trực tiếp web vấn đề quyền 3.4 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI Hướng phát triển nhóm: - Tối ưu hoá hệ thống giúp gợi ý nhanh xác Gợi ý cho người dùng xác đến tầng liệu chi tiết ví dụ quốc gia, giới tính , khu vực độ tuổi Xây dựng gợi ý phim mô hình spark streaming để cao trải nghiệm xử lý hệ thống - Tối ưu hoá thuật toán Collaborative Filtering tập liệu đánh giá người dùng thể loại phim - Hoàn thiện hệ thống gợi ý phim đóng gói thành package, giúp cho trang web xem phim nâng cao khả tương tác người dùng như: Netflix, Disney, - Xây dựng thêm API là: comment, lọc comment, thời lượng xem phim người dùng 59 TÀI LIỆU THAM KHẢO [1] Hangartner, Rick, "What is the Recommender Industry?", MSearchGroove, December 17, 2007 [2] Kevin Liao, Nov 17, 2018, Alternating Least Square (ALS) from https://towardsdatascience.com/prototyping-a-recommender-system-step-by-step-part-2alternating-least-square-als-matrix-4a76c58714a1 [3] Congcong Wang, Collaborative Filtering Algorithms from https://wangcongcong123.github.io/files/bechelor-thesis/report.pdf [4] Tiep Vu Huu, Content-based Recommendation Systems, from https://machinelearningcoban.com/2017/05/17/contentbasedrecommendersys/ [5] Python, Why "Python." Python Releases for Windows 24 (2021) [6] SPARK, Apache Apache spark Retrieved January, 2018, 17.1: 2018 [7] Node JS, from https://www.tutorialspoint.com/nodejs [8] Zhaoyang Wang et al 2022 J Phys.: Conf Ser 2219 012047 [9] Hyperparameter Tuning The Alternating Least-Squares Algorithm for A Recommender System., Posted on February 27, 2019 60 S K L 0

Ngày đăng: 08/12/2023, 15:31

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w