You are on page 1of 2

Ứng dụng SVD trong RS và PCA

 Ứng dụng SVD trong PCA


Ý tưởng cơ sở: giảm số lượng thông tin truyền đi mà không làm mất đi những thông tin thực chất.
Trong một bức ảnh kỹ thuật số, mỗi điểm ảnh được thể hiện bởi 3 giá trị màu là Blue, Green và Red với các trị
số từ 0 đến 255 (đối với ảnh 8 bit). Như vậy, với một hình ảnh có độ lớn là 340 × 280 pixels thì chúng ta phải lưu trữ
3 ma trận thể hiện màu sắc của các điểm có cùng độ lớn là 340 × 280 tức là phải lưu trữ 285600 số. Tuy nhiên trong
thực tế, khi truyền hay lưu trữ thông tin ảnh chúng ta có thể không cần những hình ảnh hoặc một phần của hình ảnh
đó có độ nét quá lớn. Sử dụng phân tích SVD chúng ta có thể loại bỏ rất nhiều thông tin không cần thiết đó. Giả sử
ma trận A có phân tích SVD là:

với giá trị k < r bất kì thì

Như đã được chứng minh ở chương trước là xấp xỉ tốt nhất được xây dựng từ k giá trị kì dị đầu tiên của ma
trận A. Ví dụ với k = 20 thì ma trận Ak thể hiện các dữ liệu của ma trận A tương ứng với 20 giá trị kì dị đầu tiên.
Như vậy chúng ta chỉ cần lưu trữ 20 giá trị kì dị, 20 véc tơ ui , 20 véc tơ vi tương đương với 20 + 20 × 280 + 20 ×
340 = 12420 số. Tương tự với hai ma trận còn lại thì số lượng các số phải lưu trữ là 12420×3 = 37260 số. Rõ ràng
phân tích SVD đã giúp giảm lượng thông tin cần lưu trữ một cách đáng kể.
Tổng quát, Để lưu ảnh với Truncated SVD, ta sẽ lưu các ma trận Uk ∈ R(m×k) , Σk ∈ R(k×k) , Vk ∈
R(n×k) . Tổng số phần tử phải lưu là k(m + n + 1) với chú ý rằng ta chỉ cần lưu các giá trị trên đường chéo của Σk.
Giả sử mỗi phần tử được lưu bởi một số thực 4 byte, thế thì số byte cần lưu trữ là 4k(m + n + 1). Nếu so giá trị này
với ảnh gốc có kích thước mn, mỗi giá trị là 1 số nguyên 1 byte, tỉ lệ nén là:

 Ứng dụng SVD trong RS


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:
- Content-based systems: đánh giá đặc tính của items được recommended
- Collaborative filtering: hệ thống gợi ý items dựa trên sự tương quan (similarity) giữa các users và/hoặc
items. Có thể hiểu rằng ở nhóm này một item được recommended tới một user dựa trên những users có
hành vi tương tự.
Xây dựng hàm mất mát: Giả sử rằng số users là N, số items là M, utility maxtrix được mô tả bởi ma trận
Y . Thành phần ở hàng thứ m, cột thứ n của Y là mức độ quan tâm (ở đây là số sao đã rate) của user thứ n lên sản
phẩm thứ m mà hệ thống đã thu thập được. Ma trận Y bị khuyết rất nhiều thành phần tương ứng với các giá trị mà
hệ thống cần dự đoán. Thêm nữa, gọi R là ma trận rated or not thể hiện việc một user đã rated một item hay chưa.
Cụ thể, rij bằng 1 nếu item thứ i đã được rated bởi user thứ j, bằng 0 trong trường hợp ngược lại. Giả sử rằng ta có
thể tìm được một mô hình cho mỗi user, minh hoạ bởi vector cột hệ số wi và bias bn sao cho mức độ quan tâm của
một user tới một item có thể tính được bằng một hàm tuyến tính:
Xét một user thứ n bất kỳ, nếu ta coi training set là tập hợp các thành phần đã được điền của yn, ta có thể
xây dựng hàm mất mát tương tự như Ridge Regression như sau:

Trong đó, thành phần thứ hai là regularization term và λ là một tham số dương. Chú ý rằng regularization
thường không được áp dụng lên bias bn Trong thực hành, trung bình cộng của lỗi thường được dùng, và mất mát Ln
được viết lại thành:

Trong đó sn là số lượng các items mà user thứ n đã rated. Nói cách khác:

Vì biểu thức loss function chỉ phụ thuộc vào các items đã được rated, ta có thể rút gọn nó bằng cách đặt yˆn
là sub vector của y được xây dựng bằng cách trích các thành phần khác dấu ? ở cột thứ n, tức đã được rated bởi user
thứ n trong Utility Matrix Y. Đồng thời, đặt Xˆ n là sub matrix của ma trận feature X được tạo bằng cách trích các
hàng tương ứng với các items đã được rated bởi user thứ n. Khi đó, biểu thức hàm mất mát của mô hình cho user thứ
n được viết gọn thành:

trong đó, en là vector cột chứa sn phần tử 1.

You might also like