3 Kĩ thuật phân tích ma trận cho hệ thống khuyến nghị
3.2.3 Thuật toán SGD dùng cho phân tích ma trận
Để áp dụng thuật toán SGD cho bài toán phân tích ma trận, ta lấy tham sốθ = (W, H)
và phân tích hàm sai số dưới dạng:
Lij(W, H) =l(Zij, Wi∗, H∗j)
Với tập huấn luyệnZ thích hợp và hàm sai số địa phương l. Như vậy tổng sai số sẽ là:
L0(W, H) = X
z∈Z
L0z(W, H) = X
(i,j)∈Z
l(Zij, Wi∗, H∗j) (3.6) Ta dùng ước lượng gradient có nhiễu:
b
vớiN =|Z| và điểm huấn luyệnz được chọn ngẫu nhiên từ tập dữ liệu huấn luyện. Dưới đây là thuật toán mô tả cách dùng SGD cho bài toán phân tích ma trận:
Thuật toán SGD cho phân tích ma trận
Đầu vào: Một bộ dữ liệu huấn luyện Z, giá trị khởi tạo ban đầu W0 và H0
Đầu ra: Hai ma trận W và H mà sai số cực tiểu: 1:While (khi chưa hội tụ) do
2: Chọn 1 điểm huấn luyện (i, j)ngẫu nhiên 3: Wil∗+1 ←Wl i∗−εnN δ δWi∗l(Vij, Wi∗, H∗j) 4: H∗l+1j ←Hl i∗−εnN δ δH∗jl(Vij, Wi∗, H∗j) 5: Wil∗+1 ←Wl i∗ 6:End while 3.3 Thuật toán DSGD
Thuật toán truyền thống, tuần tự SGD không thể được dùng một cách trực tiếp cho bài toán phân tích ma trận cấp k với ma trận có kích thước lớn và rất lớn như dữ liệu dùng trên môi trường Web. Tuy nhiên, ta có thể khai thác cấu trúc của bài toán phân tích ma trận để đưa ra một thuật toán SGD phân tán có thể dùng cho loại ma trận này. Tư tưởng chính của phương pháp này dựa vào việc phân chia ma trận lớn đó ra làm các lớp (stratum) hay nói cách khác phân chia làm các phần mà trên đó SGD có thể chạy phân tán. Dưới đây là cấu trúc "có thể tráo đổi được" mà từ đó ta sẽ tận dụng để thực hiện xử lý phân tán trong mỗi lớp.
3.3.1 Tính có thể tráo đổi được (interchangeability)
Nói chung việc chạy phân tán thuật toán SGD là khó vì các bước cập nhật trong quá trình thực hiện phụ thuộc lẫn nhau:
θn+1=πHhθn−εnLb0(θn)i
Như công thức trên ta thấy θn phải có trước để tính θn+1, tuy nhiên với bài toán phân tích ma trận quá trình tính toán của SGD có một số đặc tính mà ta có thể khai thác được, ta sẽ tập trung vào bài toán tối thiểu sai số trong đó sai số có dạng:
L(θ) = X
z∈Z
Lz(θ) (3.7)
Định nghĩa 3.1. Hai điểm huấn luyện z1, z2 ∈ Z được gọi là có thể tráo đổi với nhau nếu tất cả các hàm sai số L có dạng tổng như (3.7) thỏa mãn: với mọi θ ∈H, ε >0
L0z1(θ) =L0z1 θ−εL0z2(θ)
L0z2(θ) =L0z2 θ−εL0z1(θ)
Hai tập không giao nhau Z1, Z2 ⊂Z được gọi là có thể tráo đổi cho nhau nếuz1, z2 có thể tráo đổi với mọi z1 ∈Z1, z2 ∈Z2