Chương 1 về sự phổ biến của các ứng dụng cần hệ thống gợi ý tuần tự. Khoảng thời gian từ 2015 trở lại đây cũng là giai đoạn phát triển rực rỡ của Học sâu (Deep learning) đặc biệt là sự ra đời của các kiến trúc mạng phù hợp cho các mô hình dạng tuần tự như mô hình dạng RNN, LSTM, cơ chế Attention, kiến trúc Transformer được ứng dụng phổ biến trong các nghiên cứu thuộc lĩnh vực NLP nhờ khả năng xử lý tốt các bài toán có thể biểu diễn dạng một chuỗi tuần tự. Trong quãng thời gian này, kế thừa những thành tựu từ các kiến trúc mô hình này thì bên nhánh các bài toán gợi ý tuần tự cũng xuất hiện nhiều những bài báo liên quan dựa trên kiến trúc mô hình deep learning (Hình 2. Bằng việc xem xét và quan sát dữ liệu dưới dạng tuần tự và kế thừa các kiến trúc mô hình hiện đại, bài toán gợi ý tuần tự đã đạt được những kết quả state-of-the-art (SOTA) và được ứng dụng vào các hệ thống gợi ý trong thực tế.5: Tình hình nghiên cứu trên thế giới về bài toán Gợi ý tuần tự.
Vào năm 2016, với mô hình GRU4REC [7] cho bài toán gợi ý tuần tự theo phiên (session-based) đạt được nhiều kết quả khả quan khi là mô hình ứng dụng Recurrent Neural Networks (RNN) đầu tiên áp dụng cho loại bài toán này. Nhờ việc áp dụng kiến trúc mô hình hướng RNN, mô hình có khả năng ghi nhớ đặc điểm của các sản phẩm (item) xuất hiện ngay trước đưa ra dự đoán cho sản phẩm (item) xuất hiện sau mà nó còn có khả năng tránh được vấn đề triệt tiêu đạo hàm (vanishing gradient) nhờ cải tiến của GRU [17]. Mô hình đã đạt kết quả tốt một thời gian dài và thường được sử dụng làm mô hình cơ sở để so sánh trong các công trình sau đó. Tiếp đến, vào năm 2018, bằng việc áp dụng cơ chế Tự chú ý (Self-Attention) [13] lần đầu tiên vào bài toán gợi ý tuần tự này.
SASREC [9] đã đạt được những kết quả cải tiến đáng kể so với các mô hình cơ sở trước đó như GRU4REC ở cả độ chính xác của hệ thống cũng như tốc độ huấn luyện mô hình nhờ khả năng tính toán song song của kiến trúc 10 2. Tình hình nghiên cứu trên thế giới thay vì tuần tự. Với kiến trúc tổng quan có thể xếp chồng nhiều lớp Self-Attention lên nhau, mục tiêu của nhóm tác giả khi thực hiện là đạt kết quả tốt cho cả những tập dữ liệu thưa (sparse dataset - hầu hết người dùng tương tác với ít sản phẩm) và những tập dữ liệu đặc (dense dataset - hầu hết người dùng tương tác với nhiều sản phẩm) bằng cách sử dụng cơ chế Self-Attention cho phép ghi nhớ những mối liên hệ dài hạn (tương tự như trong GRU4REC) phù hợp với dữ liệu đặc và đưa ra dự đoán dựa trên hành động liên quan gần đó (cải tiến so với mô hình Markov Chains - mô hình sử dụng giả định sản phẩm tiếp theo sẽ được quyết định bởi sản phẩm ngay liền trước nó). Sang đến năm 2019, bằng một cải tiến quan trọng với việc áp dụng kiến trúc Trans- former (được phát triển từ cơ chế Self-Attention với nhiều hơn một đầu) và có thể xếp chồng nhiều tầng trong việc xây dựng mô hình, BERT4REC [10] đã đạt được kết quả state-of-the-art khi so sánh với tất cả các mô hình liên quan trước đó.
Việc mô hình có khả năng học hỏi dữ liệu và tính tuần tự của nó theo hai chiều (trái sang phải và phải sang trái) giúp cho mô hình học được nhiều thông tin hơn về mối quan hệ của các dữ liệu đó với nhau. Việc này cũng phù hợp với thực tế khi không nhất thiết tương tác với sản phẩm phải được diễn ra theo thứ tự trước sau, vì cũng có thể sản phẩm phía sau cũng có ảnh hưởng tới sản phẩm phía trước. Ví dụ như việc mua một chiếc iPhone sau đó mua một chiếc ốp lưng thì ngoài việc sản phẩm iPhone đã ảnh hưởng tới sản phẩm ốp lưng (mua ốp lưng để bảo vệ cho iPhone) thì việc mua ốp lưng cũng ảnh hưởng tới sản phẩm iPhone (có iPhone mới mua ốp lưng). Cũng trong năm này, Mô hình BST [11] ở một nhánh khác được áp dụng thực tế trong sàn thương mại điện tử Alibaba ở dạng bài toán Khả năng click chuột vào sản phẩm (click-through-rate) có khả năng làm giàu thuộc tính huấn luyện cho mô hình khi đã tìm ra cách nhúng các thông tin của người dùng và sản phẩm làm đầu vào của mô hình đồng thời kết hợp với việc sử dụng kiến trúc Transformer ở phần lõi giúp cho mô hình có khả năng học được cả từ các thuộc tính dài hạn lẫn các thuộc tính ngắn hạn khi sử dụng cả những thuộc tính về người dùng và sản phẩm cũng như tính tuần tự của tương tác giữa người dùng và sản phẩm vào trong kiến trúc của mô hình.
Cơ chế Self-Attention và mô hình SASREC 2.3 | Cơ chế Self-Attention và mô hình SASREC 2.1 | Cơ chế Self-Attention Cơ chế tập trung (Attention mechanism) ra đời 2015 [16] với đề xuất của Bahdanau trong của bài toán dịch máy (machine translation) mang lại kết quả tốt. Sau đó, vào năm 2017, Vaswani và nhóm tác giả đã công bố bài báo "Attention Is All You Need"[13]. Cả hai bài báo này đã thực sự gây được tiếng vang rất lớn trong cộng đồng các nhà nghiên cứu về các mô hình học máy. Ý tưởng đặc biệt đằng sau cơ chế này là nó có khả năng ghi nhớ, chú ý vào một phần tuỳ ý nào đó của dữ liệu đầu vào.
Nếu như trong phần trước với mô hình hướng RNN, chúng ta dùng mạng hồi tiếp để mã hóa thông tin của chuỗi nguồn đầu vào thành trạng thái ẩn và truyền nó tới bộ giải mã để sinh chuỗi đích. Tuy nhiên kiến trúc dựa trên RNN gặp phải một số vấn đề như tính tuần tự khi huấn luyện khiến có quá trình huấn luyện không thể thực hiện song song hoá hay việc gặp khó khăn đối với những chuỗi dài (đã được khắc phục bằng mô hình GRU, LSTM nhưng thời gian huấn luyện vẫn là vấn đề). Thực vậy, cơ chế tập trung có thể được coi là phép gộp tổng quát. Nó gộp đầu vào dựa trên các trọng số khác nhau.
Thành phần cốt lõi của cơ chế tập trung là tầng tập trung. Đầu vào của tầng tập trung được gọi ngắn gọn là câu truy vấn (query Q). Với mỗi câu truy vấn, tầng tập trung trả về đầu ra dựa trên bộ nhớ là tập các cặp khóa-giá trị (key-value) được mã hóa trong tầng tập trung này. Có nhiều phương pháp và cách thức thực hiện tầng tập trung, tuy nhiên phổ biến đối với các bài toán gợi ý tuần tự được tập trung nghiên cứu nhiều nhất là cơ chế tự chú ý (Self-Attention) (hay còn gọi là Scaled dot-product Attention) được xác định bởi công thức bên dưới: QK T Attention( Q, K, V ) = so f tmax ( √ )V (2.1) dk Trong đó: ■ Q là đại diện biểu diễn cho vector truy vấn; ■ K là đại điện biểu diễn cho vector khoá; ■ V là đại điện biểu diễn cho vector giá trị.
Theo đó, tầng tập trung (Attention(Q,K,V)) được tính bằng tổng có trong số (weighted sum) của tất các giá trị trong V. Với trọng số giữa qi và v j có liên quan tới trọng số giữa qi √ và k j. Phần d được sử dụng để tránh giá trị lớn trong phép toán. Cơ chế Self-Attention và mô hình SASREC Hình 2.6: Minh hoạ các phép tính toán trong cơ chế Self-Attention.
Các bước áp dụng để tính giá trị tập trung attention score trong cơ chế self-attention (Hình 2.6) và cách sử dụng trong việc tính kết quả output được mô tả bao gồm những bước sau như sau: 1. Tính các vector Key, Value, Query của từng vector Input đầu vào. Tính attention score của lần lượt từng input bằng cách tính dot-product của vector Query tương ứng với input đó với tất cả các vector Key: score( Qt , K ) = Qt K (2. Tính attention weight bằng hàm softmax của toàn bộ attention score: weight = so f tmax (score) (2.
Nhân attention weight với vector Value để thu được giá trị có trọng số (weighted value): weightedValue = weight ∗ V (2. Cơ chế Self-Attention và mô hình SASREC 5. Cuối cùng là tính tổng các weighted value để tạo ra vector Output đầu ra: output = ∑ weightedValue (2.2 | Mô hình SASREC Vào năm 2018, cơ chế self-attention được ứng dụng vào bài toán gợi ý tuần tự thông qua mô hình SASREC. Mục tiêu của bài báo này là xây dựng hệ thống khuyến nghị tuần tự áp dụng cơ chế Self-Attention có khả năng đưa ra gợi ý mà hiệu quả đạt được cao hơn so với các công trình nghiên cứu tương tự trước đó.
Không chỉ vậy, nhóm tác giả còn đề xuất cách áp dụng mô hình học sâu mới Self-Attention có khả năng hoạt động tốt trên cả tập dữ liệu đặc (dense) và dữ liệu thưa (sparse).7: Kiến trúc mô hình SASREC (ứng dụng trong bài toán click-through-rate). Với cách dữ liệu được xử lý và chuyển đổi đã trình bày ở phần trước đó, Hình 2. Cơ chế Self-Attention và mô hình SASREC mô tả kiến trúc tổng quan được áp dụng trong mô hình tham khảo SASREC bao gồm các thành phần: ■ Input: dữ liệu đầu vào của quá trình huấn luyện được sử dụng là chuỗi tuần tự bao gồm hành vi tương tác và vị trí của tương tác đó trong chuỗi tuần tự; ■ Embedding Layer: tầng nhúng là tầng kết hợp dữ liệu bằng phép tính Concatenate dữ liệu đầu vào của quá trình huấn luyện được sử dụng là chuỗi tuần tự bao gồm hành vi tương tác và vị trí của tương tác trong chuỗi tuần tự; ■ Self-Attention Layer: bao gồm khối tự chú ý Self-Attention nhận đầu vào từ lớp nhúng và trả thông tin attention score làm đầu vào cho tầng Point-wise Feed-forward. Các lớp này có thể xếp chồng lên nhau trong trường hợp muốn tăng thêm khả năng học của mô hình sâu hơn; ■ Fully-connected Layer: tuỳ vào yêu cầu và đầu ra dữ liệu mà ta thực hiện gắn các lớp đầy đủ và hàm tối ưu tương ứng.
Như trong bài toán click-through-rate đầu ra sẽ là nhãn dữ liệu phân lớp (có hai giá trị là Có-Không), do đó lớp đầy đủ cuối cùng sẽ có size là 1 và hàm tối ưu là hàm sigmoid. Mô hình SASREC [9] đạt kết quả tốt hơn so với tất cả các mô hình theo hướng tương tự trước đó (trong đó có GRU4REC) khi đạt độ cải tiến từ 6.6 % so với các công trình tốt nhất trước đó.