Professional Documents
Culture Documents
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à:
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: