BIỂU DIỄN DỮ LIỆU VÀ BẢN ĐỒ TƯƠNG TÁC
Bi ểu diễn one-hot encoding vector
Trong hệ thống gợi ý, đối tượng chính là user và item, được đại diện bởi userId và itemId, có thể là chuỗi kí tự hoặc số duy nhất Sau khi thực hiện tái chỉ mục bằng mã hoá số nguyên (Integer Encoding), mỗi user và item sẽ được gán id (identity) dựa trên vị trí của chúng trong tập user (U) và tập item (I).
User A có ID là “ABS12A2312D” sẽ được gán lại userId = 1
User B có ID là “ABS12MTY12E” sẽ được gán lại userId = 2
Đối với các biến phân loại, mã hóa số nguyên không đủ để thể hiện thực thể do sự tồn tại của mối quan hệ thứ tự trong phương pháp này.
Khi sử dụng mã hóa số nguyên để biểu diễn các thực thể, các mô hình có thể "hiểu nhầm" rằng userA nhỏ hơn userB nếu userId của userA nhỏ hơn userId của userB, dẫn đến những kết quả không mong muốn.
One-hot encoding vector là phương pháp hiệu quả để biểu diễn dữ liệu phân loại (categorical), thường được áp dụng trong các thuật toán học máy và học sâu.
Ví dụ: userA và itemB được biểu diễn bởi one-hot encoding vector:
Trong đó: tập 𝑈 chứa m đối tượng user, tập 𝐼 chứa n đối tượng item
Trong biểu diễn one-hot, thành phần thứ i tương ứng với vị trí của đối tượng trong tập hợp đối tượng mang giá trị 1, trong khi các thành phần khác đều có giá trị bằng 0.
Biểu diễn one-hot encoding là một phương pháp mã hóa nhị phân dựa trên các số nguyên Mặc dù có nhiều ứng dụng, nhưng phương pháp này vẫn tồn tại một số nhược điểm đáng lưu ý.
Vector thưa với số chiều lớn khi số lượng người dùng và mục tiêu tăng cao gây khó khăn trong việc lưu trữ Kích thước lớn của vector đầu vào đồng nghĩa với việc mô hình mạng nơ-ron sẽ có một số lượng lớn tham số cần được huấn luyện.
- Không biểu đạt ý nghĩa về mối quan hệ của các vector Khoảng cách giữa
2 vector one-hot bất kì luôn bằng 0.
Bi ểu diễn embedding vector
Embedding [16] thực chất là kĩ thuật ánh xạ (mapping) các đối tượng rời rạc sang một không gian chung (embedding space) Mục đích chính của kĩ thuật
Embedding là quá trình chuyển đổi các đối tượng rời rạc thành các vector số thực liên tục trong một không gian chung, thường có số chiều thấp Những vector này không chỉ đại diện cho các đối tượng mà còn thể hiện mối quan hệ giữa chúng, giúp hiểu rõ hơn về sự tương tác giữa các đối tượng ban đầu.
Kỹ thuật Embedding là yếu tố then chốt trong việc biểu diễn đầu vào cho các mô hình học sâu, vì chúng tối ưu hóa hiệu suất bằng cách sử dụng các vector số thực liên tục có mật độ dày Trọng số của các thành phần trong vector đóng vai trò quan trọng trong việc xác định đặc điểm của đối tượng.
Trong các mô hình gợi ý, embedding của tập đối tượng được tạo ra bằng cách nhân vector đặc trưng rời rạc (one-hot encoding) với ma trận trọng số Embedding, ký hiệu là 𝑊.
Giả sử, với tập U chứa m đối tượng user, ta có biểu diễn embedding của tập U như sau:
𝐾 là số chiều của không gian embedding, được lựa chọn trước tuỳ theo số lượng các đối tượng trong hệ thống (thường chọn giá trị nhỏ)
Ma trận trọng số embedding 𝑊 của tập đối tượng người dùng là một phần quan trọng của mô hình, được khởi tạo ngẫu nhiên Nó có thể được huấn luyện đồng thời với các tham số khác hoặc tái sử dụng từ mô hình đã được huấn luyện trước đó.
𝑢 ∈ 𝑈, 𝑤𝑢 là vector trọng số embedding tương ứng của user u
Ví dụ: embedding vector theo ID (identity) của user u trong thực tế
Làm tương tự như trên, ta cũng có được biểu diễn embedding của tập đối tượng item I
This representation is highly beneficial as embedding maps each discrete object to a continuous real-valued vector with significantly lower dimensions compared to their one-hot encoding representation, which is advantageous for various applications.
14 tính toán Ta có thể dễ dàng tính khoảng cách giữa các vector số thực liên tục bằng các công thức tính khoảng cách Euclidean, hàm Cosine, công thức
Pearson…, từ đó suy luận được mối quan hệ giữa các đối tượng mà các vector đó biểu diễn
Hình 6: Embedding vector của 3706 movies của tập MovieLens1M trong không gian embedding bằng phép chiếu x,y T-SNE component [29]
Hình 7: Embedding vector của 3706 movies của tập MovieLens1M nhóm theo rating bằng T-SNE component [29]
Hình 6 và Hình 7 minh hoạ biểu diễn embedding vector của 3706 item (movies) thuộc tập MovieLens1M [4] trong không gian 2 chiều bằng phép chiếu
T-SNE là một phương pháp giúp hình dung mối quan hệ giữa các đối tượng thông qua vị trí của chúng trong không gian embedding Những đối tượng có vị trí gần nhau trong không gian thường chia sẻ nhiều điểm tương đồng, trong khi những đối tượng xa nhau thường khác biệt hơn.
Chúng ta có thể tận dụng thêm thông tin hữu ích từ hệ thống như metadata của người dùng và mục, cũng như các thẻ (tag) Bằng cách áp dụng kỹ thuật Embedding, chúng ta có thể tích hợp những thông tin này với các biểu diễn embedding của người dùng và mục để cải thiện chất lượng của hệ thống gợi ý.
Embedding là phương pháp hiệu quả để biểu diễn các đối tượng rời rạc, giúp các mô hình gợi ý dựa trên mạng học sâu như NeuMF và DNCF khai thác và suy diễn dữ liệu Tuy nhiên, các hàm Embedding cần đảm bảo ánh xạ các đối tượng sang không gian mới mà vẫn giữ được cấu trúc của tập dữ liệu ban đầu, điều này phụ thuộc nhiều vào thiết kế và quá trình huấn luyện mô hình.
Biểu diễn embedding riêng lẻ cho từng đối tượng user và item hiện tại chưa phản ánh được mối tương quan và tương tác giữa các latent feature Để khai thác tốt hơn các mối quan hệ này, cần mã hoá và thể hiện chúng trên một bản đồ tương tác trước khi áp dụng các mạng học sâu để mô hình hoá các tương tác.
B ản đồ tương tác
Based on the architecture of the ONCF framework, an interaction map is proposed to explore and represent the correlations between latent features and embedding dimensions derived from the embedding representations of user and item objects This interaction map can be generated using either the stacked embedding method or the outer product technique.
2.3.1 Phương pháp xếp chồng biểu diễn
Phương pháp xếp chồng embedding là kỹ thuật kết hợp các vector embedding có cùng kích thước theo chiều dọc, tạo thành chồng các embedding với kích thước 𝑘 × 𝐾.
𝑘 là số lượng các embedding vector được xếp chồng
Hình 8: Xếp chồng embedding của user và item, trong đó 𝑷𝑀𝑥𝐾 , 𝑸𝑁𝑥𝐾 lần lượt là ma trận trọng số embedding tương ứng của tập user và item
Ký hiệu s là toán tử xếp chồng (stack operator), 𝐸 𝑖 (𝑖 = 1 …𝑘) là các embedding vector có 𝐾đặc trưng ẩn
Stacked embedding có khả năng bao gồm nhiều vector embedding, như embedding của người dùng, sản phẩm, metadata của người dùng/sản phẩm, và embedding của các thẻ Nhờ vào tính linh hoạt này, stacked embedding có thể tích hợp nhiều thông tin hữu ích, góp phần nâng cao chất lượng dự đoán của mô hình nhờ vào các đặc trưng có ý nghĩa.
Trong hệ thống gợi ý, với 𝑃 𝑢 , 𝑄 𝑖 lần lượt là các embedding vector biểu diễn theo ID (identity) của user u và item i, ta có biểu diễn xếp chồng
Các chiều của embedding người dùng và sản phẩm cùng mối quan hệ giữa chúng sẽ được phân tích đồng thời trong cùng một không gian So với việc sử dụng phép tích vô hướng đơn giản và phép nối vector trong các mô hình GMF, MLP và NeuMF, việc này mang lại sự hiểu biết sâu sắc hơn về tương tác giữa người dùng và sản phẩm.
DNCF biểu diễn xếp chồng các embedding, giúp cải thiện khả năng nắm bắt mối tương quan và tương tác giữa các dimension Khi kết hợp với mạng tích chập (CNN), phương pháp này có thể trích xuất thông tin ý nghĩa một cách hiệu quả hơn.
17 stacked embedding là một dạng của bản đồ tương tác (interaction map) trong framework ONCF [3]
Mặc dù việc tích hợp thông tin qua các embedding có thể thực hiện một cách hiệu quả, nhưng cần lưu ý rằng việc tăng số lượng embedding sẽ làm tăng chi phí tính toán, thời gian huấn luyện mô hình và yêu cầu thêm dữ liệu để sử dụng.
In addition to the embedding stacking method, the outer product can also be employed to create an interaction map, which is proposed for use in the ConvNCF model based on the ONCF framework.
Toán tử tích ngoại được kí hiệu ⨂ Khi đó tích ngoại giữa embedding của user u và item i là một ma trận 𝚨được biểu diễn bởi:
Phép tích ngoại (outer product) trong không gian 𝐾×𝐾 mang lại mối tương quan theo cặp giữa các chiều i, j của các embedding vector Đường chéo chính của ma trận 𝚨 thể hiện kết quả của phép tích vô hướng giữa embedding của người dùng và sản phẩm, cho thấy rằng phép tích ngoại có khả năng biểu diễn đầy đủ và tổng quát hơn so với phép tích vô hướng.
Hạn chế của phép tích ngoại là khả năng mở rộng và tích hợp thông tin khác vào bản đồ tương tác, do đó thường chỉ được sử dụng trong những trường hợp cụ thể.
Việc sử dụng 2 embedding vector cho người dùng và sản phẩm giúp tối ưu kích thước của bản đồ tương tác (𝐾 2) Tuy nhiên, khi bổ sung thêm các thông tin khác như embedding metadata của người dùng/sản phẩm và embedding của tags, kích thước bản đồ tương tác sẽ tăng lên đáng kể (𝐾 3 ,𝐾 4 …).
Phương pháp lấy mẫu tiêu cực đối phó với vấn đề thiếu hụt dữ liệu tương tác (missing data)
Ma trận tương tác giữa người dùng và sản phẩm thường là ma trận thưa, vì người dùng chỉ tương tác với một số lượng nhỏ sản phẩm trong hệ thống Điều này dẫn đến hiện tượng thiếu hụt dữ liệu tương tác của người dùng.
Có hai chiến lược chính để xử lý vấn đề dữ liệu thiếu Chiến lược đầu tiên xem tất cả dữ liệu thiếu của người dùng là tiêu cực, tức là không có tương tác giữa người dùng và sản phẩm cho thấy người dùng không thích sản phẩm đó Chiến lược thứ hai là thực hiện lấy mẫu ngẫu nhiên các phản hồi tiêu cực từ dữ liệu thiếu.
Lấy ví dụ: số lượng lấy mẫu tiêu cực bằng 4 (4 negative sample), tức là cứ
4 tương tác thiếu hụt của user trong missing data sẽ lấy ngẫu nhiên 1 phản hồi mang tính tiêu cực
Các nghiên cứu gần đây về Neural Collaborative Filtering và Outer-product Neural Collaborative Filtering cho thấy việc lấy mẫu các phản hồi tiêu cực mang lại kết quả tốt hơn so với việc coi tất cả dữ liệu thiếu hụt là tiêu cực Điều này hợp lý vì những tương tác thiếu hụt của người dùng thường bao gồm cả phản hồi tích cực lẫn tiêu cực, đặc biệt khi người dùng được giới thiệu đến những sản phẩm mà họ chưa từng tương tác.
MÔ HÌNH GỢI Ý STACKED EMBEDDING NETWORK
Mô hình Stacked embedding Neural Collaborative Filtering
Giả sử hệ thống có số lượng user và số lượng item là m, n
U, I là tập các đối tượng user, item
Dữ liệu đầu vào là các phản hồi không tường minh (implicit feedback)
Sau khi áp dụng phương pháp lấy mẫu tiêu cực theo số lượng, ta có ma trận tương tác user-item là 𝒀 ∈ ℝ 𝑀×𝑁
Trong mô hình, 𝑦𝑢𝑖 = 1 thể hiện rằng người dùng u đã có sự tương tác tích cực với mục i, trong khi 𝑦𝑢𝑖 = 0 chỉ ra rằng người dùng u chưa hoặc không tương tác với mục i, được coi là một mẫu tiêu cực.
𝑦𝑢𝑖 =𝑁𝑜𝑛𝑒 nếu user u chưa/không tương tác với item i
Gọi 𝑦� 𝑢𝑖 là điểm tương quan dự đoán (predicted score) của user u cho item i
Trong đó: 𝑦�𝑢𝑖 là điểm tương quan dự đoán (predicted score) thể hiện mức độ ưa thích của user u với item i
𝛩 là tất cả tham số của mô hình (parameters)
𝑓 là hàm ánh xạ từ đầu vào u, i và bộ tham số 𝛩 tới điểm tương quan dự đoán, còn gọi là hàm tương tác (interaction function)
Quá trình huấn luyện mô hình nhằm tối ưu hóa bộ tham số Θ để giảm thiểu sự chênh lệch giữa giá trị điểm tương quan dự đoán 𝑦̂𝑢𝑖 và giá trị điểm tương quan thực tế 𝑦𝑢𝑖.
Mô hình SeNCF (Stacked embedding Neural Collaborative Filtering) sử dụng framework ONCF để ước lượng bộ tham số 𝛩, bằng cách xây dựng bản đồ tương tác giữa người dùng và đối tượng Sau đó, mô hình áp dụng mạng tích chập CNN để trích xuất các đặc trưng tương quan trong mối quan hệ giữa người dùng và đối tượng từ bản đồ tương tác Đầu tiên, các biểu diễn rời rạc của người dùng và đối tượng sẽ được chiếu vào mô hình.
Kỹ thuật one-hot encoding được sử dụng để tạo không gian chung với số lượng 𝐾 đặc trưng ẩn, kết hợp với phương pháp Embedding nhằm biểu diễn embedding cho người dùng và sản phẩm Sau đó, phương pháp xếp chồng embedding được áp dụng để xây dựng bản đồ tương tác hiệu quả.
Với 𝒑 𝑢 , 𝒒 𝑖 là các embedding tương ứng của user u và item i
Trong đó: 𝑷 𝑇 ∈ ℝ 𝑀×𝐾 , 𝑸 𝑇 ∈ ℝ 𝑁×𝐾 là ma trận đặc trưng ẩn (latent factor matrix) của user u và item i
𝒔(𝒑𝑢,𝒒𝑖) là biểu diễn embedding xếp chồng của user/item embedding, cũng chính là bản đồ tương tác 𝑴 giữa user- item, được ký hiệu là A
Phía sau bản đồ tương tác (interaction map) là các lớp ẩn (hidden layers)
– các lớp mạng tích chập (convolutional layers) được lựa chọn để trích xuất mối tương quan giữa các embedding dimension từ bản đồ tương tác
Mô hình MLP có thể được áp dụng cho các hidden layers sau bản đồ tương tác (M) bằng cách chuyển đổi bản đồ này từ ma trận 𝑘×𝐾 thành vector một chiều qua phép làm phẳng (flatten) Tuy nhiên, việc flatten có thể làm mất đi mối tương quan cục bộ giữa các embedding dimension Nghiên cứu về Neural Collaborative Filtering, DNCF, và JRL cho thấy MLP gặp khó khăn trong việc tối ưu hóa và có số lượng tham số lớn, đồng thời hiệu suất của nó phụ thuộc vào tính chất của dữ liệu, dễ rơi vào trạng thái tối ưu cục bộ, đặc biệt trên các tập dữ liệu thưa Ngược lại, mạng tích chập CNN đã khắc phục những vấn đề này và được chứng minh là hiệu quả trong việc trích xuất đặc trưng.
Multi-Layer Perceptron (MLP) is effective for big data analysis, as it can learn relationships from local to global levels among input components A comparative study highlights the advantages of MLP over convolutional neural networks (CNN), which utilize various convolution filters to infer multiple aspects of user-item interactions Additionally, CNNs are optimized for speed through parallel computation on matrices, leveraging the power of GPUs for enhanced performance.
Hình 9: Mô hình đề xuất SeNCF
Mô hình SeNCF được minh họa trong Hình 9 với bản đồ tương tác dạng ma trận 2 × K, bao gồm hai vector user/item embedding Chúng ta sẽ áp dụng X convolution filter kích thước 2 × 2, với padding = 1 và stride = 2, để trượt trên bản đồ tương tác M, từ đó tạo ra X feature maps có kích thước tương ứng.
2 × ([ 𝐾 2 ] + 1) tương ứng Từ các nghiên cứu trước và thực nghiệm cá nhân [6],
Số lượng đặc trưng ẩn K, thường được chọn là số chẵn và là lũy thừa của 2, đóng vai trò quan trọng trong việc xác định số chiều của embedding vector Để tăng cường hiệu suất của mô hình mạng học sâu, sau mỗi lớp tích chập, chúng ta sử dụng hàm kích hoạt phi tuyến, phổ biến nhất là hàm ReLU, đã được chứng minh giúp mô hình nhanh chóng đạt tới điểm hội tụ.
[19] Có khá nhiều hàm kích hoạt [35] khác hiện nay như sigmod, tank…, mới hơn có mish, swift… hoặc các biến thể cải thiện của ReLU như PReLU, LSeLU,
Việc thử nghiệm ảnh hưởng của các hàm kích hoạt đến mô hình sẽ được dành cho các nghiên cứu trong tương lai Những khái niệm cơ bản của mạng tích chập CNN như convolution filter/kernel, kích thước kernel, padding và stride sẽ không được trình bày lại trong luận văn này Mục đích sử dụng padding = 1 ở lớp tích chập đầu tiên là để cân bằng trong việc trích xuất đặc trưng của tương quan cục bộ giữa các chiều trong một embedding.
In the second hidden layer, we continue to apply a convolution filter with a stride of 1, utilizing a size of 2 × 2 × X on the output from the first hidden layer At this stage, we employ one convolution filter of specified dimensions to enhance the feature extraction process.
1 × 1 × 𝑋 trên 𝑋 feature maps tạo ở hidden layer 2 để được một vector mã hoá mối tương quan toàn bộ giữa các embedding dimensions của user/item
Gọi 𝑬 𝑙𝑐 , 𝑏𝑙, 𝑠𝑙 là các feature map, thiên bias và bước nhảy thuộc hidden layer thứ l trong mạng nơ-ron tích chập Tất cả feature maps và kernel ở các hidden layers thứ l được biểu diễn bằng ma trận (tensor) ℰ 𝑙 ,𝒯 𝑙 Với đầu vào là bản đồ tương tác 𝑨 ∈ ℝ 2×𝐾, sau khi áp dụng padding = 1, chúng ta có ma trận ℰ 0 ∈ ℝ 4×(𝐾+2) 𝐾 là số lượng chiều embedding vector và là một số chẵn, trong khi 𝐾 ′ = 𝐾 2 Do đó, đầu ra của mạng tích chập CNN có thể được biểu diễn bằng các công thức toán học tương ứng.
Lưu ý là ở layer 1, 𝒯 1 là 3D tensor tương ứng với 𝑋 convolution filter 2 × 2 Ở layer 2, 𝒯 2 là 4D tensor tương ứng với 𝑋 convolution filter 2 × 2 ×𝑋 Ở layer 3, 𝒯 3 là 3D tensor tương ứng với 𝑋 convolution filter 1 × 1 ×𝑋
Mô hình SeNCF có thể được cải tiến bằng cách thêm nhiều lớp tích chập tương tự như lớp ẩn thứ ba, nhưng sử dụng số lượng kernel lớn hơn (>1) trước khi đến lớp tích chập cuối cùng Đầu ra của mạng CNN sẽ tạo thành một vector có kích thước 1 × 𝐾 ′ × 1.
Vector sẽ được chuyển đổi (flatten) trước khi trở thành đầu vào cho lớp dự đoán, cụ thể là một lớp tuyến tính với vector trọng số 𝑾 và thiên bias 𝒃 Sau đó, hàm kích hoạt sigmoid 𝜎(𝑡) = 1 / (1 + 𝑒 −𝑡) được áp dụng lên đầu ra của lớp tuyến tính Kết quả của mô hình, ký hiệu là 𝑦𝑢𝑖 ∈ [0, 1], là điểm dự đoán cuối cùng.
23 tương quan dự đoán của user u với item i, hoặc cũng có thể hiểu là xác xuất mà user u sẽ tương tác với item i
Việc áp dụng các convolution filter giúp trích xuất đặc trưng tương quan cục bộ tại mỗi lớp, mở rộng dần vùng tương tác cục bộ cho đến khi đạt được tính toàn cục Các lớp tuyến tính kết hợp với hàm phi tuyến xác định mức độ ảnh hưởng của mỗi mối quan hệ tương tác giữa người dùng và sản phẩm vào điểm số tương quan cuối cùng của người dùng u đối với sản phẩm i.
Mô hình SeNCF được huấn luyện bằng cách tối ưu hàm mất mát trên từng điểm dữ liệu thông qua phương pháp pointwise training Đầu ra của mô hình, xác suất tương tác giữa user u và item i, được tối ưu hóa bằng hàm binary cross-entropy loss, hay còn gọi là log loss Để tối ưu hàm loss, các phương pháp như Gradient Descent, Stochastic Gradient Descent, và Adam có thể được sử dụng, cùng với kỹ thuật lan truyền ngược để tính toán đạo hàm và cập nhật tham số Trong nghiên cứu này, phương pháp Adam được chọn do hiệu suất tốt với dữ liệu thưa.
Mô hình k ết hợp của SeNCF và ConvNCF
Các nghiên cứu trước đây chỉ ra rằng để nâng cao khả năng của mô hình gợi ý, việc kết hợp các biểu diễn tương tác từ nhiều mô hình con là cần thiết Chẳng hạn, mô hình NeuMF là sự kết hợp giữa hai mô hình GMF và MLP, mang lại sự cải thiện khoảng 2-4% so với từng mô hình riêng lẻ Tuy nhiên, như đã đề cập, đầu vào của mô hình vẫn chưa khai thác hết mối tương quan giữa các embedding dimension, và cấu trúc nhiều lớp với liên kết đầy đủ tạo ra số lượng tham số lớn, gây khó khăn trong việc tối ưu hóa mô hình.
K đặc trưng ẩn lớn hay nhiều hidden layers cũng không có gì đảm bảo sẽ biểu
24 diễn tốt hơn các tương tác mà thậm chí có thể giảm tính tổng quát và tăng kích thước của mô hình
Dựa trên framework ONCF và có cùng ý tưởng với mô hình ConvNCF
Mô hình SeNCF và ConvNCF đều nhằm cải thiện việc biểu diễn mối tương quan giữa các embedding dimension, tạo ra bản đồ tương tác hiệu quả Qua việc sử dụng các lớp mạng tích chập, hai mô hình này có khả năng trích xuất các đặc trưng từ cục bộ đến toàn cục, từ đó nâng cao hiệu suất trong việc đề xuất.
SeNCF để tăng cường biểu diễn mối tương quan giữa các latent feature/embedding dimension
Hình 10: Mô hình SeConvNCF kết hợp của mô hình SeNCF và mô hình ConvNCF [3]
Mô hình gốc ConvNCF [3] có thiết kế có số lượng đặc trưng ẩn (latent feature) cố định 𝐾 = 64, số lượng feature map sử dụng tại mỗi lớp tích chập là
Đầu ra của lớp tích chập trong mô hình SeConvNCF được làm phẳng để tạo thành vector có kích thước 1 × 32, tương ứng với số lượng feature map Trong khi giữ nguyên thiết kế gốc của mô hình ConvNCF, mô hình con SeNCF cho phép số lượng feature map khác nhau, phụ thuộc vào số lượng 𝐾 đặc trưng ẩn Hình 10 minh họa cấu trúc của mô hình SeConvNCF với nhánh trên là mô hình ConvNCF.
ConvNCF gốc và nhánh dưới là mô hình SeNCF với số lượng feature map được sử dụng đồng nhất là 32
Thay số lượng đặc trưng ẩn 𝐾= 64 vào công thức (6) và sử dụng và số lượng feature map 𝑋 = 32, ta được biểu diễn đầu ra của mô hình như sau:
Trong đó: 𝒑𝑢(2),𝒒𝑖(2) các embedding vector của user u và item cho mô hình SeNCF
𝑨 𝑆𝑒𝑁𝐶𝐹 là bản đồ tương tác tạo bởi phép xếp chồng các embedding vector Θ𝑆𝑒𝑁𝐶𝐹 là các tham số mô hình SeNCF, chi tiết (4)
𝜙 𝑆𝑒𝑁𝐶𝐹 là vector kết quả của mô hình con SeNCF
Luận văn sẽ không trình bày lại biểu diễn toán học cụ thể của mô hình
ConvNCF [3] Giả sử đầu ra của mô hình ConvNCF là vector 𝜙 𝐶𝑜𝑛𝑣𝑁𝐶𝐹 ∈
Trong đó: 𝒑𝑢(2),𝒒𝑖(2) các embedding vector của user u và item cho mô hình ConvNCF
𝑨 𝐶𝑜𝑛𝑣𝑁𝐶𝐹 là bản đồ tương tác tạo bởi phép tích ngoại giữa các embedding vector Θ 𝐶𝑜𝑛𝑣𝑁𝐶𝐹 là các tham số mô hình ConvNCF sau khi đã bỏ đi lớp dự đoán
𝜙 𝐶𝑜𝑛𝑣𝑁𝐶𝐹 là vector kết quả của mô hình con ConvNCF
Các mô hình với số lượng feature map 𝑋 bất kỳ có thể được biểu diễn tương tự như trường hợp 𝑋 = 32 Để nâng cao hiệu năng của mô hình SeConvNCF, chúng tôi áp dụng phương pháp tiền huấn luyện cho hai mô hình con SeNCF và ConvNCF với các tham số khởi tạo ngẫu nhiên Sau khi huấn luyện, bộ tham số tối ưu của hai mô hình con sẽ được sử dụng làm tham số đầu vào cho mô hình kết hợp Cuối cùng, ở lớp cuối cùng của mô hình, trọng số của hai mô hình con sẽ được kết nối theo công thức đã định.
Trong đó: 𝒉 𝑆𝑒𝑁𝐶𝐹 ,𝒉 𝐶𝑜𝑛𝑣𝑁𝐶𝐹 là vector trọng số tối ưu 𝒉 của SeNCF và ConvNCF
𝛼 là siêu tham số (hyper-parameter) quyết định mức cân bằng giữa 2 mô hình đã được huấn luyện trước
Trong chương tiếp theo của luận văn, tôi sẽ tiến hành thử nghiệm với siêu tham số 𝛼 = 0.5, nhằm thể hiện sự cân bằng giữa hai mô hình con SeNCF và ConvNCF.
Các thông s ố để đánh giá mô hình
Để đánh giá mô hình, chúng tôi áp dụng chiến lược leave-one-out, phương pháp phổ biến trong các nghiên cứu trước đây Cụ thể, chúng tôi sẽ giữ lại tương tác mới nhất của mỗi người dùng để đưa vào tập đánh giá, trong khi các đánh giá còn lại sẽ được sử dụng cho tập huấn luyện Trong mỗi epoch, chúng tôi kết hợp phương pháp lấy mẫu ngẫu nhiên các phản hồi tiêu cực từ các tương tác thiếu hụt và kết hợp với tập huấn luyện để tối ưu hóa các tham số Cuối cùng, chúng tôi sẽ đánh giá mô hình dựa trên các chỉ số Hit ratio (HR) và Normalized Discounted Cumulative Gain (NDCG), những chỉ số cũng đã được sử dụng trong các nghiên cứu trước.
3.4.1 Tỉ lệ hit (HR) Đối với mỗi user đánh giá, tương tác mới nhất sẽ được ẩn khỏi tập huấn luyện (training set) và đưa vào tập đánh giá (test set), được coi như một testcase (positive pair) Việc xếp hạng toàn bộ item trong hệ thống (rank item) đối với mỗi user là không cần thiết và tốn thời gian Mô hình sẽ lựa chọn ngẫu nhiên 99 item mà user chưa đánh giá (negative pair) để tạo ra danh sách xếp hạng các item
(list ranked item) dựa theo điểm đánh giá dự đoán của user và xếp hạng item của testcase trong list ranked item này
Nếu item của testcase có điểm đánh giá thực tế lọt vào top-K của list ranked item này và được tính là một lần hit của hệ thống
Số lượng lần hit trên tổng số testcase chính là tỉ lệ hit (𝐻𝑅) của mô hình:
Thông số 𝐻𝑅@𝐾 được dùng làm thông số chính để đánh giá chất lượng của mô hình
Trong luận văn này, tôi đã chọn 𝑘 = 10 và áp dụng chỉ số 𝐻𝑅@10 để đánh giá chất lượng mô hình, phản ánh tỷ lệ các item mà người dùng đã tương tác nằm trong top-10 item được gợi ý cho họ.
3.4.2 Độ lợi luỹ kế khấu hao chuẩn hoá (NDCG)
Ngoài chỉ số 𝐻𝑅, một thông số quan trọng khác để đánh giá chất lượng xếp hạng là 𝑁𝐷𝐶𝐺 Các item được xem là hit và có vị trí xếp hạng cao trong top-K items sẽ nhận được điểm số cao hơn, tức là những item có độ tương quan cao (highly relevant) sẽ được ưu tiên hơn trong quá trình đánh giá.
Trong đó: 𝑟𝑒𝑙 𝑖 là độ tương quan của item đánh giá so với item i thuộc top-K item được gợi ý bởi mô hình
Mô hình có có thông số 𝐻𝑅 và 𝑁𝐷𝐶𝐺 càng cao thì càng có chất lượng gợi ý tốt
Trong luận văn, tôi đã chọn 𝑘 = 10 và áp dụng 𝑁𝐷𝐶𝐺@10 để đánh giá chất lượng mô hình, nhằm đo lường mức độ tương quan giữa các item mà người dùng đã tương tác và top-10 item được gợi ý cho họ.
CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ
Thi ết kế thí nghiệm
Tất cả các thí nghiệm được tiến hành trên môi trường server Ubuntu 16.04, sử dụng chip Intel Xeon® Gold 5215 @2.5GHz, 1 GPU RTX 2080Ti và 128GB RAM Ngôn ngữ lập trình Python 3 cùng với thư viện deeplearning đã được áp dụng trong quá trình thực hiện.
Pytorch (phiên bản 1.5) là một thư viện mã nguồn mở được ưa chuộng trong cộng đồng các nhà khoa học để nghiên cứu và triển khai các thuật toán học sâu Thư viện này hỗ trợ tính toán nhanh các phép toán tensor như ma trận, vector và số vô hướng, đồng thời cho phép thiết lập tính toán song song trên GPU thông qua công nghệ CUDA Để theo dõi trực quan các thông số như Loss, HR, và NDCG trong quá trình huấn luyện mô hình, thư viện tensorboardX được sử dụng, trong khi seaborn và matplotlib giúp vẽ biểu đồ so sánh kết quả của các mô hình.
4.1.1 Tập dữ liệu thử nghiệm
Tôi tiến hành các thí nghiệm trên 2 bộ dữ liệu thực tế dùng chung là
MovieLens1M là bộ dữ liệu chứa các đánh giá tường minh về phim, được sử dụng phổ biến để đánh giá mô hình gợi ý theo phương pháp lọc cộng tác Bộ dữ liệu này có nhiều phiên bản với số lượng đánh giá từ 100 nghìn đến 20 triệu Ngoài các đánh giá, MovieLens1M còn cung cấp thông tin chi tiết về từng người dùng, bộ phim và các thẻ (metadata).
Tôi quyết định sử dụng phiên bản MovieLens1M với khoảng 1 triệu tương tác giữa người dùng và mục, trong đó mỗi người dùng có tối thiểu 20 đánh giá Mục tiêu của luận văn này là
Mô hình đánh giá 29 sử dụng phản hồi không tường minh, trong đó tất cả các đánh giá theo thang điểm 5 sẽ được chuyển đổi thành phản hồi không tường minh Cụ thể, giá trị 0/1 sẽ thể hiện việc người dùng chưa hoặc đã tương tác với sản phẩm.
Pinterest là một nguồn dữ liệu phong phú về gợi ý hình ảnh, nhưng gặp khó khăn do tính không tường minh và sự thưa thớt của dữ liệu Hơn 20% người dùng chỉ tương tác với một bức ảnh duy nhất, làm cho việc đánh giá mô hình gợi ý dựa trên lọc cộng tác trở nên khó khăn Để cải thiện chất lượng dữ liệu, tôi đã quyết định lọc và giữ lại những người dùng có ít nhất 20 tương tác với các bức ảnh.
Bảng 2: Một số thông tin về dữ liệu được sử dụng
Tập dữ liệu Số lượng tương tác
Dựa vào Bảng 1, cả hai bộ dữ liệu đều rất thưa, gây khó khăn cho các mô hình Collaborative Filtering (CF) Đây là lý do luận văn chọn các bộ dữ liệu này để thử nghiệm Hơn nữa, với các kết quả từ nghiên cứu trước, việc so sánh và đánh giá với mô hình hiện tại trở nên dễ dàng hơn.
4.1.2 Một số phương pháp trước đây được dùng để so sánh Để kiểm tra hiệu quả của mô hình hiện tại, tôi sẽ so sánh với một số các phương pháp trước:
ItemPop [41] là phương pháp xếp hạng các item dựa trên độ phổ biến, giúp xác định top-k items phổ biến nhất để gợi ý cho người dùng Đây là một trong những phương pháp cơ bản và phổ biến nhất trong việc so sánh các mô hình gợi ý.
GMF (Generalized Matrix Factorization) là một phương pháp tổng quát hóa từ Matrix Factorization (MF), sử dụng một lớp tuyến tính đơn giản trên vector ẩn (latent vector) để thay thế phép tính tổng trong tích có hướng giữa embedding của người dùng và sản phẩm.
MLP (Mạng nơ-ron đa lớp) sử dụng các lớp mạng kiên kết đầy đủ để xử lý biểu diễn vector nối của embedding người dùng và sản phẩm, nhằm học các hàm tương tác giữa người dùng và sản phẩm.
- NeuMF [9]: là kết hợp của hai mô hình GMF và MLP, nhằm tăng cường lẫn nhau trong việc mô hình tương tác giữa user-item
DNCF là một mô hình mở rộng của NeuMF, tích hợp thêm các embedding từ metadata của người dùng và sản phẩm vào đầu vào của mô hình MLP Mô hình này còn được bổ sung các lớp ẩn liên kết đầy đủ trong GMF nhằm cải thiện khả năng mô hình hóa các tương tác phức tạp giữa người dùng và sản phẩm, đồng thời tận dụng những đặc trưng có ý nghĩa khác từ metadata Tuy nhiên, thông tin metadata không được sử dụng để đảm bảo sự so sánh công bằng giữa các phương pháp.
ConvNCF sử dụng tích chập giữa biểu diễn embedding của người dùng và sản phẩm để tạo bản đồ tương tác, áp dụng mạng tích chập nhằm trích xuất đặc trưng tương quan cục bộ và toàn cục Tác giả cố định số lượng đặc trưng ẩn là 𝐾= 64 và số lượng feature maps là 𝑋= 32, đồng thời tối ưu mô hình theo chiến lược huấn luyện theo cặp điểm dữ liệu.
Mô hình SeNCF và SeConvNCF có các tham số chính bao gồm số lượng feature map, số lượng đặc trưng ẩn và số lượng phản hồi tiêu cực được lấy mẫu ngẫu nhiên từ dữ liệu thiếu Tất cả các tham số được khởi tạo theo phân phối Gaussian 𝒩(0, 0.01), với trung bình 0 và độ lệch chuẩn 0.01 Mô hình ConvNCF áp dụng chiến lược tối ưu theo cặp điểm dữ liệu, nhưng với dữ liệu thưa, chiến lược này có thể dẫn đến kết quả không tốt do thiếu dữ liệu Do đó, tôi sẽ chuyển sang chiến lược huấn luyện tối ưu theo từng điểm dữ liệu và sử dụng hàm log-loss đồng nhất cho tất cả các mô hình Tốc độ học được thiết lập là 0.001.
Để tối ưu hàm mất mát, tôi áp dụng phương pháp Adam [38] và sử dụng 4 mẫu phản hồi tiêu cực cho tất cả các mô hình, dựa trên kết quả nghiên cứu trước cho thấy giá trị này mang lại hiệu quả tốt nhất Tiếp theo, tôi sẽ đánh giá hiệu năng và chất lượng các mô hình trên top-k với 𝑘= 10 Ngoài ra, việc áp dụng tiền huấn luyện cho các embedding vector đã được chứng minh là cải thiện đáng kể hiệu quả của mô hình trong các nghiên cứu trước.
31 dụng kĩ thuật tiền huấn luyện đối với các mô hình và lựa chọn kết quả tốt nhất từ việc có/không sử dụng kĩ thuật này
K ết quả thử nghiệm và so sánh các phương pháp khác
Tôi thực hiện 2 thí nghiệm:
- 𝐸𝑥1: Thử nghiệm ảnh hưởng của số lượng đặc trưng ẩn K tới hiệu năng của các mô hình
- 𝐸𝑥 2 : Thử nghiệm ảnh hưởng của số lượng feature map X trong các lớp tích chập tới hiệu năng các mô hình
4.2.1 Thử nghiệm với tham số K đặc trưng ẩn
Mô hình SeConvNCF với các tham số 𝐾 = 64 và 𝑋 = 64 đã đạt được kết quả tối ưu nhất tại bước huấn luyện 𝑠𝑡𝑒𝑝 = 7000, với 𝐻𝑅@10 đạt 0.78 và 𝑁𝐷𝐶𝐺@10 đạt 0.52 Tuy nhiên, sau bước này, mô hình bắt đầu có xu hướng giảm hiệu suất trên tập kiểm tra Do đó, việc áp dụng phương pháp early-stopping trong khoảng 𝑠𝑡𝑒𝑝 [7000 .8000] là cần thiết để kết thúc quá trình huấn luyện một cách hợp lý.
Hình 11: Giá trị HR@10, NDCG@10 của mô hình SeConvNCF theo số step bằng công cụ trực quan TensorboardX
Bảng 2 trình bày sự so sánh kết quả của các mô hình khi thay đổi số lượng đặc trưng ẩn 𝐾, trong khi số lượng feature map 𝑋 trong các mô hình CNN được giữ cố định ở mức 32 Một số mô hình không có đủ dữ liệu do tuân theo thiết kế gốc của tác giả, như ConvNCF với 𝐾= 64, hoặc không áp dụng thông số đặc trưng ẩn như trong trường hợp ItemPop.
Bảng 3: So sánh kết quả gợi ý trên HR@10 của các mô hình khi thay đổi số lượng K đặc trưng ẩn
HR@10 dữ liệu Tập Movilens1M
K ItemPop GMF MLP NeuMF DNCF ConvNCF* SeNCF SeConNCF
K ItemPop GMF MLP NeuMF DNCF ConvNCF* SeNCF SeConNCF
Các mô hình hiện tại cho kết quả vượt trội so với phương pháp ItemPop, vì ItemPop không cung cấp gợi ý cá nhân hóa Vì vậy, cần thiết phải mô hình hóa các tương tác giữa người dùng và sản phẩm từ nhiều góc độ và khía cạnh khác nhau để nâng cao hiệu quả gợi ý.
Trên cả hai bộ dữ liệu thực tế Movilens1M và Pinterest, các phương pháp sử dụng mạng tích chập dựa trên framework ONCF đã cho kết quả tốt hơn so với các mô hình mạng liên kết đầy đủ dựa trên framework NCF, đặc biệt khi kích thước 𝐾 lớn Điều này cho thấy rằng khi số chiều của embedding biểu diễn user/item tăng lên, các mô hình CNN có khả năng trích xuất mối tương quan giữa user-item tốt hơn, trong khi các mô hình NCF có xu hướng hội tụ và dễ mất tính tổng quát, đặc biệt trong trường hợp bộ dữ liệu Pinterest.
Mô hình ConvNCF có hiệu suất nhỉnh hơn một chút so với SeNCF khi số lượng K nhỏ, nhưng khi K lớn hơn 32, hiệu năng của hai mô hình trở nên tương đồng và độ chênh lệch giữa chúng không rõ rệt Đối với dữ liệu Pinterest, việc tăng số lượng đặc trưng ẩn không mang lại cải thiện đáng kể, cho thấy không nên sử dụng quá nhiều đặc trưng ẩn trên tập dữ liệu này Số lượng đặc trưng ẩn cũng phụ thuộc vào số lượng người dùng và mặt hàng trong hệ thống; với hệ thống nhỏ hoặc dữ liệu thưa thớt, nên giới hạn K dưới 100.
Mô hình SeConvNCF đạt hiệu suất tốt nhất so với các mô hình khác, chứng minh rằng việc kết hợp hai mô hình con đã thực sự nâng cao hiệu quả của mô hình.
4.2.2 Thử nghiệm với tham số X số lượng feature map của mạng CNN
Bảng 4 trình bày sự so sánh kết quả giữa các mô hình khi thay đổi số lượng 𝑋, đại diện cho số lượng feature map trong lớp mạng CNN, đối với các mô hình dựa trên framework ONCF Chúng tôi sẽ điều chỉnh kiến trúc của mô hình gốc ConvNCF bằng cách thay đổi số lượng feature map, dẫn đến việc vector đầu ra của mô hình ConvNCF có kích thước 1 × 𝑋 Tương tự, mô hình SeConvNCF cũng sử dụng 𝑋 feature map tại các lớp tích chập trong mô hình con SeNCF.
Bảng 4: So sánh kết quả gợi ý trên HR@10 của các mô hình khi thay đổi số lượng X feature map của mạng CNN
HR@10 dữ liệu Tập Movilens1M
X ItemPop GMF MLP NeuMF DNCF ConvNCF* SeNCF SeConNCF
X ItemPop GMF MLP NeuMF DNCF ConvNCF* SeNCF SeConNCF
- Từ bảng 4, có thể thấy trên cả 2 bộ dữ liệu thực tế Movilens1M và
Khi tăng số lượng feature map 𝑋 của các phương pháp sử dụng mạng tích chập trong framework ONCF, mô hình có khả năng trích xuất nhiều khía cạnh hơn trong các mối tương quan phức tạp Tuy nhiên, chỉ nên tăng số lượng feature map (𝑋 < 100) khi làm việc với hai bộ dữ liệu Movielens1M và Pinterest Việc tăng số lượng feature map từ 32 lên sẽ mang lại hiệu quả tốt hơn trong việc cải thiện chất lượng mô hình.
64 có giúp các mô hình cải thiện khả năng nhưng không đáng kể trên 2 bộ dữ liệu này.
- Mô hình SeNCF cũng cho kết quả khá tương đồng với mô hình ConvNCF
4.2.3 So sánh và đánh giá
Mô hình SeConvNCF có số lượng tham số ít hơn nhiều so với các mô hình dựa trên framework NCF, với ít hơn 2-4 triệu tham số so với NeuMF và DNCF Khi sử dụng mô hình MLP với chỉ 1 hidden layer sau khi làm phẳng bản đồ tương tác, số lượng tham số đã lên tới gần 8,2 triệu Việc áp dụng mạng tích chập CNN giúp tối ưu hoá kích thước mô hình, tăng tính tổng quát và ổn định hơn khi xử lý dữ liệu thưa.
Biểu đồ hình 12 cho thấy rằng các phương pháp sử dụng mạng tích chập để mô hình hóa tương quan giữa user-item vượt trội hơn so với các mô hình mạng liên kết đầy đủ trong framework NCF trên cả hai bộ dữ liệu thực tế Cụ thể, mô hình SeConvNCF đã cải thiện khoảng 5.6% so với NeuMF và 4.5% so với DNCF trên thông số 𝐻𝑅@10 với bộ dữ liệu MovieLens1M Tương tự, trên bộ dữ liệu Pinterest, SeConvNCF cũng ghi nhận sự cải thiện từ 2.5% đến 3.4% so với các mô hình DNCF và NeuMF.
Ngoài ra, mô hình kết hợp SeConvNCF cũng cải thiện được khoảng 1,5%-2% trên thông số 𝐻𝑅@10 khi so sánh với các mô hình con ConvNCF, SeNCF
Hình 12: So sánh các mô hình trên framework NCF và các mô hình trên frameworkONCF
Mối tương quan giữa người dùng và sản phẩm được thể hiện qua bản đồ tương tác nhờ vào phép tích chập và xếp chồng, giúp mô hình hóa hiệu quả hơn so với các phương pháp trước Mô hình dựa trên mạng CNN cho phép phân tích sâu hơn với số lượng tham số giảm đáng kể, nhờ vào việc sử dụng chung trọng số trong các kernel, đồng thời vẫn giữ được khả năng trích xuất mối tương quan user-item từ cục bộ đến toàn cục.
Chúng ta cần thực hiện thêm nhiều thử nghiệm để thiết kế và xác định các bộ thông số tối ưu cho các lớp mạng tích chập, nhằm mã hóa thông tin khác vào bản tương tác, từ đó cải thiện khả năng trích xuất các quan hệ giữa người dùng và sản phẩm.