Mô hình mạng nơ-ron sâu

Phần trước đã hướng dẫn bạn cách sử dụng hệ số ma trận để tìm hiểu các nội dung nhúng. Một số hạn chế của hệ số ma trận bao gồm:

  • Khó sử dụng các tính năng phụ (nghĩa là bất kỳ tính năng nào khác ngoài mã truy vấn/mã mục). Do đó, mô hình chỉ có thể được truy vấn cùng một người dùng hoặc mục có trong tập huấn luyện.
  • Mức độ liên quan của các đề xuất. Như bạn đã thấy trong Colab đầu tiên, các mặt hàng phổ biến thường được đề xuất cho mọi người, đặc biệt là khi sử dụng sản phẩm chấm như một biện pháp tương tự. Bạn nên nắm bắt các mối quan tâm cụ thể của người dùng.

Mô hình mạng nơron sâu (DNN) có thể giải quyết những hạn chế này khi xây dựng cấu trúc ma trận. DNN có thể dễ dàng kết hợp các tính năng truy vấn và các tính năng của mục (do sự 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 các 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 các đề xuất.

DNN của Softmax để đề xuất

Một mô hình DNN có thể là softmax, xử lý vấn đề này như 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à một vectơ xác suất có kích thước bằng với số lượng mục trong kho, thể hiện xác suất tương tác với từng mục; ví dụ: xác suất nhấp vào hoặc xem một video trên YouTube.

Đầu vào

Dữ liệu đầu vào cho DNN có thể bao gồm:

  • các tính năng dày đặc (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 thưa thớt (ví dụ: nhật ký xem và quốc gia)

Không giống như phương pháp ma trận hoá, 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.

Hình ảnh làm nổi bật lớp đầu vào trong mạng nơ-ron sâu tối đa
Hình 1. Lớp đầu vào, x.

Kiến trúc mô hình

Cấu trúc mô hình xác đị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), mô hình có thể nắm bắt các 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 làm cho mô hình khó đào tạo hơn và tốn kém hơn để phân phát. Chúng ta sẽ biểu thị kết quả của lớp ẩn cuối cùng bằng \(\psi (x) \in \mathbb R^d\).

Hình ảnh làm nổi bật các lớp ẩn trong mạng nơ-ron sâu tối đa
Hình 2. Đầu ra của các lớp ẩn, \(\psi (x)\).

Đầu ra Softmax: Phân phối xác suất được dự đoán

Mô hình này liên kết kết quả của lớp cuối cùng, \(\psi (x)\), thông qua một lớp mềm tối đa với sự phân bổ xác suất \(\hat p = h(\psi(x) V^T)\), trong đó:

  • \(h : \mathbb R^n \to \mathbb R^n\) là hàm mềm maxmax, được cung cấp bởi \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)
  • \(V \in \mathbb R^{n \times d}\) là ma trận của trọng số của lớp maxmax.

Lớp mềm tối đa liên kết một vectơ điểm số \(y \in \mathbb R^n\) (đôi khi gọi là loglog) với sự phân bố xác suất.

Hình ảnh biểu diễn sự phân bố xác suất dự đoán trong mạng nơ-ron sâu tối đa
Hình 3. Phân phối xác suất dự đoán, \(\hat p = h(\psi(x) V^T)\).

Hàm mất dấu

Cuối cùng, hãy xác định hàm thu thập so sánh các hàm sau:

  • \(\hat p\), đầu ra của lớp Simplemax (phân phối xác suất)
  • \(p\), sự thật cơ bản, thể hiện các mục mà người dùng đã tương tác (ví dụ: 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 một bản phân phối đa nóng chuẩn hoá (một vectơ xác suất).

Ví dụ: bạn có thể sử dụng mức mất mát nhiều entropy vì bạn đang so sánh hai mức phân phối xác suất.

Hình ảnh biểu thị hàm suy hao trong một mạng nơ-ron sâu tối đa
Hình 4. Hàm suy hao.

Nhúng nhẹ

Xác suất của mục \(j\) được đưa ra bởi\(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), trong đó \(Z\) là một 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)\)do đó, xác suất nhật ký của một mục \(j\) là (tối đa không đổi) là tích của dấu chấm của hai \(d\) \(d\)vectơ, có thể được hiểu là việc nhúng truy vấn và mục:

  • \(\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à tính năng nhúng truy vấn \(x\).
  • \(V_j \in \mathbb R^d\) là vectơ 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à tính năng nhúng mục \(j\).
Hình ảnh hiển thị nhúng trong mạng nơ-ron sâu tối đa
Hình 5. Việc nhúng mục \(j\), \(V_j \in \mathbb R^d\)

Hệ số ma trận và DNN

Trong cả mô hình hệ thống ma trận maxmax và mô hình hệ số ma trận, hệ thống sẽ tìm hiểu một vectơ nhúng \(V_j\) mỗi mục \(j\). Thứ nguyên mà chúng ta gọi là ma trận nhúng mục \(V \in \mathbb R^{n \times d}\) trong hệ số ma trận hoá hiện là ma trận trọng số của lớp nhẹ (maxmax).

Tuy nhiên, việc nhúng truy vấn lại khác nhau. Thay vì tìm hiểu một tính năng nhúng \(U_i\) cho mỗi truy vấn \(i\), hệ thống sẽ học một liên kết từ tính năng truy vấn \(x\) tới tính năng nhúng \(\psi(x) \in \mathbb R^d\). Do đó, bạn có thể coi mô hình DNN này là một mô hình tổng quát hoá cấu trúc ma trận, trong đó bạn thay thế phía truy vấn bằng một hàm phi tuyến tính \(\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ía mục không? Nghĩa là, thay vì tìm hiểu một tính năng nhúng cho mỗi mục, mô hình có thể học một hàm phi tuyến tính liên kết các tính năng của mục với tính năng nhúng không? Có. Để làm như vậy, hãy sử dụng mạng nơ-ron hai tháp, bao gồm hai mạng nơ-ron:

  • Một tính năng truy vấn ánh xạ mạng nơron \(x_{\text{query}}\) để nhúng truy vấn \(\psi(x_{\text{query}}) \in \mathbb R^d\)
  • Một mạng nơ-ron ánh xạ các tính năng của mục \(x_{\text{item}}\) để nhúng mục \(\phi(x_{\text{item}}) \in \mathbb R^d\)

Kết quả của mô hình có thể được định nghĩa là tích của\(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\). Lưu ý: đây không phải là mô hình maxmax 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ì một vectơ xác suất cho mỗi truy vấn \(x_{\text{query}}\).