Đề xuất tin tức thần kinh với học tập nhiều chế độ xem chú ý

Tram Ho

1. Động lực

Việc cá nhân hóa trong gợi ý tin bài là rất quan trọng với các nền tảng đọc báo online hiện tại, điều này làm tăng trải nghiệm người dùng lên đáng kể. Các phương pháp gợi ý hiện tại chỉ dựa vào biểu diễn thông tin đơn lẻ của tin bài (ví dụ: title, body,…) và như thế là chưa đủ. Do vậy, cần một cách tiếp cận khác để tăng độ chính xác trong việc gợi ý tin bài cho người dùng.

2. Đóng góp

Nhóm tác giả đề xuất phương pháp sử dụng mạng neural để gợi ý tin bài. Cốt lõi là sử dụng bộ users encoder và news encoder. Ý tưởng cơ bản như sau:

  • Trong news encoder, nhóm tác giả sử dụng attentive multi-view learning model để học một biểu diễn thống nhất cho tin bài từ title, body và topic của tin bài đó. Ta coi title, body và topic là các view khác nhau của tin bài.
  • Sử dụng cơ chế word-level và view-level attention cho news encoder để chọn các từ và view quan trọng, điều này làm cho biểu diễn tin bài trở nên tốt hơn.
  • Biểu diễn của user được học dựa trên lịch sử duyệt tin bài của họ, đồng thời sử dụng cơ chế attention để chọn tin bài hữu ích với mục tiêu học biểu diễn user hiệu quả hơn.

3. Phương pháp

3.1. News Encoder

Module news encoder được dùng để học biểu diễn của tin bài từ các thông tin về title, body và topic của tin bài đó. Vì các thông tin này có đặc điểm khác nhau nên ta không thể gộp vào thành một văn bản dài dùng cho học biểu diễn tin bài được. Nhóm tác giả đề xuất attentive multi-view learning framework để học biểu diễn thống nhất cho tin bài bằng cách coi các thông tin này là các view cụ thể. Có 4 thành phần trong news encoder.

Thành phần thứ nhất là title encoder, dùng để học biểu diễn tin bài từ title. Có 3 layer được sử dụng. Layer đầu tiên là word embedding dùng để chuyển tiêu đề của tin bài từ một chuỗi các từ sang chuỗi low-dimensional semantic vector.

Layer thứ 2 là mạng CNN. Local context (ngữ cảnh cục bộ) của các từ là quan trọng trong việc biểu diễn tiêu đề tin bài. Ví dụ trong tiêu đề “Xbox One On Sale This Week”, local context của từ “One” là “Xbox” và “On Sale” hữu ích cho việc hiểu rằng đó là một máy chơi game. Do vậy, nhóm tác giả sử dụng CNN để học biểu diễn ngữ cảnh của từ bằng cách capture local context của các từ đó. Cách tính context representation của các từ như sau:

 

cit=ReL⁡U(Ft×e(i−K)⋅(i+K)t+bt)c _ { i } ^ { t } = operatorname { R e L } U ( F _ { t } times e _ { ( i – K ) cdot ( i + K ) } ^ { t } + b _ { t } )

Trong đó:

  •  

    e(i−K):(i+K)tmathbf{e}_{(i-K):(i+K)}^t là concat word embedding từ vị trí

    (i−K)(i-K) đến

    (i+K)(i+K).

  •  

    Ft∈RNf×(2K+1)Dmathbf{F}_t in mathcal{R}^{N_f times(2 K+1) D}

    bt∈RNfmathbf{b}_t in mathcal{R}^{N_f} là kernal và tham số bias của bộ lọc CNN.

  •  

    NfN_f là số bộ lọc CNN và

    2K+12K + 1 là window size.

Layer thứ 3 là một word-level attention network. Mục tiêu của layer này là chọn ra các từ quan trọng trong title. Trọng số attention

αiwalpha^w_i của từ thứ

ii trong một new title được tính như sau:

Trong đó

Vwmathbf{V}_w

vwmathbf{v}_w là các projection parameter và

qwmathbf{q}_w là query vector. Biểu diễn cuối cùng của tiêu đề tin bài là tổng có trọng số của biểu diễn context word.

Thành phần thứ 2 trong module news encoder là body encoder được xây dựng để học biểu diễn tin bài từ body (nội dung) của tin bài đó. Ý tưởng xây dựng hoàn toàn giống với title encoder.

Thành phần thứ 3 là category encoder được sử dụng để học biểu diễn tin bài từ topic của tin bài đó. Input của category encoder là ID của category

vcv_c và ID của subcategory

sscs_{sc}. Có 2 layer trong category encoder:

  • Layer đầu là một layer embedding category ID. Layer này chuyển từ các ID rời rạc thành low-dimensional dense representations.
  • Layer thứ hai là một dense layer được sử dụng để học các biểu diễn ẩn của category theo công thức sau:

Thành phần thứ 4 là attention pooling. Theo tác giả, các loại thông tin của tin bài có mức độ quan trọng khác nhau. Tùy từng bài mà ta sẽ đánh trọng số mức độ quan trọng của title, body và topic. Gọi

αt,αb,αcalpha_t, alpha_b, alpha_c

αscalpha_{s c} là trọng số attention lần lượt của title, body, category và subcategory. Trọng số attention của title view được tính như sau:

Các trọng số attention khác cho body, category và subcategory được tính tương tự.

Biểu diễn cuối cùng của tin bài là tổng các tích trọng số với biểu diễn tin bài của các view khác nhau.

3.2. User Encoder

User encoder được dùng để học biểu diễn của user từ các tin bài mà họ đã xem. Dựa trên ý tưởng các tin bài người dùng xem có sự liên quan tới nhau. Nhóm tác giả sử dụng news attention network để học biểu diễn user bằng cách chọn tin bài quan trọng.

Trọng số attention của tin bài

ithi_{th} được duyệt bởi user

αinalpha^n_i được tính như sau:

trong đó

Wn,bnmathbf{W}_n, mathbf{b}_n

qnmathbf{q}_n là các tham số của mạng attention và

NN là số tin bài đã xem. Biểu diễn cuối cùng của user được tính như sau:

3.3. Click Predictor

Ý tưởng click predictor giống như trong bài báo Neural News Recommendation with Multi-Head Self-Attention. Click predictor module được sử dụng để dự đoán xác suất người dùng click vào một tin bài ứng cử viên. Xác xuất đó được tính bằng tích vô hướng của vector biểu diễn user và vector biểu diễn tin bài.

image.png

Nhóm tác giả cũng nghiên cứu các phương pháp scoring khác nhưng tích vô hướng vẫn hiệu quả và cho hiệu suất tốt nhất.

3.4. Model Training

Ý tưởng model training cũng giống như trong bài báo Neural News Recommendation with Multi-Head Self-Attention. Nhóm tác giải sử dụng kĩ thuật negative sampling để huấn liên model. Ý tưởng như sau:

  • Với mỗi tin bài được xem bởi user (positive sample), ta lấy ngẫu nhiên

    KK mẫu tin bài cũng được hiển thị cùng lúc nhưng user không click vào (negative sample).

  • Shuffle thứ tự tin bài để tránh positional biases (hiểu đơn giản là vị trí tin bài trên bảng tin ảnh hưởng rất nhiều đến việc user click vào xem). Công thức tính xác suất user click vào 1 postive sample được chuẩn hóa như sau:

Loss function sử dụng là negative log-likelihood của tất cả positive sample

Smathcal{S} được tính như sau:

4. Thực nghiệm

Nhóm tác giả thực nghiệm trên bộ dữ liệu thực tế với thống kê như sau

Pphương pháp đề xuất NAML tốt hơn các phương pháp còn lại.

Hiệu quả khi sử dụng cách tiếp cận multi-view learning framework và the attention networks.

Nhóm tác giả thực visualize trọng số attention ở các view khác nhau và nhận thấy rằng giá trị trọng số của title và body view đa phần là nhỏ.

Điều này có thể do title và body có nội dung mơ hồ và không hữu ích cho việc học biểu diễn tin bài. Trong trường hợp này, category có thể cung cấp thông tin bổ sung cho hệ thống gợi ý và điều này đã được kiểm chứng là hiệu quả như mô hình mà bài báo đề xuất.

5. Kết luận

Điểm hay của bài báo là ở việc khai thác tối đa thông tin có trong một tin bài (title, body và topic). Ý tưởng encoder chủ đạo vẫn là dùng cơ chế attention và cách học không quá phức tạp. Sự khác biệt nằm ở yếu tố multi-view để biểu diễn tin bài sao cho hiệu quả.

6. Tham khảo

[1] Neural News Recommendation with Attentive Multi-View Learning

[2] Recommender Systems: Machine Learning Metrics and Business Metrics – neptune.ai

[3] IJCAI2019-NAML/NAML.ipynb at master · wuch15/IJCAI2019-NAML (github.com)

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo