Chƣơng 2 : MÔ HÌNH NGÔN NGỮ MẠNG NƠRON
2.3 Một số kỹ thuật cải tiến mô hình ngôn ngữ mạng nơron
2.3.1 Giảm kích thƣớc bộ từ vựng
Các mô hình mạng nơron ban đầu tính toán khá phức tạp làm giới hạn tính khả thi của hệ thống thực. Rất nhiều kỹ thuật đƣa ra để giảm tính toán ở tầng ẩn và tầng ra, tức là giảm H×V phép toán. Đây chính là thắt cổ chai trong khi sử dụng mạng nơron truyền thẳng và mạng nơron hồi quy. Ví dụ với tầng ẩn H=200 và bộ từ vựng là
V=50K, thì thời gian thực hiện quá trình huấn luyện dữ liệu cỡ vài triệu từ là rất lâu. Một giải pháp đơn giản là giảm kích thƣớc của bộ từ vựng V. Bengio [1] đƣa ra một giải pháp là nhóm các từ có tần suất xuất hiện thấp vào trong một lớp riêng, lớp này có xác suất bằng xác suất của tất từ hiếm gặp. Các từ này đƣợc nhóm vào lớp đó dựa trên tần suất xuất hiện 1-gram.
Kỹ thuật này làm giảm đáng kể tốc độ tính toán nhƣng làm giảm độ chính xác.
2.3.2 Phân tách tầng ra của mạng nơron (Factorization)
Thay vì tính xác suất của tất cả các từ trong bộ từ vựng V hoặc giảm kích thƣớc bằng bỏ qua những từng ít gặp, xác suất đƣợc tính qua xác suất của lớp từ vựng và xác suất của từ nằm trong lớp đó. Ý tƣởng ban đầu đƣợc Goodman [6] sử dụng phân lớp từ để tăng tốc độ tính toán cho mô hình entropy cực đại (maximum entropy model). Kỹ thuật này đƣợc mô tả trong hình 2.5. Đầu tiên tính xác suất của lớp, tiếp theo tính xác
suất của từ nằm trong lớp. Do đó, thay vì tính V đầu ra, ta chỉ việc tính C+V’ đầu ra và hàm softmax sử dụng tính cho cả C vàV’ , trong đó C bằng tổng các lớp, V’ bằng tổng các từ thuộc về lớp đó. C là một hằng số còn V’ là biến.
Hình 2.5: Phân tách tầng ra của mạng nơron
Thuật toán để đƣa các từ vào lớp dựa trên tần suất xuất hiện 1-gram, mỗi một từ
wi từ bộ từ vựng V đƣợc gán vào lớp ci. Việc phân lớp này đƣợc thực hiện trƣớc khi giai đoạn huấn luyện bắt đầu. Phƣơng pháp phân lớp từ ở đây là phƣơng pháp rời rạc hóa tần suất xuất hiện (frequency binning). Kết quả của kỹ thuật này là một lƣợng các từ chia về các lớp theo tần suất xuất hiện. Do đó V’ là một tập nhỏ. Với các từ hiếm xuất hiện thì tập V’ có số lƣợng khá lớn nhƣng tập đó lại không đƣợc tính toán nhiều. Kỹ thuật này đơn giản hơn cách làm ở phần trƣớc.
Khi sử dụng kỹ thuật phân lớp các công thức tính toán vẫn sử dụng nhƣ trong phần 2.2, riêng phần tính toán ở tầng ra thay đổi: trƣớc hết tính giữa tầng ẩn và tầng ra của phân lớp:
𝑐𝑚 𝑡 = 𝑔 𝑠𝑗(𝑡)𝑥𝑚𝑗 𝑗
và tính một phần tập ra:
𝑦𝑉′ 𝑡 = 𝑔 𝑠𝑗(𝑡)𝑣𝑉′𝑗 𝑗
(2.34)
Khi đó, xác suất của từ w(t+1) tính nhƣ sau:
𝑃 𝑤𝑡+1 𝑠 𝑡 = 𝑃 𝑐𝑖 𝑠 𝑡 𝑃 𝑤𝑖 𝑐𝑖, 𝑠 𝑡 (2.35)
Trong quá trình huấn luyện, ma trận trọng số đƣợc sử dụng để tính cho công thức (2.33) (2.34) giống nhƣ đã tính ở phần trƣớc. Tính gradient của vector lỗi cho cả phần từ và phần lớp, sau đó lan truyền ngƣợc về tầng ẩn và các giá trị gradient này đƣợc cộng đồng thời.
Việc phân tách tính toán ở tầng ẩn và tầng ra sử dụng phân lớp từ làm giảm tốc độ tính toán xuống 15-30 lần trên cùng bộ dữ liệu (>100K từ).
2.3.3 Kết hợp giữa các mô hình mạng nơron
Ban đầu ma trận trọng số đƣợc khởi tạo các giá trị ngẫu nhiên nhỏ, sau khi đƣợc huấn luyện thì các mô hình khác nhau cho kết quả khác nhau trên cùng một bộ dữ liệu. Kết quả trung bình của các mô hình này sẽ là kết quả tốt nhất, do Schwenk đƣa ra [20]. Nội suy tuyến tính đƣợc dùng để tính kết quả đầu ra từ các mô hình mạng nơron. Xác suất của một từ w từ N mô hình đƣợc tính nhƣ sau:
𝑃 𝑤 = 𝑃𝑖(𝑤|) 𝑁 𝑁
𝑖=1
(2.36)
Trong đó, Pi(w|h) là xác suất của từ w đi sau h tại mô hình thứ i. Chạy thực nghiệm với mô hình mạng nơron hồi quy với các giá trị ma trận trọng số ngẫu nhiên khác nhau hoặc huấn luyện trên các mô hình hồi quy sử dụng kiến trúc khác nhau sau đó kết hợp các kết quả lại để cho kết quả tốt nhất.