Với mục tiêu ngừng loạt bài bác về Recommendation trước khi hết năm, Matrix Factorization là thuật toán cuối cùng về Recommendation mà bạn thích chia sẻ với các bạn. Thuộc mình mày mò nhé

*

Có thể hiểu rằng, ý tưởng phát minh chính của Matrix Factorization là đặt items và users vào trong thuộc một không gian thuộc tính ẩn. Trong đó, W ∈ R∣U∣∗KR^lvertUlvert*KR∣U∣∗K là 1 trong ma trận mà lại mỗi cái u là một vector bao gồm K yếu tố tiềm ẩn (latent factors) biểu lộ user u cùng H ∈ R∣I∣∗KR^lvertIlvert*KR∣I∣∗K là một ma trận nhưng mỗi dòng i là một trong vector bao gồm K yếu tố tiềm ẩn biểu hiện cho thành tích i.

Bạn đang xem: Phương pháp ma trận bắt bộ sô

Áp dụng phương pháp này vào vấn đề gợi ý, bọn họ có x là một vector của vật phẩm profile.

Mục tiêu của chúng ta là search một vector w tương xứng với mỗi user làm sao để cho ratings sẽ biết của user đó cho item (y) giao động với:

*

Mở rộng với Yutility matrix, giả sử đã làm được điền hết giá bán trị, ta có:

*

với M, N lần lượt là số users và số items.

Lưu ý, vì X là được kiến tạo dựa trên tin tức mô tả thành tích và quá trình xây dựng này độc lập với vượt trình đi tìm kiếm hệ số cân xứng cho từng user cho nên việc xây dựng cửa nhà profile vào vai trò quan trọng và tất cả thể tác động trực kế tiếp hiệu năng của mô hình. Thêm nữa, câu hỏi xây dựng mô hình riêng lẻ cho từng user dẫn đến hiệu quả chưa thực sự xuất sắc vì không khai thác được điểm sáng giống nhau giữa các user.

Giả sử rằng ta không phải xây dựng trước những item profile nhưng ma trận này rất có thể huấn luyện đồng thời với ma trận trọng số, tốt nói các khác việc này là bài toán tối ưu những ma trận X và W, trong số đó X là ma trận của toàn thể các thành tích profiles, mỗi mặt hàng tương ứng với cùng một item. Còn W là ma trận của tổng thể user models (các mô hình của users), mỗi cột tương ứng với một user. Chúng ta sẽ nỗ lực xấp xỉ utility matrix Y ∈ RM∗NR^M*NRM∗N bằng tích của hai ma trận nhỏ là X ∈ RM∗KR^M*KRM∗KW ∈ RK∗NR^K*NRK∗N.

Trong đó, K được chọn thường nhỏ dại hơn tương đối nhiều so với M và N, và cả nhì ma trận X với W đều phải sở hữu bậc (rank) ko được vượt quá K

*

2. Tạo ra và buổi tối ưu hàm mất mát

Cụ thể, các bước xây dựng và về tối ưu hàm mất mát như sau:

2.1. Hàm mất mát

Đầu tiên, họ sẽ xét hàm mất mát không tồn tại cả bias và vươn lên là tối ưu mang lại X cùng W:

*

Trong đó, rmnr_mnrmn​= 1 nếu tác phẩm thứ m đã được nhận xét bởi user đồ vật n, ‖○‖ là căn bậc nhì của tổng bình phương tất cả các bộ phận của ma trận, s là toàn cục số ratings đã có. Thành phần lắp thêm nhất chính là trung bình sai số của tế bào hình. Thành phần thứ hai vào hàm mấtmát phía, có bóc tách dụng giúp tránh overfitting.

Lưu ý, tựa như như NBCF, các giá trị ratings được thực hiện là các giá trị đã chuẩn hóa, bằng cách trừ đi vừa phải cộng các giá trị ratings đang biết trong và một hàng (với iiCF) cùng trong và một cột (với uuCF) – bài bác trước. Trong một vài trường hợp, ta rất có thể không cần chuẩn chỉnh hóa ma trận utility matrix nhưng phần đa trường hợp đó sẽ phải dùng các kĩ thuật khác để giải quyết và xử lý tính cá nhân trong các ratings.

Tiếp theo, bọn họ sẽ tối ưu X với W bằng phương pháp cố định từng ma trận và về tối ưu ma trận còn lại tính đến khi hội tụ.

Xem thêm: Con Hàu Tiếng Anh Là Gì - Gọi Tên Hải Sản Bằng Tiếng Anh

2.2. Buổi tối ưu hàm mất mát

Khi thắt chặt và cố định X, bài toán tối ưu W đó là bài toán tối ưu của Content-based Filtering:

*

Ngược lại, khi cố định W, việc tối ưu X được mang về tối ưu hàm:

*

Hai vấn đề này sẽ được tối ưu bằng Gradient Descent.

Chúng ta có thể thấy rằng, câu hỏi tối ưu W rất có thể được tách thành N bài toán nhỏ tuổi (N là con số users), mỗi bài xích toán tương xứng với việc đi buổi tối ưu một cột của ma trận W.

*

Vì biểu thức (ymn−xmwn)2(y_mn - x_mw_n)^2(ymn​−xm​wn​)2 chỉ phụ thuộc vào những items đã làm được user sẽ xét tiến công giá, nên ta có thể đơn giản nó bằng phương pháp sử dụng sub matrix, là matrix chỉ chứa các giá trị ratings đã biết. Lúc đó, hàm mất mát có dạng:

*

Và đạo hàm của nó là:

*

Vậy công thức update cho những cột của W là:

*

Tương từ bỏ với X, mỗi hàng tương xứng với một item sẽ được tìm bằng cách tối ưu:

*

Đặt WmW_mWm​ là ma trận được tạo thành bằng các cột của W tương ứng với những users đã reviews items kia và thực hiện submatrix Y khớp ứng là ymy_mym​. Công thức trên đã trở thành:

*

Vậy công thức update cho mỗi mặt hàng của X là:

*

Sau khi thắt chặt và cố định X, tính W và ngược lại, cố định W và tính X cho đến khi các ma trận này hội tụ, ta đã thu được ma trận X với W bắt buộc tìm. Từ bỏ đó, dự đoán các giá trị ratings không biết.

Ngoài phương pháp trên, để tăng độ đúng chuẩn của thuật toán này, ta vẫn xét hàm mất đuối với bias và thông số tối ưu đến X và W.

Như trong NBCF, chúng ta có bước chuẩn chỉnh hóa ma trận để tránh sự thiên lệch do sự khó ttính hay dễ dàng tính không giống nhau giữa những users. Với MF, ta bao gồm thể chuẩn chỉnh không chuẩn chỉnh hóa mà sử dụng trực tiếp các giá trị ratings ban đầu, bằng phương pháp tối ưu những biases cùng lúc với X với W.

Trong trường đúng theo này, ratings của user m mang lại item n được khẳng định bởi công thức:

*

với bm,dn,μb_m, d_n,mubm​,dn​,μ lần lượt là bias của chiến thắng m, user n với ratings là ratings vừa đủ của toàn bộ các ratings.

Và hàm mất non trong trường hợp này còn có dạng:

*

Tiến hành cố định X, b và về tối ưu W, d và ngược lại, cố định W, d và buổi tối ưu X, b, theo những công thức:

*

Cuối cùng, ta đang thu được các ma trận X, b, W, d, từ kia dự đoán các ratings chưa biết.

Trên đấy là những triết lý căn bạn dạng về Matrix Factorization. Trong bài xích cuối của series này, mình vẫn viết demo rõ ràng cho phương thức này.Hi vọng bài viết của mình gồm ịch với bạn. Hẹn gặp lại vào những bài viết tiếp theo.