Uploaded by truong do

Seq2seq

advertisement
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
Download