Học cách chọn các bài báo từ lịch sử đọc bài trong hệ thống đề xuất tin tức

Học cách chọn các bài báo từ lịch sử đọc bài trong hệ thống đề xuất tin tức

0.   Mở đầu

❖ Đặt vấn đề:

● Các mô hình hiện nay cá nhân hóa sở thích người dùng bằng cách tương tác chi tiết giữa tin tức ứng cử viên và mỗi tin bài đã clicked của người dùng.

● Đạt được hiệu quả, tuy nhiên chịu chi phí tính toán trực tuyến khá cao, do đó hình thành nên vấn đề khó khăn để tận dụng các tin bài lịch sử tốt 1 cách hiệu quả

⇨ Phương án giải quyết: Selective Fine-grained Interaction (SFI) framework, chọn lọc tin tức đã duyệt một các nhanh chóng nhưng vẫn đảm bảo giàu thông tin.

❖ Các điểm mạnh SFI đem lại:

● Chọn lọc tin tức giàu thông tin

● Thời gian nhanh

● Chọn tin tức vừa thưa vừa tự động

❖ Thử nghiệm MIND cho thấy AUC tăng 2.17%, tốc độ nhanh hơn 4 lần.

1.    Architecture Overview

- Input: User cùng với tập history \(H=\{h_{1}, h_{2}, ..., h_{M}\}\), candidate c

- Output: Click probability \(p(H)\)

- Architecture:

The architecture of our SFI model

● News encoder module: học theo 2 cấp độ từ và tin tức, đại diện chi tiết cho tương tác và thô cho việc lựa chọn tin.

● History selector module: lựa chọn chính xác tin tức hữu dụng từ lịch sử.

● News interactor module: Tính toán các tương tác

● Predictor module: Dự đoán xác suất click từ tất cả các tín hiệu phù hợp

2.    News Encoder Module

Module này sẽ học đại diện tin tức từ title của bài viết. Giả sử các từ trong news title là \(S=\{w_{1}, w_{2}, ...,w_{N}\}\) với N là độ dài title. Ta biến đổi về dạng các vector (word2vec): \(E=\{e_{1}, e_{2},...,e_{N}\} \in \mathbb{R} ^{V \times D}\)

Ta sử dụng hierarchical dilated convolution (1) để phân tích ngữ cảnh của từ, cụ thể đại diện từ thứ i sẽ được tính: \[r^{l}_{i}=ReLU(F_{w} \times \oplus _{k=0}^{w}e_{i \pm k \delta} +b) \in \mathbb{R} ^{f_{s}}\]

Sau đó đầu ra của mỗi lớp tích chập sẽ được thêm vào biểu diễn của từ thứ i: \[r_{i}=\{r_{i}^{l}\}^{L}_{l=0}\]

Các đại diện thông tin ở các cấp khác nhau mang ý nghĩa khác nhau, được tổng hợp lại và làm nổi bật các thông tin quan trọng, ta được biểu diễn của từ với mọi cấp độ ngữ cảnh: \[r^{'}_{i} = \sum\limits_{l=1}^{L} a_{il}r_{i}^{l}        Với        a_{il} = \frac{exp(q_{l}^\top r_{i}^{'})}{\sum_{j=1}^{L} exp(q_{l}^{\top}r_{j}^{l})}\]

Làm nổi bật thông tin các từ trong title thu được đại diện news: \[r = \sum\limits_{i=1}^{N} a_{i}r_{i}^{'}        Với        a_{i} = \frac{exp(q_{w}^\top r_{i}^{'})}{\sum_{j=1}^{L} exp(q_{w}^{\top}r_{j}^{'})}\]

3.    History Selector Module

Với cơ chế learning to select, module này lựa chọn tin tức lịch sử thưa, tự động và hiệu quả => sau đó module tiếp theo tạo các tương tác chi tiết. Sử dụng fully-connected net để giảm thiểu xung đột, chiếu tất cả đại diện cấp độ news lên 1 không gian selection: \[Proj(r) = W_{p}r+b\]

(\(r\) có thể là history hoặc candidate)

Để xác định hiệu quả chọn, xác định thông tin candidate nhận được (bị tác động, bị ảnh hưởng) từ mọi history, như cosine similary giữa các selection vector: \[s = \{\cos (Proj(h_{i}), Proj(c))\}_{i=1}^{M}\]

Không có giám sát s, nên cần các tham số tối ưu end to end để cho phép mô hình có thể học các features có giá trị trong việc lựa chọn.

3.1.   Hard-selection network

Để đảm bảo thưa thớt, ta tiến hành giữ lại top K tin tức nhiều thông tin nhất và loại bỏ tin tức còn lại: \[x = argTOPK(s) \in \mathbb{R} ^{K}\]

Tin tức lịch sử được chọn theo x và đại diện chi tiết sẽ tham gia vào tương tác sau đó mã hóa one-hot vector thu được matrix X, sử dụng phép nhân ma trận để cắt bớt lịch sử ở kích thước nhỏ hơn: \[\hat{H} = X \otimes H ; \hat{s} = X \otimes s\] \[H = \{\{h_{i}^{l}\}_{l=0}^{L}\}_{i=1}^{M} \in \mathbb{R} ^{M \times L \times f_{s}}\]

=> \(\hat{H}\) chính là tin tức được chọn.

Hạn chế: X là ma trận thưa nên không thể tối ưu hóa theo gradient; Phân phối thông tin giữa các users khác nhau là khác nhau nên 1 số bài nhiễu không được lọc bỏ; Tất cả các tin tức được chọn đều có trọng số là như nhau mặc dù có bài có nhiều hoặc ít thông tin hơn.

3.2.   Soft-selection network

Có thể truyền gradient vào để tối ưu hóa, loại bỏ bài nhiễu. Nhận đầu vào là output của mạng Hard-selection, nhưng mạng Soft-selection che giấu tin tức cung cấp thông tin nhỏ hơn ngưỡng và đánh trọng số quan trọng đối với những bài được đưa ra:  \[\tilde{H} = \hat{H} \odot Expand(\tilde{s} với \tilde{s} = \sigma (\hat{s})\] \[ \sigma(S_{i})= \left\{\begin{array}{cc} 0 & S_{i}< \gamma(ngưỡng)\\h_{i}& otherwise \end{array} \right. \]

  • Số lượng tin tức chứa thông tin xác thực với mỗi candidate nên một số lượng động tin tức được lưu trữ lại cho phép lựa chọn linh hoạt hơn.
  • Tin tức tương tác có thể thêm vào nhiều thông tin hơn, các tham số cũng sẽ được tối ưu hơn bằng bước selection vì phép nhân element-wise => tăng hiệu quả rõ rệt

Trong lan truyền ngược, gradient áp dụng vào news interactor -> chọn đại diện chi tiết \(\hat{H}\). \(\hat{H}\) được reshape \(1 \times (K \times D) = 1 \times (K \times L \times f_{s}\) với gradient \(\nabla_{\tilde{R}} \)

Diag: ma trận đường chéo

Z: vector đại diện cấp độ news của tất cả his

\(Z_{1}\): vector đại diện cấp độ news của các news được chọn tương ứng

\(g(s_{i})\): đạo hàm của \(\sigma(s_{i})\) ; \(g(s_{i})= \left\{\begin{array}{cc} 0 & s_{i} < \delta \\1 & otherwise \end{array} \right. \)

4.    News Interactor Module

Các tin tức lịch sử đã được chọn đưa vào module này thực hiện tương tác với các candidates.

Đại diện mức độ từ của những bài được chọn: \(d_{v} = {t_{i}}_{i=1}^{N}\), candidate \(c^{f}=\{p_{j}\}_{j=1}^{N}\)

Dựng pair-to-pair similarity matrix \(M_{v,c}^{l}\). Mỗi lần thử nghiệm là 1 lần dot product giữa selected news và candidate news: \[M_{v,c}^{l}[i,j] = \frac{t_{i}[l]^{\top}p_{j}[l]}{\sqrt{f_{s}}} \in \mathbb{R} ^{N \times N}\]

Similarity Matrix từng mức độ chi tiết trên tất cả tin history được chọn hợp nhất thành Matrix 3D => áp dụng cho việc làm nổi bật thông tin quan trọng => kết quả cuối cùng là vector chứa tương tác chi tiết user-candidate \(\phi _{u,c}\)

Có thêm sự bổ sung mức độ phù hợp tổng thể của user và candidate từ: \[\psi _{u,c} = \{\psi _{h_{1} ,c}, \psi _{h_{2}, c},.., \psi _{h_{M}, c}\}, \psi _{h_{i},c} = h_{i}^{\top} c\]

⇨ Tạo điều kiện cho mô hình học sự tương thích chính xác hơn giữa các tín hiệu phù hợp và xác suất click.

5.    Click Predictor

Từ việc kết hợp đầu ra từ các tương tác tin tức. Cho các vectors chứa thông tin \(\psi _{u,c}\) và \(\phi _{u,c}\) kết hợp lại ta có: \[y_{u,c} = W_{c}\{\phi _{u,c}, \psi _{u,c}\} + b\]

Sử dụng kỹ thuật lấy negative samples: \[\hat{p} (H) = \frac{exp(y_{u,c}^{+})}{exp(y_{u,c}^{+}) + \sum_{j=1}^{m} exp(y_{u,c}^{-})}\]

⇨ Đưa về bài toán phân loại đối với m+1 mẫu, với negative log likelihood loss: \[L= -\sum\limits_{c \in \mathbb{s}} log(\hat{p} (c |H))\]

6.    Kết quả đạt được

Cùng test trên bộ dữ liệu MIND dataset:

The performance of different methods for news recommendation

7.    Kết luận

Việc nắm bắt các tương tác chi tiết mang lại độ chính xác cao hơn cho những hệ thống đề xuất tin tức. Trong phương pháp  này, mang đến một phương thức chọn lọc ra một số lượng nhỏ các bài báo đã đọc trong lịch sử có giá trị ảnh hưởng tương tác sau này, tạo ra sự cân bằng tốt giữa hiệu quả và chi phí. Kết quả thử nghiệm cho thấy SFI có thể cải thiện đáng kể hiệu quả đề xuất lên 2,17% so với các mô hình hiện đại với tốc độ nhanh hơn bốn lần.

8.    Tài liệu tham khảo