đồ á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 0 0
Tài liệu đã được kiểm tra trùng lặ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

Đ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

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ Á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ỌAGIẢNG VIÊN HƯỚNG DẪN:

Nguyễn Tấn Toàn

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

1 Nguyễn Tuấn BảoMSSV: 215206202 Nguyễn Tiến AnhMSSV: 21520579

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪ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ảngviê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 Báo cáo

- Viết chương 1- Viết chương 2:

2.1, 2.2, 2.3, 2.6- Viết chương 3- Viết chương 4:

4.1, 4.2.1, 4.2.2,4.2.3, 4.2.6,4.3.1, 4.3.2,4.3.3, 4.3.6, 4.4

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

 Báo cáo

- Viết chương 2:2.4, 2.5, 2.7

- Viết chương 4:4.2.4, 4.2.5,4.2.7, 4.3.4,4.3.5, 4.3.7

- Viết chương 5,6

10/10

Trang 5

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

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

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.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-Similarity513.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

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

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

Trang 10

Ả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

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.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

Trang 12

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

Ả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.81 Import thư viện 68

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

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.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 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

STTTừ viết tắtNộ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 20

 See Leaderboard

 See Top Rated Movies & Popular Movies

 Join Discussion Account Management Search Movies

 See Movie Details

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

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

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ânvà 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ớnvà 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 nhauvà 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ếtkế bởi các nhân viên của Google Tuy nhiên, Golang tồn tại như một dự ánmã 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ínhlà đ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=3Bước 4: Kích hoạt môi trường mới tạo bằng dòng lệnh conda activate <tênmô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 –upgradetensorflow):

Ả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ứ (itemcó 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ự ánlà 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ủamô 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 yi là biến độc lập

 n=(N – k – 1)

 N : số tổng lượng quan sát K : tổng lượng biến

3.6 Dataset

Về dataset mà nhóm sử dụng, nhóm đã sử dụng dataset tải từ Kaggle ở link sau: https://www.kaggle.com/datasets/rounakbanik/the-movies-dataset

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

Tài liệu cùng người dùng

Tài liệu liên quan