Một trong những ứng dụng quan trọng nhất của Đại số tuyến tính chính là Phép phân tích giá trị riêng Singular Value Decomposition – SVD.. Phương pháp SVD đã được phát triển dựa trên nhữn
Trang 11
BÁO CÁO BÀI TẬP LỚN MÔN ĐẠI SỐ TUYẾN TÍNH Chủ đề 9: Phân tích SVD
và ứng dụng trong Học Máy GVHD: TS Đặng Văn Vinh Lớp P01 – Nhóm 4
Sinh viên thực hiện MSSV
Triệu Đào Văn Phú 2112023 Nguyễn Thị Bích Hằng 2113308 Bùi Quang Thiên Ân 2110766
TRƯỜNG ĐH BÁCH KHOA TP HỒ CHÍ MINH
Trang 22
Mục lục
LỜI MỞ ĐẦU 3
Cơ sở lí thuyết 4
A Giới thiệu chung 4
B Mục tiêu của phân tích suy biến 4
C Cơ sở lý thuyết 5
I Giá trị riêng, vector riêng của một ma trận 5
II Chéo hóa ma trận 5
III Chéo hóa trực giao 5
IV Phương pháp phân tính suy biến( SVD - Singular Value Decomposition) 6
Giới thiệu Hệ thống gợi ý trong Machine Learning 12
LỜI KẾT 16
Tài liệu tham khảo 17
Trang 33
LỜI MỞ ĐẦU
Đại số tuyến tính là môn học kết nối giữa lí thuyết và ứng dụng thực tế Đại số
tuyến tính đóng vai trò quan trọng trong nhiều lính vực của Học máy (Machine
Learning) Khi bạn có khả năng hiểu những kiến thức nền Đại số tuyến tính thì
việc tiếp cận với Machine Learning sẽ không còn khó khăn nữa Một trong
những ứng dụng quan trọng nhất của Đại số tuyến tính chính là Phép phân tích
giá trị riêng (Singular Value Decomposition – SVD) SVD là cốt lõi của Hệ
thống gợi ý (recommendation systems) và Giảm chiều dữ liệu (dimensionality
reduction) – nền tảng quan trọng của những công ty hàng đầu thế giới như
Google, Netflix, Youtube, Amazon, …
Mục tiêu của bài báo cáo là cung cấp cái nhìn tổng quan cho các độc giả đang
quan tâm đến Đại số tuyến tính hay Machine Learning kiến thức về SVD cũng
như những ứng dụng của SVD trong thời đại công nghệ hiện tại
Trang 44
Cơ sở lí thuyết
A Giới thiệu chung
Phương pháp phân tích suy biến (singular value decomposition) được viết tắt là
SVD là một trong những phương pháp thuộc nhóm kỹ thuật phân rã ma trận được phát triển lần đầu bởi những nhà hình học vi phân Ban đầu mục đích của phương pháp này là tìm ra một phép xoay không gian sao cho tích vô hướng của các vector không thay đổi Từ mối liên hệ này khái niệm về ma trận trực giao đã hình thành
để tạo ra các phép xoay đặc biệt Phương pháp SVD đã được phát triển dựa trên những tính chất của ma trận trực giao và ma trận đường chéo để tìm ra một ma trận xấp xỉ với ma trận gốc
B Mục tiêu của phân tích suy biến
Phương pháp SVD sẽ tìm ra một lớp các ma trận xấp xỉ tốt nhất với một ma trận cho trước dựa trên khoảng cách norm Frobenios giữa 2 ma trận Người ta đã chứng minh được rằng ma trận xấp xỉ tốt nhất được biểu diễn dưới dạng tích của 3 ma
trận rất đặc biệt bao gồm 2 ma trận trực giao (orthogonal matrix) và 1 ma trận đường chéo (diagonal matrix) Quá trình nhân ma trận thực chất là quá trình biến
đổi các điểm dữ liệu của ma trận gốc thông qua những phép xoay trục (rotation)
và phép thay đổi độ lớn (scaling) và từ đó tạo ra những điểm dữ liệu mới trong không gian mới Điều đặc biệt của ma trận đường chéo đó là các phần tử của nó chính là những giá trị riêng của ma trận gốc Bằng cách sắp xếp các trị riêng theo thứ tự giảm dần trên đường chéo chính thuật toán SVD có thể thu được ma trận xấp xỉ tốt nhất mà vẫn đảm bảo giảm được hạng của ma trận sau biến đổi và kích thước các ma trận nhân tử nằm trong giới hạn cho phép Do đó nó tiết kiệm được thời gian và chi phí tính toán và đồng thời cũng tìm ra được một giá trị dự báo cho
ma trận gốc với mức độ chính xác cao
Trang 55
C Cơ sở lý thuyết
I Giá trị riêng, vector riêng của một ma trận
1 Định nghĩa
Cho A ∈ 𝑀𝑛(K) Số 𝜆0 ∈ K được gọi là giá trị riêng của ma trận A, nếu tồn tại vector 𝑋0 ≠ 0 sao cho A𝑋0 = 𝜆0𝑋0
Vector 𝑋0 được gọi là vector riêng của ma trận A tương ứng với giá trị riêng 𝜆0
2 Tính chất
1/ Tổng tất cả các trị riêng của A bằng với vết của ma trận A, tức là bằng với tổng các phần tử trên đường chéo của A
2/ Tích tất cả các trị riêng của A bằng với det(A)
3/ Tổng tất cả các bội đại số của các trị riêng bằng với cấp của A
4/ Tổng tất cả các bội hình học của các trị riêng bằng với số vector độc lập tuyến tính cực đại
5/ Nếu 𝜆0 là trị riêng của A, thì 𝜆0 𝑚 là trị riêng của ma trận 𝐴𝑚, m ∈ ℕ
II Chéo hóa ma trận
Ma trận vuông A gọi là chéo hoá được nếu tồn tại ma trận chéo D và ma trận khả nghịch P để A = PD𝑃−1
III Chéo hóa trực giao
Định nghĩa 1 Ma trận A ∈ 𝑀𝑛(𝑅) gọi là ma trận đối xứng, thực, nếu 𝐴𝑇= A
Ví dụ: Ma trận A =(
) Kiểm tra thấy 𝐴𝑇= A Như vậy A là ma trận
đối xứng Các phần tử của A đối xứng nhau qua đường chéo chính
Định nghĩa 2 Ma trận A ∈ 𝑀𝑛(𝑅) gọi là ma trận trực giao, nếu 𝐴−1=𝐴𝑇
Từ định nghĩa ta có 𝐴−1=𝐴𝑇⇔ A𝐴𝑇 = I Như vậy, nếu tích của A và 𝐴𝑇 là ma trận đơn vị I, thì A là ma trận trực giao
Mệnh đề 1 Ma trận A là ma trận trực giao khi và chỉ khi họ véctơ cột (hoặc họ
véctơ hàng) của A là họ trực chuẩn
Khi nhắc đến họ trực chuẩn, ta sẽ đề cập đến bước 2 trong 2 bước tìm cơ sở trực chuẩn của không gian Euclide V:
Chuẩn hóa cơ sở E1 bằng cách chia mỗi véctơ cho độ dài của nó, khi đó ta có cơ
sở trực chuẩn E2 của V
Ví dụ: Giả sử ta có họ trực giao F= {(1; 1; 1), (1; −2; 1 ), (−1; 0; 1)}
Chia mỗi véctơ cho độ dài của nó, ta có họ trực chuẩn
Q= {1
√3(1; 1; 1), 1
√6(1; −2; 1), 1
√2(−1; 0; 1)}
Lập ma trận trực giao có họ véctơ cột (hoặc họ véctơ hàng) là Q:
Trang 66
A=
(
1
√3
1
√6
−1
√2 1
√3
−2
√6 0
1
√3
1
√6
1
√2) (kiểm tra thấy A𝐴𝑇 = 𝐼)
Định nghĩa 3 Ma trận vuông, thực A gọi là chéo hóa trực giao được, nếu
A = PD𝑃−1=PD𝑃𝑇, với D là ma trận chéo và P là ma trận trực giao
Định lý 1 Cho A là ma trận đối xứng thực
Các khẳng định sau đây đúng:
1/ Trị riêng của A là các số thực
2/ A luôn chéo hóa trực giao được
3/ Hai véctơ riêng ứng với các trị riêng khác nhau vuông góc với nhau
Mệnh đề 2 Nếu ma trận A chéo hóa trực giao được, thì A là ma trận đối xứng
Chứng minh
Giả sử A chéo hóa trực giao được Khi đó A = PD𝑃𝑇 Suy ra, 𝐴𝑇 = (PD𝑃𝑇)𝑇= (𝑃𝑇)𝑇𝐷𝑇𝑃𝑇 = PD𝑃𝑇= A Hay A là ma trận đối xứng
Như vậy chỉ có ma trận đối xứng thực mới chéo hóa trực giao được
Từ đó ta có các bước để chéo hóa trực giao ma trận đối xứng thực A
▪ Phương pháp chéo hóa trực giao ma trận đối xứng thực A
Bước 1 Tìm trị riêng của A
Bước 2 Tìm một cơ sở trực chuẩn của từng không gian con riêng
Để tìm cơ sở trực chuẩn của không gian con riêng 𝐸𝜆𝑘, ta theo các bước sau: a/ Chọn cơ sở 𝐸𝑘 tùy ý của 𝐸𝜆𝑘
b/ Dùng quá trình Gram Schmidt (nếu cần) để tìm cơ sở trực giao 𝐹𝑘
c/ Chia mỗi véctơ trong 𝐹𝑘 cho độ dài của nó ta có cơ sở trực chuẩn 𝑄𝑘của 𝐸𝜆𝑘
Bước 3 Kết luận Ma trận A luôn chéo hóa trực giao được Tức là A = PD𝑃𝑇, trong
đó ma trận chéo D có các phần tử trên đường chéo là các trị riêng của A, họ véctơ cột của ma trận trực giao P từ các vétơ riêng trong các cơ sở trực chuẩn
ở bước 2
IV Phương pháp phân tính suy biến( SVD - Singular Value Decomposition)
1.Phép phân tích riêng
Phép phân tích riêng (EigenDecomposition) cũng là một dạng matrix factorization
Nó có mối liên hệ chặt chẽ với SVD Trong đại số tuyến tính chúng ta luôn có thể phân tích một ma trận vuông độc lập tuyến tính A ∈ 𝑅𝑛×n thành tích của những ma trận vuông P ∈ 𝑅𝑛×n khả nghịch và ma trận đường chéo theo công thức:
A = PD𝑃𝑇
Đẳng thức trên tương đương với:
AP= PD
Trang 77
⇔ A (
𝑝11 𝑝12 … 𝑝1𝑛
𝑝21 𝑝22 … 𝑝2𝑛
𝑝𝑛1 𝑝𝑛2 … 𝑝𝑛𝑛
) = (
𝑝11 𝑝12 … 𝑝1𝑛
𝑝21 𝑝22 … 𝑝2𝑛
𝑝𝑛1 𝑝𝑛2 … 𝑝𝑛𝑛
) (
)
Bây giờ ta chỉ xét đến cột thứ i của cả 2 ma trận bên vế trái và phải:
A𝑝𝑖= P𝑑𝑖
Trong đó 𝑝𝑖, 𝑑𝑖 lần lượt là cột thứ i của ma trận P, D Mặt khác do D là ma trận đường chéo nên 𝑑𝑖 chỉ có duy nhất một phần tử khác 0 là α nên P𝑑𝑖= 𝑝𝑖α Như vậy:
A𝑝𝑖= 𝑝𝑖α
Đây chính là phương trình xác định trị riêng của A Ta có thể thấy α chính là trị riêng của ma trận A và 𝑝𝑖 là các vector riêng tương ứng của α
Như vậy điểm đặc biệt của phân tích riêng đó là đường chéo chính của D là các trị riêng của ma trận A và các cột của P là các vector riêng tương ứng với trị riêng nằm trên đường chéo chính Ngoài ra phép phân tích riêng không là duy nhất Nếu ma trận trực giao P thỏa mãn phương trình phân tích riêng thì ma trận
kP cũng thỏa mãn phương trình phân tích riêng đó
2.Phân tích suy biến (SVD)
2.1 Phát biểu phân tích suy biến
Trong đại số tuyến tính, phép phân tích suy biến là một dạng của matrix factorization nhằm phân tích một ma trận thành tích của các ma trận số thực hoặc
ma trận số phức Đây là một tổng quát tổng quát của phân tích riêng trong trường hợp ma trận không vuông khi nó biểu diễn ma trận gốc thành tích của hai ma trận trực giao và một ma trận đường chéo Phát biểu của phép phân tích suy biến sẽ được trình bày có dạng như sau
2.2 Phân tích suy biến
Để đơn giản ta sẽ kí hiệu chỉ số kích thước ma trận ở bên dưới Ma trận 𝐴𝑚𝑛 là kí hiệu cho ma trận A ∈ 𝑅𝑚×n Phép phân tích suy biến của ma trận 𝐴𝑚𝑛 là một dạng matrix factorization Cũng giống như phương pháp phân tích riêng, nó sẽ biểu diễn
ma trận gốc dưới dạng tích của 3 ma trận đặc biệt như sau:
𝐴𝑚𝑛= 𝑈𝑚𝑚Σ𝑚𝑛𝑉𝑛𝑛𝑇 Trong đó 𝑈𝑚𝑚𝑉𝑛𝑛 là các ma trận trực giao và Σ𝑚𝑛 là ma trận đường chéo
Về mặt hình học phép phân tích suy biến sẽ lần lượt trải qua: phép xoay (rotation), phép nới rộng (scaling) và phép xoay ở cuối cùng Nếu ta coi các dòng của ma trận A là các điểm dữ liệu và các chiều dữ liệu là các cột Khi đó nhân các điểm
dữ liệu với ma trận trực giao 𝑈𝑚𝑚 chính là việc ta thực hiện một phép xoay và phép xoay này không làm thay đổi tích vô hướng của các vector Phép nhân với
ma trận đường chéo Σ sẽ co dãn độ lớn các chiều theo giá trị của các trị riêng trên đường chéo chính Và cuối cùng phép nhân với ma trận trực giao 𝑉𝑇 lại thực hiện phép biến xoay một lần nữa
Trang 88
Hình minh họa biến đổi hình học của phép phân tích suy biến
2.3 Mối liên hệ giữa phân tích suy biến và phân tích riêng
Cho A là một ma trận thực cỡ m x n Ta chứng minh rằng tập hợp các trị riêng khác không của AAT và ATA là trùng nhau Thật vậy, giả sử λ0 là một giá trị riêng khác
0 của AAT và X0 là vector riêng của AAT tương ứng Khi đó:
AATX0 = 𝜆0X0 Suy ra ATAATX0 = AT𝜆0X0 Điều này tương đương với ATA(ATX0) = 𝜆0(ATX0), vì 𝜆0 ≠ 0 nên ATX0 ≠ 0 Suy ra 𝜆0 là trị riêng của ATA
Ma trận AAT và ma trận ATA là hai ma trận đối xứng, nên chúng chéo hóa trực giao được
Ta có thể thấy phân tích suy biến khác với phân tích riêng ở chỗ nó áp dụng cho
ma trận bất kì mà không yêu cầu ma trận đó phải vuông Để thấy được mối liên hệ mật thiết giữa phép phân tích suy biến và phân tích riêng sau khi khai triển tích 𝐴𝑇𝐴:
𝐴𝑇𝐴 = (𝑈Σ𝑉𝑇)𝑇𝑈Σ𝑉𝑇
=VΣ𝑇𝑈𝑇𝑈Σ𝑉𝑇
=𝑉Σ𝑇Σ𝑉𝑇
Dấu bằng thứ 3 xảy ra là vì 𝑈𝑇𝑈 = 𝐼𝑛 Ngoài ra Σ𝑇Σ là một ma trận đường chéo
có các thành phần trên đường chéo chính lần lượt là σ12, σ22, , σ𝑛2 > 0 Như vậy 𝐴𝑇𝐴 là một phân tích riêng của ma trận trực giao V và ma trận đường chéo ΣΣ𝑇 Hoàn toàn tương tự ta cũng có 𝐴𝐴𝑇 là một phân tích riêng cua ma trận trực giao U và ma trận đường chéo ΣΣ𝑇 Các phần tử σ𝑖 trên đường chéo chính của Σ được gọi là giá trị suy biến (singular values) của ma trận A Các cột của ma trận V là hệ vector riêng ứng với trị riêng của ΣΣ𝑇 và còn được gọi là hệ vector suy
Trang 99
biến trái (left-singular vectors) Các cột của U được gọi là hệ vector suy biến phải (right-singular vectors)
2.4 Bài toán ví dụ:
Phân tích SVD ma trận sau:
0 0 1 )
Giải
A=U
𝐴𝑇.A=(
) (1 1 0
0 0 1)=(
) Chéo hóa trực giao: 𝐴𝑇𝐴 = 𝑃𝐷1 𝑃𝑇
|𝐴𝑇A − 𝜆I|=0 |
| = 0
(1 − 𝜆)3-(1 − 𝜆) = 0
𝜆1 = 2, 𝜆2 = 1, 𝜆3 = 0
Với 𝝀𝟑=0
(
) (
𝑥1
𝑥2
𝑥3) = 0 {
𝑥1+ 𝑥2 = 0
𝑥1+ 𝑥2 = 0
𝑥3 = 0
{𝑥1 = −𝑥2
𝑥3 = 0 𝑉3=α(
−1 1 0 )
Cơ sở trực giao của 𝐸𝜆3{(
−1 1 0 )}
Cơ sở trực chuẩn của 𝐸𝜆3{(
−1
√2 1
√2
0 )}
Với 𝝀𝟐=1
(
) (
𝑥1
𝑥2
𝑥3 )=0 {
𝑥1 = 0
𝑥2 = 0
𝑥3 = 𝛼
𝑉2 = α (00
1 )
Cơ sở trực giao của 𝐸𝜆2{(
0 0 1 )}
Cơ sở trực chuẩn của 𝐸𝜆2{(
0 0 1 )}
Với 𝝀𝟏 =2
Trang 1010
(
) (
𝑥1
𝑥2
𝑥3 )=0 {
−𝑥1+ 𝑥2 = 0
𝑥1− 𝑥2 = 0
−𝑥3 = 0
{𝑥1 = 𝑥2
𝑥3 = 0 𝑉1=α(11
0 )
Cơ sở trực giao của 𝐸𝜆1{(
1 1 0 )}
Cơ sở trực chuẩn của 𝐸𝜆1{(
1
√2 1
√2
0 )}
⟹ 𝑉 = (
1
√2 0 −1
√2 1
√2 0 1
√2
) ⟹ 𝑉𝑇 = (
1
√2
1
√2 0
−1
√2
1
√2 0 )
Tìm U:
A.AT =(1 1 0
0 0 1) (
) = (2 0
0 1) Giải phương trình |𝐴 𝐴𝑇 − 𝜆𝐼| = 0
|2 − 𝜆 0
0 1 − 𝜆| = 0 (2 − 𝜆)( 1 − 𝜆) = 0 {𝜆 = 2
𝜆 = 1
Với 𝝀𝟐 = 𝟐 : (0 0
0 −1) (
𝑥1
𝑥2) = 0 {𝑥𝑥1 = 𝛼
2 = 0
u1 = α (1
0)
Cơ sở trực giao của 𝐸𝜆2{(1
0)}
Cơ sở trực chuẩn của 𝐸𝜆2{(1
0)}
Với 𝝀𝟏 = 𝟏 : (1 0
0 0) (
𝑥1
𝑥2) = 0 {𝑥𝑥1 = 0
2 = 𝛼 u2 = α (0
1)
Cơ sở trực giao của 𝐸𝜆1{(0
1)}
Cơ sở trực chuẩn của 𝐸𝜆1{(0
1)}
𝑈 = (1 0
0 1)
Trang 1111
Ta có: ∑ = (
) là ma trận đường chéo chứa singular value của
A𝐴𝑇 𝑣à 𝐴𝑇𝐴
Ta có 𝐴 = 𝑈Σ𝑉𝑇 ⟹ Σ = 𝑈−1 𝐴 (𝑉𝑇)−1
(1 0
0 1)
−1
(1 1 0
0 0 1) (
1
√2
1
√2 0
−1
√2
1
√2 0 )
−1
= Σ
⟹ Σ = (√2 0 0
0 1 0)
Vậy 𝐴 = 𝑈Σ𝑉𝑇 = (1 0
0 1) (√2
0 1 0) (
1
√2
1
√2 0
−1
√2
1
√2 0 )
* Chú thích:
- U và VT là ma trận vecto riêng của A𝐴𝑇 𝑣à 𝐴𝑇𝐴
- là ma trận trị riêng của A𝐴𝑇 𝑣à 𝐴𝑇𝐴
Trang 1212
Giới thiệu Hệ thống gợi ý trong Machine Learning
I Giới thiệu Recommendation System (Hệ thống gợi ý)
Các hệ thống gợi ý được tận dụng trong nhiều lĩnh vực, chẳng hạn như trình tạo danh sách phát cho video và âm nhạc của một số ứng dụng như Netflix, YouTube
và Spotify Sau khi người xem một vài video hoặc nghe một số bài hát, hệ thống gợi ý sẽ nhận diện sở thích người dùng và mức độ tương tác với video/bài hát để tạo ra một danh sách gợi ý theo chủ đề và mức độ liên quan mà người dùng có thể ưa thích Hệ thống gợi ý còn áp dụng cho các dịch vụ gợi ý sản phẩm ở
Amazon, các gợi ý nội dung cho các nền tảng xã hội như Facebook hay Twitter
Những thuật toán đằng sau những ứng dụng này là những thuật toán Machine Learning có tên gọi chung là Recommender Systems hoặc Recommendation Systems, tức Hệ thống gợi ý
Recommendation Systems là một mảng khá rộng của Machine Learning và có tuổi đời ít hơn so với Classification vì internet mới chỉ thực sự bùng nổ khoảng 10-15 năm đổ lại đây Có hai thực thể chính trong Recommendation Systems là users và items Users là người dùng Items là sản phẩm, ví dụ như các bộ phim, bài hát, cuốn sách, clip, hoặc cũng có thể là các users khác trong bài toán gợi ý kết bạn Mục đích chính của các Recommender Systems là dự đoán mức độ quan tâm của một user tới một item nào đó, qua đó có chiến lược quảng cáophù hợp
2) Phân loại các Recommendation System
Các Recommendation Systems thường được chia thành hai nhóm lớn:
1 Lọc cộng tác: Giả định của phương pháp này là những người đã thích một mặt hàng trong quá khứ cũng sẽ thích mặt hàng đó trong tương lai Cách tiếp cận này xây dựng một mô hình dựa trên hành vi trong quá khứ của người dùng Hành vi của người dùng có thể bao gồm các video đã xem trước
đó, các mặt hàng đã mua, xếp hạng cho các mặt hàng Bằng cách này, mô hình tìm thấy mối liên hệ giữa người dùng và các mục Sau đó, mô hình được sử dụng để dự đoán mặt hàng hoặc xếp hạng cho mặt hàng mà người dùng có thể quan tâm Phân tích giá trị đơn lẻ được sử dụng như một phương pháp lọc cộng tác trong các hệ thống khuyến nghị
2 Lọc dựa trên nội dung: Cách tiếp cận này dựa trên mô tả của mặt hàng và
hồ sơ về sở thích của người dùng Nó sử dụng một chuỗi các đặc điểm rời rạc, được gắn thẻ trước của một mục để đề xuất các mục bổ sung có thuộc tính tương tự Cách tiếp cận này phù hợp nhất khi có đầy đủ thông tin về các mặt hàng nhưng không có sẵn về người dùng Hệ thống tư vấn dựa trên nội dung cũng bao gồm hệ thống tư vấn dựa trên ý kiến
Ngoài hai cách tiếp cận trên, có một số cách tiếp cận khác để xây dựng hệ thống
tư vấn như hệ thống tư vấn đa tiêu chí, hệ thống tư vấn nhận thức rủi ro, hệ thống