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 1BỘ 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 2TP Hồ Chí Minh, năm 2024
Trang 3BỘ 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 4TP Hồ Chí Minh, năm 2024
Trang 5I 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 7DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT
Trang 8DANH MỤC CÁC BẢNG
Trang 9DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 2Cách hoạt động của thuật toán 15
Trang 10Chươ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 11Chươ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 12nhữ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 132.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 14Nhiệ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 15Original 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 163 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 17thông qua từng cây để dự đoán.
MÃ GIẢ:
1 Đọc file:
Trang 18Chươ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 19Trướ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 21vậ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 237.Huấn luyện mô hình dựa trên sự phân chia dữ liệu
Trang 24kế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 259.in ra kết quả
Trang 26và đây là thành quả ta nhận được sau khi chạy mô hình:
Trang 28Cả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 291 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 30hà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