Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
463 KB
Nội dung
README.md 1/26/2019 Neural Machine Translation Overview Report Neural Machine Translation Overview Report 1.Tổng quan cấu trúc NMT BLEU score 1.1 NMT Seq2Seq Attention 1.2 BLEU Score Siêu tham số 2.1 Cấu trúc NN 2.2 Cơ chế Tối ưu hóa 2.3 Một số tùy chỉnh khác 2.4 Kết thử nghiệm Thông số NMT Mặc định WMT16 Mod IWSLT15 Attention matrix Ma trận Ma trận Ma trận Ma trận Another Reference 1.Tổng quan cấu trúc NMT BLEU score 1.1 NMT NMT (Neural Machine Translation) kết hợp dịch máy (Machine Translation - MT) mạng nơ-ron nhân tạo (Artificial Neural Network - NN) Và cụ thể báo cáo mạng NN sử dụng mơ hình NMT mạng nơ-ron hồi quy (hoặc truy hồi) (Recurrent Neural Network - RNN) mơ hình NMT sử dụng mơ hình xây dựng theo kiến trúc NMT Google, tảng thư viện Tensorflow dành cho Python theo Source code Khởi nguồn MT hoạt động theo cách chia nhỏ câu thành cụm từ tiến hành dịch cụm từ Kết cuối câu ghép lại từ cụm từ dịch Cách tiếp cận gọi dịch theo cụm (pharase-based), kết khơng ấn tượng cách tiếp cận phương pháp không thực giống với cách mà người sử dụng dịch thuật đọc toàn câu, nắm ý nghĩa câu đưa câu dịch tương ứng Và NMT xây dựng hoàn toàn dựa cách làm NMT cách tiếp cận MT phổ biến khoảng năm gần đẫ cho kết thực tốt, tới mức ngang người Cụ thể kiến trúc NMT kết hợp thành phân Seq2Seq Attention Seq2Seq / 13 README.md 1/26/2019 Kiến trúc Seq2Seq lấy từ tên nghiên cứu Sequence to Sequence Learning with Neural Networks (Sutskever et al., 2014) trình bày kiến trúc MT mà đó, câu (Seq) dịch cách đưa vào mã hóa (Encoder) nối tiếp với giải mã (Decoder) để dịch sang câu (2Seq) ngơn ngữ khác Hình Cấu trúc Encoder-Decoder Cụ thể NMT đưa tồn câu ngơn ngữ gốc vào Encoder để nén ý nghĩa câu thành vector gọi context (hoặc thought), đưa vector sang cho giải mã (Decoder) để chuyển vector thành câu thuộc ngôn ngữ khác (ngơn ngữ đích) mang ý nghĩa tương ứng với câu ngôn ngữ gốc Bài viết sử dụng RNN, gated recurrent unit (GRU) Long Short-term Memory (LSTM), để làm encoder decoder Hình Ví dụ cấu trúc NMT Ở ví dụ cấu trúc NMT trình bày Hình 2, encoder decoder cấu tạo từ lớp RNN chiều, chồng lên nhau, tương ứng với màu xanh dương màu đỏ Ở đây, ký hiệu sử dụng để báo hiệu bắt đầu / 13 README.md 1/26/2019 trình decode ký hiệu sử dụng để báo hiệu cho decoder dừng q trình decode lại Ngồi lớp RNN chồng lên encoder decoder Hình cịn có xuất lớp NN khác là: lớp embedding encoder lớp embedding, lớp projection decoder (2 lớp dùng chung trọng số, ngược chiều) Đây lớp NN embedding ứng với ngôn ngữ có NN embedding riêng biệt Trong embedding có vai trị chuyển từ không gian từ điển (vocab) ngôn ngữ, sang không gian vector (có chiều tương ứng với khơng gian vector context) Thì projection decoder có vai trị chuyển ngược lại từ thuộc không gian vector sang không gian từ điển (vocab) ngôn ngữ Tại chiều khơng gian vector encoder đóng vai trị nén ngữ nghĩa câu (tập hợp từ thuộc không gian vector) ngôn ngữ gốc thành vector context đưa sang cho decoder tiến hành giải nén vector context thành câu (tập hợp từ thuộc khơng gian vector) ngơn ngữ đích Để cho thuận tiện việc tính tốn chuyển đổi qua lại chiều khơng gian vector có chung chiều chiều vector context (kích thước mạng RNN) Mặc dù RNN ban đầu nghĩ để phù hợp với toán trải dài theo trình tự thời gian (time-step) với quãng q dài khả nắm bắt thơng tin RNN time-step xa hạn chế nêu nghiên cứu Hochreiter (1991) [tiếng Đức] Bengio, et al (1994) Giai đoạn lúc kiến trúc LSTM đời qua nghiên cứu Hochreiter & Schmidhuber (1997) LSTM phần khắc phục mát thông tin theo thời gian dài RNN Attention Vào năm 2015, để tăng độ xác việc nắm bắt thơng tin mơ hình Encoder-Decoder chế Attention giới thiệu với ý tưởng tạo đường tắt liên kết trực tiếp từ ngơn ngữ đích với từ tương ứng cần ý ngôn ngữ gốc, bên cạnh ý nghĩa mã hóa vector context (Bahdanau et al., 2015 & Luong et al., 2015) / 13 README.md 1/26/2019 Hình Mơ tả ý ngôn ngữ gốc ngôn ngữ địch Attention chế giúp mơ hình tập trung vào phần quan trọng tương ứng thông tin, cách tạo alignment model để tính alignment score αij\alpha_{ij}αij nhằm cân chỉnh lại mức độ liên quan hidden state encoder với output decoder timestep tương ứng Với NMT Seq2Seq, việc giúp mô hình hiểu mức độ liên quan input từ cần predict decoder Từ nghiên cứu đề cập trên, có số cách tính alignment score khác sau: Từ nghiên cứu Bahdanau et al., 2015 có Additive Attention $score(s_{i−1},h_{j})=va^{⊤}tanh(W_{a}s_{i−1}+U_{a}h_{j})$ Từ nghiên cứu Luong et al., 2015 Multiplicative Attention hay General Attention $score(s_{i−1},h_{j})=s^{T}{i−1}W{a}h_{j}$ Dot Product (simple mechanism) $score(s_{i−1},h_{j})=s^{T}{i−1}h{j}$ 1.2 BLEU Score / 13 README.md 1/26/2019 Bilingual Evaluation Understudy Score hay ngắn gọn BLEU score thang điểm dùng phổ biến đánh giá MT BLEU Kishore Papineni cộng đề xuất lần đầu vào năm 2002 qua nghiên cứu "a Method for Automatic Evaluation of Machine Translation" BLEU tính dựa số lượng n-grams giống câu dịch mơ hình (output) với câu tham chiếu tương ứng (label) có xét tới yếu tố độ dài câu Số n-grams tối đa BLEU khơng giới hạn, xét ý nghĩa, cụm từ dài thường nhiều ý nghĩa, nghiên cứu cho thấy với 4-gram, điểm số BLEU trung bình cho khả dịch thuật người giảm nhiều nên n-grams tối đa thường sử dụng 4-gram Xét câu dịch tham chiếu có độ dài sau: Output: Đây ghế Label 1: Đây bàn Label 2: Kia có ghế 1-gram Output Label Label Đây 1 1 1 ghế 1 BLEU độc lập 1-gram: 1-gram Label 1: 3/4 = 0.75 1-gram Label 2: 2/4 = 0.5 1-gram Label + 2: 4/4 = 2-grams Output Label Label Đây 1 1 ghế 1 Tương tự, BLEU độc lập cho 2-gram tính sau: 2-grams Label 1: 2/3 = 0.67 2-grams Label 2: 1/3 = 0.33 2-grams Label + 2: 3/3 = Công thức tổng quát độ xác cho n-grams: / 13 README.md 1/26/2019 Hình Độ xác n-gram Với cách tính này, dễ dàng thấy output ngắn, độ xác tính theo cơng thức cao Ví dụ với Label trên, output chữ "cái" BLEU Lúc này, để hạn chế việc câu ngắn BP (brevity penalty) sử dụng để so sánh độ dài output c độ dài câu tham chiếu r BLEU Score lúc có cơng thức: Hình BLEU score Quay lại ví dụ ban đầu, BLEU chung cho 1-gram 2-gram với trọng số wn ngang $\tfrac {1}{2}$ : 1-gram + 2-grams Label 1: $\LARGE{e^{(0.5 \times log\tfrac {3}{4}+0.5 \times log\tfrac {2}{3})}} = 0.71$ 1-gram + 2-grams Label 2: $\LARGE{e^{(0.5 \times log\tfrac {2}{4}+0.5 \times log\tfrac {1}{3})}} = 0.41$ 1-gram + 2-grams Label + 2: / 13 README.md 1/26/2019 $\LARGE{e^{(0.5 \times log\tfrac {4}{4}+0.5 \times log\tfrac {3}{3})}} = 1$ Với trường hợp có nhiều Label Label có độ dài khác lúc này, BP tính theo Label có chênh lệch độ dài so Output Siêu tham số Việc lựa chọn siêu tham số cho mơ hình NMT tác động lớn tới độ phức tạp độ nặng hệ thống huấn luyện chạy mơ hình Một số lựa chọn bao gồm: 2.1 Cấu trúc NN Loại RNN (unit_type): LSTM, GRU Số lớp (nums_layer): độ sâu mạng RNN, lớp, lớp chí lớp RNN chồng lên Tuy nhiên nhiều trường hợp, mơ hình sâu q lớp khơng đem lại thay đổi đáng kể kết huấn luyện (Reimers & Gurevych, 2017 Britz et al., 2017) Số đơn vị (nums_unit): đặc trưng cho kích thước mạng RNN, kích thước vector context Kích thước 2048 mang lại kết tốt nhất, khó áp dụng rộng rãi nặng chạy mơ hình Và kích thước 128 mang lại kết tương đối tốt với tốc độ huấn luyện nhanh nhẹ tới 16 lần (Britz et al., 2017) Chiều encoder (encoder_type): chiều, chiều kết hợp lớp chiều nhiều lớp chiều Và encoder chiều nghiên cứu mang lại hiệu tốt nhiều so với chiều (Sutskever et al., 2014 & Britz et al., 2017) 2.2 Cơ chế Tối ưu hóa Thuật tốn tối ưu hóa (optimizer): ta có lựa chọn Adam (Kingma & Ba, 2015) SGD (stochastic gradient descent) Mặc dù Adam mắt gần cộng đồng nghiên cứu NLP sử dụng thường xuyên vượt trội rõ ràng Adam so với SGD số nghiên cứu cho thấy với tùy chỉnh hợp lý SGD nhỉnh Adam chút (Wu et al., 2016) vượt trội hẳn với việc áp dụng momentum (Zhang & Mitliagkas, 2017) Cơ chế khởi động tốc độ học ban đầu giảm dần cuối (warmup_scheme & decay_scheme) Mô hình cho phép lựa chọn số chế tích hợp sẵn là: Tensor2Tensor's warmup_scheme, khởi đầu với tốc độ học lr nhỏ 100 lần tăng dần đạt số mong muốn luong234 decay_scheme, sau 2/3 bước huấn luyện, bắt đầu giảm tốc độ học lr lần, lần 50% luong5 decay_scheme, sau 1/2 bước huấn luyện, bắt đầu giảm tốc độ học lr lần, lần 50% luong10 decay_scheme, sau 1/2 bước huấn luyện, bắt đầu giảm tốc độ học lr 10 lần, lần 50% Bước huấn luyện (trainnig_step): Dao động phụ thuộc vào độ phức tạp khả huấn luyện, thường từ 10.000 lần hàng trăm nghìn lần 2.3 Một số tùy chỉnh khác Giới hạn tối đa Gradient norm (gradient clipping): Trong số trường hợp tốc độ học lớn, khiến gradient bùng nổ nhảy xa khỏi điểm hội tụ việc giới hạn cho Gradient norm cần thiết chí cải thiện hiệu (Pascanu et al., 2013) / 13 README.md 1/26/2019 Chiến thuật chọn output cho decoder (infer_mode): Mặc định time_step,output decoder cho phân phối xác suất toàn từ thuộc không gian từ điển (vocab) ngôn ngữ đích chiến thuật phổ biến chọn từ có xác suất cao (greedy) để làm output cho timestep đó, đưa vào timestep sau Tuy nhiên xác suất cao bước chưa chăc cho xác xuất cao bước tiếp theo, nên thay giữ kết có xác xuất cao nhất, beam search giữ lại k kết cao để tiếp tục đưa vào decoder bước tiến hành lựa chọn k xác suất cao bước k = 10 thường sử dụng mang lại hiệu đủ tốt Sennrich et al., 2016 đề xuất kỹ thuật chia nhỏ từ điển ngôn ngữ thành đơn vị từ nhỏ (tiếp đầu ngữ, tiếp vĩ ngữ, v.v ) cách mã hóa theo cặp Philip Gage, 1994 qua giúp mơ hình NMT thích ứng tốt trước từ gặp, tăng hiệu dịch thuật lên tới 1.1 % 1.3 % BLEU score residual: dạng NN tạo để khắc phục tượng gradiend vanishing cách trực tiếp cộng thêm input vào output (y = f(x) + x) Đây kỹ thuật tương đối hiệu với NN có độ sâu lớn (> 100 layer) (He el al., 2015) 2.4 Kết thử nghiệm Mô hình NMT huấn luyện thử nghiệm 11 thông số khác tập liệu, với cấu hình máy tính khác nên thời gian huấn luyện không Vậy nên bước tổng kết liệt kê điểm BLEU (%) tương ứng với thông số khác Phần tên thông số gồm tên mặc định thông số mặc định thông số điều chỉnh so với mặc định Thông số NMT Mặc định attention: None unit_type: lstm encoder_type: uni (1 chiều) num_layers: num_units: 128 num_train_steps: 12000 optimizer: sgd learning_rate: 1.0 warmup_scheme: t2t infer_mode: greedy vi > en Default NMT BLEU Default 5.9 % + attention scaled_luong 16.2% + GRU 6.1 % + GRU + num_units=512 8.9 % WMT16 Mod / 13 README.md 1/26/2019 attention: normed_bahdanau attention_architecture: gnmt_v2 encoder_type: gnmt (kết hợp chiều chiều) beam_search_width: 10 length_penalty_weight: 1.0 residual: true subword_option: bpe Default WMT16 Mod BLEU Default 15.8 % + num_layers: 18.1 % + infer_mode: greedy 13.5 % IWSLT15 attention: scaled_luong encoder_type: bi (2 chiều) num_units: 512 decay_scheme: luong234 Default IWSLT15 BLEU Default 20.6 % + num_train_steps: 20000 21.0 % + en > vi + num_layers: 23.1 % + en > vi + adam 0.001 22.2 % Attention matrix Các Attention matrix tạo từ model với BLEU score 23.1 Ma trận / 13 README.md 1/26/2019 Mơ hình nắm mối quan hệ sở hữu hai từ "của", Từ "của" tạo liên kết "your" "good" Từ "của " thứ hai tạo liên kết "mine" "better" Ma trận 10 / 13 README.md 1/26/2019 Từ "Tôi" tạo mối liên hệ từ "I" từ "king" Từ "vị vua" có mối liên hệ với "king" "queen", điều hợp lý thực tế thơng dụng tiếng Việt, từ vua dùng để nữ hoàng (nếu nữ) hoàng đế (nam) Ma trận 11 / 13 README.md 1/26/2019 Từ "east" "west" có mối liên hệ với từ để phương hướng Trong ví dụ này, từ từ "my" lặp lại lần từ "my" tạo mối liên hệ với từ "tôi" từ "tôi" thứ Ma trận 12 / 13 README.md 1/26/2019 Tại ví dụ này, từ "anh" bắt mối liên kết từ "he" "husband" Từ "chồng" nắm mối liên quan từ "husband" tìm tương quan tới từ "wife" Another Reference Huan Phan's GitHub Neural Machine Translation (seq2seq) Tutorial Deep Learning for NLP Best Practices [Machine Learning] Attention, Attention, Attention, ! A Gentle Introduction to Calculating the BLEU Score for Text in Python Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention) 13 / 13 ... quan tới từ "wife" Another Reference Huan Phan's GitHub Neural Machine Translation (seq2seq) Tutorial Deep Learning for NLP Best Practices [Machine Learning] Attention, Attention, Attention, ! A... Attention, ! A Gentle Introduction to Calculating the BLEU Score for Text in Python Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention) 13 / 13 ... Papineni cộng đề xuất lần đầu vào năm 2002 qua nghiên cứu "a Method for Automatic Evaluation of Machine Translation" BLEU tính dựa số lượng n-grams giống câu dịch mơ hình (output) với câu tham chiếu