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

Đồ Án môn học môn trí tuệ nhân tạo Đề tài structured data (collaborative filtering for movie recommendations)

38 0 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 đề Structured Data (Collaborative Filtering for Movie Recommendations)
Tác giả Nguyễn Thành Đạt, Đàm Quốc Khánh, Phạm Ngọc Hùng, Trần Ngọc Tân, Nguyễn Bá Thịnh
Người hướng dẫn Nguyễn Quốc Minh
Trường học Trường Đại Học Kinh Tế - Tài Chính Thành Phố Hồ Chí Minh
Chuyên ngành Trí Tuệ Nhân Tạo
Thể loại đồ án
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 38
Dung lượng 8,06 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

II COLLABORATIVE FILTERING : 2.1 Khái Niệm : Collaborative Filtering dùng để xử lý dữ liệu từ nhiều nguồn khác nhau Cụ thể Collaborative Filtering còn được hiểu như sau : Là một kỹ thuậ

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC KINH TẾ - TÀI CHÍNH

THÀNH PHỐ HỒ CHÍ MINH

ĐỒ ÁN MÔN HỌC Môn: Trí tuệ nhân tạo

Mã môn học: 232.ITE1218.A01

TÊN ĐỀ TÀI: STRUCTURED DATA (Collaborative Filtering for Movie Recommendations)

Giảng viên hướng dẫn: Nguyễn Quốc Minh

Sinh viên thực hiện :

Nguyễn Thành Đạt 225050896 22D1ITE - SWE03

Đàm Quốc Khánh 225053340 22D1ITE - SWE03

Phạm Ngọc Hùng 225052079 22D1ITE - SWE03

Trần Ngọc Tân 225050912 22D1ITE - SWE03

Nguyễn Bá Thịnh 225050056 22D1ITE - SWE03

Trang 2

TP Hồ Chí Minh, năm 2024

Trang 3

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC KINH TẾ - TÀI CHÍNH

THÀNH PHỐ HỒ CHÍ MINH

ĐỒ ÁN MÔN HỌC Môn: Trí tuệ nhân tạo

Mã môn học: 232.ITE1218.A01

TÊN ĐỀ TÀI: STRUCTURED DATA (Collaborative Filtering for Movie Recommendations)

Giảng viên hướng dẫn: Nguyễn Quốc Minh

Sinh viên thực hiện :

Nguyễn Thành Đạt 225050896 22D1ITE - SWE03

Đàm Quốc Khánh 225053340 22D1ITE - SWE03

Phạm Ngọc Hùng 225052079 22D1ITE - SWE03

Trần Ngọc Tân 225050912 22D1ITE - SWE03

Nguyễn Bá Thịnh 225050056 22D1ITE - SWE03

Trang 4

TP Hồ Chí Minh, năm 2024

Trang 5

I Lý do chọn đề tài 10

II Mục Tiêu Phân Tích 10III Đối Tượng Nghiên Cứu 10

IV Phương Pháp Nghiên Cứu 10

Chương 2 CƠ SỞ LÝ THUYẾT (chọn style Heading 1) 9

2.3 An information filtering system :

1.3 Cách hoạt động của thuật toán: 141.4 Ví dụ minh họa của thuật toán: 161.5 So sánh với các thuật toán khác: 171.5.1 Thuật toán K-Nearest Neighbors (KNN): 17

Trang 6

- Randon Forest có độ chính xác cao hơn SVM trong nhiều trường hợp.17

Trang 7

DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT

Trang 8

DANH MỤC CÁC BẢNG

Trang 9

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 2Cách hoạt động của thuật toán 15

Trang 10

Chương I : Tổng Quan Về Đề Tài

I LÝ DO CHỌN ĐỀ TÀI :

- Cùng với nhu cầu thị trường phim tăng và nhu cầu dịch phụ xem phim nhưNetflix ,Disney, Hệ thống sẽ giúp người dùng tiết tiệm thời gian khi tìm kiếm

và thấy nội dung họ yêu thích

- Collaborative Filtering không giới hạn trong đề xuất phim yêu thích dành chobạn mà có thể ứng dụng trong các lĩnh vực như: Thương mại điển tử,nội dungtrực tuyến, Giúp mở ra nhiều cơ hội nghiên cứu hơn

- Collaborative Filtering có thể giúp các nền tảng tăng doanh thu thông qua việcngười dùng thường xuyên tương tác với ứng dụng từ đó tạo nên các nguồn thucho các doanh nghiệp

II MỤC TIÊU PHÂN TÍCH :

III ĐỐI TƯỢNG NGHIÊN CỨU : OVERVIEW CODE - NEURAL

IV PHƯƠNG PHÁP NGHIÊN CỨU : PYCHARM, KERAS,COLAB

https://keras.io/examples/structured_data/

collaborative_filtering_movielens/

Trang 11

Chương 1 CƠ SỞ LÝ THUYẾT

I THUẬT TOÁN STRUCTURED DATA:

1.1 Khái niệm:

Structured là cấu trúc, Data là dữ liệu , nên ở thuật toán Structured Data sẽ có cấutrúc cố định giúp dễ dàng phân tích và truy vấn , tuy nhiên sẽ gặp khó khăn khi cầnthay đổi hoặc mở rộng mô hình dữ liệu và hạn chế trong việc xử lý không có cấu trúc

Trang 12

những công cụ không thể thiếu khi dùng đề phân tích và lưu trữ dữ liệu cho các ứngdụng doanh nghiệp

Từ năm 2010 đến nay: Thời kỳ 4.0 ngày càng phát triển nhưng Structured datavẫn giữ được vai trò vô cùng quan trọng trong việc quản lý và phân tích dữ liệu trongnhiều lĩnh vực hiện nay

- Y tế : quản lý thông tin bệnh nhân , dự đoán nguy cơ mắc bệnh

- Mạng xã hội : Hiển thị nhiều thông tin như trang cá nhân , sự kiện , bài viết mộtcách hiệu quả

- Tìm kiếm web : Tìm ra được nội dung của trang web tốt hơn , hiển thị như đánhgiá của khách hàng , sản phẩm và các chương trình ưu đãi

II COLLABORATIVE FILTERING :

2.1 Khái Niệm :

Collaborative Filtering dùng để xử lý dữ liệu từ nhiều nguồn khác nhau

Cụ thể Collaborative Filtering còn được hiểu như sau :

Là một kỹ thuật được sử dụng bởi các hệ thống khuyến nghị để đề xuất nhữngđiều mà người dùng có thể thích , bằng cách thu thập dữ liệu từ nhiều người dùng khácnhau, sau đó hệ thống sẽ xem xét và so sánh và dùng dữ liệu từ người dùng trước để đềxuất cho người dùng mới (cá nhân)và nếu như người dùng mới chưa có dữ liệu nào thì

sẽ đưa ra đề xuất dựa trên sở thích của đại đa số người dùng (đại trà) Điều này còn cóthể áp dụng lên các sản phẩm mới có những đặc điểm, thuộc tính giống với các sảnphẩm mà người dùng đã từng sử dụng để có thể được đề xuất cho những người dùng

đó

Trang 13

2.2 Recommender/Recommendation

Là một loại hệ thống lọc thông tin cung cấp đề xuất về các mục phù hợpnhất với một người dùng cụ thể Những hệ thống này đặc biệt hữu ích khingười cần chọn một mục từ một số lượng lớn các tùy chọn được cung cấp bởimột dịch vụ , giúp họ dễ dàng tìm thấy những gì họ thích

2.3 An information filtering system

Được thiết kế để loại bỏ những thông tin không cần thiết hoặc khôngmong muốn giúp quản lý quá nhiều thông tin và cải thiện rõ ràng của nội dunghữu ích

Hệ thống sẽ so sánh hồ sơ của người dùng với các đặc điểm cụ thể cóthể đến từ nội dung hoặc từ người dùng

2.4 Cách Hoạt Động :

2.4.1 User Collaborative Filtering:

a Khởi tạo dữ liệu:

Collaborative filtering sử dụng 3 thành phần dữ liệu chính đó là : Đánh giá phim,lịch sử xem và tương tác khác(ví dụ danh sách phim được yêu thích)

Trang 14

Nhiệm vụ của nó là dựa vào các giá trị đã có từ các lần thu thập trước và nó chorằng nếu 2 người có chung sở thích họ có thể thích những nội dung tương tự.

User Collaborative Filtering tìm người có đánh giá tương tự cho người dùng hiện tại

và gợi ý những phim mà người dùng đã đánh giá cao nhưng người dùng hiện tại chưaxem

Ví dụ về User Collaborative Filtering dựa trên số sao của một user cho một movie.Một cách khác, số đánh giá phim 1 có đánh giá cao hơn tất cả các phim còn lại,từ đó

có thể dự đoán các user còn lại quan tâm tới phim 1 hơn các phim còn lại

b Chuẩn hóa dữ liệu:

Trang 15

Original utility matrix and mean user ratings

Để phù hợp có việc tính toán chúng ta có thể thay thế các dấu chấm hỏi bằng các giá trị giữa 0 và 5, cách này có thể không có độ chính xác cao bởi vì nhu cầu người dùng khác nhau.Nên chúng ta có thể thay các dấu chấm hỏi thành các giá trị bằng 0

III Neural network

Mạng thần kinh (Neural Network) là một mô hình tính toán được thiết kế để mô

phỏng cách hoạt động của não người Nó là một tập hợp các nút (neuron) kết nối vớinhau, mỗi nút đại diện cho một tế bào thần kinh Các kết nối giữa các nút này có trọng

số (weights) và ngưỡng (threshold), tương tự như các synapse và ngưỡng kích hoạttrong não người

● Cấu trúc: Cấu trúc của mạng thần kinh được lấy cảm hứng từ cấu trúc của

não người, với các neuron kết nối với nhau tạo thành các lớp

● Hoạt động: Các neuron trong mạng thần kinh hoạt động tương tự như các

neuron sinh học, nhận tín hiệu đầu vào, xử lý và tạo ra tín hiệu đầu ra

● Học tập: Mạng thần kinh có khả năng học hỏi từ dữ liệu, điều chỉnh các

trọng số và ngưỡng để thực hiện các nhiệm vụ cụ thể

Cách thức hoạt động của Mạng thần kinh

1 Dữ liệu đầu vào: Dữ liệu được đưa vào mạng thần kinh thông qua lớp đầu

vào

2 Truyền tiếp: Dữ liệu được truyền qua các lớp ẩn, mỗi neuron tính toán một

giá trị dựa trên các trọng số và giá trị của các neuron ở lớp trước

Trang 16

3 Hàm kích hoạt: Giá trị tính toán được đưa qua một hàm kích hoạt (ví dụ:

sigmoid, ReLU) để giới hạn giá trị đầu ra

4 Lớp đầu ra: Lớp cuối cùng của mạng tạo ra kết quả dự đoán.

5 Học tập: Nếu kết quả dự đoán không chính xác, các trọng số sẽ được điều

chỉnh để giảm thiểu sai số Quá trình này được lặp lại nhiều lần cho đến khi mạng đạt được độ chính xác mong muốn

Các loại mạng thần kinh phổ biến:

● Mạng thần kinh nhân tạo (ANN): Loại mạng thần kinh cơ bản nhất.

● Mạng thần kinh tích chập (CNN): Được sử dụng chủ yếu cho các tác vụ

liên quan đến hình ảnh, như nhận dạng vật thể, phân loại hình ảnh

● Mạng thần kinh tái diễn (RNN): Dùng để xử lý dữ liệu tuần tự, như văn

bản, âm thanh

● LSTM (Long Short-Term Memory): Một biến thể của RNN, được sử dụng

để xử lý các chuỗi dữ liệu dài và phức tạp

Ứng dụng của mạng thần kinh:

● Nhận dạng hình ảnh: Phân loại hình ảnh, phát hiện vật thể, tạo ảnh.

● Xử lý ngôn ngữ tự nhiên: Dịch máy, tạo văn bản, phân tích cảm xúc.

● Nhận dạng giọng nói: Chuyển đổi giọng nói thành văn bản.

● Dự đoán: Dự báo thời tiết, giá cổ phiếu, kết quả thể thao.

● Chơi game: Đánh bại con người trong các trò chơi phức tạp như cờ vua, Go.

VÍ DỤ MINH HỌA CỦA THUẬT TOÁN:

1 User-based Collaborative Filtering

● Nguyên lý: Tìm những người dùng có sở thích tương đồng với người dùng

mục tiêu

● Cách thực hiện:

○ Tính toán độ tương đồng giữa các người dùng dựa trên các đánh giá

mà họ đã đưa ra Các phương pháp tính toán độ tương đồng phổ biến bao gồm:

■ Pearson correlation: Đo lường mức độ tương quan giữa hai

bộ dữ liệu

■ Cosine similarity: Đo lường góc giữa hai vector.

■ Jaccard similarity: Đo lường tỉ lệ phần tử chung giữa hai tập

hợp

Trang 17

thông qua từng cây để dự đoán.

MÃ GIẢ:

1 Đọc file:

Trang 18

Chương III XÂY DỰNG ỨNG DỤNG

SỬ DỤNG HÀM MODEL PREDICT() TRONG COLLABORATIVE FILTERING VÀ CONTENT-BASED FILTERING:

I Tổng quan về dự án :

Đây là một dự án để đề xuất phim dựa trên phương pháp lọc,phân tích sở thíchcủa người dùng để đưa ra đề xuất phù hợp.Dự án này dựa vào việc người dùng có sởthích và đưa ra các đề xuất tườn tự.Sử dụng các thuật toán như K-means và logistic đểcải thiện độ chính xác , sử dụng dữ liệu PCA giúp xử lý nguồn dữ liệu lớn Kết quảnhằm cho người dùng có một trải nghiệm tốt và có thể tạo ra nguồn kinh tế,mặc dù cónguồn dữ liệu phim lớn và sở thích có thể thay đổi theo thời gian

Trang 19

Trước khi đưa dữ liệu vào để huấn luyện thì ta cần phải khai báo các thư viện cần thiết

để chạy được chương trình

2.1 Pandas sẽ được dùng để xử lý các dữ liệu dạng bảng (dataframe).

2.2 Pathlib Đây là thư viện cung cấp các công cụ giúp làm việc với hệ thống tập tin và

đường dẫn theo cách trực quan và an toàn Ở đây ta sẽ sử dụng lớp Path là một lớp đốitượng của Pathlib để tương tác với hệ thống tập tin một cách tiện lợi và dễ dàng

2.3 Matplotlib.pyplot Thuộc một phần của thư viện Matplotlib, Matplotlib.pyplot

được sử dụng để vẽ đồ thị và biểu đồ giúp trực quan hóa dữ liệu trong Python

2.4 Numpy (Numerical Python) là một thư viện toán học hỗ trợ cho việc tính toán

cũng như các thao tác trên các mảng nhiều chiều

2.5 Zipfile Đây là thư viện cung cấp các thao tác làm việc với các tệp ZIP Cụ thể ở

đây ta sẽ sử dụng ZipFile là một lớp của thư viện zipfile cho việc giải nén các file ZIP

2.6 Keras Là một thư viện mã nguồn mở trong Python thuộc tensorflow, Keras được

sử dụng để xây dựng và huấn luyện các mô hình của deep learning Chúng ta sẽ khaibáo và sử dụng hai lớp thuộc keras là layers chức các lớp cơ bản và ops cung cấp cáctoán tử và hàm để tạo ra các mô hình neural network

lưu ý: để sử dụng được thư viện keras ta cần phải tải thư viện tensorflow trước.

3 Đưa dữ liệu vào:

Trang 20

Đầu tiên, chúng ta cần xác định đường dẫn đến file dữ liệu dùng để train, ở đây sẻ là

đường dẫn: "http://files.grouplens.org/datasets/movielens/ml-latest-small.zip" Tiếp

đến chúng ta sẽ tải file ZIP về máy nếu file này chưa tồn tại, kèm theo đó là trả vềđường dẫn của file ZIP đã tải Để xác định đường dẫn của file ZIP, ta sử dụng đoạn

code keras_datasets_path = Path(movielens_zipped_file).parents[0] (dòng 20), cuối cùng là nối đường dẫn đã có với tên thư mục "ml-latest-small".

Khi đã truy cập được đến file ZIP, ta tiến hành mở file và giải nén dữ liệu bên trong.Việc giải nén sẽ được xảy ra một lần duy nhất nên nếu đã có dữ liệu (tức là mô hình đãđược chạy từ trước) thì việc giải nén sẻ không được tiến hành việc này để tránh mỗilần chạy mô hình phải giải nén dữ liệu thêm 1 lần nữa gây tốn thời gian và bộ nhớ

sau khi tải và giải nén dữ liệu để đưa vào dự án, chạy thử đoạn code thì ta nhận đượckết quả như sau:

Trang 21

vậy là đã hoàn tất việc chuẩn bị dữ liệu để train và nó sẽ được lưu dạng bảng bằng

đoạn code: ratings_file = movielens_dir / "ratings.csv"

df = pd.read_csv(ratings_file)

(dòng 30,31)

4.Mã hóa người dùng và phim

Chúng ta sẽ lưu dữ liệu vào dạng bảng theo các cột “userId”, “movieId”, “rating”

nên ta phải tạo 3 bảng khác nhau giống như cơ sở dữ liệu để lưu trữ

Trang 22

ở bước này ta sẽ phải trộn lẫn dữ liệu để giảm

6.xây dựng mô hình

Trang 23

7.Huấn luyện mô hình dựa trên sự phân chia dữ liệu

Trang 24

kết quả đoạn code trên cho ra:

8.vẽ đồ thị mất mát trên tập huấn luyện và tập xác thực

Sau khi chạy đoạn code ta nhận được kết quả như sau:

Trang 25

9.in ra kết quả

Trang 26

và đây là thành quả ta nhận được sau khi chạy mô hình:

Trang 28

Cải tiến ứng dụng

Neural Network:

Khái niệm:

Neural Networks là một cấu trúc tính toán lấy cảm hứng từ cách hoạt động của não

người, gồm các đơn vị tính toán gọi là neuron Các neuron được kết nối với nhau qua

nhiều lớp, trong đó có lớp đầu vào (input layer), lớp ẩn (hidden layer), và lớp đầu ra(output layer) Mỗi kết nối có trọng số (weight) và mạng học cách điều chỉnh các trọng

số này qua quá trình huấn luyện.

Các đặc điểm chính của neural network:

Trang 29

1 Lớp vào (Input Layer): Nhận dữ liệu đầu vào và truyền cho các lớp tiếp

theo

2 Lớp ẩn (Hidden Layer): Các lớp giữa lớp vào và lớp ra, nơi các phép tính

trung gian diễn ra

3 Lớp ra (Output Layer): Cung cấp kết quả dự đoán cuối cùng.

4 Hàm kích hoạt: Quyết định xem một nơron có nên "kích hoạt" hay không,

giúp mô hình học các mối quan hệ phức tạp phi tuyến

5 Trọng số và độ chệch (Weights and Biases): Xác định tầm quan trọng của

đầu vào và ảnh hưởng đến quá trình học của mạng

=> Vậy Neural Network có thể áp dụng và cải tiến khả nâng cao hiệu suất và tính

chính xác trong dự án “Collaborative Filtering for Movie Recommendations”

như thế nào?

Neural Networks Trong Collaborative Filtering :

- Trước khi có Neural Networks :

1 Collaborative Filtering Recommendation System :

- Trong hệ thống này sẽ có 2 loại đối tượng để dựa vào chạy thuật toán :

- Collaborative Filtering dựa trên người dùng :

+ Là một phương pháp trong hệ thống khuyến nghị mà

nó tập trung vào đo lường sự tương đồng giữa các người dùng Cách thức hoạt động của nó khá đơn giản và dựa trên nguyên tắc : Nếu hai người dùng

có sở thích giống nhau trong quá khứ, thì các mục mà một người thích có thể là gợi ý tốt cho người kia.

+ Để đo lường sự tương đồng giữa các người dùng, hệ

thống sẽ sử dụng thuật toán Cosine Similarity (đo độ tương đồng qua góc giữa hai vector) hoặc Pearson Correlation (tính mức tương quan giữa hai tập dữ

liệu) Các thuật toán sẽ cho ta biết hai người dùng giống nhau đến mức nào dựa trên các đánh giá hoặc hành động mà họ đã thực hiện đã được lưu thành dữ liệu vào trong hệ thống.

=> Cốt lõi của phương pháp này là dựa trên dữ

liệu người dùng để đưa ra gợi ý cho những người có

Trang 30

hành vi tương tự, mà không cần phân tích nội dung của các mục được đề xuất.

+ Ví dụ :

Giả sử có hai người, A và B, và cả hai đều thích xem phim hành động Người A đã xem một số phim hành động mà người B chưa biết, thì hệ thống sẽ gợi ý những bộ phim đó cho người B, vì có khả năng cao là B cũng sẽ thích những phim đó Ngược lại, nếu B thích một số bộ phim khác mà A

chưa xem, hệ thống cũng có thể đề xuất các bộ phim đó

cho A.

- Collaborative Filtering dựa trên sản phẩm :

+ Phương pháp sẽ dựa trên là sản phẩm để tập trung vào sự tương đồng giữa các mục dựa trên lịch sử tương tác của người dùng với chúng Nếu một người dùng đã thích một mục cụ thể, hệ thống sẽ đề xuất các mục có tương đồng hoặc liên quan dựa trên hành vi của nhóm người dùng đã tương tác với mục đó, mà không quan tâm đến những

Ngày đăng: 14/01/2025, 19:59

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Wikipedia: Random forest [https://en.wikipedia.org/wiki/Random_forest] Link
[2] Machine Learning Cơ bản: Random Forest algorithm[https://machinelearningcoban.com/tabml_book/ch_model/random_forest.html] Link
[3] Scikit Learn: Random Forest Classifier [https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html] Link
[4] Scikit Learn: Kneighbors Classifier[https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html][5] Scikit Learn: SVM[https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html][6] Neural Network[https://itnavi.com.vn/blog/neural-network-la-gi] Link
[7] Recommendation System [https://wecan-group.com/Recommendation-System-He-thong-Khuyen-nghi/#22-Collaborative-Filtering-Recommendation-System] Link

HÌNH ẢNH LIÊN QUAN

Bảng 1.Dữ liệu các bộ phim - Đồ Án môn học môn trí tuệ nhân tạo  Đề tài structured data (collaborative filtering for movie recommendations)
Bảng 1. Dữ liệu các bộ phim (Trang 27)

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w