Xấp xỉ hàm mất mát và Lấy mẫu âm¶
Để tránh việc cập nhật rất nhiều tham số này trong một lượt, một phương pháp xấp xỉ được đề xuất giúp cải thiện tốc độ tính toán đáng kể. Mỗi xác suất (P(w_c | w_t)) được mô hình bởi một hàm sigmoid thay vì hàm softmax:
Lưu ý rằng tổng các xác suất (sum_{w_c in mathbf{V}} P(w_c | w_t)) không còn bằng 1 nữa. Tuy nhiên, nó vẫn mang ý nghĩa về xác suất có mặt của riêng từ ngữ cảnh (w_c) đi cùng với từ đích (w_t).
Lúc này, việc tính toán (P(w_c | w_t)) chỉ còn phụ thuộc vào vector (mathbf{u}_t) và vector (mathbf{v}_c) (thay vì cả ma trận (mathbf{V})). Tương ứng với số hạng này, sẽ chỉ có (2d) trọng số cần được cập nhật cho mỗi cặp ((w_t, w_c)). Số lượng trọng số này không phụ thuộc vào kích thước từ điển, khiến cho cách mô hình này có thể hoạt động tốt với (N) rất lớn.
Có một vấn đề lớn với cách mô hình hóa này!
Vì không có sự ràng buộc giữa các xác suất (P(w_c | w_t)), khi cố gắng tối đa hóa mỗi xác suất sẽ dẫn đến việc nghiệm thu được thỏa mãn mọi (P(w_c | w_t)) đều cao. Điều này sẽ đạt được khi (exp(-mathbf{u}_t^T mathbf{v}_c)) xấp xỉ 0. Chỉ cần toàn bộ các phần tử của (mathbf{U}) và (mathbf{V}) tiến tới dương vô cùng là thỏa mãn. Việc xấp xỉ này bây giờ trở nên tầm thường và vô nghĩa. Để tránh vấn đề này, ta cần thêm đưa thêm các ràng buộc sao cho tồn tại các xác suất (P(w_n | w_t)) khác cần được tối thiểu hóa khi xét tới từ đích (w_t).
Bản chất của bài toán tối ưu ban đầu là xây dựng mô hình sao cho với mỗi từ đích, xác suất của một từ ngữ cảnh xảy ra là cao trong khi xác suất của toàn bộ các từ ngoài ngữ cảnh đó là thấp – việc này được thể hiện trong hàm softmax. Để hạn chế tính toán, trong phương pháp này ta chỉ lấy mẫu ngẫu nhiên một vài từ ngoài ngữ cảnh đó để tối ưu. Các từ trong ngữ cảnh được gọi là “từ dương”, các từ ngoài ngữ cảnh được gọi là “từ âm”; vì vậy phương pháp này còn có tên gọi khác là “lấy mẫu âm” (negative sampling).
Khi đó, với mỗi từ đích, ta có một bộ các từ ngữ cảnh với nhãn là 1 và 0 tương ứng với các từ ngữ cảnh ban đầu (gọi là ngữ cảnh dương) và các từ ngữ cảnh âm được lấy mẫu từ ngoài tập ngữ cảnh dương đó. Với các từ ngữ cảnh dương, (-log(P(w_c | w_t))) tương tự với hàm mất mát trong hồi quy logistic với nhãn bằng 1. Tương tự, ta có thể dùng (-log(1 – P(w_c | w_t))) như là hàm mất mát cho các từ ngữ cảnh âm với nhãn bằng 0.