3 LỜI MỞ ĐẦU Việc phân tích một ma trận ra thành tích của nhiều ma trận đặc biệt khác Matrix Factorization hoặc Matrix Decomposition mang lại nhiều ích lợi quan trọng mà các bạn sẽ thấy
Trang 11
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
🙞···☼···🙜🙜
MÔN HỌC: ĐẠI SỐ TUYẾN TÍNH
NĂM HỌC: 2022-2023
BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI:
CƠ SỞ LÝ THUYẾT VÀ ỨNG DỤNG CỦA PHÂN TÍCH SVD VÀO HỆ THỐNG GỢI Ý TRONG HỌC MÁY
GVHD : NGUYỄN XUÂN MỸ NHÓM : 09
LỚP : L13
Thành phố Hồ Chí Minh – 2022
Trang 21
MỤC LỤC
DANH SÁCH THÀNH VIÊN 2
LỜI MỞ ĐẦU 3
CHƯƠNG I SINGULER VALUE DECOMPOSITION (SVD) 4
1.1 Phát biểu SVD 4
1.2 Chứng minh luôn tồn tại phép phân tích SVD với mọi ma trận Amxn 4
1.3 Biểu diễn SVD qua các trường hợp của ma trận A 5
1.4 Phương pháp phân tích SVD của một ma trận bất kì 5
1.5 Giải bằng matlab 6
CHƯƠNG II ỨNG DỤNG CỦA HỆ THỐNG GỢI Ý TRONG HỌC MÁY 9
2.1 Mở đầu 9
2.2 Hai nhóm chính của Recommendation Systems 9
2.3 Bài toán tổng quát của hệ thống gợi ý 10
CHƯƠNG III TÀI LIỆU THAM KHẢO 12
CHƯƠNG IV TỔNG KẾT 12
V NHẬN XÉT CỦA GIÁO VIÊN 13
Trang 32
DANH SÁCH THÀNH VIÊN
1 (Nhóm trưởng) VÕ NGUYỄN NHẬT TÂN 2213071 Tổng hợp và làm file word, phân chia công việc, tìm hiểu bài toán
tổng quát của hệ thống gợi ý
2 NGUYỄN BẢO QUỐC 2212837 phần ứng dụng của SVD, tìm tài Đóng góp ý kiến, tìm hiểu về
liệu tham khảo
3 PHẠM PHÚ QUÝ 2212873 phần ứng dụng của SVD, tìm tài Đóng góp ý kiến, tìm hiểu về
liệu tham khảo
4 LÊ THỊ THẢO QUYÊN 2212848 Word, đóng góp ý kiến, tìm hiểu Thiết kế phần bìa, chỉnh sửa
về cơ sở lý thuyết của SVD
5 TRẦN VĂN QUYỀN 2212862 toán tổng quát của hệ thống gợi ý Đóng góp ý kiến, tìm hiểu về bài
6 VE SAMY 2212901 sở lý thuyết của SVD, chỉnh sửa Đóng góp ý kiến, tìm hiểu về cơ
file Word, tìm tài liệu tham khảo
7 TRẦN KỲ SƠN 2212955 phần ứng dụng của SVD, tìm tài Đóng góp ý kiến, tìm hiểu về
liệu tham khảo
8 NGUYỄN TIẾN THÀNH 2213141 phần viết code Matlab, tìm tài liệu Phụ trách tìm hiểu, đảm nhiệm
tham khảo
Trang 43
LỜI MỞ ĐẦU
Việc phân tích một ma trận ra thành tích của nhiều ma trận đặc biệt khác (Matrix Factorization hoặc Matrix Decomposition) mang lại nhiều ích lợi quan trọng mà các bạn sẽ thấy: giảm số chiều dữ liệu, nén dữ liệu, tìm hiểu các đặc tính của dữ liệu, giải các hệ phương trình tuyến tính, clustering, và nhiều ứng dụng khác
Trong bài viết này, chúng tôi sẽ giới thiệu với các bạn một trong những phương pháp Matrix Factorization của Đại số tuyến tính Phương pháp đó có tên
là Singular Value Decomposition (SVD) Các bạn sẽ thấy, mọi ma trận, không nhất thiết là vuông, đều có thể được phân tích thành tích của ba ma trận đặc biệt Dưới đây, chúng tôi sẽ phát biểu SVD cũng như các tính chất và ứng dụng điển hình của nó trong hệ thống gợi ý (Recommendation Systems)
Trang 5
4
CHƯƠNG I SINGULER VALUE
DECOMPOSITION (SVD)
1.1 Phát biểu SVD:
Với mọi ma trận A R∈ mxn ta đều phân tách được dưới dạng A = UΣVT
V là ma trận trực giao cấp m x n
U là ma trận trực giao cấp m x n
∑ là các ma trận đường chéo gồm các phần tử trên đường chéo là:
δ1 ≥ δ ≥ δ ≥ … ≥ δ ≥ 0 với p = min (m, n) 2 3 p
1.2 Chứng minh luôn tồn tại phép phân tích SVD với mọi ma trận Amxn
Chứng minh:
-Xét trường hợp m>n
-Giả sử tồn tại phân tích SVD của A = UΣVT Ta sẽ chứng minh luôn tìm được U, và V Σ
-Ta có tính chất (AB) = BT TAT
+Ta xét : AA = (UT ΣVT )( UΣVT)T= U = UDUT
-Dễ dàng chứng minh ma trận AA : T
+Là một ma trận đối xứng (bằng quy nạp)
+Là một ma trận nửa xác định dương (bằng BĐT Cauchy và quy nạp)
Do đó AA luôn chéo hóa trực giao được và trị riêng của AA không âm T T Suy ra ta luôn tìm được: U bằng phép chéo hóa trực giao AA T
và ∑ vì d ≥ 0 i, σ = ( cái tên Singuler Value xuất phát từ đây ) ii ∀ i
Trang 65
-Chứng minh tương tự với trường hợp xét AA=VΣΣV => tồn tại V và Σ -Mà trị riêng δ (ATA) δ (AA⊂ T) (m>n)
Vậy luôn tìm được đồng thời U, V, thỏa A = U VΣ Σ T
1.3 Biểu diễn SVD qua các trường hợp của ma trận A:
+Trường hợp 1: m < n:
+Trường hợp 2: m > n:
Σ là một ma trận đường chéo với các phần trử trên đó giảm dần và không âm Màu đỏ càng đậm thể hiện giá trị càng cao Các ô màu trắng trên ma trận này thể hiện bằng 0
1.4 Phương pháp phân tích SVD của một ma trận bất kì:
Bước 1: Xác định ma trận A (cỡ bao nhiêu) để tiến hành phân tích SVD Bước 2: Thực hiện chéo hóa trực giao: AAT = QD1QT
Trang 76
2.1: Viết phương trình đặc trưng của AA Từ đó chúng ta sẽ tính được các giá trị riêng của AAT Viết được ma trận đường chéo D1 có các phần tử là những giá trị riêng, ta vừa tìm được (Lưu ý phải sắp xếp nó theo thứ tự giảm dần)
2.2: Tìm vecto riêng của AAT Từ đó ta tính được ma trận Q, các cột của 𝑄
là các vecto riêng của AAT
Bước 3: Thực hiện chéo hóa trực giao ATA= PD2PT
+ Tương tự các bước 2.1, 2.2 ta tính được P và D2
+ Chọn Σm x n bằng cách chọn ma trận cỡ tương ứng phù hợp với D1 hay D2 Sau đó lấy căn bậc 2 của tất cả những phần tử trên đường chéo
Bước 4: Vậy phân tích SVD của ma trận A sẽ là: Am x n = Qm x n Σm x n (Pn x n)T
1.5 Giải bằng matlab:
Để chỉ ra ứng dụng của phân tích SVD vào hệ thổng gợi ý trong học máy (machine Learning) và viết 1 chương trình matlab ta có 1 ví dụ cụ thể:
Với ví dụ trên là sự đánh giá của 4 người dùng với 6 bộ phim trên nền tảng
hệ thống Mức đánh giá sự yêu thích sẽ là từ 1 đến 5 0 sẽ là chưa xem bộ phim
đó Ở đây ta giả sử mọi bộ phim xem qua đều được đánh giá
Từ đây ta lập được UTILITY MATRIX Amxn bằng cách nhập dữ liệu ma trận A vào file “Matrix A.xlsx” :
Trang 87 Tiếp theo, ta phân tích SVD cho ma trận A bằng 1 đoạn code Matlab:
Sau đó kết quả là:
Trang 98
Từ dữ liệu sau khi chạy code ta có:
+U là ma trận (chứa các dữ liệu đặc tính của items) cho ta thấy được sự tương quan giữa các item với nhau
+D là ma trận (chứa các dữ liệu tương quan của users) cho ta thấy được sự tương quan giữa các users
Phân tích SVD cho 1 ma trận khác thì ta lại nhập dữ liệu vào file “Matrix A.xlsx”
Trang 109
CHƯƠNG II ỨNG DỤNG CỦA HỆ THỐNG GỢI
Ý TRONG HỌC MÁY 2.1 Mở đầu:
Trong chúng ta chắc hẳn ai cũng gặp trường hợp này một hoặc nhiều lần:
- Youtube sẽ tự động chuyển qua các video khác liên quan đến video mà bạn đang xem hoặc có thể gợi ý những video có cùng chủ đề
- Khi bạn mua một món hàng trên Shopee, hệ thống sẽ tự động gợi ý dựa trên lịch sử tìm kiếm, lịch sử mua hàng để gợi ý ra cho bạn những món đồ bạn thích
- Facebook cũng tự động hiển thị những quảng cáo có liên quan đến từ khoá
mà bạn đã tìm
- Tiktok cũng gợi ý những clip dựa trên những người mà bạn theo dõi hoặc
là những từ khoá mà bạn đã tìm kiếm lúc trước
Và rất nhiều ví dụ khác mà hệ thống có khả năng tự hiển thị những gợi ý hoặc quảng cáo mà người dùng có thể thích Bằng cách quảng cáo như thế này, việc marketing sẽ đúng hướng và trở nên rất có hiệu quả Những thuật toán đằng sau ứng dụng này là những thuật toán Machine Learning có tên gọi chung là Recommender Systems nghĩa là Hệ thống tự gợi ý
2.2 Hai nhóm chính của Recommendation Systems:
Các recommendation systems được chia thành 2 nhóm chính:
-Content-based systems: là một phương pháp để đánh giá đặc tính của
items được recommened Giả định của phương pháp này là cách tiếp cận này phải yêu cầu vào việc sắp xếp các mặt hàng vào từng nhóm hoặc đi tìm dặc trưng của từng items Tuy nhiên có những items không có nhóm cụ thể và việc xác định nhóm hoặc đặc trưng của từng items đôi khi là bất khả thi Ví dụ: Bạn A xem rất nhiều trận bóng đá, một trong số đó là trận đấu giữa MC vs MU
-Collaborative filtering: là một phương pháp đưa ra dự đoán tự động (lọc)
về sở thích của người dùng bằng cách thu thập thông tin sở thích hoặc thị hiếu từ
Trang 1110
nhiều người dùng (cộng tác) Giả định cơ bản của phương pháp lọc cộng tác là nếu một người A có cùng quan điểm với người B về một vấn đề, thì A có nhiều khả năng có quan điểm của B về một vấn đề khác hơn là quan điểm của một người được chọn ngẫu nhiên
VD:
2.3 Bài toán tổng quát của hệ thống gợi ý:
-Bài toán tư vấn được coi là bài ước lượng trước hạng (rating) của các sản phẩm chưa được người dùng xem xét Việc ước lượng này thường được dựa trên những đánh giá đã có của chính người dùng đó hoặc những người dùng khác Những sản phẩm có hạng cao nhất sẽ được dùng để tư vấn
Trang 1211
-Gọi U là tập hợp tất cả người dùng, I là tập hợp tất cả các sản phẩm có thể tư vấn
Tập I có giá trị trong khoảng {1, n}, tập U có giá trị trong khoảng {1, m} Hàm f(u, i) đo độ phù hợp (hay hạng) của sản phẩm I với người dùng u : f : U x I→ R với R là tập được sắp thứ tự Tập hợp tất cả các ratings, bao gồm cả những giá trị chưa biết cần được dự đoán, tạo nên một ma trận gọi là utility matrix
Ví dụ về utility matrix với hệ thống Gợi ý bài hát: Các bài hát được người
dùng đánh giá theo mức độ từ 0 đến 5 sao Các dấu '?' nền màu xám ứng với việc dữ liệu chưa tồn tại trong cơ sở dữ liệu Recommendation Systems cần phải
tự điền các giá trị này
-Với mỗi người dùng u U, cần tìm sản phẩm i I, sao cho hàm f(i, u) đạt giá ∈ ∈ trị lớn nhất:
∀u∈∈U, iu =arg max f (u, i) -Vấn đề chính của hệ tư vấn là hàm f (u, i) không được xác định trên toàn không gian U x I mà chỉ trên một miền nhỏ của không gian đó Điều này dẫn tới việc hàm f (u, i) phải được ngoại suy trong không gian U x I Các hệ thống tư vấn thường được phân thành nhiều loại dựa trên cách nó sử dụng các thuật toán để ước lượng hạng hoặc điểm của các sản phẩm
Trang 1312
CHƯƠNG III TÀI LIỆU THAM KHẢO
[1] Đặng Văn Vinh, Giáo trình đại số tuyến tính, NXB Đại học Quốc Gia TP Hồ Chí Minh 2022
[2] Phạm Hoàng Trương, Luận văn Thạc Sĩ Khoa Học Máy Tính: Nghiên cứu và ứng
dụng Kỹ Thuật SVD vào hệ thống gợi ý, Đại học Bách Khoa Đà Nẵng
[3] Machinelearningcoban, Bài 26: Singular Value Decomposition; Bài 25: Matrix Factorization; Bài 24: Neighborhood-Based Collaborative Filtering; Bài 23: Content-based Recommendation Systems
[4]https://en.wikipedia.org/wiki/Collaborative_filtering?fbclid=IwAR0VcMyemosdU wyauCrC-TSCj2xECXs_vUhl4AvLZzJHvf1xVewz4c9Nxjs
CHƯƠNG IV TỔNG KẾT
Hiểu được SVD và ứng dụng của nó
Các thành viên trong nhóm phối hợp tốt để hoàn thành công việc được giao Còn vài điểm trừ như:
Khi lên ý tưởng hơi khó khăn do không tìm được nguồn tài liệu
Có vài ý kiến tranh cãi diễn ra nhưng góp phần xây dựng nên tập thể nhóm 09
Một lời cảm ơn chân thành gửi đến giáo viên hướng dẫn cô Xuân Mỹ và một số thầy cô khác đã góp đóng góp ý kiến cho nhóm để hoàn thành tốt công việc được
giao
CHÚNG EM CHÂN THÀNH CẢM ƠN!!!
Trang 1413
V NHẬN XÉT CỦA GIÁO VIÊN
………
………
………
………
………
………
………
………
………