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

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

20 115 0

Đ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 đề Ứng dụng của Phân tích SVD vào hệ thống gợi ý học máy
Người hướng dẫn PTS. Đặng Văn Vinh
Trường học Đại học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Khoa học Máy tính và Công nghệ Thông tin
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 20
Dung lượng 0,92 MB

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

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜ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 Ý

Trang 1

ĐẠ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

Trang 2

Giới thiệu chung

- Lớp: BK21-HTĐ

- Nhóm:

- Đề tài : 9

- Danh sách thành viên

( Leader)

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

Trang 3

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 toá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 toán

IV Nguồn tài liệu tham khảo

Trang 4

Đạ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 hoá 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

Ngoà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 toá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

Lời Mở Đầu

Trang 5

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 toá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ơ sao cho: 0 A=λ

-Khi đó vectơ được gọi là vectơ riêng (VTR) của ma trận Au

ứ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

Trang 6

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 thì không khảA A

nghịch Ngược lại, nếu mọi GTR của đều khác không thìA

A khả nghịch.

f) Nếu là GTR của ma trận thìlà giá trị riêng của ma trận λ A

g) Một ma trận đối xứng thì các véctơ riêng vuông 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 vuông 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, ) tìm dim(k Ei)

+Nếu tồn tại một dim(Ei )< n thì ma trận A không chéo hóai

được

+Nếu dim(Ei ) = ni i , ta tìm cơ sở của các không gian con riêng

Trang 7

Ei ( 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 ( i=1, ) và ma trận D có các phần tử trên đường chéo Ei k

là các giá trị riêng của A

3 Thuật toán phân tích SVD (Singular Value Decomposition) 3.1 Quá 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 vuông), ta đều có thể phân tích thành dạng:

(!)

-Trong đó và là các ma trận trực giao; và là ma trận chéoQ P Σ

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:

Trang 8

(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

Trang 9

- 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 hoá trực giao: , với

Ta có

Chéo hoá trực giao : , với và

Trang 10

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ự đoá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 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 ý

-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 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

Trang 11

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ừ u đến u và các item từ i đến i trong đó0 6 0 4 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 u , u là sim (u , u )i j i j

-Quan sát đầu tiên chúng ta có thể nhận thấy là các u , u thích i , i ,0 1 0 1 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, u ) > sim(u , u ), i > 11 0 i ∀ -Từ đó, để xác định mức độ quan tâm của u lên i chúng ta nên dựa0 2 trên rated của u lên sản phẩm này Vì u đã thích i nên hệ thống cần1 1 2 gợi ý i cho u2 0.

Trang 12

-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 toá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 toá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

Trang 13

-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 hoàn thiện

-Sau khi đã dự đoá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 toá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 xuyên hơn

-Về mặt tính toá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

Trang 14

-Ý 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 toá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 Toá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,…)

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

Ngày đăng: 18/12/2022, 10:53

TỪ KHÓA LIÊN QUAN

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

w