Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
0,92 MB
Nội dung
ĐẠ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: 0 Giới thiệu chung - Lớp: BK21-HTĐ Nhóm: Đề tài : Danh sách thành viên Họ tên MSSV Ghi 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 sở lý thuyết phân tích SVD, góp ý kiến, soạn thảo Word chỉnh sửa Tổng hợp nội dung, chỉnh sửa đóng góp ý kiến Tìm nội dung ứng dụng phân tích SVD, chỉnh sửa đóng góp ý kiến.Gợi ý viết code Matlab Tìm nội dung sở lý thuyết 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 ứng dụng phân tích SVD, đóng góp ý kiến ( Leader) Mục Lục LỜI MỞ ĐẦU: I CƠ SỞ LÝ THUYẾT CỦA PHÂN TÍCH SVD Trị riêng vecto riêng Chéo hóa ma trận Thuật tốn phân tích SVD (Singular Value Decomposition) 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) Collaborative Filtering 10 Content Filtering .13 III Code Matlab Đoạn code minh hoạ Hệ thống gợi ý Đoạn code minh hoạ ví dụ tốn IV Nguồn tài liệu tham khảo Lời Mở Đầu Đại số tuyến tính nhánh quan trọng tốn học đại số tuyến tính nghiên cứu vecto, hàm tuyến tính khái niệm cách trình bày đại hình học, sử dụng Vật Lý Kỹ Thuật giúp xác định đối tượng mặt phẳng, đường thẳng chuyển động quay, cho phép mơ hình hố nhiều tượng tự nhiên Đại số tuyến tính cịn nghiên cứu tổ hợp tuyến tính, nghiên cứu khơng gian vecto, khơng gian euclide, đường thẳng, mặt phẳng, loại ánh xạ tuyến tính Đại số tuyến tính cịn đề cập 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 ma trận + Các phép toán (cộng, nhân) ma trận + Các tính chất ma trận + Phân hủy giá trị đơn lẻ + Khảo sát phụ thuộc tuyến tính hay độc lập tuyến tính Ngồi đề cập đại số tuyến tính cịn ứng dụng vào 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ó phép phân tích như: SVD, PCA, mã Hamming, mơ hình Morkov, Thuật toán Page Rank ứng dụng để giải số liệu gặp liệu lớn nhiều ứng dụng khác Chúng ta tìm hiểu để hiểu rõ ứng dụng mà Đại Số Tuyến Tính mang lại 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) đề tài quan tâm đại số tuyến tính Phương pháp có nhiều ứng dụng thực tế, số ứng dụng Hệ Thống Gợi Ý Trong Học Máy (machine Learning) -Do đó, để tiếp cận thuật tốn phân tích SVD, cần phải nắm kiến thức sở tạo nên Gọi tắt “Cơ sở lí thuyết việc phân tích SVD” Chúng ta tham khảo thêm khái niệm, tính chất định lí liên quan đến vấn đề qua quyển: “Giáo trình Đại số tuyến tính, NXB ĐHQG”, gồm: - Trị riêng vectơ riêng - Khái niệm Họ trực giao 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 tính chất chúng 1.Trị riêng vectơ riêng 1.1 Định nghĩa: -Cho A ma trận vuông cấp n trường số K (K =; ) -Số λ gọi giá trị riêng ( gọi tắt trị riêng – kí hiệu GTR ) ma trận A, tồn vectơ cho: A=λ -Khi vectơ u gọi vectơ riêng (VTR) ma trận A ứng với giá trị riêng λ 1.2 Tính chất: a)Giá trị riêng λ nghiệm phương trình det (A - λI) = (1) gọi phương trình đặc trưng ma trận A b) Một giá trị riêng có nhiều vectơ riêng c) Mỗi vectơ riêng ứng với giá trị riêng d) Ma trận A nghiệm đa thức đặc trưng (trong trường hợp đa thức đặc trưng coi đa thức ma trận, nghĩa biến số khơng phải biến số thực mà biến ma trận) e) Nếu λ = giá trị riêng ma trận A A không khả nghịch Ngược lại, GTR A khác khơng A khả nghịch f) Nếu λ GTR ma trận A thìlà giá trị riêng ma trận g) Một ma trận đối xứng véctơ riêng vng góc với Chéo hóa ma trận 2.1 Định nghĩa: Ma trận vng A gọi chéo hóa tồn ma trận chéo D ma trận khả nghịch P cho A = PD 2.2 Diagonalication Theorem: *Phát biểu: Ma trận vuông A cấp n chéo hóa tồn n vector riêng độc lập tuyến tính A *Điều kiện: Ma trận vng A cấp n chéo hóa 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ể bội số chiều tất không gian riêng tương ứng số bội giá trị riêng 2.3 Phương pháp chéo hóa ma trận: / 23 Bước 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 A khơng chéo hóa +Nếu A có k giá trị riêng , ,… với số bội tương ứng ,,… • Nếu ++…+ < A khơng chéo hóa • Nếu ++…+ = sang bước Bước Tìm sở khơng gian riêng: -Với giá trị riêng (i=1, k ) tìm dim(Ei) +Nếu tồn dim(Ei )< ni ma trận A khơng chéo hóa +Nếu dim(Ei) = ni i , ta tìm sở khơng gian riêng Ei ( i=1, k ) Bước Kết luận: Tìm ma trận P có cột vector sở không gian riêng Ei ( i=1, k ) ma trận D có phần tử đường chéo giá trị riêng A Thuật tốn phân tích SVD (Singular Value Decomposition) 3.1 Q trình phân tích SVD ma trận dựa sở lí thuyết nêu trên: -Singular Value Decomposition ứng dụng bật Đại số Tuyến Tính Bất kỳ ma trận A với cấp (không thiết phải ma trận vng), ta phân tích thành dạng: (!) -Trong Q P ma trận trực giao; Σ ma trận chéo không vuông (cấp mxn) với phần tử đường chéo , Σ ma trận vuông nhưng, ta coi ma trận chéo miễn phần tử khác nằm đường chéo (tức vị trí có số hàng số cột nhau); r Rank(A) số lượng phần tử khác ma trận đường chéo Σ *Chú ý cách biểu diễn (!) khơng nhất, ta cần đổi dấu Q P thỏa mãn -Biểu diễn SVD qua trường hợp ma trận A: +TH1: +TH2: (H1: SVD cho ma trận A khi: (hình trên), (hình dưới) Σ ma trận đường chéo với phần tử giảm dần khơng âm Màu đỏ đậm thể giá trị cao Các ô màu trắng ma trận thể giá trị dần 0.) 3.2 Nguồn gốc SVD -Cho A ma trận thực mxn Ta chứng minh tập hợp trị riêng khác không trùng Thật vậy, giả sử trị riêng (eigenvalue) khác vector riêng (eigenvector) tương ứng Khi : ➪ Suy ra: -Điều tương đương với Vì khác nên khác Suy trị riêng vector riêng -Vì ma trận ma trận đối xứng, nên chúng chéo hóa trực giao Khi đó: (vì , ma trận đơn vị) (vì , ma trận đơn vị) Suy - Các cột ma trận vector trị riêng khác - Các cột ma trận vector trị riêng khác - ma trận chéo với trị riêng tương ứng Ta xếp 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ạng tổng với Rank (A) = -Với ma trận có hạng -Rõ ràng với cách phân tích này, ta nhận thấy ma trận phụ thuộc vào r cột r phần tử khác khơng đường chéo Ta có phân tích gọn gọi Compact SVD : -Với ma trận tạo nên từ cột tương ứng, ma trận tạo hàng cột Nếu ma trận có rank nhỏ nhiều so với số hàng số cột , ta lợi nhiều việc lưu trữ 3.4 Truncated SVD( rút ngắn liệu) -Chú ý ma trận , giá trị đường chéo không âm giảm dần Thông thường, với lượng nhỏ mang giá trị lớn, giá trị lại thường nhỏ gần Khi ta xấp xỉ ma trận A tổng ma trận hạng 1: -Để hiểu rõ lý thuyết trừu tượng SVD tìm hiểu ví dụ phân rã SVD ma trận tay: Ví dụ 6.6.4: Tìm phân tích SVD 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ậy phân tích SVD A ,với ( 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 ý gì? -Hệ thống giới thiệu hệ thống thơng minh dự đốn xếp hạng sở thích người dùng sản phẩm Ứng dụng hệ thống giới thiệu tìm kiếm mối quan hệ người dùng sản phẩm để tối đa hóa tương tác người dùng với sản phẩm, đề xuất video nhạc có liên quan để tạo danh sách phát cho người dùng họ tương tác với mục liên quan -Tồn nhiều hệ thống có khả tự động gợi ý cho người dùng sản phẩm họ thích Những thuật tốn đằng sau ứng dụng thuật toán Machine Learning có tên gọi chung Recommender Systems Recommendation Systems, tức Hệ thống gợi ý -Có hai thực thể Recommendation Systems users items.Users người dùng, Items sản phẩm, ví dụ phim, hát, sách, clip, users khác toán gợi ý kết bạn Mục đích Recommender Systems dự đoán mức độ quan tâm user tới item đó, qua có chiến lược recommend phù hợp Các Recommendation Systems thường chia thành hai nhóm lớn: Collaborative Filtering (Lọc cộng tác), Content Filtering (lọc nội dung) Collaborative Filtering: Có hướng tiếp cận Collaborative Filtering: - Xác định mức độ quan tâm user tới item dựa mức độ quan tâm users gần giống (similar users) tới item gọi User-user collaborative filtering -Hai thay xác định user similarities, hệ thống xác định item similarities Từ đó, hệ thống gợi ý items gần giống với items mà user có mức độ quan tâm cao gọi item-item collaborative filtering 1.1 User-user collaborative filtering -Công việc quan trọng phải làm trước tiên User-user phải xác định giống (similarity) hai users Dữ liệu ta có Utility matrix Y , nên giống phải xác định dựa cột tương ứng với hai users ma trận Xét ví dụ hình sau: -Giả sử có users từ u0 đến u6 item từ i0 đến i4 số vng thể số mà user rated cho item với giá trị cao thể mức độ quan tâm cao Các dấu hỏi chấm giá trị mà hệ thống cần phải tìm Đặt mức độ giống hai users ui, uj sim (ui, uj) -Quan sát nhận thấy u 0, u1 thích i0, i1, i2và khơng thích i3, i4 cho Điều ngược lại xảy users cịn lại Vì vậy, similiarity function tốt cần đảm bảo: sim(u0, u1) > sim(u0, ui), ∀i > -Từ đó, để xác định mức độ quan tâm u lên i2 nên dựa rated u1 lên sản phẩm Vì u thích i2 nên hệ thống cần gợi ý i2 cho u0 10 -Sau sử dụng giá trị trung bình cộng ratings user cách trừ ratings user cho giá trị trung bình ratings tương ứng user thay dấu ‘?’ giá trị -Mục đích cách xử lý là: − Phân loại ratings thành loại: giá trị âm (user khơng thích item) dương (user thích item) Các giá trị item chưa đánh giá giúp việc lưu trữ tối ưu -Sau chuẩn hóa ma trận Utility, ta tính tốn độ tương đồng users Chúng ta sử dụng hàm cosine similarity -Kết sau tính tốn độ tương đồng (độ tương đồng số khoảng -1 đến 1, gần tương đồng, gần -1 đối lập) Cơng thức phổ biến sử dụng để dự đốn rating u cho i là: -Trong đó, N(u, i) tập k users gần (có độ tương đồng cao nhất) với user u đánh giá item i 11 -Cuối cùng, cộng lại giá trị ratings với ratings trung bình (ở bước chuẩn hóa) theo cột Chúng ta thu ma trận hồn thiện -Sau dự đốn người dùng đánh nào, lấy top phim mà user thích 1.2 Item-item Collaborative Filtering Hướng tiếp cận sử dụng nhiều thực tế Vì: - Số lượng items thường nhỏ số lượng users, Similarity matrix trường hợp nhỏ nhiều, thuận lợi cho việc lưu trữ tính tốn bước sau - Số lượng phần tử biết Utility matrix số hàng (items) số cột (users), nên trung bình, hàng ma trận có nhiều phần tử biết số phần tử biết cột Việc dễ hiểu item rated nhiều users Kéo theo đó, giá trị trung bình hàng bị thay đổi có thêm vài ratings Như vậy, việc cập nhật ma trận Similarity Matrix thực thường xun -Về mặt tính tốn, Item-item CF nhận từ User-user CF cách chuyển vị (transpose) ma trận utility, coi items rate users Sau tính kết cuối cùng, ta lại chuyển vị lần để thu kết Content Filtering 12 -Ý tưởng phương pháp dựa nội dung cố gắng xây dựng mơ hình, dựa “tính năng” có sẵn, giải thích tương tác người dùng mục quan sát Xem xét người dùng phim, tạo mơ hình theo cách mà cung cấp cho ta nhìn sâu sắc lý điều lại xảy Mơ giúp ta đưa dự đoán cho người dùng dễ dàng, cách xem tiểu sử người dùng dựa thông tin họ, để xác định phim có liên quan để đề xuất 2.1: Bài toán ứng dụng Phân Tích SVD vào Hệ Thống Gợi Ý cho người nghe nghe thể loại nhạc -Bài Tốn: Bảng mơ tả đánh giá xu hướng nghe nhạc người nghe (User 1, User 2,…) với thể loại nhạc (Pop,EDM,…) Nhạc Đồng Pop EDM Quê User 1 User 1 User 0 Viết hệ thống gợi ý thể tương quan người nghe với bảng liệu cho trên.Gợi ý cho người nghe nên nghe thể loại hợp lí? Ý TƯỞNG -Dựa vào bảng liệu trên, trực quan cho thấy giới trẻ có xu hướng nghe thể loại nhạc Pop, ca từ mạnh, 13 điệu nhảy hút mắt quên thể loại nhạc nhẹ nhàng, tình cảm nhạc Đồng Q.Có thể ví dụ User họ thích nghe nhạc Đồng Quê, họ thích nhẹ nhàng tâm hồn thân họ cảm thấy nghe hoài thể loại gây chán nên họ chuyển qua nhạc Pop, EDM để thưởng thức thể loại Một cách định tính, gợi ý cho họ nghe thể loại Pop EDM -SVD công cụ hữu hiệu để giải tốn Đó thơng qua thao tác phân tích, khảo sát, giảm chiều liệu Thơng qua tìm ma trận phù hợp với ma trận ban đầu để dự đoán xác suất thể loại nhạc mà user chưa nghe -Đầu tiên ta phân tích ma trận thành ma trận Dựa vào lý thuyết Compact SVD để giữ lại Singular Value khác lược bỏ giá trị lại lượt bỏ cột, hàng tương ứng với Singular Value Sau phân tích thành ma trận Chúng ta nhận xét sau: +Ma trận U chia thể loại nhạc thành loại Pop, EDM, Nhạc Đồng Quê Cột ma trận U thể độ yêu thích người nghe với thể loại VD:Từ User đến User 3: học thích nghe thể loại nhạc EDM User lại khơng thích nghe, hiểu User người thích nghe thể loại nhạc nhẹ nhàng, sâu lắng nhạc trữ trình, Nhạc Đồng Quê +Ma trận đối xứng chứa Single Values thể hiện”Streng” mức độ ảnh hưởng đến giá trị ma trận ban đầu 14 +Các hàng ma trận chuyển vị V thể thuộc tính thể loại nhạc VD: Nhạc Pop thể loại nhạc đại, có nhiều điệu nhảy hút mắt, câu từ mạnh không đánh giá cao Nhạc EDM thể loại nhạc gây nghiện khiến người nghe cảm thấy sảng khoái, mix lại thêm hiệu ứng âm thanh, điển hình nhạc EDM đánh giá cao User với giá trị 0,7071 Nhạc Đồng Quê mang hướng nhẹ nhàng, lãng mạn Câu từ sâu sắc, hiệu ứng không bật đánh giá cao với giá trị 0,4597 Có thể kết luận xu hướng nghe nhạc đại ngày thịnh hành chiếm đại đa số giới trẻ nghe cảm nhận lấn át so với loại nhạc nhẹ, trữ tình -Trong đó: + Ma trận U: thể độ yêu thích người nghe + Ma trận S: thể mức độ nghe nhạc người ghe + Ma trận V: thể xu hướng nghe nhạc người nghe với liệu ban đầu -Ta bỏ giá trị nhỏ không ảnh hưởng đến ma trận ban đầu -Ta bỏ liệu thể loại nhạc Đồng Quê để tạo liệu khơng bị khó khăn chọn loại nhạc phù hợp cho người nghe User User User Pop EDM 1 1 Nhạc Đồng Quê 0 Pop EDM Nhạc Đồng 15 Ma trận ban đầu Quê User 1,3169 -0,3810 -0,0080 Ma trận User 0,9022 0,6190 -0,8961 User 0,6392 -0,3251 -0,6969 Sự khác biệt ma trận ma trận ban đầu là: Người nghe chuyển sang nghe nhạc Pop dần lãng quên thể loại nhạc Đồng Quê.Phản ánh xu hướng giới trẻ thích nghe nhạc nhiện đại, thích nghe câu từ mạnh đ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 danh sách điểm phân biệt Lọc cộng tác Lọc dựa nội dung với nhau: • Phương pháp dựa nội dung u cầu lượng thơng tin tính mặt hàng, thay sử dụng tương tác phản hồi người dùng Chúng thuộc tính phim 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 thứ khác ngoại trừ tùy chọn lịch sử người dùng tập hợp mục để đề xuất từ dựa liệu lịch sử, giả định cốt lõi đưa người dùng đồng ý khứ có xu hướng đồng ý tương lai • Kiến thức miền trường hợp lọc cộng tác khơng cần thiết phép nhúng học tự động, trường hợp tiếp cận dựa nội dung, biểu diễn tính mục thiết kế thủ công mức độ đó, nên kỹ thuật địi hỏi nhiều kiến thức miền cung cấp • Mơ hình lọc cộng tác giúp người dùng khám phá sở thích hệ thống ML khơng biết sở thích người dùng mặt hàng định, mơ hình đề xuất người dùng tương tự quan tâm đến mặt hàng Mặt khác, Mơ hình dựa nội dung đưa đề xuất dựa sở thích có người dùng đó, mơ hình có khả mở rộng hạn chế dựa sở thích có người dùng 16 • Mơ hình lọc dựa nội dung không cần liệu người dùng khác, đề xuất dành riêng cho người dùng cụ thể Điều giúp dễ dàng thu nhỏ quy mô giống cho số lượng lớn người dùng Điều tương tự nói thực phương pháp lọc cộng tác • Thuật tốn cộng tác sử dụng hành vi người dùng để đề xuất mục, lọc dựa lội dung phải biết nội dung người dùng mục Phần III: Code Matlab Đ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 3; -5 2; -2 8]; % Square matrix A B=[4 8; -5 -14; -2 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ả: 17 Đoạn code minh hoạ ví dụ phân tích SVD vào hệ thống gợi ý nghe thể loại nhạc % % Singular Value Decomposition (SVD) A=[1 1; 1 0; 0]; [U,S,V]=svd(A) A=U*S*V -Kết quả: KẾT LUẬN Như biết ứng dụng phân tích SVD có vai trị quan trọng việc xử lý liệu, làm việc với liệu lớn, giảm thiểu lượng lớn liệu để dễ dàng phân tích Vì biết cảm nhận thành mà ứng dụng phân tích SVD mang lại Cũng qua hiểu sâu không gian ma trận, không đơn số theo hàng hay cột mà giúp chọn đại diện quan trọng cho ma trận thay giá trị Singular Value lớn không giá trị riêng hay vecto riêng số 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 môn đại số tuyến tính Thầy Cơ 18 khác tận tâm hướng dẫn, góp ý bảo thêm nhiều thứ để rút kinh nghiệm cho 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 Đặ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 Machine Learning (machinelearningcoban.com) Giá trị riêng vectơ riêng – Wikipedia tiếng Việt Singular Values Decomposition số ứng dụng (viblo.asia) 19 ... tích SVD A ,với ( 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 ý gì? -Hệ thống giới thiệu hệ thống. .. Rank ứng dụng để giải số liệu gặp liệu lớn nhiều ứng dụng khác Chúng ta tìm hiểu để hiểu rõ ứng dụng mà Đại Số Tuyến Tính mang lại I CƠ SỞ LÝ THUYẾT CỦA PHÂN TÍCH SVD: -Phương pháp phân tích. .. SỞ LÝ THUYẾT CỦA PHÂN TÍCH SVD Trị riêng vecto riêng Chéo hóa ma trận Thuật tốn phân tích SVD (Singular Value Decomposition) II ỨNG DỤNG CỦA PHÂN TÍCH SVD VÀO HỆ THỐNG GỢI Ý TRONG