NLP seq2seq I. Seq2seq use cases - Machine translation: Dịch máy - Speech recognition: Nhận diện giọng nói - Video captioning - …. II. Seq2seq definition Một mô hình Seq2seq có thực hiện việc ánh xạ một chuỗi đầu vào có độ dài cố định sang một chuỗi đầu ra có độ dài cố định, tuy nhiên độ dài của chuỗi đầu vào và đầu ra hoàn toàn có thể khác nhau. III. How the seq2seq works Mô hình gồm 3 phần: encoder, vector encoder trung gian và decoder. Encoder - - Là một tập cái RNN units ( LSTM hoặc GRU thì sẽ cho kết quả tốt hơn ), trong mỗi bước chúng nạp vào một thành phần của input đầu vào, thu thập thông tin về thành phần đó và lan truyền về phía trước ( propagates forward ). Trong Q&A problem, chuỗi input đầu vào là một tập tất cả các từ được tách ra từ câu hỏi, mỗi từ sẽ biểu diễn cho xi, trong đó I là thứ tự của từ trong chuỗi. Hidden state được tính bằng công thức: o Sử dụng ht-1 và xt để có thể tính được hidden state hiện tại ht. Encoder vector - Nó là hidden state cuối của phần encoder và được tính bởi công thức như trên. Vector này chứa đựng thông tin của toàn bộ chuỗi đầu vào theo thứ tự và từ đó giúp decoder có thể đoán đúng được chuỗi đầu ra. Nó hoạt động như là cấu hình khởi tạo ( initial hidden state ) cho phần decoder của mô hình. Decoder - Là một tập cái RNN units, trong time step t, decoder sẽ đoán nhận ra output yt Hidden state hi được tính bởi công thức: - o Có thể thấy, chúng ta chỉ cần sử dụng hidden state trước đó để đoán nhận ra cái tiếp theo. Và outpput yt sử dụng công thức: Sức mạnh của seq2seq là việc nó cho phép độ dài chuỗi đầu vào và đầu ra khác nhau. Attention: Đầu vào của decoder chỉ là một single vector, cái mà lưu trữ toàn bộ thông tin của ngữ cảnh. Vì thế, đây chính là vấn đề với những chuỗi lớn. Cơ chế attention cho phép encoder mã hóa thành một dãy cái vector, sau đó decoder áp dụng kỹ thuật attention bằng cách lấy tổng các trọng số của dãy các vector được mã hóa. Cơ chế attention chỉ đơn giản là trung bình có trọng số của những “thứ” mà chúng ta nghĩ nó cần thiết cho bài toán, điều đặc biệt là trọng số này do mô hình tự học được. Cụ thể, trong bài toán dịch máy ở ví dụ dưới, khi sử dụng cơ chế attention để phát sinh từ little, mình sẽ cần tính một vector context C là trung bình có trọng số của vector biểu diễn các từ mặt, trời, bé, nhỏ tương ứng với vector h_{1}, h_{2}, h_{3}, h_{4}h1,h2,h3,h4 rồi sử dụng thêm vector context cc này tại lúc dự đoán từ little, The main idea of the paper is to build a hybrid character-subword decoder: character on the input, subwords on the output. It is a standard autoregressive decoder that conditions the current output on what it generated before. The inputs to the decoder are characters, but the outputs of the decoder are subwords. At inference time, it would look like in the following figure: The more interesting question is, how such a model can be trained. The paper introduces a simple dynamic programming algorithm that can sum probabilities of all possible subword segmentation of the input even though there is exponentially many of them and it would never be possible to enumerate them explicitly. The reason why they can use the dynamic programming algorithm is that the state of the decoder does not depend on what subwords were previously chosen, but only on what characters the subwords consist of. BPE