Tải bản đầy đủ (.pdf) (20 trang)

BÁO cáo bài tập lớn đại số TUYẾN TÍNH đề tài ỨNG DỤNG của PHÂN TÍCH SVD vào hệ THỐNG gợi ý học máy

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (942.93 KB, 20 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KỸ THUẬT ĐIỆN - ĐIỆN TỬ

BÁO CÁO BÀI TẬP LỚN
ĐẠI SỐ TUYẾN TÍNH
ĐỀ TÀI: ỨNG DỤNG CỦA PHÂN TÍCH SVD
VÀO HỆ THỐNG GỢI Ý HỌC MÁY
GVHD: ĐẶNG VĂN VINH
LỚP: BK21-HTĐ
NHÓM: 4

0

0

0


Giới thiệu chung
-

Lớp: BK21-HTĐ
Nhóm:
Đề tài : 9
Danh sách thành viên
Họ và tên

MSSV

Ghi chú


Chịu trách nhiệm chỉnh sửa,
đảm nhiệm phần viết code
Matlab, hỗ trợ tìm nội dung
liên quan đến đề tài.
Tìm nội dung về cơ sở lý
thuyết của phân tích SVD,
góp ý kiến, soạn thảo trên
Word và chỉnh sửa.
Tổng hợp nội dung, chỉnh
sửa và đóng góp ý kiến.
Tìm nội dung về ứng dụng
của phân tích SVD, chỉnh
sửa và đóng góp ý kiến.Gợi
ý viết code Matlab.
Tìm nội dung về cơ sở lý
thuyết của phân tích SVD,
đóng góp ý kiến. Hỗ trợ tìm
kiếm nội dung.
Thuyết trình BTL, hỗ trợ
viết code Matlab.
Tìm nội dung về ứng dụng
của phân tích SVD, đóng
góp ý kiến.

( Leader)

0

1


0


Mục Lục
LỜI MỞ ĐẦU:......................................................................................3
I. CƠ SỞ LÝ THUYẾT CỦA PHÂN TÍCH SVD
1. Trị riêng và vecto riêng................................................................4
2. Chéo hóa ma trận..........................................................................5
3. Thuật tốn phân tích SVD (Singular Value Decomposition) ......6
II. ỨNG DỤNG CỦA PHÂN TÍCH SVD VÀO HỆ THỐNG GỢI Ý
TRONG HỌC MÁY (Machine Learning)
1. Collaborative Filtering......................................................10
2. Content Filtering...............................................................13
III. Code Matlab
1. Đoạn code minh hoạ của Hệ thống gợi ý
2. Đoạn code minh hoạ ví dụ bài tốn
IV. Nguồn tài liệu tham khảo

0

2

0


Lời Mở Đầu
Đại số tuyến tính là một trong những nhánh quan trọng của toán
học cơ bản của đại số tuyến tính là nghiên cứu vecto, các hàm tuyến
tính là một khái niệm cơ bản trong cách trình bày hiện đại của hình
học, được sử dụng trong Vật Lý và Kỹ Thuật giúp xác định các đối

tượng cơ bản như mặt phẳng, đường thẳng và chuyển động quay, cho
phép chúng ta mơ hình hố nhiều hiện tượng tự nhiên. Đại số tuyến
tính cịn nghiên cứu các tổ hợp tuyến tính, nghiên cứu về không gian
vecto, không gian euclide, đường thẳng, mặt phẳng, các loại ánh xạ
tuyến tính. Đại số tuyến tính cịn đề cập những chủ đề như:
+ Vectơ riêng, trị riêng.
+ Ma trận trực giao.
+ Các phép biến đổi sơ cấp.
+ Giải hệ phương trình tuyến tính bằng ma trận.
+ Các phép toán (cộng, nhân) đối với ma trận.
+ Các tính chất của ma trận.
+ Phân hủy giá trị đơn lẻ.
+ Khảo sát sự phụ thuộc tuyến tính hay độc lập tuyến tính.
Ngồi các đề cập ở trên thì đại số tuyến tính cịn được ứng dụng
vào các lĩnh vực khoa học như: kinh tế, môi trường, công nghệ máy
tính, xử lý tín hiệu, đồ hoạ, trí tuệ nhân tạo (AI) … Cịn có các phép
phân tích như: SVD, PCA, mã Hamming, mơ hình Morkov, Thuật
tốn Page Rank được ứng dụng để giải quyết số liệu khi gặp dữ liệu
quá lớn và còn nhiều ứng dụng khác . Chúng ta sẽ cùng tìm hiểu để
hiểu rõ hơn về các ứng dụng mà Đại Số Tuyến Tính đã mang lại.

0

3

0


I. CƠ SỞ LÝ THUYẾT CỦA PHÂN TÍCH SVD:
-Phương pháp phân tích trị riêng (SVD – Singular Value

Decomposition) là một đề tài rất được quan tâm của đại số tuyến
tính. Phương pháp này có nhiều ứng dụng thực tế, một trong số
đó là ứng dụng trong Hệ Thống Gợi Ý Trong Học Máy (machine
Learning).
-Do đó, để tiếp cận được thuật tốn phân tích SVD, chúng ta cần
phải nắm những kiến thức cơ bản về cơ sở tạo nên nó. Gọi tắt là
“Cơ sở lí thuyết của việc phân tích SVD”. Chúng ta có thể tham
khảo thêm những khái niệm, tính chất định lí liên quan đến
những vấn đề dưới đây qua quyển: “Giáo trình Đại số tuyến tính,
NXB ĐHQG”, gồm:
- Trị riêng và vectơ riêng.
- Khái niệm về Họ trực giao và trực chuẩn. Trực giao hóa
Gram-Schmidt.
- Chéo hóa ma trận, chéo hóa trực giao và những tính chất
của chúng.
1.Trị riêng và vectơ riêng
1.1 Định nghĩa:
-Cho A là ma trận vuông cấp n trên trường số K (K =; )
-Số λ được gọi là giá trị riêng ( gọi tắt là trị riêng – kí hiệu GTR )
của ma trận A, nếu tồn tại một vectơ 0 sao cho: A=λ
-Khi đó vectơ u được gọi là vectơ riêng (VTR) của ma trận A
ứng với giá trị riêng λ.
1.2 Tính chất:
a)Giá trị riêng λ chính là nghiệm của phương trình
det (A - λI) = 0 (1) được gọi là phương trình đặc trưng của
ma trận A.
b) Một giá trị riêng có thể có nhiều vectơ riêng.
c) Mỗi vectơ riêng chỉ ứng với một giá trị riêng duy nhất
d) Ma trận A là nghiệm của đa thức đặc trưng của chính nó
(trong trường hợp này đa thức đặc trưng được coi là đa


0

4

0


thức ma trận, nghĩa là biến số của nó khơng phải là biến
số thực mà là biến ma trận).
e) Nếu λ = 0 là giá trị riêng của ma trận A thì A khơng khả
nghịch. Ngược lại, nếu mọi GTR của A đều khác khơng thì
A khả nghịch.
f) Nếu λ là GTR của ma trận A thìlà giá trị riêng của ma trận .
g) Một ma trận đối xứng thì các véctơ riêng vng góc với
nhau.
2. Chéo hóa ma trận
2.1 Định nghĩa: Ma trận vuông A được gọi là chéo hóa được khi
và chỉ khi tồn tại ma trận chéo D và ma trận khả nghịch P sao cho
A = PD.
2.2 Diagonalication Theorem:
*Phát biểu: Ma trận vuông A cấp n chéo hóa được khi và chỉ khi
tồn tại n vector riêng độc lập tuyến tính của A.
*Điều kiện: Ma trận vng A cấp n chéo hóa được khi và chỉ khi:
-Ma trận A có n vector riêng độc lập tuyến tính.
-Ma trận A có n giá trị riêng kể cả bội và số chiều của tất cả các
không gian con riêng tương ứng bằng số bội của giá trị riêng của
nó.
2.3 Phương pháp chéo hóa ma trận:
9 / 23

Bước 1. Tìm giá trị riêng:
-Lập phương trình đặc trưng . Giải phương trình tìm giá trị riêng.
+Nếu A khơng có giá trị riêng thì A khơng chéo hóa được.
+Nếu A có k giá trị riêng , ,… với số bội tương ứng
,,….
• Nếu ++…+ < thì A khơng chéo hóa được.
• Nếu ++…+ = thì sang bước 2.
Bước 2. Tìm cơ sở của các không gian con riêng:
-Với mỗi giá trị riêng (i=1, k ) tìm dim(Ei).
+Nếu tồn tại một dim(Ei )< ni thì ma trận A khơng chéo hóa
được.
+Nếu dim(Ei) = ni i , ta tìm cơ sở của các không gian con riêng

0

5

0


Ei ( i=1, k ).
Bước 3. Kết luận:
Tìm ma trận P có các cột là các vector cơ sở của không gian con
riêng Ei ( i=1, k ) và ma trận D có các phần tử trên đường chéo
là các giá trị riêng của A.
3. Thuật tốn phân tích SVD (Singular Value Decomposition)
3.1 Q trình phân tích SVD của một ma trận dựa trên cơ sở
lí thuyết đã nêu trên:
-Singular Value Decomposition là ứng dụng nổi bật trong Đại số
Tuyến Tính. Bất kỳ một ma trận A nào với cấp (khơng nhất thiết

phải là ma trận vng), ta đều có thể phân tích thành dạng:
(!)
-Trong đó Q và P là các ma trận trực giao; và Σ là ma trận chéo
không vuông (cấp mxn) với các phần tử trên đường chéo , mặc dù Σ
không phải ma trận vuông nhưng, ta vẫn có thể coi nó là ma trận chéo
miễn là các phần tử khác 0 của nó chỉ nằm trên đường chéo (tức là tại
các vị trí có chỉ số hàng và chỉ số cột như nhau); r là Rank(A) bằng số
lượng phần tử khác 0 trong ma trận đường chéo Σ.
*Chú ý rằng cách biểu diễn (!) không là duy nhất, vì ta chỉ cần đổi
dấu Q và P thì vẫn thỏa mãn.
-Biểu diễn SVD qua các trường hợp của ma trận A:
+TH1:

+TH2:

0

6

0


(H1: SVD cho ma trận A khi: (hình trên), và (hình dưới). Σ là một ma trận
đường chéo với các phần tử 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 giá trị dần
về 0.)

3.2 Nguồn gốc SVD
-Cho A là một ma trận thực mxn. Ta chứng minh rằng tập hợp các trị
riêng khác không của và là trùng nhau. Thật vậy, giả sử là một trị

riêng (eigenvalue) khác 0 của và là vector riêng (eigenvector) của
tương ứng. Khi đó :

Suy ra:
-Điều này tương đương với . Vì khác 0 nên khác 0. Suy ra là trị riêng
của và là vector riêng của .
-Vì ma trận và là 2 ma trận đối xứng, nên chúng chéo hóa trực giao
được. Khi đó:


(vì , là ma trận đơn vị)


(vì , là ma trận đơn vị)
Suy ra
- Các cột của ma trận là các vector của và các là các trị riêng khác 0
của .

0

7

0


- Các cột của ma trận là các vector của và các là các trị riêng khác 0
của .
- là ma trận chéo với trị riêng tương ứng của và là . Ta sắp xếp các
sao cho (hình A1).
3.3 Compact SVD ( SVD gọn nhẹ hơn)

-Gọi .
-Viết lại biểu thức (!) dưới dạng tổng với Rank (A) = 1

-Với mỗi là một ma trận có hạng bằng 1.
-Rõ ràng với cách phân tích này, ta nhận thấy rằng ma trận phụ thuộc
vào r cột đầu tiên của và r phần tử khác khơng trên đường chéo . Ta
có phân tích gọn hơn của gọi là Compact SVD :
-Với và là các ma trận được tạo nên từ các cột của và tương ứng, là
ma trận con được tạo bởi hàng đầu tiên và cột đầu tiên của . Nếu ma
trận có rank nhỏ hơn rất nhiều so với số hàng và số cột , ta sẽ được
lợi nhiều về việc lưu trữ.
3.4 Truncated SVD( rút ngắn dữ liệu)
-Chú ý rằng trong ma trận , các giá trị trên đường chéo là không âm
và giảm dần . Thông thường, chỉ với một lượng nhỏ các mang giá trị
lớn, các giá trị cịn lại thường nhỏ và gần 0. Khi đó ta có thể xấp xỉ
ma trận A bằng tổng của ma trận ra hạng bằng 1:
-Để hiểu rõ hơn về lý thuyết trừu tượng của SVD chúng ta cùng tìm
hiểu một ví dụ về phân rã của SVD đối với ma trận bằng tay:

Ví dụ 6.6.4: Tìm phân tích SVD của ma trận
Lời giải
Ta có . Chéo hố trực giao: , với
Ta có
Chéo hố trực giao : , với và

0

8

0



Vậy phân tích SVD của A là ,với ở trên và .
( Trích từ Giáo Trình Đại Số Tuyến Tính)
II. ỨNG DỤNG CỦA PHÂN TÍCH SVD VÀO HỆ THỐNG
GỢI Ý TRONG HỌC MÁY (Machine Learning)
 Hệ thống gợi ý là gì?
-Hệ thống giới thiệu là một hệ thống thơng minh dự đốn xếp
hạng và sở thích của người dùng đối với sản phẩm. Ứng dụng chính
của hệ thống giới thiệu là tìm kiếm mối quan hệ giữa người dùng và
sản phẩm để tối đa hóa sự tương tác của người dùng với sản phẩm, đề
xuất video hoặc nhạc có liên quan để tạo danh sách phát cho người
dùng khi họ tương tác với một mục liên quan.
-Tồn tại nhiều hệ thống có khả năng tự động gợi ý cho người dùng
những sản phẩm họ có thể thích. Những thuật tố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 ý.
-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
tố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 recommend phù hợp. Các Recommendation Systems
thường được chia thành hai nhóm lớn: Collaborative Filtering (Lọc
cộng tác), Content Filtering (lọc nội dung)
1. Collaborative Filtering: Có 2 hướng tiếp cận Collaborative
Filtering:
- Xác định mức độ quan tâm của mỗi user tới một item dựa trên mức
độ quan tâm của users gần giống nhau (similar users) tới item đó cịn

được gọi là User-user collaborative filtering.
-Hai là thay vì xác định user similarities, hệ thống sẽ xác định item
similarities. Từ đó, hệ thống gợi ý những items gần giống với những
items mà user có mức độ quan tâm cao gọi là item-item collaborative
filtering.

0

9

0


1.1 User-user collaborative filtering.
-Công việc quan trọng nhất phải làm trước tiên trong User-user là
phải xác định được sự giống nhau (similarity) giữa hai users. Dữ liệu
ta có là Utility matrix Y , vậy nên sự giống nhau này phải được xác

định dựa trên các cột tương ứng với hai users trong ma trận này. Xét
ví dụ trong hình sau:
-Giả sử có các users từ u0 đến u6 và các item từ i0 đến i4 trong đó
các số trong mỗi ô vuông thể hiện số sao mà mỗi user đã rated cho
item với giá trị cao hơn thể hiện mức độ quan tâm cao hơn. Các dấu
hỏi chấm là các giá trị mà hệ thống cần phải đi tìm. Đặt mức độ giống
nhau của hai users ui, uj là sim (ui, uj)
-Quan sát đầu tiên chúng ta có thể nhận thấy là các u 0, u1 thích i0, i1,
i2và khơng thích i3, i4 cho lắm. Điều ngược lại xảy ra ở các users cịn
lại. Vì vậy, một similiarity function tốt cần đảm bảo:
sim(u0, u1) > sim(u0, ui), ∀i > 1
-Từ đó, để xác định mức độ quan tâm của u 0 lên i2 chúng ta nên dựa

trên rated của u1 lên sản phẩm này. Vì u 1 đã thích i2 nên hệ thống cần
gợi ý i2 cho u0.

0

10

0


-Sau đó sử dụng giá trị trung bình cộng ratings của mỗi user bằng
cách trừ ratings của mỗi user cho giá trị trung bình ratings tương ứng
của user đó và thay dấu ‘?’ bằng giá trị 0.

-Mục đích của cách xử lý này là: − Phân loại ratings thành 2 loại:
giá trị âm (user khơng thích item) và dương (user thích item). Các giá
trị bằng 0 là những item chưa được đánh giá giúp việc lưu trữ tối ưu
hơn.
-Sau khi chuẩn hóa ma trận Utility, ta tính tốn độ tương đồng giữa
các users. Chúng ta sử dụng hàm cosine similarity
-Kết quả sau khi tính tốn độ tương đồng (độ tương đồng là số
trong khoảng -1 đến 1, càng gần 1 thì càng tương đồng, càng gần -1
thì càng đối lập)
Cơng thức phổ biến được sử dụng để dự đoán rating của u cho i là:
-Trong đó, N(u, i) là tập k users gần nhất (có độ tương đồng cao
nhất) với user u và đã từng đánh giá item i.

0

11


0


-Cuối cùng, cộng lại các giá trị ratings với ratings trung bình (ở
bước chuẩn hóa) theo từng cột. Chúng ta sẽ thu được ma trận hồn
thiện.
-Sau khi đã dự đốn được người dùng sẽ đánh giá như thế nào,
chúng ta sẽ lấy ra được top bộ phim mà user sẽ thích.

1.2 Item-item Collaborative Filtering.
Hướng tiếp cận này được sử dụng nhiều trong thực tế hơn. Vì:
- Số lượng items thường nhỏ hơn số lượng users, Similarity matrix
trong trường hợp này cũng nhỏ hơn nhiều, thuận lợi cho việc lưu trữ
và tính tốn ở các bước sau.
- Số lượng phần tử đã biết trong Utility matrix là như nhau nhưng số
hàng (items) ít hơn số cột (users), nên trung bình, mỗi hàng của ma
trận này sẽ có nhiều phần tử đã biết hơn số phần tử đã biết trong mỗi
cột. Việc này cũng dễ hiểu vì mỗi item có thể được rated bởi nhiều
users. Kéo theo đó, giá trị trung bình của mỗi hàng ít bị thay đổi hơn
khi có thêm một vài ratings. Như vậy, việc cập nhật ma trận Similarity
Matrix có thể được thực hiện ít thường xun hơn.
-Về mặt tính tốn, Item-item CF có thể nhận được từ User-user CF
bằng cách chuyển vị (transpose) ma trận utility, và coi như items đang
rate users. Sau khi tính ra kết quả cuối cùng, ta lại chuyển vị một lần
nữa để thu được kết quả.
2. Content Filtering

0


12

0


-Ý tưởng chính của phương pháp dựa trên nội dung là cố gắng xây
dựng một mơ hình, dựa trên các “tính năng” có sẵn, giải thích các
tương tác giữa người dùng và mục được quan sát. Xem xét người
dùng và phim, tạo mơ hình theo cách mà nó có thể cung cấp cho ta cái
nhìn sâu sắc về lý do tại sao điều đó lại xảy ra. Mơ hình như vậy giúp
ta đưa ra các dự đoán mới cho người dùng khá dễ dàng, chỉ bằng cách
xem tiểu sử của người dùng này và dựa trên thông tin của họ, để xác
định các bộ phim có liên quan để đề xuất.

2.1: Bài tốn ứng dụng của Phân Tích SVD vào Hệ Thống Gợi
Ý cho người nghe nghe những thể loại nhạc.
-Bài Tốn: Bảng mơ tả sự đánh giá xu hướng nghe nhạc của
người nghe (User 1, User 2,…) với những thể loại nhạc như
(Pop,EDM,…).
Nhạc Đồng
Pop
EDM
Quê
User 1
1
0
1
User 2
1
1

0
User 3
1
0
0
Viết hệ thống gợi ý thể hiện sự tương quan giữa người nghe với
bảng dữ liệu đã cho ở trên.Gợi ý cho người nghe nên nghe thể
loại nào là hợp lí?
Ý TƯỞNG
-Dựa vào bảng dữ liệu ở trên, trực quan cho thấy giới trẻ có
xu hướng nghe những thể loại nhạc Pop, ca từ mạnh, những

0

13

0


điệu nhảy hút mắt và quên đi những thể loại nhạc nhẹ nhàng,
tình cảm như nhạc Đồng Q.Có thể ví dụ như User 1 họ thích
nghe nhạc Đồng Quê, họ thích sự nhẹ nhàng trong tâm hồn và
bản thân họ cảm thấy nếu như nghe hoài 1 thể loại cũng gây
chán nên họ có thể chuyển qua nhạc Pop, EDM để thưởng thức
thể loại mới ấy. Một cách định tính, chúng ta có thể gợi ý cho họ
nghe thể loại Pop hoặc EDM.
-SVD là công cụ hữu hiệu để giải quyết bài tốn trên. Đó là
thơng qua các thao tác phân tích, khảo sát, giảm chiều dữ liệu.
Thơng qua đó tìm được ma trận phù hợp với ma trận ban đầu để
dự đoán xác suất những thể loại nhạc mà các user chưa nghe.

-Đầu tiên ta phân tích ma trận trên thành 3 ma trận con. Dựa vào
lý thuyết Compact SVD để giữ lại các Singular Value khác 0 và
lược bỏ đi những giá trị còn lại cũng như lượt bỏ những cột,
hàng tương ứng với các Singular Value ấy.

Sau khi phân tích thành 3 ma trận con. Chúng ta có thể nhận xét
như sau:
+Ma trận U chia thể loại nhạc thành 3 loại là Pop, EDM,
Nhạc Đồng Quê. Cột ma trận U thể hiện độ yêu thích của người
nghe với từng thể loại.
 VD:Từ User 2 đến User 3: học thích nghe thể loại nhạc EDM
nhưng User 3 lại khơng thích nghe, có thể hiểu là User 3 là
người thích nghe thể loại nhạc nhẹ nhàng, sâu lắng như nhạc trữ
trình, Nhạc Đồng Quê.
+Ma trận đối xứng chứa các Single Values là thể
hiện”Streng” mức độ ảnh hưởng đến các giá trị của ma trận ban
đầu.

0

14

0


+Các hàng của ma trận chuyển vị V thể hiện thuộc tính của
từng thể loại nhạc.
 VD: Nhạc Pop là thể loại nhạc hiện đại, có nhiều điệu nhảy hút
mắt, câu từ mạnh những không được đánh giá cao.
 Nhạc EDM là thể loại nhạc gây nghiện khiến người nghe cảm

thấy sảng khoái, được mix lại và thêm hiệu ứng âm thanh, điển
hình nhạc EDM được đánh giá cao ở User 2 với giá trị 0,7071.
 Nhạc Đồng Quê mang hơi hướng nhẹ nhàng, lãng mạn. Câu từ
sâu sắc, hiệu ứng không quá nổi bật những cũng được đánh giá
khá cao với giá trị 0,4597.
 Có thể kết luận rằng xu hướng nghe nhạc hiện đại ngày
càng thịnh hành và chiếm đại đa số giới trẻ nghe và cảm
nhận lấn át so với các loại nhạc nhẹ, trữ tình.
-Trong đó:
+ Ma trận U: thể hiện độ yêu thích của người nghe.
+ Ma trận S: thể hiện mức độ nghe nhạc của người ghe.
+ Ma trận V: thể hiện xu hướng nghe nhạc của người nghe
với dữ liệu ban đầu.

-Ta bỏ đi giá trị khá nhỏ và không ảnh hưởng đến ma trận ban đầu.
-Ta bỏ đi dữ liệu thể loại nhạc Đồng Quê đi để tạo ra một bộ dữ liệu
mới khơng bị khó khăn khi chọn loại nhạc phù hợp cho người nghe.

User 1
User 2
User 3

Pop

EDM

1
1
1


0
1
0

Nhạc Đồng
Quê
1
0
0

Pop

EDM

Nhạc Đồng

0

15

0

Ma trận
ban đầu


Quê
User 1
1,3169
-0,3810

-0,0080
Ma trận
User 2
0,9022
0,6190
-0,8961
mới
User 3
0,6392
-0,3251
-0,6969
 Sự khác biệt giữa ma trận mới và ma trận ban đầu là:
Người nghe đang dần dần chuyển sang nghe nhạc Pop và
dần lãng quên đi thể loại nhạc Đồng Quê.Phản ánh xu
hướng giới trẻ hiện nay đều thích nghe nhạc nhiện đại,
thích nghe những câu từ mạnh và điệu nhảy gây nghiện.
 Collaborative Filtering (Lọc cộng tác), Content Filtering (lọc
nội dung)
Dưới đây là danh sách các điểm phân biệt Lọc cộng tác và Lọc dựa
trên nội dung với nhau:

Phương pháp dựa trên nội dung u cầu lượng thơng tin về các
tính năng của mặt hàng, thay vì sử dụng các tương tác và phản hồi của
người dùng. Chúng có thể là các thuộc tính phim như thể loại, đạo
diễn, diễn viên, v.v. Mặt khác, lọc cộng tác khơng cần bất kỳ thứ gì
khác ngoại trừ tùy chọn lịch sử của người dùng đối với một tập hợp
các mục để đề xuất từ đó và bởi vì nó dựa trên dữ liệu lịch sử, giả
định cốt lõi được đưa ra là những người dùng đã đồng ý trong quá
khứ cũng sẽ có xu hướng đồng ý trong tương lai.


Kiến thức miền trong trường hợp lọc cộng tác là khơng cần thiết
vì các phép nhúng được học tự động, nhưng trong trường hợp tiếp cận
dựa trên nội dung, vì biểu diễn tính năng của các mục được thiết kế
thủ cơng ở một mức độ nào đó, nên kỹ thuật này đòi hỏi rất nhiều kiến
thức miền được cung cấp.

Mơ hình lọc cộng tác có thể giúp người dùng khám phá sở thích
mới và mặc dù hệ thống ML có thể khơng biết sở thích của người
dùng đối với một mặt hàng nhất định, nhưng mơ hình vẫn có thể đề
xuất nó vì những người dùng tương tự cũng quan tâm đến mặt hàng
đó. Mặt khác, Mơ hình dựa trên nội dung chỉ có thể đưa ra đề xuất
dựa trên sở thích hiện có của người dùng và do đó, mơ hình này chỉ
có khả năng mở rộng hạn chế dựa trên sở thích hiện có của người
dùng.

0

16

0



Mơ hình lọc dựa trên nội dung khơng cần bất kỳ dữ liệu nào về
những người dùng khác, vì các đề xuất dành riêng cho một người
dùng cụ thể. Điều này giúp dễ dàng thu nhỏ quy mô giống nhau cho
một số lượng lớn người dùng. Điều tương tự không thể được nói hoặc
thực hiện đối với phương pháp lọc cộng tác.

Thuật tốn cộng tác chỉ sử dụng hành vi của người dùng để đề

xuất các mục, trong khi lọc dựa trên lội dung phải biết nội dung của
cả người dùng và mục.

Phần III: Code Matlab
1. Đoạn code minh hoạ phân tích SVD vào Hệ thống gợi ý học
máy (Matching Leaning).
% Singular Value Decomposition (SVD)
A=[4 2 3; 3 -5 2; -2 3 8];
% Square matrix A
B=[4 2 3 8; 3 -5 2 -14; -2 3 8 27]; % Rectangular matrix B
fprintf('SVD for the matrix A: \n');
[U, S, V]=svd(A)
fprintf('\n\nSVD for the matrix B: \n');
[U, S, V]=svd(B)

-Kết quả:

0

17

0


2. Đoạn code minh hoạ ví dụ của phân tích SVD vào hệ thống gợi ý
nghe các thể loại nhạc.
% % Singular Value Decomposition (SVD)
A=[1 0 1; 1 1 0; 1 0 0];
[U,S,V]=svd(A)
A=U*S*V


-Kết quả:

KẾT LUẬN
Như vậy chúng ta biết được rằng ứng dụng phân tích SVD có vai
trị quan trọng trong việc xử lý dữ liệu, làm việc với dữ liệu lớn, có
thể giảm thiểu lượng lớn dữ liệu để dễ dàng phân tích. Vì vậy chúng
ta đã biết được và cảm nhận được những thành quả mà ứng dụng phân
tích SVD mang lại. Cũng qua đó chúng ta có thể hiểu sâu hơn về
không gian của ma trận, không đơn thuần là những con số theo hàng
hay cột mà còn giúp chọn ra đại diện quan trọng cho ma trận thay thế
các giá trị Singular Value quá lớn không hẳn là giá trị riêng hay vecto
riêng của một con số nào khác. Một lời cảm ơn chân thành đến thầy
Vinh giáo viên hướng dẫn bộ môn đại số tuyến tính và các Thầy Cơ

0

18

0


khác đã tận tâm hướng dẫn, góp ý và chỉ bảo thêm nhiều thứ để rút
kinh nghiệm cho các lần sau.
Chúng Em Chân Thành Cảm Ơn
Phần IV: Nguồn 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

2. Machine Learning cơ bản (machinelearningcoban.com)

3. Giá trị riêng và vectơ riêng – Wikipedia tiếng Việt
4. Singular Values Decomposition và một số ứng dụng
(viblo.asia)

0

19

0



×