Cơ chế 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 34)

Trong mục 2.6, chúng ta dùng mạng hồi tiếp RNN để mã hóa thơng tin của chuỗi nguồn đầu vào thành trạng thái ẩn và truyền nó tới bộ Decoder để sinh chuỗi đích. Một token trong chuỗi đích có thể chỉ liên quan mật thiết tới một vài token chứ khơng nhất thiết là tồn bộ token trong chuỗi nguồn. Ví dụ, khi dịch “Hello world.” thành “Bonjour le monde.”, từ “Bonjour” ánh xạ tới từ “Hello” và từ “monde” ánh xạ tới từ “world”. Trong mơ hình seq2seq, Decoder có thể ngầm chọn thông tin tương ứng từ trạng thái ẩn được truyền đến từ bộ mã hóa. Tuy nhiên, cơ chế tập trung (attention mechanism) thực hiện phép chọn này một cách tường minh.

Cơ chế tập trung có thể được coi là phép gộp tổng quát. Nó gộp đầu vào dựa trên các trọng số khác nhau. Thành phần cốt lõi của cơ chế này là tầng attention. Những tầng này với đầu vào được gọi ngắn gọn là câu truy vấn (query). Với mỗi câu truy vấn, đầu ra sẽ được trả về dựa trên bộ nhớ là tập các cặp key-value được mã hóa trong tầng attention này. Cụ thể, giả sử bộ nhớ chứan cặp vector key-value, (k1,v1), . . . ,(kn,vn), với ki∈Rdk,vi∈Rdv. Với mỗi vector truy vấnq∈Rdq, tầng tập trung trả về đầu rao∈Rdvcó cùng kích thước với vector giá trị.

Hình 2.17 minh họa cách tính tốn đầu ra của tầng tập trung, chúng ta sử dụng hàm tính điểmα

để đo độ tương đồng giữa câu truy vấn và các khóa. Sau đó, với mỗi khóa(k1,v1), . . . ,(kn,vn), ta tính điểma1, . . . ,annhư sau:

Hình 2.17:Minh hoạ cơ chế Attention (Nguồn: [15])

Tiếp theo, chúng ta sử dụng hàm softmax để thu được các trọng số tập trung (attention weights), cụ thể:

b=softmax(a), bi= exp(ai)

∑jexp(aj), b= [b1, ...,bn] T

Cuối cùng, đầu ra của tầng là tổng trọng số của các giá trị:

o= n

i=1 bivi

Cách lựa chọn hàm tính điểm α khác nhau sẽ tạo ra các tầng attention khác nhau. Hai tầng attention phổ biến nhất hiện nay: tập trung tích vơ hướng và tập trung perceptron đa tầng.

2.7.1 Tầng tập trung tích vơ hướng - Dot product attention

Giả định rằng câu truy vấn có cùng kích thước chiều với khóa, cụ thể làq,ki∈Rd với mọii.

Tầng tập trung tích vơ hướng sẽ tính điểm bằng cách lấy tích vơ hướng giữa câu truy vấn và khóa, sau đó chia cho√dđể giảm thiểu ảnh hưởng không liên quan của số chiềudlên điểm số. Nói cách khác,

α(q,k) =hq,ki/√

d

Mở rộng ra từ các câu truy vấn và khóa một chiều, chúng ta ln có thể tổng qt hóa chúng lên thành các giá trị truy vấn và khóa đa chiều. Giả định rằngQ∈Rm×d chứamcâu truy vấn vàK∈Rn×dchứa tồn bộnkhóa. Chúng ta có thể tính tồn bộm×nđiểm số như sau:

α(Q,K) =QK⊤/√

2.7.2 Tập trung perceptron đa tầng - Multilayer perceptron attention

Trong cơ chế tập trung perceptron đa tầng (multilayer perceptron attention), chúng ta chiếu cả câu truy vấn và các khóa lênRhbằng các tham số trọng số được học. Giả định rằng các trọng số được học làWk∈Rh×dk,Wq∈Rh×dq vàv∈Rh. Hàm tính điểm sẽ được định nghĩa như sau

α(Q,K) =v⊤tanh(Wkk+Wqq)

Một cách trực quan, ta có thể tưởng tượngWkk+Wqqchính là việc nối khóa và giá trị lại với nhau theo chiều đặc trưng và đưa chúng qua perceptron có một tầng ẩn với kích thước làhvà tầng đầu ra với kích thước là 1 . Trong tầng ẩn này, hàm kích hoạt làtanh và khơng có hệ số điều chỉnh.

2.7.3 Mơ hình Seq2Seq áp dụng Cơ chế Attention

Bộ nhớ của tầng attention ở đây bao gồm tất cả thông tin mà Encoder đã được học — đầu ra của Encoder tại từng bước thời gian. Trong quá trình giải mã, đầu ra của bộ Decoder tại bước thời gian trước đó được sử dụng làm câu truy vấn. Đầu ra của mơ hình tập trung có thể được hiểu là thông tin ngữ cảnh của chuỗi, phần ngữ cảnh này được ghép nối với đầu vào của Decoder và kết quả được đưa vào bộ này.

Hình 2.18:Minh hoạ mơ hình Seq2seq kết hợp cơ chế Attention (Nguồn: [15])

Do Encoder của mơ hình Seq2seq áp dụng cơ chế tập trung giống với bộ mã hóa của Seq2Seq ở phần 2.6 nên ở phần này, chúng ta sẽ chỉ tập trung vào bộ Decoder. Ta thêm tầng tập trung perceptron đa tầng (MLP) có cùng kích thước ẩn với tầng LSTM trong bộ này. Sau đó ta khởi tạo trạng thái của bộ Decoder bằng cách truyền vào ba đầu ra thu được từ Encoder:

Đầu ra của Encoder tại tất cả các bước thời gian:được sử dụng như bộ nhớ của tầng attention có cùng các key và value.

Trạng thái ẩn của Encoder tại bước thời gian cuối cùng:được sử dụng làm trạng thái ẩn ban đầu của Decoder.

Độ dài hợp lệ của Encoder để tầng tập trung có thể bỏ qua những token đệm có trong đầu ra của Encoder.

Ở mỗi bước thời gian trong quá trình giải mã, ta sử dụng trạng thái ẩn của tầng RNN cuối cùng làm câu truy vấn cho tầng tập trung. Đầu ra của mơ hình tập trung sau đó được ghép nối với vector embedding đầu vào để đưa vào tầng RNN. Mặc dù trạng thái ẩn của tầng RNN cũng chứa thông tin từ bộ giải mã ở các bước thời gian trước đó nhưng đầu ra của tầng tập trung sẽ lựa chọn các đầu ra của bộ mã hóa một cách tường minh dựa vào độ dài hợp lệ của bộ mã hóa nhằm loại bỏ những thơng tin khơng liên quan.

2.7.4 Mơ hình Multihead-Attention

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 tố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(i)q ∈Rpq×dq , Wk(i) ∈Rpk×dk , vàW(i)v ∈Rpv×dv. Do đó, đầu ra tại mỗi đầu là

o(i)=attetion(W(i)q q,W(i)k k,W(i)v 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∈Rdhpv . 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 xi 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 xi 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 xi theo vị trí - Position-wise feed-forward network

Mạng truyền xi 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 xi 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 xi 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 xi 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 xi theo vị trí đều tính tố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 tố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 xi 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 q trình học có giám sát trên các tác vụ xi 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ự đốn cho tồ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à

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 34)

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

(94 trang)