1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa

137 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Đồ Án 1 Nghiên Cứu Các Thuật Toán Khuyến Nghị (Recommender Algorithms) Và Xây Dựng Ứng Dụng Minh Họa
Tác giả Nguyễn Tuấn Bảo, Nguyễn Tiến Anh
Người hướng dẫn Nguyễn Tấn Toàn
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 137
Dung lượng 15,54 MB

Nội dung

Đề tài "Nghiên cứu các thuật toánkhuyến nghị và xây dựng ứng dụng minh họa" được chọn nhằm mục đích:  Hiểu rõ các nguyên lý và thuật toán khuyến nghị phổ biến Để có thể phát triển các ứ

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Nguyễn Tấn Toàn

NHÓM SINH VIÊN THỰC HIỆN:

1 Nguyễn Tuấn Bảo MSSV: 21520620

2 Nguyễn Tiến Anh MSSV: 21520579

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

……., ngày…… tháng……năm 2023

Người nhận xét

(Ký tên và ghi rõ họ tên)

Trang 3

Lời đầu tiên, nhóm chúng em xin gửi lời cảm ơn sâu sắc đến Giảng viên Nguyễn Tấn Toàn, người đã hỗ trợ, hướng dẫn nhóm và tạo điều

kiện tốt nhất để nhóm hoàn thành đề tài nghiên cứu này Với sự hỗ trợnhiệt tình của thầy, cuối cùng nhóm em cũng đã hoàn thiện những kiếnthức cần thiết thông qua việc nghiên cứu và học hỏi những kiến thức mới

Nhóm chúng em sẽ cố gắng ngày càng hoàn thiện mình hơn trongtương lai và tiếp tục học tập chăm chỉ để đạt được kết quả tốt nhất

Trong quá trình làm Đồ án này nhóm chúng em không tránh khỏiđược những sai sót, nhóm kính mong nhận được sự chỉ dẫn và góp ý củaquý thầy cô để hoàn thiện và phát triển đồ án hơn

Nhóm chúng em xin chân thành cảm ơn Xin chúc những điều tốtđẹp nhất sẽ luôn đồng hành cùng mọi người

Thành phố Hồ Chí Minh, tháng 12 năm 2023

Trang 4

Bảng 1: Bảng phân công, đánh giá thành viên

- Xây dựng Golangbackend server

- Code toàn bộ UI

và logic frontendcủa sản phẩmdemo

- Viết chương 5,6

10/10

Trang 5

DANH MỤC HÌNH ẢNH 6

DANH MỤC BẢNG 11

DANH MỤC TỪ VIẾT TẮT 13

CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN 14

1.1 Lý do chọn đề tài 14

1.2 Mục tiêu của đề tài 14

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

1.3.1 Phạm vi môi trường: 15

1.3.2 Phạm vi chức năng: 15

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 17

2.1 Conda Navigator 17

2.2 Jupyter Notebook 17

2.3 Tensorflow 18

2.3.1 Giới thiệu về Tensorflow 19

2.3.2 Các thuộc tính cơ bản của Tensorflow 19

2.3.3 Các lý do nên sử dụng Tensorflow 20

2.4 MongoDB 20

2.5 Visual Studio Code 21

2.6 Golang 23

2.7 React 24

CHƯƠNG 3 NGHIÊN CỨU VÀ SO SÁNH THUẬT TOÁN 26

3.1 Cách cài đặt môi trường chạy thuật toán 26

3.1.1 Cài đặt Anaconda Navigator 26

3.1.2 Cách cài đặt Tensorflow 2.0 trong môi trường Anaconda 29

Trang 6

3.5 Thông số đánh giá thuật toán 31

3.5.1 Root Mean Square Error (RMSE) 31

3.6 Dataset 32

3.6.1 Bối cảnh 32

3.6.2 Nội dung của dataset 32

3.6.3 Bản quyền sử dụng 33

3.6.4 Phạm vi sử dụng 33

3.7 Content-based Recommendation 34

3.7.1 Ý tưởng chính và cơ sở lý thuyết 34

3.7.2 Triển khai thuật toán 38

3.7.3 Đánh giá 43

3.8 Collaborative Filtering (User-user) 43

3.8.1 Ý tưởng chính và cơ sở lý thuyết 43

3.8.2 Triển khai thuật toán 47

3.8.3 Đánh giá 51

3.9 Content-based Recommendation sử dụng Cosine-Similarity 51 3.9.1 Ý tưởng chính và cơ sở lý thuyết 51

3.9.2 Triển khai thuật toán 51

3.9.3 Đánh giá 53

3.10 Matrix Factorization 53

3.10.1 Ý tưởng chính và cơ sở lý thuyết 53

3.10.2 Triển khai thuật toán 55

3.10.3 Đánh giá 61

3.11 Weighted Hybrid Recommendation 61

Trang 7

3.11.2 Triển khai thuật toán 62

3.11.3 Đánh giá 65

3.12 Tensorflow Recommendation 65

3.12.1 Ý tưởng chính và cơ sở lý thuyết 65

3.12.1.1 Deep Learning 65

3.12.1.2 tensorflow-recommender 67

3.12.2 Triển khai thuật toán 67

3.12.3 Đánh giá 71

3.13 Nhận xét sau cùng 71

CHƯƠNG 4 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 73

4.1 Sơ đồ Use-case 73

4.1.1 Sơ đồ Use-case tổng quát 73

4.1.2 Sơ đồ Use case chi tiết 74

4.1.3 Danh sách Actor 75

4.1.4 Danh sách Use-case 75

4.2 Đặc tả Use-case và sơ đồ hoạt động (Activity Diagram) 75

4.2.1 See Personal Movie Recommendation (Xem đề xuất phim cá nhân) 75

4.2.2 See Leaderboard (Xem leaderboard) 77

4.2.3 See Top Rated Movies (Xem các phim được đánh giá cao) 78

4.2.4 Join Discussion (Tham gia thảo luận) 80

4.2.5 Account Management (Quản lý tài khoản) 82

4.2.6 Search Movies (Tìm kiếm phim) 84

4.2.7 See Movie Details (Xem chi tiết phim) 86

4.3 Sơ đồ tuần tự (Sequence Diagram) 89

Trang 8

4.3.3 See Top Rated Movies (Xem các phim được đánh giá cao) 91

4.3.4 Join Discussion (Tham gia thảo luận) 92

4.3.5 Account Management (Quản lý tài khoản) 93

4.3.6 Search Movies (Tìm kiếm phim) 94

4.3.7 See Movie Details (Xem chi tiết phim) 95

4.4 Phân tích và thiết kế cơ sở dữ liệu 97

4.4.1 Mô hình quan hệ 97

4.4.2 Mô tả các kiểu dữ liệu 97

4.4.3 movies 97

4.4.4 users 98

4.4.5 ratings 99

4.4.6 crew 99

4.4.7 cast 100

4.4.8 keywords 100

4.4.9 discussion_movies 100

4.4.10 discussion_part 101

4.4.11 user_reviews 101

4.4.12 similar_movies 102

4.4.13 leaderboard 102

4.4.14 top_rated_movies 102

CHƯƠNG 5 CÀI ĐẶT VÀ TRIỂN KHAI HỆ THỐNG 103

5.1 Môi trường cài đặt 103

5.1.1 Cấu hình cài đặt 103

5.1.2 Môi trường phát triển và triển khai hệ thống 103

5.1.2.1 Môi trường phát triển 103

Trang 9

5.1.2.3 Cách cài đặt và chạy chương trình 103

5.2 Màn hình giao diện 107

5.2.1 Trang chủ 107

5.2.2 Đăng nhập, đăng ký 109

5.2.3 Chi tiết phim 111

5.2.4 Hồ sơ người dùng 113

5.2.5 Danh sách đoàn làm phim 114

5.2.6 Discussion 115

CHƯƠNG 6 TỔNG KẾT 118

6.1 Kết quả đạt được 118

6.1.1 Lý thuyết 118

6.1.2 Công nghệ 118

6.1.3 Ứng dụng 118

6.2 Hạn chế 118

6.3 Hướng phát triển 118

6.3.1 Về hệ thống 119

6.3.2 Về con người 119

TÀI LIỆU THAM KHẢO 120

Trang 10

Ảnh 2.1 Anaconda 17

Ảnh 2.2 Jupyter 18

Ảnh 2.3 Tensorflow 19

Ảnh 2.4 MongoDB 21

Ảnh 2.5 VS Code 22

Ảnh 2.6 Golang 23

Ảnh 2.7 React 24

Ảnh 3.1 Trình cài anaconda 26

Ảnh 3.2 Trang chủ website anaconda 26

Ảnh 3.3 Hoàn tất cài đặt anaconda 27

Ảnh 3.4 Mở anaconda 27

Ảnh 3.5 Giao diện anaconda 28

Ảnh 3.6 Mở anaconda prompt 29

Ảnh 3.7 Xem môn trường trong anaconda 29

Ảnh 3.8 Kích hoạt môi trường mới 29

Ảnh 3.9 Cài đặt tensorflow 30

Ảnh 3.10: Kích hoạt môi trường Tensorflow 2.0 30

Ảnh 3.11 Ma trận user-item: Utility Matrix 31

Ảnh 3.12 RMSE 31

Ảnh 3.13 Bản quyền dataset 33

Ảnh 3.14 Code TF 35

Ảnh 3.15 Code IDF 35

Ảnh 3.16 Code TF_IDF 36

Ảnh 3.17 Hàm tuyến tính 36

Ảnh 3.18 Hàm mất mát 37

Ảnh 3.19 Hàm mất mát thường dùng trong thực tế 37

Ảnh 3.20 Tổng số item user đã rate 37

Ảnh 3.21 Hàm mất mát viết gọn 38

Ảnh 3.22 Load dữ liệu từ database 38

Ảnh 3.23 Tạo id mapping 39

Trang 11

Ảnh 3.25 Map id mới 40

Ảnh 3.26 Chia data rating train và test 41

Ảnh 3.27 Sinh feature vectors 41

Ảnh 3.28 Tìm giá trị rating 42

Ảnh 3.29 Tìm mô hình cho mỗi user 42

Ảnh 3.30 Dự đoán rating 42

Ảnh 3.31 Đánh giá 43

Ảnh 3.32 Ý tưởng chính 44

Ảnh 3.33 Chuẩn hóa ma trận utility user-item 45

Ảnh 3.34 Xây dựng ma trận tương đồng 45

Ảnh 3.35 Hàm so sánh sự tương đồng 45

Ảnh 3.36 Dự đoán rating cho các user còn lại 46

Ảnh 3.37 Công thức để dự đoán rating 46

Ảnh 3.38 Tính normalized ratings 46

Ảnh 3.39 Load data từ database 47

Ảnh 3.40 Import các thư viện 47

Ảnh 3.41 Khởi tạo ma trận Utility 48

Ảnh 3.42 Tính toán độ tương đồng 48

Ảnh 3.43 Chuẩn hóa ma trận dữ liệu 48

Ảnh 3.44 Fit model và dự đoán rating 49

Ảnh 3.45 Hàm recommend 50

Ảnh 3.46 Chia data 50

Ảnh 3.47 Chạy thuật toán 51

Ảnh 3.48 Đánh giá 51

Ảnh 3.49 Import thư viện và load data 52

Ảnh 3.50 Xây dựng ma trận tf-idf 52

Ảnh 3.51 Xây dận ma trận similarity 53

Ảnh 3.52 Kết quả 53

Ảnh 3.53 Utility Matrix 54

Ảnh 3.54 Mô tả thuật toán Matrix Factorization 55

Trang 12

Ảnh 3.57 Khởi tạo thuật toán 56

Ảnh 3.58 Chuẩn hoá ma trận 57

Ảnh 3.59 Hàm mất mát 57

Ảnh 3.60 Tìm items đươc đánh giá bởi user và ngược lại 58

Ảnh 3.61 Hàm cập nhật ma trận X, W 58

Ảnh 3.62 Hàm fit model 58

Ảnh 3.63 Hàm predict rating 59

Ảnh 3.64 Hàm đánh giá RMSE 60

Ảnh 3.65 Chia data 60

Ảnh 3.66 Chạy thuật toán 61

Ảnh 3.67 Đánh giá 61

Ảnh 3.68 Ý tưởng chính 61

Ảnh 3.69 Sơ đồ triển khai thuật toán 62

Ảnh 3.70 Import thư viện, load data 62

Ảnh 3.71 Chia data 63

Ảnh 3.72 Chạy thuật toán Collaborative Filtering 63

Ảnh 3.73 Chạy thuật toán Matrix Factorization 63

Ảnh 3.74 Tìm trọng số tốt nhất để kết hợp hai thuật toán 64

Ảnh 3.75 Tìm trọng số tốt nhất để kết hợp hai thuật toán 64

Ảnh 3.76 Kết quả 65

Ảnh 3.77 Mạng nơ-ron 66

Ảnh 3.78 TensorFlow Recommender 67

Ảnh 3.79 Đổi kernel Jupyter Notebook 68

Ảnh 3.80 Cài dependencies 68

Ảnh 3.81 Import thư viện 68

Ảnh 3.82 Load data từ cơ sở dữ liệu 69

Ảnh 3.83 Xử lý data 69

Ảnh 3.84 Xây dựng mô hình 70

Ảnh 3.85 Chia data để train và test 70

Ảnh 3.86 Kết quả 71

Ảnh 4.1 UC tổng quát 73

Trang 13

Ảnh 4.3 Activity xem chi tiết phim 76

Ảnh 4.4 Activity xem leaderboard 78

Ảnh 4.5 Activity xem các phim được đánh giá cao 80

Ảnh 4.6 Activity tham gia thảo luận 82

Ảnh 4.7 Activity quản lý tài khoản 84

Ảnh 4.8 Activity tìm kiếm phim 86

Ảnh 4.9 Activity Xem chi tiết phim 88

Ảnh 4.10 Sơ đồ tuần tự xem đề xuất phim cá nhân 89

Ảnh 4.11 Sơ đồ tuần tự Xem Leaderboard 90

Ảnh 4.12 Sơ đồ tuần tự Xem các phim được đánh giá cao 91

Ảnh 4.13 Sơ đồ tuần tự Tham gia thảo luận 92

Ảnh 4.14 Sơ đồ tuần tự Quản lý tài khoản 93

Ảnh 4.15 Sơ đồ tuần tự Tìm kiếm phim 94

Ảnh 4.16 Sơ đồ tuần tự Xem chi tiết phim 95

Ảnh 4.17 Mô hình quan hệ 97

Ảnh 5.1 Thư mục backend-go 104

Ảnh 5.2 Mở terminal 104

Ảnh 5.3 Kết quả 105

Ảnh 5.4 Hộp thoại của window 105

Ảnh 5.5 Kết quả khi chạy backend 106

Ảnh 5.6 Màn hình trang chủ 107

Ảnh 5.7 Màn hình trang chủ 108

Ảnh 5.8 Màn hình trang chủ 108

Ảnh 5.9 Màn hình đăng nhập 109

Ảnh 5.10 Màn hình đăng ký 110

Ảnh 5.11 Màn hình chi tiết phim 111

Ảnh 5.12 Màn hình chi tiết phim 112

Ảnh 5.13 Mô tả màn hình hồ sơ người dùng 113

Ảnh 5.14 Màn hình danh sách đoàn làm phim 114

Ảnh 5.15 Màn hình cuộc thảo luận 115

Trang 15

Bảng 1.1 Bảng đối tượng sử dụng 16

Bảng 4.1 Danh sách actor 75

Bảng 4.2 Danh sách usecase 75

Bảng 4.3 Usecase xem chi tết phim 76

Bảng 4.4 Use case xem leaderboard 77

Bảng 4.5 Usecase xem các phim được đánh giá cao 79

Bảng 4.6 Usecase tham gia thảo luận 81

Bảng 4.7 Usecase quản lý tài khoản 83

Bảng 4.8 Usecase tìm kiếm phim 85

Bảng 4.9 Usecase Xem chi tiết phim 87

Bảng 4.10 Mô tả movies 98

Bảng 4.11 Mô tả users 99

Bảng 4.12 Mô tả rating 99

Bảng 4.13 Mô tả crew 100

Bảng 4.14 Mô tả cast 100

Bảng 4.15 Mô tả keywords 100

Bảng 4.16 Mô tả discussion_movies 101

Bảng 4.17 Mô tả discussion_part 101

Bảng 4.18 Mô tả user_reviews 101

Bảng 4.19 Mô tả similar_movies 102

Bảng 4.20 Mô tả leaderboard 102

Bảng 4.21 Mô tả top_rated_movies 102

Bảng 5.1 Mô tả thành phần trang chủ 107

Bảng 5.2 Mô tả thành phần trang chủ 108

Bảng 5.3 Mô tả thành phần trang đăng ký 110

Bảng 5.4 Mô tả thành phần chi tiết phim 111

Bảng 5.5 Mô tả thành phần màn hình chi tiết phim 112

Bảng 5.6 Mô tả thành phần hồ sơ người dùng 113

Bảng 5.7 Mô tả thành phần danh sách đoàn làm phim 114

Trang 17

STT Từ viết tắt Nội dung

Trang 18

CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN

1.1 Lý do chọn đề tài

Trong thời đại công nghệ thông tin phát triển mạnh mẽ, các ứng dụngkhuyến nghị ngày càng trở nên phổ biến và được sử dụng rộng rãi trongnhiều lĩnh vực như thương mại điện tử, giải trí, truyền thông, Các thuậttoán khuyến nghị giúp các doanh nghiệp cung cấp cho người dùng nhữngsản phẩm, dịch vụ phù hợp với nhu cầu và sở thích của họ, từ đó nâng caotrải nghiệm người dùng và tăng doanh thu

Việc nghiên cứu các thuật toán khuyến nghị là một vấn đề quan trọng và

có nhiều tiềm năng ứng dụng thực tế Đề tài "Nghiên cứu các thuật toánkhuyến nghị và xây dựng ứng dụng minh họa" được chọn nhằm mục đích:

 Hiểu rõ các nguyên lý và thuật toán khuyến nghị phổ biến

Để có thể phát triển các ứng dụng khuyến nghị hiệu quả, cần hiểu rõ cácnguyên lý và thuật toán khuyến nghị phổ biến Đề tài này sẽ giúp mọingười hiểu rõ các khái niệm cơ bản về khuyến nghị, các thuật toán khuyếnnghị phổ biến như dựa trên nội dung, dựa trên người dùng, dựa trên cộngđồng,

 Xây dựng ứng dụng khuyến nghị đơn giản trên dữ liệu thực tế

Sau khi hiểu rõ các nguyên lý và thuật toán khuyến nghị, nhóm sẽ xâydựng ứng dụng khuyến nghị đơn giản trên dữ liệu thực tế Điều này giúpnhóm thực hiện áp dụng kiến thức đã học vào thực tế và đánh giá hiệuquả của các thuật toán khuyến nghị

 Đánh giá hiệu quả của các thuật toán khuyến nghị

Để đánh giá hiệu quả của các thuật toán khuyến nghị, cần có các phươngpháp đánh giá phù hợp Đề tài này sẽ giới thiệu các phương pháp đánh giáhiệu quả của các thuật toán khuyến nghị phổ biến

Trang 19

1.2 Mục tiêu của đề tài

Mục tiêu chính của đề tài này là nghiên cứu và so sánh hiệu quả của nhiềuthuật toán khuyến nghị trong việc đề xuất nội dung cho User, đồng thờixây dựng một ứng dụng minh họa giúp trực quan hóa quá trình và kết quảcủa các thuật toán này Cụ thể, đề tài sẽ tập trung vào các mục tiêu sau:

1 Tìm hiểu các thuật toán khuyến nghị:

 Nghiên cứu và hiểu rõ về các thuật toán khuyến nghị phổ biến nhưCollaborative Filtering, Content-Based Filtering, MatrixFactorization, và Deep Learning-based Recommenders

 Đánh giá ưu điểm, nhược điểm và ứng dụng của từng thuật toántrong các bối cảnh khác nhau

2 So sánh hiệu quả của các thuật toán:

 Thực hiện thử nghiệm và đánh giá hiệu suất của các thuật toántrên bộ dữ liệu thực tế hoặc tạo ra bộ dữ liệu mô phỏng

3 Xây dựng ứng dụng minh họa:

 Phát triển một ứng dụng minh họa có giao diện User thân thiện

 Tích hợp các chức năng như đánh giá sản phẩm, theo dõi lịch sửtương tác, và cung cấp gợi ý dựa trên các thuật toán nghiên cứu

4 Đề xuất cải tiến và hướng phát triển tương lai:

 Dựa trên những hiểu biết từ việc so sánh và phân tích, đề xuất cảitiến cho các thuật toán hoặc phương pháp mới

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

Trang 22

khác của công ty là Anaconda Team Edition và Anaconda EnterpriseEdition đều không miễn phí.

Những lợi ích khi sử dụng Anaconda Navigator:

 Anaconda miễn phí và có mã nguồn mở

 Nó có hơn 1500+ gói khoa học dữ liệu Python / R

 Anaconda đơn giản hóa việc quản lý và triển khai gói

 Nó có các công cụ để dễ dàng thu thập dữ liệu từ các nguồn bằng machine learning và AI

 Nó tạo ra một môi trường dễ dàng quản lý khi triển khai bất kỳ dự ánnào

 Anaconda hoạt động đa nền tảng (Windows, Linux, MacOS)

2.2 Jupyter Notebook

Ảnh 2.2 Jupyter

Jupyter là một thuật ngữ được ghép từ ba ngôn ngữ lập trình Julia, Python

và R Trước đây Jupyter Notebook có tên là IPython Notebook, đến năm

2014 tách ra khỏi IPython và đổi tên thành Jupyter Notebook

Jupyter Notebook là một nền tảng tính toán khoa học mã nguồn mở,

bạn có thể sử dụng để tạo và chia sẻ các tài liệu có chứa code trực tiếp,phương trình, trực quan hóa dữ liệu và văn bản tường thuật

Jupyter Notebook được coi là môi trường điện toán tương tác đa ngôn

ngữ, hỗ trợ hơn 40 ngôn ngữ lập trình cho User

Trang 23

Với Jupyter Notebook, User có thể đưa dữ liệu, code, hình ảnh, công

thức, video, vào trong cùng một file, giúp cho việc trình bày trở nên dễdàng hơn Bạn có thể vừa trình chiếu vừa chạy code để tương tác trên đó,cốt lõi của việc này là Markdown

Lợi ích mà Jupyter Notebook mang lại:

 Phân tích khám phá dữ liệu (Exploratory Data Analysis)

 Bộ đệm dễ dàng trong ô tích hợp

 Độc lập ngôn ngữ:

 Trực quan hóa dữ liệu (Data Visualisation)

 Tương tác trực tiếp với code

 Các mẫu code tài liệu

2.3 Tensorflow

2.3.1 Giới thiệu về Tensorflow

Trang 24

Tensorflow là gì ?– Với sự bùng nổ của lĩnh vực Trí Tuệ Nhân Tạo – A.I.trong thập kỷ vừa qua, machine learning và deep learning rõ ràng cũngphát triển theo cùng Và ở thời điểm hiện tại, TensorFlow chính là thưviện mã nguồn mở cho machine learning nổi tiếng nhất thế giới, đượcphát triển bởi các nhà nghiên cứu từ Google Việc hỗ trợ mạnh mẽ cácphép toán học để tính toán trong machine learning và deep learning đã

giúp việc tiếp cận các bài toán trở nên đơn giản, nhanh chóng và tiệnlợi hơn nhiều

Được viết bằng C++ và thao tác interface bằng Python nên phầnperformance của TensorFlow cực kỳ tốt Đối tượng sử dụng nó cũng đadạng không kém: từ các nhà nghiên cứu, nhà khoa học dữ liệu và dĩnhiên không thể thiếu các lập trình viên

2.3.2 Các thuộc tính cơ bản của Tensorflow

Tensors: Là đối tượng chính của TensorFlow, đại diện cho dữ liệu và

kết quả tính toán Tensors là một mảng đa chiều có các phần tử cócùng kiểu dữ liệu

Operations: Là các hoạt động được thực hiện trên các tensors Một

số hoạt động cơ bản của TensorFlow bao gồm phép cộng, trừ, nhân

và chia

Variables: Là các đối tượng được sử dụng để lưu trữ trạng thái thay

đổi được trong quá trình huấn luyện mô hình Variables có thể được

Ảnh 2.3 Tensorflow

Trang 25

khởi tạo với giá trị cố định hoặc giá trị ngẫu nhiên và có thể được cậpnhật trong quá trình huấn luyện.

Graphs: Là các biểu đồ đại diện cho các phép tính và các kết nối

giữa chúng Graphs được sử dụng để mô tả cấu trúc của mô hình họcmáy và tạo ra các tính toán hiệu quả trên nhiều thiết bị tính toán

Sessions: Là một phiên làm việc TensorFlow, chứa tất cả các biến

và phép tính cần thiết để thực hiện tính toán Sessions được sử dụng

để thực thi các tính toán trong TensorFlow

Placeholders: Là các đối tượng được sử dụng để đại diện cho các

tensors được cung cấp vào mô hình trong quá trình huấn luyện hoặckiểm tra Placeholders được sử dụng để đảm bảo rằng dữ liệu đầuvào có thể được cung cấp cho mô hình

Các thuộc tính này là những thành phần cơ bản của TensorFlow và cungcấp các công cụ cần thiết để xây dựng và huấn luyện các mô hình họcmáy hiệu quả

2.3.3 Các lý do nên sử dụng Tensorflow

 Hỗ trợ nhiều nền tảng: TensorFlow có thể chạy trên nhiều nền tảngkhác nhau, bao gồm máy tính để bàn, máy tính xách tay, thiết bị diđộng và đám mây

 Hiệu suất cao: TensorFlow được tối ưu hóa để xử lý các phép tính lớn

và phức tạp trong các mô hình học máy Nó có thể sử dụng nhiềuCPU và GPU để tăng tốc độ tính toán

 Được sử dụng rộng rãi: TensorFlow là một trong những thư viện họcmáy phổ biến nhất được sử dụng bởi cộng đồng học máy Nó được sửdụng trong nhiều ứng dụng thực tế, bao gồm xử lý ngôn ngữ tựnhiên, thị giác máy tính, nhận dạng giọng nói và phân loại ảnh

 Hỗ trợ mạnh mẽ cho các mô hình học sâu: TensorFlow cung cấp cáccông cụ và tài liệu hỗ trợ để xây dựng và huấn luyện các mô hìnhhọc sâu phức tạp như mạng nơ-ron tích chập (CNN) và mạng nơ-ron

Trang 26

 API linh hoạt: TensorFlow cung cấp API cho nhiều ngôn ngữ lập trìnhkhác nhau, bao gồm Python, C++, Java và Go Điều này cho phépUser triển khai các mô hình học máy trên nhiều nền tảng khác nhau

và tích hợp với các ứng dụng khác

2.4 MongoDB

MongoDB là một chương trình cơ sở dữ liệu mã nguồn mở được thiết kếtheo kiểu hướng đối tượng trong đó các bảng được cấu trúc một cách linhhoạt cho phép các dữ liệu lưu trên bảng không cần phải tuân theo mộtdạng cấu trúc nhất định nào Chính do cấu trúc linh hoạt này nênMongoDB có thể được dùng để lưu trữ các dữ liệu có cấu trúc phức tạp và

đa dạng và không cố định (hay còn gọi là Big Data)

Trang 27

 Cấu trúc của một đối tượng là rõ ràng.

 Không có các Join phức tạp

 Khả năng truy vấn sâu hơn MongoDB hỗ trợ các truy vấn động trêncác Document bởi sử dụng một ngôn ngữ truy vấn dựa trênDocument mà mạnh mẽ như SQL

2.5 Visual Studio Code

Visual Studio Code (VS Code) là một trình soạn thảo mã nguồn miễn phí và

mã nguồn mở được phát triển bởi Microsoft Nó được phát hành lần đầutiên vào năm 2015 và đã nhanh chóng trở thành một trong những trìnhsoạn thảo mã phổ biến nhất trên thế giới

Ảnh 2.5 VS Code

VS Code hỗ trợ nhiều ngôn ngữ lập trình, bao gồm JavaScript, TypeScript,Python, C/C++, Java, PHP, Ruby, và nhiều ngôn ngữ khác Nó cũng cung

Trang 28

 IntelliSense: IntelliSense cung cấp gợi ý tự động cho các từ khóa,biến và hàm.

 Gỡ lỗi: VS Code hỗ trợ gỡ lỗi mã, bao gồm khả năng đặt điểm ngắt,xem giá trị biến và theo dõi dòng chảy của mã

 Tiện ích mở rộng: VS Code có một thị trường rộng lớn các tiện ích mởrộng có thể được sử dụng để tùy chỉnh trình soạn thảo theo nhu cầucủa bạn

Dưới đây là một số ưu điểm chính của Visual Studio Code:

 Hỗ trợ đa nền tảng: VS Code có thể được sử dụng trên Windows,macOS và Linux

 Khối lượng nhẹ: VS Code rất nhẹ và khởi chạy nhanh chóng

 Tính linh hoạt: VS Code có thể được tùy chỉnh để đáp ứng nhu cầucủa bạn

 Miễn phí: VS Code là một phần mềm miễn phí và mã nguồn mở

Trang 29

Ảnh 2.6 Golang

2.6 Golang

Golang (Go Language) là một ngôn ngữ lập trình được sáng tạo và thiết

kế bởi các nhân viên của Google Tuy nhiên, Golang tồn tại như một dự án

mã nguồn mở chứ không thuộc về quyền sở hữu của Google Golang đượcxây dựng để việc lập trình trở nên dễ đọc, đơn giản, hiệu quả và đạt đượchiệu suất cao

này có nghĩa là mọi thứ thuộc về Golang đều phải có kiểu dữ liệu và

nó trái ngược với các ngôn ngữ dynamic typednhư Python hoặc Javascript

được sử dụng cho mục đích lập trình Tuy nhiên, tính đơn giản chính

là điểm khiến cho Golang trở nên khác biệt so với các ngôn ngữ lậptrình khác Nó sở hữu những cú pháp khá tinh gọn và có mức độ

Trang 30

tương đồng rất lớn với C++ Do đó, việc học Golang không còn làđiều khó khăn nếu bạn đã quá quen thuộc với C++.

dựng và phát triển các ứng dụng cross-platform Điều này giúp cáclập trình viên sử dụng Golang dễ dàng hòa nhập được vào cộng đồnglập trình cho dù nó là ngôn ngữ "sinh sau đẻ muộn"

việc tìm kiếm thông tin về ngôn ngữ lập trình Golang trở nên đơngiản hơn

2.7 React

React là một thư viện mã nguồn mở JavaScript được phát triển bởiFacebook để xây dựng giao diện người dùng (UI) cho các ứng dụng web

Nó được phát hành lần đầu tiên vào năm 2013 và đã nhanh chóng trở

thành một trong những thư viện UI phổ biến nhất trên thế giới

React sử dụng mô hình thành phần để xây dựng giao diện người dùng Mỗithành phần là một mô-đun nhỏ, có thể tái sử dụng, chịu trách nhiệm hiểnthị một phần của giao diện người dùng Các thành phần có thể được kếthợp với nhau để tạo thành các giao diện người dùng phức tạp

Dưới đây là một số ưu điểm chính của React:

Ảnh 2.7 React

Trang 31

 Hiệu suất: React sử dụng mô hình thành phần để tối ưu hóa hiệu suấtcủa giao diện người dùng Điều này giúp cải thiện tốc độ tải và phảnhồi của ứng dụng.

 Tính linh hoạt: React có thể được sử dụng để xây dựng các ứng dụngweb có quy mô và tính phức tạp khác nhau Nó có thể được sử dụngcho các ứng dụng web tĩnh, ứng dụng web tương tác và ứng dụngweb di động

 Tính tái sử dụng: Các thành phần React có thể được tái sử dụng trongcác ứng dụng khác nhau Điều này giúp giảm thời gian và chi phíphát triển ứng dụng

 Hỗ trợ cộng đồng: React có một cộng đồng người dùng và nhà pháttriển đông đảo và tích cực Cộng đồng này cung cấp nhiều tàinguyên, chẳng hạn như hướng dẫn, tài liệu và thư viện, để giúp cácnhà phát triển học cách sử dụng React

Trang 32

CHƯƠNG 3 NGHIÊN CỨU VÀ SO SÁNH THUẬT TOÁN

3.1 Cách cài đặt môi trường chạy thuật toán

3.1.1 Cài đặt Anaconda Navigator

Bước 1: Tải Anaconda Distribution ở link này : https://www.anaconda.com/download, website sẽ hiển thị và chọn Download

Trang 33

Bước 2 : Mở file đã tải về và tiến hành cài đặt theo các bước hướng dẫn

Ảnh 3.9 Trình cài anaconda Ảnh 3.8 Trang chủ website anaconda

Trang 34

Ảnh 3.10 Hoàn tất cài đặt anaconda

Trang 35

Bước 3: Mở Anaconda Navigator:

Ảnh 3.11 Mở anaconda

Trang 36

Và ảnh dưới là kết quả khi cài đặt thành công và người dùng có thể mở

jupyter để chạy các file ipynb chứa thuật toán

3.1.2 Cách cài đặt Tensorflow 2.0 trong môi trường Anaconda

Ảnh 3.12 Giao diện anaconda

Trang 37

Bước 1: Mở Anaconda prompt:

Bước 2 : Xem các môi trường có sẵn trong anaconda bằng dòng lệnh :

conda info –envs

Bước 3 : Tạo môi trường để cài đặt tensorflow 2.0 như hình dưới bằng dònglệnh:

Conda create –name <Tên môi trường người dùng muốn đặt> python=3 Bước 4: Kích hoạt môi trường mới tạo bằng dòng lệnh conda activate <tên môi trường>:

Ảnh 3.13 Mở anaconda prompt

Ảnh 3.14 Xem môn trường trong anaconda

Trang 38

Ảnh 3.15 Kích hoạt môi trường mới Bước 5: Cài đặt tensorflow trên môi trường đã tạo bằng dòng lệnh conda install tensorflow (có thể cần update tensorflow bằng pip install –upgrade tensorflow):

Ảnh 3.16 Cài đặt tensorflow

Bước 6: Trở về base environment và cài đặt hiển thị conda

kernel(nb_conda_kernels và ipykernel) :

conda deactivate py3-TF2.0 (trở về môi trường gốc)

pip install ipykernel (cài ipykernel)

conda install nb_conda_kernels’ (cài đặt nb_conda_kernels)

Bước 7 : Kích hoạt môi trường Tensorflow 2.0 bằng cách chọn kernel trong Jupyter Notebook :

Ảnh 3.17: Kích hoạt môi trường Tensorflow 2.0

3.2 Khái niệm về Recommender System (Hệ thống gợi ý)

Hệ gợi ý (Recommender Systems - RS) là một dạng của hệ thống lọc thôngtin (information filtering), nó được sử dụng để dự đoán sở thích(preferences) hay xếp hạng (rating) mà người dùng có thể dành cho mộtmục thông tin (item) nào đó mà họ chưa xem xét tới trong quá khứ (item

có thể là bài hát, bộ phim, đoạn video clip, sách, bài báo, )

3.3 Các thành phần dữ liệu của Recommender System

Trang 39

 users là danh sách người dùng

 items là danh sách sản phẩm, đối tượng của hệ thống (trong dự án

là movies)

 feedback là lịch sử tương tác của user với mỗi item (trong dự án làratings)

3.4

Ma trận user-item: Utility Matrix

Ảnh 3.18 Ma trận user-item: Utility Matrix

Trang 40

Đây là ma trận biểu diễn mức độ quan tâm (rating) của user với mỗi item.

Ma trận này được xây dựng từ dữ liệu (1) Nhưng ma trận này có rất nhiềucác giá trị miss Nhiệm vụ của Hệ gợi ý chính là dựa vào các ô đã có giá trịtrong ma trận trên (dữ liệu thu được từ trong quá khứ), thông qua mô hình

đã được xây dựng, dự đoán các ô còn trống (của user hiện hành), sau đósắp xếp kết quả dự đoán (ví dụ, từ cao xuống thấp) và chọn ra Top-Nitems theo thứ tự rating giảm dần, từ đó gợi ý chúng cho người dùng

3.5 Thông số đánh giá thuật toán

3.5.1 Root Mean Square Error (RMSE)

Lỗi trung bình bình phương gốc (RMSE) là thước đo mức độ hiệu quả của

mô hình Nó thực hiện điều này bằng cách đo sự khác biệt giữa các giá trị

dự đoán và giá trị thực tế R-MSE càng nhỏ tức là sai số càng bé thì mức

độ ước lượng cho thấy độ tin cậy của mô hình có thể đạt cao nhất, đượctính bởi công thức dưới:

Ảnh 3.19 RMSE

Với các đại lượng như sau:

 y^i là giá trị ước lượng

Ngày đăng: 15/05/2024, 09:29

HÌNH ẢNH LIÊN QUAN

Bảng 1:  Bảng phân công, đánh giá thành viên - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 1 Bảng phân công, đánh giá thành viên (Trang 4)
Bảng 1.1 Bảng đối tượng sử dụng - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 1.1 Bảng đối tượng sử dụng (Trang 20)
Bảng 4.2 Danh sách actor - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.2 Danh sách actor (Trang 95)
Bảng 4.3 Danh sách usecase - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.3 Danh sách usecase (Trang 95)
Bảng 4.4 Usecase xem chi tết phim - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.4 Usecase xem chi tết phim (Trang 96)
Bảng 4.5 Use case xem leaderboard - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.5 Use case xem leaderboard (Trang 98)
Bảng 4.6 Usecase xem các phim được đánh giá cao - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.6 Usecase xem các phim được đánh giá cao (Trang 99)
Bảng 4.7 Usecase tham gia thảo luận - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.7 Usecase tham gia thảo luận (Trang 100)
Bảng 4.8 Usecase quản lý tài khoản - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.8 Usecase quản lý tài khoản (Trang 102)
Bảng 4.9 Usecase tìm kiếm phim - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.9 Usecase tìm kiếm phim (Trang 103)
Bảng 4.10 Usecase Xem chi tiết phim - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.10 Usecase Xem chi tiết phim (Trang 105)
Bảng 4.12 Mô tả users - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.12 Mô tả users (Trang 116)
Bảng 4.11 Mô tả movies - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.11 Mô tả movies (Trang 116)
Bảng 4.14 Mô tả crew - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.14 Mô tả crew (Trang 117)
Bảng 4.18 Mô tả discussion_part - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.18 Mô tả discussion_part (Trang 118)
Bảng 4.17 Mô tả discussion_movies - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.17 Mô tả discussion_movies (Trang 118)
Bảng 4.21 Mô tả leaderboard - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.21 Mô tả leaderboard (Trang 119)
Bảng 4.20 Mô tả similar_movies - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 4.20 Mô tả similar_movies (Trang 119)
Bảng 5.23 Mô tả thành phần trang chủ - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 5.23 Mô tả thành phần trang chủ (Trang 124)
Bảng 5.24 Mô tả thành phần trang chủ - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 5.24 Mô tả thành phần trang chủ (Trang 125)
Bảng 5.2.3 Mô tả thành phần màn hình đăng nhập - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 5.2.3 Mô tả thành phần màn hình đăng nhập (Trang 126)
Bảng 5.26 Mô tả thành phần chi tiết phim - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 5.26 Mô tả thành phần chi tiết phim (Trang 127)
Bảng 5.25 Mô tả thành phần trang đăng ký - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 5.25 Mô tả thành phần trang đăng ký (Trang 127)
Bảng 5.27 Mô tả thành phần màn hình chi tiết phim - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 5.27 Mô tả thành phần màn hình chi tiết phim (Trang 128)
Bảng 5.28 Mô tả thành phần hồ sơ người dùng - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 5.28 Mô tả thành phần hồ sơ người dùng (Trang 129)
Bảng 5.29 Mô tả thành phần danh sách đoàn làm phim - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 5.29 Mô tả thành phần danh sách đoàn làm phim (Trang 130)
Bảng 5.30 Mô tả màn hình cuộc thảo luận - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 5.30 Mô tả màn hình cuộc thảo luận (Trang 131)
Bảng 5.31 Mô tả thành phần màn hình tạo cuộc thảo luận - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 5.31 Mô tả thành phần màn hình tạo cuộc thảo luận (Trang 132)
Bảng 5.32 Mô tả thành phần màn hình cuộc thảo luận - đồ án 1 nghiên cứu các thuật toán khuyến nghị recommender algorithms và xây dựng ứng dụng minh họa
Bảng 5.32 Mô tả thành phần màn hình cuộc thảo luận (Trang 133)

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

TÀI LIỆU LIÊN QUAN

w