Kiến trúc của LSTM

Một phần của tài liệu Phát triển hệ thống chatbot trò chuyện nhiều tầng (Trang 30 - 32)

Kiến trúc của LSTM (Hình 2.14) [13] phức tạp hơn RNN rất nhiều. Để nhớ được nhiều thông tin, LSTM sử dụng các cổng để giữ lại các thông tin quan trọng và bỏ đi những thông tin dư thừa. Thành phần quan trọng nhất của LSTM làcell state, đây chính là bộ nhớ của LSTM, ngồi

ra cịn một thành phần khác làhidden state. Cell state và hidden state ở thời điểmt được kí hiệu làCt vàht. Cell state và hidden state sẽ lần lượt được cập nhật ở mỗi thời điểm thông qua các cổng, chi tiết như sau:

• Cổng forget giúp tính tốn các thơng tin cần loại bỏ: ft=σ Wf[ht−1,xt] +bf • Cổng input giúp tính tốn các thơng tin cần giữ lại:

CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 18 • Cổng output giúp tính tốn các thơng tin cần xuất ra ở bước hiện tại:

ot =σ(Wo[ht−1,xt] +bo)

• Cập nhật cell state bằng cách sử dụng cổng input và cổng forget: Ct= ft∗Ct−1+it∗C˜t

vớiC˜t được tính bằng:

˜

Ct =tanh(WC[ht−1,xt] +bC)

• Cập nhật hidden state bằng cách sử dụng cổng output: ht =ot∗tanh(Ct)

2.4.4 Sequence to sequence model

Mơ hình Sequence to Sequence (hay cịn được gọi là mơ hình Encoder-Decoder) [14] là ứng dụng của RNN được trình bày ở trên. Trong mơ hình này, cả input và output đều là những se- quences (dữ liệu dạng chuỗi, ví dụ như đoạn văn bản, đoạn âm thanh), do đó rất phù hợp với các bài toán như Machine Translation, Auto Speech Recognition, Optical Character Recognition, ... Các bài tốn này đều xử lí trên dữ liệu dạng chuỗi, do đó khơng thể dùng các kiến trúc Deep Neural Networks (DNN) thơng thường như MLP.

Mơ hình Sequence to Sequece (được viết gọn thành seq-to-seq hoặc seq2seq), bao gồm 2 thành phần chính là Encoder và Decoder. Encoder có nhiệm vụ biến đổi input thành các biểu diễn trung gian (thường gọi là các context vector). Decoder có nhiệm vụ biến đổi các context vector thành các ouput của bài tốn. Thơng thường cả Encoder và Decoder đều là các lớp RNN (hoặc LSTM) chồng lên nhau.

Mục đích của mơ hình này là tính xấp xỉ xác suất:

p(y1, ...,ym|x1, ...,xn)

với(x1, ...,xn)là chuỗi input và(y1, ...,ym)là chuỗi output của bài tốn. Có thể thấy độ dài của input và output có thể khác nhau, tức làm6=n. Để tính được xác suất này, đầu tiên, mơ hình sẽ dùng Encoder để tính ra vectorvcủa chuỗi input, vcó số chiều cố định và có thể xem như là vector biểu diễn của toàn bộ chuỗi input và cũng chính là hidden state cuối cùng của Encoder. Sau đó mơ hình sẽ dùngvđể khởi tạo giá trị hidden state ở Decoder và lần lượt tính xác suất củay1, ...,ym: p(y1, ...,ym|x1, ...,xn) = m ∏ t=1 p(yt|v,y1, ...,yy−1)

CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 19

Một phần của tài liệu Phát triển hệ thống chatbot trò chuyện nhiều tầng (Trang 30 - 32)