Phần trước cho bạn biết cách sử dụng phân tích ma trận để tìm hiểu về tính năng nhúng. Một số hạn chế của phân tích ma trận bao gồm:
- Khó khăn khi sử dụng các tính năng phụ (tức là bất kỳ tính năng nào ngoài mã truy vấn/mã mặt hàng). Kết quả là, mô hình chỉ có thể được truy vấn bằng một người dùng hoặc một mục có trong tập huấn luyện.
- Mức độ liên quan của đề xuất. Như bạn thấy trong phần đầu Colab, các mặt hàng phổ biến có xu hướng được đề xuất cho mọi người, đặc biệt là khi sử dụng chấm làm thước đo tương tự. Bạn nên chụp những sở thích của người dùng.
Các mô hình mạng nơron sâu (DNN) có thể giải quyết những hạn chế này của ma trận phân tích. DNN có thể dễ dàng kết hợp tính năng truy vấn và tính năng của mặt hàng (do tính linh hoạt của lớp đầu vào của mạng), điều này có thể giúp nắm bắt mối quan tâm cụ thể của người dùng và cải thiện mức độ liên quan của nội dung đề xuất.
Softmax DNN được đề xuất
Một mô hình DNN có thể là softmax, Phương thức này coi bài toán này là một bài toán dự đoán nhiều lớp, trong đó:
- Đầu vào là truy vấn của người dùng.
- Đầu ra là vectơ xác suất có kích thước bằng số các mục trong tập sao lục, thể hiện xác suất tương tác từng mục; Ví dụ: xác suất nhấp vào hoặc xem Video trên YouTube.
Đầu vào
Dữ liệu đầu vào cho một DNN có thể bao gồm:
- các tính năng có mật độ cao (ví dụ: thời gian xem và thời gian kể từ lần xem gần nhất)
- các tính năng có ít nội dung (ví dụ: danh sách video đã xem và quốc gia)
Không giống như phương pháp phân tích ma trận, bạn có thể thêm các tính năng phụ như độ tuổi hoặc quốc gia. Chúng ta sẽ biểu thị vectơ đầu vào theo x.
Cấu trúc mô hình
Cấu trúc mô hình quyết định độ phức tạp và tính biểu đạt của mô hình. Bằng cách thêm các lớp ẩn và hàm kích hoạt phi tuyến tính (ví dụ: ReLU), thì mô hình đó có thể nắm bắt những mối quan hệ phức tạp hơn trong dữ liệu. Tuy nhiên, Việc tăng số lượng tham số cũng thường khiến mô hình khó và tốn kém hơn để phân phát. Chúng ta sẽ biểu thị kết quả của ẩn cuối cùng lớp theo \(\psi (x) \in \mathbb R^d\).
Đầu ra Softmax: Phân phối xác suất dự đoán
Mô hình này liên kết đầu ra của lớp cuối cùng ( \(\psi (x)\)) thông qua một softmax trong phân phối xác suất \(\hat p = h(\psi(x) V^T)\), trong đó:
- \(h : \mathbb R^n \to \mathbb R^n\) là hàm Softmax, do \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)cung cấp
- \(V \in \mathbb R^{n \times d}\) là ma trận trọng số của lớp softmax.
Lớp Sommax ánh xạ một vectơ điểm số \(y \in \mathbb R^n\) (đôi khi gọi là nhật ký) thành phân phối xác suất.
Hàm mất
Cuối cùng, hãy xác định một hàm mất dữ liệu để so sánh những thông tin sau:
- \(\hat p\), đầu ra của lớp softmax (phân phối xác suất)
- \(p\)là thông tin thực tế, đại diện cho các mục mà người dùng có tương tác (ví dụ: những video trên YouTube mà người dùng đã nhấp vào hoặc xem). Điều này có thể được biểu thị dưới dạng phân phối đa nóng đã chuẩn hoá ( vectơ xác suất).
Ví dụ: bạn có thể sử dụng mức mất entropy chéo vì bạn đang so sánh hai giá trị phân phối xác suất.
Nhúng Softmax
Xác suất của mục \(j\) được cho bởi \(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\)! trong đó \(Z\) là hằng số chuẩn hoá không phụ thuộc vào \(j\).
Nói cách khác, \(\log(\hat p_j) = \langle \psi(x), V_j\rangle - log(Z)\), nên xác suất nhật ký của một mặt hàng \(j\) là (lên đến hằng số cộng) tích vô hướng của vectơ hai \(d\)chiều, có thể diễn giải được dưới dạng nhúng mục và truy vấn:
- \(\psi(x) \in \mathbb R^d\) là kết quả của lớp ẩn cuối cùng. Chúng tôi gọi đây là nhúng truy vấn \(x\).
- \(V_j \in \mathbb R^d\) là vectơ của trọng số kết nối lớp ẩn cuối cùng với đầu ra j. Chúng tôi gọi đây là nhúng mục \(j\).
Phân tích ma trận cho DNN và ma trận
Trong cả mô hình softmax và mô hình phân tích ma trận, hệ thống học một vectơ nhúng \(V_j\) cho mỗi mặt hàng \(j\). Điều chúng tôi gọi là ma trận nhúng mục \(V \in \mathbb R^{n \times d}\) trong ma trận phân tích hiện tại là ma trận trọng số của lớp softmax.
Tuy nhiên, các mục nhúng truy vấn thì khác. Thay vì học một mục nhúng \(U_i\) cho mỗi truy vấn \(i\), thì hệ thống sẽ học được một mối liên kết từ tính năng truy vấn \(x\) vào một mục nhúng \(\psi(x) \in \mathbb R^d\). Do đó, bạn có thể coi mô hình DNN này là sự tổng quát của ma trận phân tích, trong đó bạn thay thế truy vấn bằng một thuộc tính phi tuyến tính hàm \(\psi(\cdot)\).
Bạn có thể sử dụng các tính năng của mặt hàng không?
Bạn có thể áp dụng cùng một ý tưởng cho phần mục không? Tức là thay vì tìm hiểu một mục nhúng cho mỗi mục, mô hình có thể học một hàm phi tuyến tính ánh xạ tính năng của mục vào mục nhúng? Có. Để làm được điều đó, hãy sử dụng một toà tháp mạng nơron, bao gồm hai mạng nơron:
- Một tính năng truy vấn của bản đồ mạng nơron \(x_{\text{query}}\) để nhúng truy vấn \(\psi(x_{\text{query}}) \in \mathbb R^d\)
- Một tính năng của mục trong mạng nơron \(x_{\text{item}}\) cho mục nhúng \(\phi(x_{\text{item}}) \in \mathbb R^d\)
Đầu ra của mô hình có thể được định nghĩa là tích vô hướng của \(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\). Xin lưu ý rằng đây không phải là mô hình softmax nữa. Mô hình mới dự đoán một giá trị cho mỗi cặp \((x_{\text{query}}, x_{\text{item}})\) thay vì vectơ xác suất cho mỗi truy vấn \(x_{\text{query}}\).