3 Kĩ thuật phân tích ma trận cho hệ thống khuyến nghị
3.2.1 Cơ sở lý thuyết
Mục tiêu của thuật toán SGD là tìm giá trị θ∗ ∈Rk (với k ≥1) mà tối thiểu hàm sai số L(θ), thuật toán này sẽ sử dụng các quan sát có nhiễu Lb0(θ) của L0(θ), các gradient của hàm sẽ được lấy với biến làθ, khởi tạo ban đầu với giá trịθ0, SGD sẽ điều chỉnh giá trị của tham số bằng việc lặp lại công thức cập nhật ngẫu nhiên:
θn+1 = [θn−εnLb0(θn)]
với n là kí hiệu số thứ tự của bước cập nhật và εn là một chuỗi giảm dần xác định lượng cập nhât (giá trị chuỗi cập nhật là không âm và hữu hạn) và −L0(θn) là hướng giảm có độ dốc lớn nhất, cònLb0(θn)là giá trị có nhiễu của nó. Hình dưới đây mô phỏng quá trình hoạt động của thuật toán SGD khi tham số θ nằm trong không gian 2 chiều.
Hình 3.1: Thuật toán SGD trong không gian 2 chiều
Lý thuyết xấp xỉ ngẫu nhiên chứng tỏ rằng với một số điều kiện ràng buộc thì nhiễu trong xấp xỉ gradient sẽ triệt tiêu và SGD sẽ hội tụ đến một tập các điểm bất động thỏa mãn L0(θ) = 0, tất nhiên các điểm bất động này có thể là cực tiểu, cực đại hay là các điểm yên ngựa và thường thì chúng sẽ hội tụ tại một điểm cực tiểu do tính có nhiễu của bài toán. Tuy nhiên, SGD chỉ là tìm ra một điểm cực tiểu mà không chắc đó là toàn cục nên có nhiều phương pháp được dùng để nâng cao khả năng tìm ra điểm này như chạy thuật toán SGD nhiều lần và mỗi lần xuất phát tại một điểm lấy ngẫu nhiên nào đó.
Trong thực tế ta có thể dùng thêm một số ràng buộc H ví dụ như phân tích ma trận không âm rất được quan tâm gần đâyH =θ :θ≥0. Các thuật toán này sẽ có bước cập nhật có dạng:
3.2 Thuật toán SGD 31
3.2.2 Phát biểu bài toán
Cho các ma trận với các tham số thể hiện số người dùng, số item và số các đánh giá của người dùng lên item đó, các ma trận được viết dưới dạng sau:
V ={vij}nw×nh Là ma trận đầu vào cần phân tích
W = [Wi] Là ma trận thành phần thứ nhất
H = [Hj] Là ma trận thành phần thứ hai Bài toán đặt ra là tìm ma trậnW và H sao cho:
Vm×n=Wm×k×HnT×k hay vij =hwi, hji với V là một ma trận rất thưa Ta định nghĩa: i) L2 (vij,wi,hj) = (vij − hwi, hji)2
là sai số của một giá trị phần tử vij ∈V với tích của 2 vector thành phần wi và hj
tương ứng của ma trận W và H. ii) Lemp(V, W, H) = 1nP
(i,j)∈IL2(vij, wi, hj)
là sai số tổng cộng của tất cả N phần tử đã biết so với ma trận W và H. Bài toán tìm nghiệm của phương trình:
(W, H) =argmin(W,H)Lemp(V, W, H)
Sử dụng phương pháp chính quy hóa để tránh phù hợp trội và nghiệm hội tụ sử dụng hàm sai số:
Lregλ (V, W, H) = Lemp(V, W, H) +λ(kWk2+kHk2)