Mô hình Multihead-Attention

Một phần của tài liệu Tổng hợp âm nhạc sử dụng học sâu (Trang 37)

Trước khi thảo luận về tầng multihead-attention, hãy cùng tìm hiểu qua về kiến trúc Self- Attention [16]. Tương tự cơ chế attention, kiến trúc này cũng có câu truy vấn, khóa và giá trị nhưng chúng được sao chép từ các phần tử trong chuỗi đầu vào tầng tự tập trung trả về một đầu ra tuần tự có cùng độ dài với đầu vào. So với tầng hồi tiếp, các phần tử đầu ra của tầng tự tập trung có thể được tính toán song song, do đó việc xây dựng các đoạn mã tốc độ cao khá dễ dàng.

Hình 2.19:Minh hoạ kiến trúc Self-Attention (Nguồn: [15])

Multihead-Attention [16] bao gồmhđầu là các tầng tự tập trung song song. Trước khi đưa vào mỗi đầu, ta chiếu các câu truy vấn, khóa và giá trị qua ba tầng dày đặc với kích thước ẩn lần lượt làpq, pkvà pv. Đầu ra của đầu này được nối lại và sau đó được xử lý bởi một tầng dày đặc cuối cùng.

Hình 2.20:Minh hoạ mô hình Multihead-attention (Nguồn: [15])

Giả sử chiều của câu truy vấn, khóa và giá trị lần lượt là dq, dk và dv . Khi đó, tại mỗi đầu

i=1, . . . ,h, ta có thể học các tham số W(qi) ∈Rpq×dq , Wk(i) ∈Rpk×dk , vàWv(i) ∈Rpv×dv. Do đó, đầu ra tại mỗi đầu là

o(i)=attetion(W(qi)q,W(ki)k,W(vi)v)

trong đóattention có thể là bất kỳ tầng tập trung nào, chẳng hạn như tầng tập trung tích vô hướng và tập trung perceptron đa tầng như đề cập trong Section 2.7

Sau đó,hđầu ra với độ dài pv tại mỗi đầu được nối với nhau thành đầu ra có độ dài hpv , rồi được đưa vào tầng dày đặc cuối cùng với do nút ẩn. Các trọng số của tầng dày đặc này được ký hiệu làWo∈Rdo×hpv . Do đó, đầu ra cuối cùng của tầng tập trung đa đầu sẽ là

o=Wo       o(i) . . . o(h)       2.8 Mô hình Transformer

Như chúng ta đã biết về các kiến trúc mạng nơ-ron quan trọng như mạng nơ-ron tích chập (CNN) và mạng nơ-ron hồi tiếp (RNN). Ưu nhược điểm của hai kiến trúc mạng này có thể được tóm tắt như sau:

• Các mạng CNN có thể dễ dàng được thực hiện song song ở một tầng nhưng không có khả năng nắm bắt các phụ thuộc chuỗi có độ dài biến thiên.

• Các mạng RNN có khả năng nắm bắt các thông tin cách xa nhau trong chuỗi có độ dài biến thiên, nhưng không thể thực hiện song song trong một chuỗi.

Để kết hợp các ưu điểm của CNN và RNN, Tác giả Vaswani và một số đồng tác giả khác (2017)[16] đã thiết kế một kiến trúc mới bằng cách sử dụng cơ chế tập trung. Kiến trúc này gọi là Transformer, song song hóa bằng cách học chuỗi hồi tiếp với cơ chế attention, đồng thời mã hóa vị trí của từng phần tử trong chuỗi. Kết quả là ta có một mô hình tương thích với thời gian huấn luyện ngắn hơn đáng kể.

Tương tự như mô hình seq2seq trong mục 2.6, Transformer cũng dựa trên kiến trúc Encoder- Decoder. Tuy nhiên, nó thay thế các tầng hồi tiếp trong seq2seq bằng các tầng tập trung đa đầu (multi-head attention) như đã trình bày ở mục 2.7.4, kết hợp thông tin vị trí thông qua biểu diễn vị trí (positional encoding) và áp dụng chuẩn hóa tầng (layer normalization).

Nhìn chung, hai mô hình này khá giống nhau: các embedding của chuỗi nguồn được đưa vào

nkhối lặp lại. Đầu ra của khối encoder cuối cùng sau đó được sử dụng làm bộ nhớ tập trung cho bộ giải mã. Tương tự, các embedding của chuỗi đích được đưa vàonkhối lặp lại trong bộ decoder. Ta thu được đầu ra cuối cùng bằng cách áp dụng một tầng dày đặc có kích thước bằng kích thước bộ từ vựng lên các đầu ra của khối decoder cuối cùng.

Mặt khác, Transformer khác với mô hình seq2seq sử dụng cơ chế attention như sau:

Khối Transformer: một tầng hồi tiếp trong seq2seq được thay bằng một Khối Trans- former. Với bộ encoder, khối này chứa một tầng multi-head attention và một mạng truyền xuôi theo vị trí (position-wise feed-forward network) gồm hai tầng dày đặc. Đối với bộ decoder, khối này có thêm một tầng multi-head attention khác để nhận vào trạng thái bộ encoder.

Cộng và chuân hóa:đầu vào và đầu ra của cả tầng multi-head attention hoặc mạng truyền xuôi theo vị trí được xử lý bởi hai tầng "cộng và chuẩn hóa" bao gồm cấu trúc phần dư và tầng chuẩn hóa theo tầng (layer normalization).

Hình 2.21:Minh hoạ kiến trúc Transformer (Nguồn: [15])

Biễu diễn vị trí:do tầng tự tập trung không phân biệt thứ tự phần tử trong một chuỗi, nên tầng biễu diễn vị trí được sử dụng để thêm thông tin vị trí vào từng phần tử trong chuỗi.

2.8.1 Mạng truyền xuôi theo vị trí - Position-wise feed-forward network

Mạng truyền xuôi theo vị trí - Position-wise feed-forward network là một thành phần quan trọng của khối Transformer. Nó chấp nhận đầu vào3chiều với kích thước là: kích thước batch, độ dài chuỗi, kích thước đăc trưng. Mạng truyền xuôi theo vị trí bao gồm hai tầng dày đặc áp dụng trên chiều cuối cùng của đầu vào. Vì hai tầng dày đặc này cùng được sử dụng cho từng vị trí trong chuỗi, nên ta gọi là mạng truyền xuôi theo vị trí. Cách làm này tương đương với việc áp dụng hai tầng tích chập1×1.

2.8.2 Cộng và chuẩn hóa

Trong kiến trúc Transformer, tầng "cộng và chuẩn hóa" cũng đóng vai trò thiết yếu trong việc kết nối đầu vào và đầu ra của các tầng khác một cách trơn tru. Cụ thể, ta thêm một cấu trúc phân dư và tầng chuẩn hóa theo tầng sau tầng tập trung đa đầu và mạng truyền xuôi theo vị trí. Chuẩn hóa theo tầng khá giống với chuẩn hóa theo batch. Một điểm khác biệt là giá trị trung bình và phương sai của tầng chuẩn hóa này được tính theo chiều cuối cùng, tức X.mean(axis=-1), thay vì theo chiều đầu tiên (theo batch) X.mean(axis=0) . Chuẩn hóa tầng ngăn không cho phạm vi giá trị trong các tầng thay đổi quá nhiều, giúp huấn luyện nhanh hơn và khái quát hóa tốt hơn.

2.8.3 Biểu diễn vị trí - Positional Encoding

Không giống như tầng hồi tiếp, cả tầng multihead-attention và mạng truyền xuôi theo vị trí đều tính toán đầu ra cho từng phần tử trong chuỗi một cách độc lập. Điều này cho phép song song hóa công việc tính toán nhưng lại không mô hình hóa được thông tin tuần tự trong chuỗi đầu vào. Để nắm bắt các thông tin tuần tự một cách hiệu quả, mô hình Transformer sử dụng biểu diễn vị trí (positional encoding) để duy trì thông tin vị trí của chuỗi đầu vào.

Cụ thể, giả sửX∈Rl×d là embedding của mẫu đầu vào, trong đó l là độ dài chuỗi và d là kích thước embedding. Tầng biểu diễn vị trí sẽ mã hóa vị tríP∈Rl×dcủaXvà trả về đầu raP+X. Vị tríPlà ma trận 2 chiều, trong đóilà thứ tự trong câu, jlà vị trí theo chiều embedding. Bằng cách này, mỗi vị trí trong chuỗi ban đầu được biểu biễn bởi hai phương trình dưới đây:

Pi,2j=sin(i/100002j/d) Pi,2j+1=cos(i/100002j/d)

vớii=0, ...,l−1và j=0, ...,⌊(d−1)/2⌋

2.8.4 Khối Encoder và Decoder của kiến trúc Transformer

Ecnoder của kiến trúc Transformer chứa một tầng tập trung đa đầu, một mạng truyền xuôi theo vị trí và hai khối kết nối “cộng và chuẩn hóa”. Khối Decoder của Transformer gần tương tự như khối Encoder. Tuy nhiên, bên cạnh hai tầng con (multi-head attention và biểu diễn vị trí), khối giải mã còn chứa tầng multi-head attention áp dụng lên đầu ra của bộ mã hóa. Các tầng con này cũng được kết nối bằng các tầng “cộng và chuẩn hóa”, gồm kết nối phần dư và chuẩn hóa theo tầng.

2.9 Biểu diễn Mã hóa hai chiều từ Transformer (BERT)

Đôi nét về các cách biểu diễn ngôn ngữ tự nhiên phổ biến hiện nay:

• Các mô hình embedding từ như word2vec [17][18] và GloVe (Global Vectors for Word Representation) [19] có tính chất độc lập với ngữ cảnh. Hai mô hình này gán cùng một vector được tiền huấn luyện cho cùng một từ bất kể ngữ cảnh xung quanh của từ đó là gì (nếu có). Do đó, rất khó để các mô hình này xử lý tốt các trường hợp phức tạp về ngữ nghĩa hay đa nghĩa trong các ngôn ngữ tự nhiên.

• Đối với các biểu diễn từ nhạy ngữ cảnh như ELMo (embedding từ các mô hình ngôn ngữ (Embeddings from Language Models)) [20] và GPT (Generative Pre-Training) [21], biểu diễn của từ phụ thuộc vào ngữ cảnh của từ đó.

• ELMo mã hóa ngữ cảnh theo hai chiều nhưng sử dụng kiến trúc đặc thù phụ thuộc vào các tác vụ trong ngôn ngữ tự nhiên cần xử lý như phân tích cảm xúc, suy luận ngôn ngữ tự nhiên, trả lời câu hỏi, ... Bởi vì trên thực tế không dễ để tạo ra một kiến trúc đặc thù cho mọi tác vụ xử lý ngôn ngữ tự nhiên trong khi đó GPT không phân biệt tác vụ nhưng chỉ mã hóa ngữ cảnh theo chiều từ trái sang phải.

Kết hợp những điều tốt nhất của hai phương pháp ELMo và GPT, BERT (biểu diễn mã hóa hai chiều từ Transformer - Bidirectional Encoder Representations from Transformers)[22] mã hóa ngữ cảnh theo hai chiều và chỉ yêu cầu vài thay đổi kiến trúc tối thiểu cho một loạt các tác vụ xử lý ngôn ngữ tự nhiên. Sử dụng bộ mã hóa Transformer được tiền huấn luyện, BERT có thể biểu diễn bất kỳ token nào dựa trên ngữ cảnh hai chiều của nó. Trong quá trình học có giám sát trên các tác vụ xuôi dòng, BERT tương tự như GPT ở hai khía cạnh. Đầu tiên, các biểu diễn BERT sẽ được truyền vào một tầng đầu ra được bổ sung, với những thay đổi tối thiểu tới kiến trúc mô hình tùy thuộc vào bản chất của tác vụ, chẳng hạn như dự đoán cho mỗi token hay dự đoán cho toàn bộ chuỗi. Thứ hai, tất cả các tham số của bộ mã hóa Transformer đã tiền huấn luyện đều được tinh chỉnh, trong khi tầng đầu ra bổ sung sẽ được huấn luyện từ đầu.

Hình 2.22:So sánh giữa ELMO, GPT, và BERT. (Nguồn: [15])

BERT cải thiện kết quả tân tiến nhất đối với mười một tác vụ xử lý ngôn ngữ tự nhiên trải khắp các hạng mục gồm: i) phân loại văn bản đơn (như phân tích cảm xúc), ii) phân loại cặp văn bản (như suy luận ngôn ngữ tự nhiên), iii) trả lời câu hỏi, và iv) gán thẻ văn bản (như nhận dạng thực thể có tên). Tất cả các kỹ thuật được đề xuất trong năm 2018, từ ELMo nhạy ngữ cảnh cho tới GPT không phân biệt tác vụ và BERT, tuy về ý tưởng đều đơn giản nhưng trên thực nghiệm là những phương pháp tiền huấn luyện hiệu quả cho các biểu diễn sâu của ngôn ngữ tự nhiên, và đã mang đến những giải pháp mang tính cách mạng cho nhiều tác vụ xử lý ngôn ngữ tự nhiên.

2.9.1 Biểu diễn đầu vào

Trong xử lý ngôn ngữ tự nhiên, một số nhiệm vụ (như phân tích cảm xúc) lấy một câu văn làm đầu vào, trong khi một số tác vụ khác (như suy diễn ngôn ngữ tự nhiên), đầu vào là một cặp chuỗi văn bản. Chuỗi đầu vào BERT biểu diễn một cách tường minh cả văn bản đơn và cặp văn bản. Với văn bản đơn, chuỗi đầu vào BERT là sự ghép nối của token phân loại đặc biệt “<cls>”, token của chuỗi văn bản, và token phân tách đặc biệt “<sep>”. Với cặp văn bản, chuỗi đầu vào BERT là sự ghép nối của “<cls>”, token của chuỗi văn bản đầu, “<sep>”, token của chuỗi văn bản thứ hai, và “<sep>”. Ta sẽ phân biệt nhất quán thuật ngữ “chuỗi đầu vào BERT” với các kiểu “chuỗi” khác. Chẳng hạn, một chuỗi đầu vào BERT có thể bao gồm cả một chuỗi văn bản hoặc hai chuỗi văn bản.

Để phân biệt cặp văn bản, các embedding đoạn đã họceA và eB được cộng tương ứng vào các embedding token của chuỗi thứ nhất và chuỗi thứ hai. Đối với đầu vào là văn bản đơn, ta chỉ sử dụngeA.

Kiến trúc hai chiều của BERT là bộ mã hóa Transformer. Thông thường trong bộ mã hóa Trans- former, các embedding vị trí được cộng vào mỗi vị trí của chuỗi đầu vào BERT. Tuy nhiên, khác với bộ mã hóa Transformer nguyên bản, BERT sử dụng các embedding vị trí có thể học được.

Hình 2.23:Embedding của chuỗi đầu vào BERT là tổng các embedding của token, embeddingđoạn và embedding vị trí. (Nguồn: [15]) đoạn và embedding vị trí. (Nguồn: [15])

2.9.2 Những tác vụ Tiền huấn luyện

Suy luận xuôi của BERTEncoder cho ra biểu diễn BERT của mỗi token của văn bản đầu vào và các token đặc biệt được thêm vào “<cls>” và “<seq>”. Kế tiếp, ta sẽ sử dụng các biểu diễn này để tính toán hàm mất mát khi tiền huấn luyện BERT. Tiền huấn luyện gồm hai tác vụ: masked language modeling và next sentence prediction.

2.9.2.1 Masked Language Modeling

Như chúng ta đã biết, một mô hình ngôn ngữ dự đoán một token bằng cách sử dụng ngữ cảnh phía bên trái của nó. Để mã hóa ngữ cảnh hai chiều khi biểu diễn mỗi token, BERT ngẫu nhiên che các token và sử dụng các token lấy từ ngữ cảnh hai chiều để dự đoán các token được che đó. Trong tác vụ tiền huấn luyện này, 15% số token sẽ được lựa chọn ngẫu nhiên để làm các token che khuyết cho việc dự đoán. Để dự đoán một token được che mà không sử dụng nhãn, một hướng tiếp cận đơn giản là luôn luôn thay thế nó bằng token đặc biệt “<mask>” trong chuỗi đầu vào BERT. Tuy nhiên, token “<mask>” sẽ không bao giờ xuất hiện khi tinh chỉnh. Để tránh sự không đồng nhất giữa tiền huấn luyện và tinh chỉnh, nếu một token được cheạ để dự đoán (ví dụ, từ “great” được chọn để che và dự đoán trong câu “this movie is great”), trong đầu vào nó sẽ được thay thế bởi:

• token đặc biệt “<mask>”, chiếm 80% số lần (ví dụ, “this movie is great” trở thành “this movie is <mask>”);

• token ngẫu nhiên, chiếm 10% số lần (ví dụ, “this movie is great” trở thành “this movie is drink”);

• chính token đó, chiếm 10% số lần (ví dụ, “this movie is great” trở thành “this movie is great”).

Lưu ý rằng trong 15% token được chọn để che khuyết, 10% số token đó sẽ được thay thế bằng một token ngẫu nhiên. Việc thi thoảng thêm nhiễu sẽ giúp BERT giảm thiên kiến về phía token được che (đặc biệt khi token nhãn không đổi) khi mã hóa ngữ cảnh hai chiều.

2.9.2.2 Next Sentence Prediction

Mặc dù masked language modeling có thể mã hóa ngữ cảnh hai chiều để biểu diễn từ ngữ, nó không thể mô hình hóa các mối quan hệ logic giữa các cặp văn bản một cách tường minh. Để hiểu hơn về mối quan hệ giữa hai chuỗi văn bản, BERT sử dụng tác vụ phân loại nhị phân, dự đoán câu tiếp theo (next sentence prediction) trong quá trình tiền huấn luyện. Khi sinh các cặp câu cho quá trình tiền huấn luyện, một nửa trong số đó là các cặp câu liên tiếp nhau trong thực tế và được gán nhãn “Đúng” (True); và trong nửa còn lại, câu thứ hai được lấy mẫu ngẫu nhiên từ kho ngữ liệu và cặp này được gán nhãn “Sai” (False).

Khi tiền huấn luyện BERT, hàm mất mát cuối cùng là tổ hợp tuyến tính của cả hai hàm mất mát trong tác vụ masked language modeling và next sentence prediction.

2.10 Mô hình TransformerXL

Mô hình Transformer đã đạt được nhiều kết quả đáng kinh ngạc, được áp dụng thành công vào nhiều bài toán mô hình và xử lý ngôn ngữ tự nhiên. Al-Rfou et al. (2018) đã đề xuất sử dụng mô hình Transformer trong bài toán mô hình ngôn ngữ cấp độ kí tự (character-level modeling). Một ứng dụng vô cùng gần gũi của bài toán này trong cuộc sống hàng ngày chính là hệ thống gợi ý từ kế tiếp của các bàn phím máy tính, điện thoại thông minh,... Bài toán mô hình ngôn ngữ cấp độ kí tự đặt ra một thử thách vô cùng lớn trong vấn đề nắm bắt ngữ cảnh và phụ thuộc xa: trong bài toán này, ngữ cảnh dài hơn rất nhiều so với bài toán mô hình cấp độ từ vựng (word-level modeling). Với bài toán mô hình cấp độ từ vựng, con số 512 - chiều dài ngữ cảnh tối đa mà mô hình Trasnformer có thể nắm bắt, là quá đủ vì hầu như các câu (sentence) gần như chẳng vượt qua con số 512 từ bao giờ. Tuy nhiên, trong bài toán cấp độ từ vựng, thì chiều dài này là không

Một phần của tài liệu Tổng hợp âm nhạc sử dụng học sâu (Trang 37)

Tải bản đầy đủ (PDF)

(94 trang)